Open Medici Public Fellowship and Grant Search

MCP remoto somente leitura para encontrar e comparar bolsas públicas, subsídios, bolsas de estudo, prêmios e residências financiadas.

Documentação

O servidor público não requer autenticação. Não adicione chave de API, cabeçalho Authorization, credencial OAuth ou cookie. A disponibilidade do cliente depende do plano do provedor e das permissões do workspace; se um controle de conector personalizado estiver ausente, use a API REST ou outro cliente MCP.

ClienteConfiguraçãoComo usar
ChatGPTAtive o modo de desenvolvedor em Configurações → Segurança e login. Em seguida, abra Configurações → Plugins ou chatgpt.com/plugins, escolha +, forneça um nome e descrição, insira https://openmedici.com/mcp como URL do MCP e crie o aplicativo.Em um novo chat, escolha + → Mais → Open Medici. Se esses controles estiverem ausentes, o plano atual ou a função do workspace não expõe conexões MCP personalizadas.
Claude web ou desktopAbra Personalizar → Conectores, escolha + → Adicionar conector personalizado, cole https://openmedici.com/mcp e adicione-o. Workspaces Team e Enterprise podem exigir que um proprietário adicione o conector primeiro.Ative o Open Medici para uma conversa em + → Conectores.
Claude CodeExecute o comando abaixo. Ele armazena uma conexão de projeto local por padrão e não requer cabeçalho ou variável de ambiente.Execute /mcp dentro do Claude Code para confirmar que três ferramentas estão conectadas.
Outros clientes MCPOs nomes dos campos de configuração variam conforme o cliente. Siga as instruções de HTTP remoto ou Streamable HTTP do cliente e insira https://openmedici.com/mcp. Não reutilize a estrutura JSON de outro cliente.Confirme que search_opportunities, get_opportunity e list_filter_options estão disponíveis.

Claude Code

claude mcp add --transport http open-medici https://openmedici.com/mcp

Referência de configuração do ChatGPT ↗ Referência do conector Claude ↗ Referência do Claude Code ↗

Essas solicitações sem estado comprovam initialize → tools/list → opções de filtro ao vivo → search. Cada resposta é HTTP 200 com JSON quando bem-sucedida.

1. Initialize HTTP 200 · application/json

curl --silent --show-error 'https://openmedici.com/mcp' \
  --header 'Accept: application/json, text/event-stream' \
  --header 'Content-Type: application/json' \
  --header 'MCP-Protocol-Version: 2025-11-25' \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"open-medici-quickstart","version":"1.0.0"}}}'

Fragmento esperado

{"result":{"protocolVersion":"2025-11-25","serverInfo":{"name":"open-medici-public"}}}

2. List tools HTTP 200 · application/json

curl --silent --show-error 'https://openmedici.com/mcp' \
  --header 'Accept: application/json, text/event-stream' \
  --header 'Content-Type: application/json' \
  --header 'MCP-Protocol-Version: 2025-11-25' \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

Fragmento esperado

{"result":{"tools":[{"name":"search_opportunities"},{"name":"get_opportunity"},{"name":"list_filter_options"}]}}

3. Carregar valores de filtro atuais HTTP 200 · application/json

curl --silent --show-error 'https://openmedici.com/mcp' \
  --header 'Accept: application/json, text/event-stream' \
  --header 'Content-Type: application/json' \
  --header 'MCP-Protocol-Version: 2025-11-25' \
  --data '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"list_filter_options","arguments":{"facet":"types","q":"grant","limit":10}}}'

Fragmento esperado

{"result":{"structuredContent":{"data":[{"value":"grant","label":"Grant"}]}}}

4. Search HTTP 200 · application/json

curl --silent --show-error 'https://openmedici.com/mcp' \
  --header 'Accept: application/json, text/event-stream' \
  --header 'Content-Type: application/json' \
  --header 'MCP-Protocol-Version: 2025-11-25' \
  --data '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"search_opportunities","arguments":{"query":"climate","openOnly":true,"fundedOnly":true,"limit":5}}}'

Fragmento esperado

{"result":{"structuredContent":{"opportunities":[{"slug":"…","recordUrl":"https://openmedici.com/programs/…","officialUrl":"https://…","sourceCheckedAt":"2026-…"}]}}}

Após a pesquisa, verifique cada candidato antes de classificá-lo ou citá-lo.

5. Ler uma oportunidade HTTP 200 · application/json

curl --silent --show-error 'https://openmedici.com/mcp' \
  --header 'Accept: application/json, text/event-stream' \
  --header 'Content-Type: application/json' \
  --header 'MCP-Protocol-Version: 2025-11-25' \
  --data '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"get_opportunity","arguments":{"slug":"{slug}","locale":"en"}}}'
{"result":{"structuredContent":{"opportunity":{"slug":"…","sources":[…]}}}}
CapacidadeTipoUso
list_filter_optionsFerramentaCarregue o vocabulário de filtros atual do banco de dados antes de pesquisar.
search_opportunitiesFerramentaPesquise oportunidades publicadas com filtros estruturados.
get_opportunityFerramentaLeia os detalhes, fontes, ciclos e fatos aprovados de um candidato.
find_best_opportunitiesPromptExecute um fluxo de trabalho de correspondência conduzido por entrevista.

Todas as ferramentas são somente leitura e idempotentes. Uma ferramenta pode relatar isError para um resultado de validação ou não encontrado, mesmo quando o transporte HTTP em si foi bem-sucedido.

Clientes do lado do servidor podem omitir o cabeçalho Origin e não enviar credenciais. Clientes de navegador devem usar a origem canônica do Open Medici ou uma origem explicitamente configurada pela implantação. Uma origem de navegador não configurada recebe HTTP 403.

A resposta CORS do transporte não contém credenciais. Não envie cookies. A validação de host também rejeita uma solicitação endereçada a um host não aprovado com HTTP 421.

ProblemaCausa provávelCorreção ou nova tentativaReferência
HTTP 400JSON inválido ou cabeçalho de protocolo não suportado.Corrija o corpo/versão; não tente novamente sem alterações.Início rápido
HTTP 403A origem do navegador não está configurada.Use um cliente do lado do servidor ou peça ao proprietário da implantação para configurar a origem exata.Política de origem
HTTP 413A solicitação excede 64 KiB.Reduza o corpo JSON-RPC.Fluxo de solicitação
HTTP 421O host não é aprovado para esta implantação.Use o endpoint do cartão do servidor.Cartão do servidor
HTTP 429O cliente excedeu 60 solicitações por minuto.Respeite Retry-After e tente novamente com backoff.Fluxo de solicitação
HTTP 500O servidor não pôde concluir a solicitação.Tente novamente com backoff e relate uma falha persistente com o ID/método da solicitação.Contato
JSON-RPC errorO método ou os parâmetros do protocolo eram inválidos.Use o código/mensagem retornado para corrigir a solicitação.Capacidades
Ferramenta isErrorA ferramenta rejeitou um intervalo, filtro ou registro ausente.Corrija os argumentos; não trate como uma falha transitória de transporte.Definição da ferramenta