ProDoctor MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ProDoctor MCP ServerBook an appointment for Maria Souza next Monday at 10:00 with Dr. Silva"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Servidor MCP para API ProDoctor Cloud
Servidor Model Context Protocol (MCP) que expõe a API Aberta do ProDoctor Cloud como ferramentas acessíveis por agentes de IA (Claude Code, Cursor, Codex, etc.) via protocolo STDIO.
Arquitetura
src/
├── index.ts # Bootstrap MCP (server + handlers genéricos)
├── client/
│ └── prodoctor-api.ts # Axios client + rate limiter (token-bucket) + retry
├── utils/
│ ├── dates.ts # formatDate, formatObjectDates (ISO → dd/mm/yyyy)
│ └── strings.ts # cleanString (normalização CPF/telefone)
└── tools/
├── index.ts # Agregador central (ALL_TOOLS + TOOL_HANDLERS)
├── agenda.ts # 10 tools — módulo Agenda completo
├── pacientes.ts # 3 tools — listar, pesquisar, detalhar
├── usuarios.ts # 2 tools — listar, detalhar
└── procedimentos.ts # 3 tools — pesquisar, detalhar, tabelasPrincípios
Rate limiting: token-bucket de 120 req/min que aguarda (nunca devolve 429 ao agente).
Retry: backoff exponencial (2 tentativas) em 429/5xx.
Fim do filtro em memória: buscas passam filtros server-side (PascalCase); fallback apenas sobre a página retornada.
Schemas tipados: JSON Schema detalhado em cada tool — o agente sabe exatamente o que preencher.
Sem switch gigante: dispatcher via
Map<name, handler>, fácil de estender.
Related MCP server: bradesco-rede-mcp
Instalação e Configuração
Pré-requisitos
Node.js 18+
npm
Instalar
npm installConfigurar credenciais
Copie .env.example para .env e preencha suas chaves:
cp .env.example .envPRODOCTOR_API_KEY="sua_chave_api_aqui"
PRODOCTOR_API_PASSWORD="sua_senha_api_aqui"
PRODOCTOR_TIMEZONE="-03:00"
PRODOCTOR_TIMEZONE_NAME="America/Sao_Paulo"
PRODOCTOR_BASE_URL="https://open-api.prodoctor.net"Dica: envolva valores com caracteres especiais em aspas duplas para evitar interpretação do
#como comentário.
Compilar e executar
npm run build
npm startOu em modo desenvolvimento:
npm run devFerramentas Disponíveis (18 tools)
Agenda (10)
Tool MCP | Endpoint API | Descrição |
|
| Lista agendamentos do dia para um usuário |
|
| Busca agendamentos de um paciente por período |
|
| Busca horários livres na agenda |
|
| Insere novo agendamento |
|
| Altera dados de um agendamento (remarcar) |
|
| Desmarca/cancela um agendamento |
|
| Exclui definitivamente um agendamento |
|
| Detalha informações de um agendamento |
|
| Busca agendamentos por status/tipo |
|
| Altera status de um agendamento |
Pacientes (3)
Tool MCP | Endpoint API | Descrição |
|
| Lista pacientes (paginado, sem filtro) |
|
| Pesquisa por nome/CPF/telefone (server-side + fallback) |
|
| Detalha cadastro de um paciente |
Usuários (2)
Tool MCP | Endpoint API | Descrição |
|
| Lista todos os usuários |
|
| Detalha um usuário específico |
Procedimentos + Tabelas (3)
Tool MCP | Endpoint API | Descrição |
|
| Pesquisa procedimentos por tabela/nome/código |
|
| Detalha um procedimento |
|
| Lista tabelas de procedimentos disponíveis |
Integração com IDEs
O servidor é executado via STDIO. Configure seu cliente MCP apontando para:
{
"mcpServers": {
"prodoctor": {
"command": "node",
"args": ["/caminho/absoluto/para/prodoctor-mcp-server/dist/index.js"],
"env": {
"PRODOCTOR_API_KEY": "sua_chave",
"PRODOCTOR_API_PASSWORD": "sua_senha"
}
}
}
}Ou use o arquivo .env no diretório do servidor.
Testes
node test-connection.jsTesta conexão direta com a API e o protocolo MCP via STDIO.
Cobertura de Endpoints
Veja ENDPOINTS-API.md para o mapeamento completo de cobertura dos 66 endpoints da API. Módulos com cobertura total: Agenda (10/10). Módulos parciais agora completos: Pacientes (listar+detalhar), Usuários (listar+detalhar), Procedimentos (pesquisar+detalhar+tabelas). Módulos não-médicos ainda não implementados: Anamneses, Convênios, Domínios, Especialidades, Estoque, Exportações, Financeiro, Imagens, Impressos, Locais.
Notas sobre campos presumidos
Campos inferidos sem spec oficial confirmada estão marcados no código-fonte com // PRESUMIDO. Eles facilitam o uso imediato mas podem divergir da API real — ajuste ao validar com a spec oficial.
Autenticação e Rate Limit
Headers:
X-APIKEY,X-APIPASSWORD,X-APITIMEZONE,X-APITIMEZONENAMELimite da API: 120 requisições/minuto — gerenciado automaticamente pelo token-bucket
Available Tools
18 toolsagenda_alterar_agendamentoC
Altera as informações de um agendamento existente (ex: remarcar data/hora).
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Nova data (ISO yyyy-mm-dd ou dd/mm/yyyy). | |
| hora | Yes | Nova hora (hh:mm). | |
| duracao | No | Nova duração em minutos (opcional). | |
| usuarioId | Yes | Código do usuário (médico). | |
| observacao | No | Observação (opcional). | |
| pacienteId | Yes | Código do paciente. | |
| agendamentoExtra | No | Campos adicionais PascalCase do novo agendamento (opcional). | |
| localProDoctorId | Yes | Código do Local ProDoctor. | |
| agendamentoOrigem | Yes | Dados do agendamento ORIGINAL que será substituído. Recomenda-se incluir ao menos Data e Hora originais. | |
| agendamentoAlertas | No | Novos alertas do agendamento (opcional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'alters' without revealing behavioral traits like what happens to the original appointment, whether the update is immediate, or any side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: a single sentence that communicates the essential purpose with an example. No unnecessary words. Front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite high schema coverage and no output schema, the description lacks completeness for a complex tool with 10 parameters and nested objects. It omits return values, error handling, and prerequisites (e.g., appointment must exist). The agent would need to guess the full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already described in the schema. The description adds no additional meaning beyond the example of rescheduling, which is already implied by required fields. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states that the tool alters an existing appointment, using the verb 'alterar' and resource 'agendamento'. It gives an example (reschedule date/time). Distinguishes from sibling tools like insert or delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., agenda_alterar_status_agendamento). The description does not specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agenda_alterar_status_agendamentoC
Altera o status atual de um agendamento (ex: Confirmado, Aguardando, Finalizado).
| Name | Required | Description | Default |
|---|---|---|---|
| estadoCodigo | Yes | Código do novo estado/status da consulta. | |
| agendamentoId | Yes | ID único do agendamento. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden of behavioral disclosure. It only states the action (alter status) without mentioning side effects, permissions required, or constraints (e.g., valid status transitions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and to the point. However, it could be slightly more informative without compromising brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description is too sparse. It lacks details on return values, error conditions, or usage context, making it incomplete for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have descriptions. The description adds no extra meaning beyond the schema, such as valid status codes or additional context, so it meets the baseline but does not exceed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Altera' and resource 'status atual de um agendamento' with examples. It distinguishes the tool from siblings like 'agenda_alterar_agendamento' which likely modifies other fields, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'agenda_desmarcar_agendamento' or 'agenda_alterar_agendamento'. No context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agenda_buscar_agendamentos_pacienteB
Busca os agendamentos de um paciente específico num período.
| Name | Required | Description | Default |
|---|---|---|---|
| dataFim | No | Data final do período (ISO yyyy-mm-dd ou dd/mm/yyyy). Opcional. | |
| dataInicio | No | Data inicial do período (ISO yyyy-mm-dd ou dd/mm/yyyy). Opcional. | |
| pacienteId | Yes | Código do paciente cujos agendamentos serão buscados. | |
| quantidade | No | Quantidade máxima de registros (opcional, padrão 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes a read operation ('busca') but does not explicitly confirm read-only behavior, required permissions, rate limits, or any side effects. This leaves the agent uncertain about safety and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the core functionality without waste. It is front-loaded with the main purpose, though it could be slightly expanded to include return value hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should explain what is returned. It does not, leaving a gap. Given 4 parameters including optional date filters, the description is too brief to fully guide an agent on expected results or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter schema coverage is 100%, so the schema already documents all parameters and their formats. The description adds no additional meaning beyond the schema, meeting the baseline for a tool with full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Busca os agendamentos de um paciente específico num período' which clearly specifies the action (busca), resource (agendamentos), and constraints (paciente específico, período). This distinguishes it from sibling tools like agenda_listar_agendamentos (list all) and agenda_buscar_por_status_tipo (search by status/type).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies the tool is used to find appointments for a specific patient within a date range, which provides clear context. However, it does not explicitly state when to use this over alternatives, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agenda_buscar_por_status_tipoC
Busca agendamentos filtrando pelo status/tipo da consulta.
| Name | Required | Description | Default |
|---|---|---|---|
| dataFim | No | Data final do período (ISO yyyy-mm-dd ou dd/mm/yyyy). Opcional. | |
| usuarioId | Yes | Código do usuário (médico) cuja agenda será consultada. | |
| dataInicio | No | Data inicial do período (ISO yyyy-mm-dd ou dd/mm/yyyy). Opcional. | |
| estadoCodigo | Yes | Código do estado/status da consulta (ex: Confirmado, Aguardando). | |
| tipoConsultaCodigo | No | Código do tipo de consulta (opcional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It does not disclose any behavioral traits such as authentication needs, rate limits, or side effects. As a read operation, more context would help.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key action. No fluff, but could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and no annotations, the description lacks details on return format, ordering, or behavior when no results. Incomplete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have descriptions in the schema (100% coverage). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches appointments by status/type, distinguishing it from siblings like 'agenda_listar_agendamentos' (list all) and 'agenda_buscar_agendamentos_paciente' (by patient). However, it could be more specific about returning a list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies filtering by status/type, but does not exclude other use cases or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agenda_desmarcar_agendamentoC
Desmarca (cancela) um agendamento existente na agenda.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data da consulta (ISO yyyy-mm-dd ou dd/mm/yyyy). | |
| hora | Yes | Hora do agendamento (hh:mm). | |
| usuarioId | Yes | Código do médico/colaborador associado à agenda. | |
| observacao | No | Observação sobre o cancelamento (opcional). | |
| motivoCodigo | No | Código do motivo de cancelamento (opcional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must bear full behavioral disclosure. It does not mention side effects, irreversibility, permissions, or what happens to the appointment record after cancellation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief but lacks important details. It is not overly verbose, but its brevity comes at the cost of completeness, reducing its effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters (3 required) and no output schema, the description is insufficient. It does not explain the intended behavior, return values, or error conditions, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents each parameter. The description adds no value beyond what is in the schema, providing no additional context or usage hints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'cancels' and the resource 'existing appointment'. However, it does not differentiate from similar sibling tools like agenda_excluir_agendamento, which might also cancel but with different semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as agenda_excluir_agendamento or agenda_alterar_status_agendamento. The description lacks context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agenda_detalhar_agendamentoC
Traz informações detalhadas sobre um agendamento específico.
| Name | Required | Description | Default |
|---|---|---|---|
| agendamentoId | Yes | ID único do agendamento a detalhar. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states that the tool retrieves detailed information, without specifying if it is read-only, whether it requires permissions, or what the response format is. The lack of behavioral details is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the verb and resource. However, some may argue it is too brief and could be expanded slightly without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description is incomplete. It does not explain what 'detalhadas' entails—the agent has no idea what fields or structure to expect. Without an output schema, the description should compensate by summarizing return content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the single parameter (agendamentoId) with full coverage. The tool description adds no additional meaning beyond restating that it operates on a specific appointment. Since schema coverage is 100%, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves detailed information about a specific appointment. The verb 'Traz' indicates retrieval, and 'informações detalhadas' specifies the content. It distinguishes from siblings like agenda_listar_agendamentos (list) and agenda_buscar_agendamentos_paciente (search by patient), as it targets a single appointment by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, alternatives, or context. The user must infer from the name and siblings that it is for fetching details of one appointment, but no explicit guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agenda_excluir_agendamentoB
Exclui definitivamente um agendamento da agenda.
| Name | Required | Description | Default |
|---|---|---|---|
| agendamentoId | Yes | ID único do agendamento a ser excluído. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The word 'definitivamente' (permanently) indicates irreversibility, adding useful behavior. With no annotations, the description partially compensates but still omits details like required permissions or status constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence effectively conveys the tool's action with no wasted words. Front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool, the description is adequate but lacks differentiation from the cancel sibling. No output schema or success/failure details are provided, which is acceptable given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter 'agendamentoId' is fully described in the schema (100% coverage). The description restates the parameter's purpose without adding new semantic value, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states permanent deletion of an appointment, using a specific verb and resource. However, it does not explicitly differentiate from the sibling tool 'agenda_desmarcar_agendamento' (likely cancel), which would be helpful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'agenda_desmarcar_agendamento'. The description lacks context for choosing between deletion and cancellation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agenda_horarios_livresB
Busca por horários livres na agenda de um usuário em um período determinado.
| Name | Required | Description | Default |
|---|---|---|---|
| dataFim | Yes | Data final do período (ISO yyyy-mm-dd ou dd/mm/yyyy). | |
| duracao | No | Duração desejada em minutos (opcional). | |
| usuarioId | Yes | Código do usuário (médico/colaborador) cuja agenda será consultada. | |
| dataInicio | Yes | Data inicial do período (ISO yyyy-mm-dd ou dd/mm/yyyy). | |
| localProDoctorId | No | Código do Local ProDoctor (opcional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states it searches for free slots, but does not explain how 'free' is determined (e.g., ignores non-working hours? conflicts with existing appointments?), any restrictions (e.g., only future dates?), permissions required, or response format. The description is too brief for a mutating-like search operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the primary purpose. It is front-loaded with the verb and resource, with no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, no output schema, and no annotations. The description only gives a high-level purpose. It lacks details about the return format (list of time slots? duration? date-time? sorted?), pagination, error handling, or constraints like maximum date range. For a search tool with moderate complexity, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters. The description adds no additional meaning beyond the schema, e.g., does not clarify how 'duracao' affects the free slot search or the interaction between 'localProDoctorId' and free slots. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Busca por' - search for) and the resource ('horários livres na agenda de um usuário em um período determinado' - free time slots in a user's schedule over a given period). It effectively distinguishes from siblings like agenda_listar_agendamentos which list actual appointments, not free slots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when free slots are needed, but it does not explicitly state when to use it or when to use alternatives (e.g., for booking, use agenda_inserir_agendamento). No 'when not to use' or context about prerequisites is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agenda_inserir_agendamentoC
Insere um novo agendamento na agenda.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data do agendamento (ISO yyyy-mm-dd ou dd/mm/yyyy). | |
| hora | Yes | Hora do agendamento (formato hh:mm). | |
| duracao | No | Duração em minutos (opcional). | |
| usuarioId | Yes | Código do usuário (médico) da agenda. | |
| observacao | No | Observação livre do agendamento (opcional). | |
| pacienteId | Yes | Código do paciente a ser agendado. | |
| agendamentoExtra | No | Campos adicionais do agendamento em PascalCase (opcional), mesclados no payload. | |
| localProDoctorId | Yes | Código do Local ProDoctor onde ocorrerá o atendimento. | |
| agendamentoAlertas | No | Alertas do agendamento (SMS, E-mail etc.). Opcional — vazio se omitido. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It only states insertion without mentioning any behavioral traits such as conflict checking, authorization needs, idempotency, or side effects. This leaves the agent uninformed about important runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence (5 words). While not verbose, it is underspecified and could be restructured to front-load key constraints or behavior. It earns its place but lacks informative value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With nine parameters, no output schema, and no annotations, the description is too minimal. It does not clarify return values, error conditions, or side effects. The agent lacks sufficient context to safely invoke this tool without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all nine parameters described in JSON Schema). The tool description adds no extra parameter context, but the baseline is 3 per rubric because the schema already covers the parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Insere um novo agendamento na agenda' clearly indicates the tool creates an appointment, but it essentially restates the tool name without adding meaningful specification. It vaguely distinguishes from siblings (alter, delete, list) but does not specify the scope or uniqueness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., agenda_alterar_agendamento, agenda_desmarcar_agendamento). No prerequisites, restrictions, or comparison with sibling tools are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agenda_listar_agendamentosA
Lista os agendamentos do dia para um usuário (médico/colaborador) específico.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Data no formato ISO (ex: 2026-06-23) ou dd/mm/yyyy. Opcional, padrão: hoje. | |
| usuarioId | Yes | Código do usuário (médico/colaborador) cuja agenda será listada. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral transparency. It discloses that it lists appointments for a day and for a specific user, but does not mention further details like pagination, ordering, or whether it includes past appointments. The description is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no redundancy. It is front-loaded with the verb and key information, making it efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward list tool with 2 parameters and no output schema, the description provides essential information to differentiate from siblings and understand basic usage. It could mention the return format (e.g., a list) but is fairly complete given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters well. The description adds minimal value beyond the schema (e.g., 'do dia' reinforces the date parameter's purpose). Baseline 3 is appropriate since the description does not significantly extend parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'listar' (list), the resource 'agendamentos' (appointments), and the scope: 'do dia' (of the day) for a specific user. This distinguishes it from sibling tools like agenda_buscar_agendamentos_paciente (list by patient) or agenda_detalhar_agendamento (detail single appointment).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool lists appointments for a specific user and implies the date context (today by default). However, it does not explicitly mention when not to use it or compare to alternatives, though the context is clear enough for a simple list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paciente_detalharB
Detalha todas as informações do cadastro de um paciente específico.
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | Código do paciente a detalhar. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool details all information, but does not disclose behavioral traits like permissions, side effects, or limitations (e.g., whether it fetches live data or cached).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no waste. It could be structured to also briefly mention output, but it is sufficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieve-by-ID tool, the description covers the main purpose but lacks detail on what 'todas as informações' includes, especially since there is no output schema. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter 'codigo' already described as 'Código do paciente a detalhar.' The description adds no additional semantic meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Detalha todas as informações do cadastro de um paciente específico' uses a specific verb (detalha) and resource (paciente específico), clearly distinguishing it from sibling tools like pacientes_listar and pacientes_pesquisar which operate on lists rather than a single patient.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing full details of a specific patient by code, but provides no explicit guidance on when to use this tool versus alternatives, such as pacientes_listar or pacientes_pesquisar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pacientes_listarA
Lista pacientes cadastrados (paginado, sem filtro).
| Name | Required | Description | Default |
|---|---|---|---|
| pagina | No | Número da página (opcional, padrão 1). | |
| quantidade | No | Registros por página (opcional, padrão 50, máximo 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions pagination and no filters, adds some behavioral context. However, does not explicitly state read-only nature or any other behavioral traits like permissions or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key info (listing patients, paginated, no filter). No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 2 parameters and no nested objects, the description is adequately complete. Could mention return format or error handling, but not critical given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description does not add any new parameter info beyond schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states verb 'Lista' and resource 'pacientes cadastrados', includes pagination and filter info. Distinguishes from sibling 'pacientes_pesquisar' which likely has filters, and 'paciente_detalhar' for details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'sem filtro' indicating when to use this tool vs filtered search. Implicitly suggests use for full listing; does not provide explicit when-not-to-use, but sibling differentiation is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pacientes_pesquisarA
Pesquisa pacientes por nome, CPF e/ou telefone. A busca é feita no servidor; se a API não suportar os filtros, aplica fallback apenas sobre a página retornada.
| Name | Required | Description | Default |
|---|---|---|---|
| cpf | No | CPF do paciente (opcional). Será normalizado para só dígitos. | |
| nome | No | Nome (ou parte) do paciente (opcional). | |
| telefone | No | Telefone do paciente (opcional). Será normalizado para só dígitos. | |
| quantidade | No | Quantidade máxima de registros (opcional, padrão 50, máximo 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses a key behavior: fallback only on the returned page if the API does not support server-side filtering. This is valuable transparency beyond basic read-only intent, though it could explicitly state that it is a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence states the core purpose, and the second adds an important behavioral note. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 4 optional parameters and no output schema, the description covers the search functionality and fallback behavior adequately. It does not describe the return format, but that is often implicit; the description is sufficient for an agent to understand when and how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, and the description adds meaning by listing the types of search (nome, CPF, telefone) and mentioning normalization of CPF and telefone to digits, which is not in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Pesquisa' (search) and the resource 'pacientes' (patients), and specifies the search criteria (nome, CPF, telefone). This distinguishes it from sibling tools like 'pacientes_listar' (list all) and 'paciente_detalhar' (detail).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use it (searching by name, CPF, phone) and mentions a fallback behavior if the API doesn't support filters. However, it does not explicitly recommend alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
procedimento_detalharA
Detalha informações completas de um procedimento médico com base em sua tabela e código.
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | Código do procedimento dentro da tabela. | |
| tabela | Yes | Código da tabela de procedimentos. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. Only states 'details complete information' without disclosing read-only nature, required permissions, or limitations. Minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, immediately conveys the tool's purpose. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple detail tool, but lacks output schema and annotations. Description could specify what 'complete information' includes (e.g., cost, coverage). Leaves some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds the context of 'medical procedure' and 'complete information', but does not significantly enhance meaning beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies it details complete information of a medical procedure using table and code. Distinguishes from siblings like procedimentos_pesquisar (search) and tabelas_procedimentos_listar (list tables).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for obtaining full details of a known procedure, but lacks explicit when-to-use, when-not-to-use, or alternative tools. Sibling list provides context but no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
procedimentos_pesquisarA
Pesquisa procedimentos médicos de uma tabela. A busca por nome/código é feita no servidor; se a API não suportar os filtros, aplica fallback apenas sobre a página retornada.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | No | Nome (ou parte) do procedimento para filtragem (opcional). | |
| codigo | No | Código do procedimento para filtragem (opcional). | |
| quantidade | No | Quantidade máxima de registros (opcional, padrão 50, máximo 100). | |
| tabelaCodigo | No | Código da tabela de procedimentos (opcional, padrão 1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses fallback behavior if API does not support filters, which is critical for correct invocation. However, does not mention other behaviors like pagination, ordering, or authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Efficient and clear for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description does not explain return format (e.g., list of procedures with fields). Missing context on error behavior. For a search tool with no output schema, more detail needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline is 3. Description mentions 'nome/código' corresponding to parameters but adds no additional semantic detail beyond the schema, such as how filters combine (AND/OR).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes searching medical procedures from a table, using specific verb 'pesquisa' and resource 'procedimentos médicos de uma tabela'. Clearly distinguishes from sibling tools like 'procedimento_detalhar' (detail) and 'tabelas_procedimentos_listar' (list tables).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for searching/filtering procedures, but lacks explicit guidance on when to use this vs alternatives like 'procedimento_detalhar' or 'tabelas_procedimentos_listar'. Does not mention when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tabelas_procedimentos_listarB
Busca as tabelas de procedimentos médicos disponíveis no sistema.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. Only states it 'searches', but fails to disclose read-only nature, side effects, or required permissions. A read-safe tool should explicitly indicate it does not modify data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. Front-loaded with action verb and resource. Efficiently conveys purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is too minimal. Does not describe what the tables contain, output format, or how to interpret results. A list endpoint should provide more details on the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%), so description does not need to explain them. Baseline of 4 is appropriate as no parameter clarification is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it searches for medical procedure tables with specific verb ('Busca') and resource ('tabelas de procedimentos médicos'). Distinguishable from sibling 'procedimentos_pesquisar' which likely searches individual procedures, but lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'procedimentos_pesquisar' or other related tools. No when-not-to-use or context described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usuario_detalharB
Detalha informações específicas de um usuário (médico, atendente, etc.) cadastrado.
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | Código do usuário a detalhar. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full responsibility. It only says 'detalha informações específicas' but does not disclose what information is returned, error handling, or whether it is read-only. More behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the simple parameter set, the description lacks completeness. It does not hint at the type of returned information (e.g., name, role), and there is no output schema to compensate. For a tool likely returning multiple fields, more detail is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'codigo'. The description adds no extra meaning beyond the schema's 'Código do usuário a detalhar'. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool details specific information of a registered user, including examples (doctor, attendant). The verb 'detalhar' is specific and distinguishes from sibling tools like 'usuarios_listar'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'usuarios_listar' for listing users or 'paciente_detalhar' for patient details. The context of use is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usuarios_listarB
Lista todos os usuários (médicos e colaboradores) cadastrados no sistema.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states that the tool lists all users, but lacks details on behavior like pagination, ordering, authentication requirements, or any side effects. This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and concise. However, it could be slightly more informative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description is minimally acceptable. It states the core function but lacks context on result format, pagination, or scope of 'all users'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100%. Baseline for 0 parameters is 4 according to the scoring guidelines. The description does not add parameter details, but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'all users (doctors and collaborators)', which precisely defines the tool's purpose. It is distinct from sibling tools like usuario_detalhar (detail a specific user) and pacientes_listar (list patients).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., usuario_detalhar for specific user details). No explicit when-to-use or when-not-to-use conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action on specific entities (agenda, paciente, procedimento, tabela, usuario). Even within the appointment group, verbs like alterar, buscar, desmarcar, detalhar, excluir, horarios_livres, inserir, listar are clearly separated. No two tools have overlapping purposes.
All tools follow a consistent snake_case pattern with an entity prefix followed by a verb or verb_noun (e.g., agenda_inserir_agendamento, paciente_detalhar). No mixing of conventions or cases.
18 tools cover the main operations of a medical scheduling system: appointments (10), patients (3), procedures (3), procedure tables (1), and users (2). The count is well-scoped for the domain without being excessive or insufficient.
Appointment lifecycle is fully covered (CRUD, status changes, free slots). However, patient management lacks creation and update tools (only list, search, detail). Procedure and user tools also miss creation/update/deletion. These gaps hinder complete workflow automation.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceExposes tools from the Ecuro Light API for managing clinical appointments, patient records, and clinic availability. It enables users to perform healthcare management tasks such as scheduling, patient search, and report generation through MCP-compatible clients.
- FlicenseNot gradedqualityBmaintenanceMCP server for real-time querying of the Bradesco Saude referenced network, exposing a search_providers tool to search for doctors, hospitals, clinics, and labs.
- AlicenseAqualityCmaintenanceExposes the BrasilAPI as MCP tools, enabling AI agents to query Brazilian public data such as CEP, CNPJ, DDD, IBGE, banks, PIX, FIPE, NCM, exchange rates, taxes, weather, CVM information, holidays, ISBN, domains, stock tickers, and TUSS.41Apache 2.0
- AlicenseCqualityBmaintenanceExposes the Feegow clinic management API as MCP tools for agents, enabling scheduling, patient management, and more via natural language.97MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dotojr123/mcp-prodoctor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server