Desenvolva agentes mais seguros com a documentação Flowtly MCP
Ligue assistentes, ferramentas ou agentes personalizados ao Flowtly com controlos de segurança. O servidor MCP expõe 19 namespaces, 8 agentes integrados, 14 resumos lógicos e acesso completo de leitura/escrita à plataforma Flowtly via JSON-RPC 2.0.
Estado da documentação
Última sincronização em 2026-05-15 13:20
Sincronize regularmente para manter a documentação MCP alinhada com a versão mais recente do servidor.
Secções
Como manter-se atualizado
- Execute o comando de sincronização após atualizações do MCP.
- Reinicie a sua stack de agentes para incorporar alterações de capacidades.
- Guarde esta página nos favoritos para as orientações mais recentes do Flowtly MCP.
O que está incluído
- Regras de autenticação, CORS e caching para endpoints MCP.
- 19 namespaces de recursos com operações de listagem/leitura/escrita.
- 8 agentes integrados com controlo de acesso baseado em funções.
- 14 resumos lógicos para análises computadas.
- Payloads JSON-RPC, exemplos de código e dicas de integração.
Início rápido
- Passo 1 — Obter um token: Aceda a Flowtly Workspace → Tokens de Agente e gere um token de cliente.
-
Passo 2 — Inicializar: POST para
https://mcp.flowtly.eu/mcpcom{"jsonrpc":"2.0","id":"init-1","method":"initialize","params":{"protocolVersion":"2024-11-05"}} -
Passo 3 — Ler dados: POST
{"jsonrpc":"2.0","id":"read-1","method":"resources/work-times/read","params":{"uri":"/api/work-times"}} -
Passo 4 — Escrever dados: POST
{"jsonrpc":"2.0","id":"write-1","method":"resources/work-times/write","params":{"uri":"/api/work-times","contents":[{"text":"{\"date\":\"2026-04-03\",\"seconds\":3600,\"project\":\"/projects/1\",\"description\":\"Support\"}"}]}} -
Todos os pedidos utilizam
Authorization: Bearer <YOUR_TOKEN>eContent-Type: application/json.
Transporte e Autenticação
-
URL base (produção):
https://mcp.flowtly.eu - Endpoints: POST /mcp (entrada JSON-RPC), GET /health (verificação de disponibilidade)
-
Autenticação:
Authorization: Bearer <token>(preferido). Alternativa: variável de ambienteFLOWTLY_API_KEY. Geração de token: workspace.flowtly.eu/user/agent-tokens -
Content-Type:
application/json. Body: JSON-RPC 2.0{"jsonrpc":"2.0","id":"...","method":"...","params":{...}} -
CORS: Credenciais permitidas apenas a partir de
https://workspace.flowtly.eu. Nunca combineAccess-Control-Allow-Origin: *comAccess-Control-Allow-Credentials: true. -
API upstream:
https://api.flowtly.eu— o servidor MCP redireciona todos os pedidos para a API REST Flowtly.
initialize
- Negoceia a versão do protocolo, capacidades e namespaces disponíveis.
-
Pedido:
{"jsonrpc":"2.0","id":"init-1","method":"initialize","params":{"protocolVersion":"2024-11-05"}} -
Capacidades de resposta:
{"resources":{"list":true,"read":true,"write":true}} - Namespaces disponíveis: work-times, projects, employees, vacations, holidays, responsibilities, cost-groups, budget-groups, budgets, logical, project-rates, transactions, transaction-attachments, suppliers, organization, candidates, resource-requests.
resources/list
-
Método:
resources/{namespace}/list— namespace predefinido:work-timesquando omitido. - Namespaces (19): work-times, projects, employees, vacations, holidays, responsibilities, cost-groups, budget-groups, budgets, logical, project-rates, transactions, transaction-attachments, suppliers, organization, candidates, resource-requests, candidate-notes, resource-request-candidates.
-
Devolve um array de objetos
{uri, name}que descrevem os recursos disponíveis por namespace. Consulte a descrição detalhada de namespaces abaixo. -
Exemplo:
{"jsonrpc":"2.0","id":"list-1","method":"resources/projects/list","params":{}}
resources/read
-
Método:
resources/{namespace}/read— namespace predefinido:work-times. -
Parâmetros:
uri(obrigatório) — o URI do recurso, ex./api/work-times. - allowPrefixes: permite correspondências entre namespaces. Qualquer URI que comece com um prefixo permitido é aceite.
-
Resolução de {current}:
{current}nos parâmetros de consulta de colaborador resolve automaticamente para/api/employees/me. - Predefinições automáticas: work-times adiciona date[after]/date[before] (últimos 30 dias), employees adiciona itemsPerPage=200, holidays/vacations adicionam predefinições de paginação.
- Enriquecimento: A leitura de responsibilities segue até 10 links @id para enriquecer campos de título/nome.
- Namespace lógico: devolve resumos computados do lado do servidor em vez de payloads brutos da API.
-
Resposta:
{"jsonrpc":"2.0","id":"...","result":{"contents":[{"uri":"...","text":"{...}","mimeType":"application/json"}]}}
resources/write
-
Método:
resources/{namespace}/write— apenas recursos comallowWriteaceitam escritas. -
Encaminhamento: POST para criação, PATCH (com
application/merge-patch+json) quando o URI termina com um ID. Substitua viaparams.contentType. -
Caminhos de criação:
/api/.../createforça POST mesmo que um ID esteja presente. -
Convenção IRI:
params.uriutiliza caminhos/api/..., mas as referências a entidades dentro de payloads JSON devem usar IRIs upstream (ex."project": "/projects/1", não"/api/projects/1"). - Namespaces com escrita: work-times, holidays (holiday-requests), transactions, transaction-attachments, suppliers (contractors), budgets, budget-groups, candidates, candidate-notes, resource-requests, resource-request-candidates.
-
Auxiliares de escrita lógica:
resources/logical/writesuporta/logical/work-times/log(POST para /api/work-times),/logical/recruiting/resource-requests/update?id=<id>e/logical/recruiting/resource-request-candidates/update?id=<id>(PATCH).
Agentes integrados
-
EmployeeAgent (
employee): Operações do dia-a-dia — registar horas, consultar ausências, ver atribuições. Acesso: qualquer utilizador autenticado (scope por token/instância). -
ManagerAgent (
manager): Apoio ao gestor de projetos/engenharia — taxas, dotação de pessoal, custos, aprovações. Requer: função project_manager ou admin. -
ExecutiveAgent (
executive): Resumos executivos — KPIs, orçamentos, agregações, aprovações. Requer: função admin, executive, director, vp ou c-level. -
HRManagerAgent (
hr): RH e ausências — saldos de férias, histórico de ausências, feriados da equipa. Acesso: qualquer utilizador autenticado. -
AccountancyAgent (
accountancy): Consultas financeiras — listar transações, resumir montantes. Nunca expõe URLs de anexos. Acesso: qualquer utilizador autenticado. -
RecruiterAgent (
recruiter): Recrutamento — listar vagas abertas, pesquisar/criar candidatos, associar a vagas, adicionar notas. Requer: função candidates_manager, admin ou recruiter. -
OnboardingAgent (
onboarding): Orientação para novos utilizadores — ajuda na configuração, navegação, respostas a "onde encontro X". Acesso: qualquer utilizador autenticado. -
TechAgent (
tech): Configuração técnica — pedidos de credenciais MCP/ChatGPT. Gera credenciais de cliente por utilizador após aprovação do administrador. Acesso: aberto a todas as funções (será restringido). -
Seleção de agente: Use
employeepara tarefas pessoais;hrpara ausências/férias;managerpara pessoal/custos;executivepara KPIs;accountancypara finanças;recruiterpara candidatos;onboardingpara configuração. - Modelo de acesso: As verificações de função utilizam as funções/autoridades/permissões do Flowtly. Os agentes restritos recusam ações quando nenhuma função necessária corresponde. Todos os agentes utilizam apenas a ferramenta API MCP — sem serviços externos.
Namespace lógico — resumos computados
-
Resumos de horas:
/logical/work-times/summary— horas agregadas por colaborador/projeto. Suportadate[after]/date[before](predefinição dos últimos 7 dias). -
Resumo de colaboradores:
/logical/employees/summary— efetivo, departamentos e visão geral de estado. -
Resumo de projetos:
/logical/projects/summary— projetos ativos, tipos de faturação e distribuição por cliente. -
Horas por colaborador:
/logical/employee-work-times/summary— análise de utilização por colaborador. -
Taxas de projeto:
/logical/project-rates/summary— tabelas de taxas e visão geral das taxas de faturação. -
Transações:
/logical/transactions/summary— totais de despesas, categorização e tendências. -
Rentabilidade de projetos:
/logical/project-profitability/summary— receita vs. custo por projeto. -
Grupos de orçamento:
/logical/budget-groups/summary— alocações de grupos de orçamento e estado de consumo. -
Orçamentos:
/logical/budgets/summary— utilização individual de orçamentos e alertas. -
Onboarding da empresa:
/logical/company-onboarding/status— progresso da configuração do workspace e passos pendentes. -
Vagas abertas:
/logical/recruiting/open-roles— pedidos de recursos não preenchidos e pipeline de contratação. -
Candidatos:
/logical/recruiting/candidates— distribuição por etapa do pipeline de candidatos. -
Ausências:
/logical/holidays— dados agregados de ausências e disponibilidade da equipa. -
Registo de horas (escrita):
/logical/work-times/log— POST cria uma entrada de horas via /api/work-times.
Caching e desempenho
- Cache lógica Redis: Cache opcional para leituras lógicas. Pode partilhar o Redis com a API principal para padrões de invalidação.
-
Variáveis de ambiente:
MCP_LOGICAL_CACHE_ENABLED(ativada automaticamente quando existe URL Redis),MCP_LOGICAL_CACHE_REDIS_URL(alternativas: REDIS_URL, CACHE_REDIS_URL). -
Formato de chave: Prefixo
mcp:logical:v1:— com scope por instância + principal, inclui URI lógico normalizado. Configure o prefixo viaMCP_LOGICAL_CACHE_PREFIX. -
TTL: 86400 segundos (24 horas). Configure via
MCP_LOGICAL_CACHE_TTL_SECONDS.
Tratamento de erros
-
Erro JSON-RPC padrão:
{"jsonrpc":"2.0","id":"...","error":{"code":-32000,"message":"Upstream Flowtly API failed","data":{"status":502}}} - Códigos de erro comuns: -32700 (erro de análise), -32600 (pedido inválido), -32601 (método não encontrado), -32000 (falha da API upstream).
-
O campo
data.statusreflete o código de estado HTTP da API Flowtly upstream quando disponível.
Notas adicionais
-
allowPrefixes: Permite que
resources/readaceite URIs que começam com prefixos permitidos, habilitando pesquisas entre namespaces. -
Referência OpenAPI: Disponível em
public/mcp/openapi.json(copiado paradist/mcp/openapi.jsonno momento da compilação). -
Contratos de intenção LLM: Padrões de router + manager documentados em
docs/llm-intent-architecture.md, implementados empackages/agent/src/intents/contract.ts. - Paginação: As predefinições são aplicadas automaticamente por namespace. Substitua com parâmetros de consulta explícitos quando necessário.
Referência de namespaces — resources/list por namespace
work-times
- List: /api/work-times (define automaticamente date[after]/date[before] para os últimos 30 dias), /api/employees/me
- Read: mesmos URIs — devolve horas registadas com projeto, colaborador, descrição e segundos
- Write: POST /api/work-times (criar), PATCH /api/work-times/{id} (atualizar). Payload: {date, seconds, project, description}
projects
- List: /api/projects, /api/projects?employee={current} (resolução automática), /api/employees/me
- Read: devolve metadados do projeto, membros, tipo de faturação, cliente, moeda e datas
employees e responsibilities
- employees List: /api/employees/me, /api/employees (itemsPerPage=200)
- responsibilities List: /api/responsibility-employees?employee={current}, /api/responsibilities, /api/responsibility-groups
- Read: responsibilities enriquece links @id (até 10) com contexto de título/nome
vacations e holidays
- vacations: balance?employee={current}, holiday-days-limits (itemsPerPage=50), holidays (itemsPerPage=50)
- holidays: /api/holidays?employee={current} (itemsPerPage=200), /api/holiday-requests
- Write: POST/PATCH /api/holiday-requests para gestão de pedidos de ausência
transactions e attachments
- transactions: /api/transactions (itemsPerPage=200&page=1), /api/bank-accounts
- transaction-attachments: /api/transaction-attachments, /api/transaction-attachments/create
- Write: transactions (POST/PATCH), attachments (POST/PATCH, /create força POST)
suppliers e cost-groups
- suppliers: /api/contractors (itemsPerPage=100&page=1)
- cost-groups: /api/cost-groups (itemsPerPage=200&page=1)
- Write: /api/contractors (POST/PATCH)
budget-groups e budgets
- budget-groups: /api/budget-groups (escrita permitida, itemsPerPage=200&page=1)
- budgets: /api/budgets (escrita permitida, itemsPerPage=200&page=1)
- Write: POST/PATCH para budget-groups e budgets
project-rates
- List: /api/employees/{current}/project-rates (itemsPerPage=200, resolve automaticamente o colaborador atual)
- Logical: /logical/project-rates/summary, /logical/project-profitability/summary
candidates e resource-requests
- candidates: /api/candidates (itemsPerPage=50&page=1), /api/candidates/search, /api/candidate-notes
- resource-requests: /api/resource-requests (itemsPerPage=50&page=1), /api/resource-request-candidates (itemsPerPage=50&page=1)
- Write: candidates, candidate-notes, resource-requests, resource-request-candidates (POST/PATCH)
- Logical writes: /logical/recruiting/resource-requests/update?id=<id>, /logical/recruiting/resource-request-candidates/update?id=<id> (PATCH)
logical (14 endpoints)
- Core: /logical/work-times/summary, /logical/employees/summary, /logical/projects/summary
- Analytics: /logical/employee-work-times/summary, /logical/project-rates/summary, /logical/transactions/summary, /logical/project-profitability/summary
- Orçamentos: /logical/budget-groups/summary, /logical/budgets/summary
- Recrutamento: /logical/company-onboarding/status, /logical/recruiting/open-roles, /logical/recruiting/candidates
- Outros: /logical/holidays, /logical/work-times/log (auxiliar de escrita)
organization
- Read: /api/organization — perfil do workspace, nome, definições e detalhes de subscrição