Open Medici Public Fellowship and Grant Search
MCP remoto de solo lectura para buscar y comparar becas públicas, subvenciones, becas de estudio, premios y residencias financiadas.
Documentación
El servidor público no requiere autenticación. No agregue una clave de API, encabezado Authorization, credencial OAuth ni cookie. La disponibilidad del cliente depende del plan del proveedor y de los permisos del espacio de trabajo; si falta un control de conector personalizado, use la API REST u otro cliente MCP.
| Cliente | Configuración | Uso |
|---|---|---|
| ChatGPT | Active el modo Desarrollador en Configuración → Seguridad e inicio de sesión. Luego abra Configuración → Plugins o chatgpt.com/plugins, elija +, proporcione un nombre y una descripción, ingrese https://openmedici.com/mcp como URL de MCP y cree la aplicación. | En un nuevo chat elija + → Más → Open Medici. Si estos controles no están presentes, el plan actual o el rol del espacio de trabajo no exponen conexiones MCP personalizadas. |
| Claude web o escritorio | Abra Personalizar → Conectores, elija + → Agregar conector personalizado, pegue https://openmedici.com/mcp y agréguelo. Los espacios de trabajo Team y Enterprise pueden requerir que un propietario agregue el conector primero. | Habilite Open Medici para una conversación desde + → Conectores. |
| Claude Code | Ejecute el comando a continuación. Almacena una conexión de proyecto local de forma predeterminada y no requiere encabezado ni variable de entorno. | Ejecute /mcp dentro de Claude Code para confirmar que tres herramientas están conectadas. |
| Otros clientes MCP | Los nombres de los campos de configuración varían según el cliente. Siga las instrucciones de HTTP remoto o HTTP Streamable del cliente e ingrese https://openmedici.com/mcp. No reutilice la forma JSON de otro cliente. | Confirme que search_opportunities, get_opportunity y list_filter_options están disponibles. |
Claude Code
claude mcp add --transport http open-medici https://openmedici.com/mcp
Referencia de configuración de ChatGPT ↗ Referencia de conector de Claude ↗ Referencia de Claude Code ↗
Estas solicitudes sin estado demuestran initialize → tools/list → opciones de filtro en vivo → búsqueda. Cada respuesta es HTTP 200 con JSON cuando tiene éxito.
1. Inicializar 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. Listar herramientas 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. Cargar valores de filtro actuales 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. Buscar 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-…"}]}}}
Después de la búsqueda, verifique cada candidato antes de clasificarlo o citarlo.
5. Leer una oportunidad 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":[…]}}}}
| Capacidad | Tipo | Uso |
|---|---|---|
list_filter_options | Herramienta | Cargue el vocabulario de filtros actual de la base de datos antes de buscar. |
search_opportunities | Herramienta | Busque oportunidades publicadas con filtros estructurados. |
get_opportunity | Herramienta | Lea los detalles, fuentes, ciclos y hechos aprobados de un candidato. |
find_best_opportunities | Prompt | Ejecute un flujo de trabajo de coincidencia guiado por entrevistas. |
Todas las herramientas son de solo lectura e idempotentes. Una herramienta puede informar isError para un resultado de validación o no encontrado incluso cuando el transporte HTTP en sí tuvo éxito.
Los clientes del lado del servidor pueden omitir el encabezado Origin y no enviar credenciales. Los clientes de navegador deben usar el origen canónico de Open Medici o un origen configurado explícitamente por la implementación. Un origen de navegador no configurado recibe HTTP 403.
La respuesta CORS del transporte no incluye credenciales. No envíe cookies. La validación del host también rechaza con HTTP 421 una solicitud dirigida a un host no aprobado.
| Problema | Causa probable | Corrección o reintento | Referencia |
|---|---|---|---|
| HTTP 400 | JSON no válido o un encabezado de protocolo no compatible. | Corrija el cuerpo/versión; no reintente sin cambios. | Inicio rápido |
| HTTP 403 | El Origin del navegador no está configurado. | Use un cliente del lado del servidor o pida al propietario de la implementación que configure el origen exacto. | Política de origen |
| HTTP 413 | La solicitud supera los 64 KiB. | Reduzca el cuerpo JSON-RPC. | Flujo de solicitudes |
| HTTP 421 | El Host no está aprobado para esta implementación. | Use el endpoint de la tarjeta del servidor. | Tarjeta del servidor |
| HTTP 429 | El cliente superó las 60 solicitudes por minuto. | Respete Retry-After y luego reintente con retroceso. | Flujo de solicitudes |
| HTTP 500 | El servidor no pudo completar la solicitud. | Reintente con retroceso e informe una falla persistente con el ID/método de la solicitud. | Contacto |
JSON-RPC error | El método o los parámetros del protocolo no eran válidos. | Use el código/mensaje devuelto para corregir la solicitud. | Capacidades |
Herramienta isError | La herramienta rechazó un rango, filtro o registro faltante. | Corrija los argumentos; no lo trate como una falla transitoria del transporte. | Definición de herramienta |