ProDoctor MCP Server
Click on "Deploy 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 Server Book 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: mcp-brasilapi
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).
Inputs: data (required), hora (required), usuarioId (required), pacienteId (required), +6 more.
agenda_alterar_status_agendamentoC
Altera o status atual de um agendamento (ex: Confirmado, Aguardando, Finalizado).
Inputs: estadoCodigo (required), agendamentoId (required).
agenda_buscar_agendamentos_pacienteB
Busca os agendamentos de um paciente específico num período.
Inputs: pacienteId (required), dataFim, dataInicio, quantidade.
agenda_buscar_por_status_tipoC
Busca agendamentos filtrando pelo status/tipo da consulta.
Inputs: usuarioId (required), estadoCodigo (required), dataFim, dataInicio, +1 more.
agenda_desmarcar_agendamentoC
Desmarca (cancela) um agendamento existente na agenda.
Inputs: data (required), hora (required), usuarioId (required), observacao, +1 more.
agenda_detalhar_agendamentoC
Traz informações detalhadas sobre um agendamento específico.
Inputs: agendamentoId (required).
agenda_excluir_agendamentoB
Exclui definitivamente um agendamento da agenda.
Inputs: agendamentoId (required).
agenda_horarios_livresB
Busca por horários livres na agenda de um usuário em um período determinado.
Inputs: dataFim (required), usuarioId (required), dataInicio (required), duracao, +1 more.
agenda_inserir_agendamentoC
Insere um novo agendamento na agenda.
Inputs: data (required), hora (required), usuarioId (required), pacienteId (required), +5 more.
agenda_listar_agendamentosA
Lista os agendamentos do dia para um usuário (médico/colaborador) específico.
Inputs: usuarioId (required), data.
paciente_detalharB
Detalha todas as informações do cadastro de um paciente específico.
Inputs: codigo (required).
pacientes_listarA
Lista pacientes cadastrados (paginado, sem filtro).
Inputs: pagina, quantidade.
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.
Inputs: cpf, nome, telefone, quantidade.
procedimento_detalharA
Detalha informações completas de um procedimento médico com base em sua tabela e código.
Inputs: codigo (required), tabela (required).
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.
Inputs: nome, codigo, quantidade, tabelaCodigo.
tabelas_procedimentos_listarB
Busca as tabelas de procedimentos médicos disponíveis no sistema.
Inputs: no named parameters.
usuario_detalharB
Detalha informações específicas de um usuário (médico, atendente, etc.) cadastrado.
Inputs: codigo (required).
usuarios_listarB
Lista todos os usuários (médicos e colaboradores) cadastrados no sistema.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
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
Related MCP Connectors
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
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.-
- AlicenseAqualityDmaintenanceExposes 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
- AlicenseCqualityDmaintenanceExposes the Feegow clinic management API as MCP tools for agents, enabling scheduling, patient management, and more via natural language.97MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to manage doctor appointments by creating, finding, checking status, canceling, and rescheduling appointments through an MCP server that connects to an external appointment REST API.-