Perigon MCP Server
Servidor MCP oficial para la API de Perigon, que proporciona acceso a datos de noticias y medios en tiempo real.
Documentación
Perigon MCP
El servidor MCP alojado de Perigon para noticias, entidades y monitores en tiempo real.
- 🚀 Inicio rápido
- 🔧 Elección de herramientas
- 🛠️ Herramientas
- 📚 Prompts y recursos
- 📊 Flujo de trabajo de Signal Insights
- 💡 Consejos de prompting
- 📦 Registro MCP
- 💻 Desarrollo local
- 👥 Contribuciones y mantenedores
- ⚖️ Licencia
Inicio rápido
Endpoint: https://mcp.perigon.io/v1/mcp
Autenticación: Authorization: Bearer <key> — crea una clave en perigon.io/dev/keys.
Pruébalo en el playground (requiere una sesión iniciada en el panel de Perigon). Configuración específica por cliente: dev.perigon.io/docs/mcp.
HTTP Streamable nativo (recomendado):
{
"mcpServers": {
"perigon": {
"url": "https://mcp.perigon.io/v1/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer YOUR_PERIGON_API_KEY"
}
}
}
}
mcp-remote (clientes sin HTTP nativo):
{
"mcpServers": {
"perigon": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://mcp.perigon.io/v1/mcp",
"--header",
"Authorization: Bearer ${PERIGON_API_KEY}"
],
"env": {
"PERIGON_API_KEY": "YOUR_PERIGON_API_KEY"
}
}
}
}
Claude Code:
claude mcp add --transport http perigon https://mcp.perigon.io/v1/mcp \
--header "Authorization: Bearer YOUR_PERIGON_API_KEY"
SSE en /v1/sse existe para clientes heredados. Usa HTTP Streamable para integraciones nuevas.
Elección de herramientas
Añade ?tools= a la URL de MCP para limitar la sesión. ?tool= es un alias y tiene prioridad si ambos están presentes.
https://mcp.perigon.io/v1/mcp?tools=search_news_articles,search_news_stories
https://mcp.perigon.io/v1/mcp?tools=research
https://mcp.perigon.io/v1/mcp?tools=research,create_monitor
- Nombres de herramientas separados por comas, alias de perfiles o una mezcla.
- El filtro se cruza con lo que los alcances de la clave ya permiten. No puede ampliar el acceso.
- Omite el parámetro, pasa un valor vacío o pasa
all→ conjunto predeterminado (las herramientas opcionales permanecen desactivadas). - Los nombres desconocidos se descartan. Si todos los nombres son desconocidos, se usa el conjunto predeterminado.
| Perfil | Herramientas |
|---|---|
research | search_news_articles, search_news_stories, search_story_history, search_vector_news, summarize_news, search_journalists, search_sources, search_people, search_companies, search_topics, las cinco herramientas de estadísticas, get_top_topics, get_source_by_id, get_api_access. No incluye Wikipedia, ni los accesos directos de empresa / persona / ubicación. |
monitoring | Todas las herramientas de monitores (incluyendo create_monitor / update_monitor) más todas las herramientas de Signal Insights. |
platform | watchlists, create_watchlist, update_watchlist, source_groups, create_source_group, update_source_group, contact_points, article_refresh, get_api_access. |
minimal | search_news_articles, las cinco herramientas de estadísticas, get_api_access. |
get_story_stats no está en ningún perfil. Solicítala por nombre. Aún requiere CLUSTERS al momento de la llamada; una clave sin ese alcance puede seleccionar la herramienta y luego recibir un error de permisos.
Las demás herramientas opcionales no necesitan alcance adicional. Cualquier clave válida puede solicitarlas.
Herramientas
Disponibilidad:
- Predeterminada — registrada cuando se omite
?tools=(y la clave tiene el alcance indicado, si corresponde). - Alcance — registrada solo cuando la clave tiene ese permiso.
- Opcional — omitida del conjunto predeterminado. Solicítala por nombre o perfil. El registro no es lo mismo que el acceso a la API.
Búsqueda
| Herramienta | Disponibilidad | Descripción |
|---|---|---|
search_news_articles | Predeterminada | Búsqueda por palabras clave y filtros sobre artículos individuales, incluyendo consultas booleanas. |
search_news_stories | Alcance: CLUSTERS | Titulares agrupados que reúnen artículos relacionados en una sola narrativa. |
search_story_history | Alcance: CLUSTERS | Instantáneas con marca de tiempo de cómo cambió un grupo de historias. |
search_vector_news | Alcance: VECTOR_SEARCH_NEWS | Búsqueda semántica sobre artículos recientes. |
summarize_news | Alcance: SEARCH_SUMMARY | Resumen de IA de artículos coincidentes, con citas. |
search_journalists | Alcance: JOURNALISTS | Perfiles de periodistas y reporteros. |
search_sources | Alcance: SOURCES | Publicaciones y medios de noticias. |
search_people | Alcance: PEOPLE | Perfiles de figuras públicas. |
search_companies | Alcance: COMPANIES | Perfiles de empresas (dominio, ticker, industria). |
search_topics | Alcance: TOPICS | Taxonomía de temas de Perigon para filtros de temas exactos. |
search_wikipedia | Alcance: WIKIPEDIA | Búsqueda por palabras clave en páginas de Wikipedia. |
search_vector_wikipedia | Alcance: VECTOR_SEARCH_WIKIPEDIA | Búsqueda semántica en páginas de Wikipedia. |
Accesos directos
Cada herramienta busca una entidad y luego busca artículos recientes sobre ella.
| Herramienta | Disponibilidad | Descripción |
|---|---|---|
get_company_news | Alcance: COMPANIES | Artículos recientes sobre una empresa buscada por nombre. |
get_person_news | Alcance: PEOPLE | Artículos recientes sobre una persona buscada por nombre. |
get_location_news | Alcance: LOCATIONS | Artículos recientes para una ciudad, estado o país. |
Estadísticas
Siempre activas para cualquier clave válida. Prefiérelas sobre contar resultados de búsqueda manualmente.
| Herramienta | Disponibilidad | Descripción |
|---|---|---|
get_avg_sentiment | Predeterminada | Sentimiento promedio (positivo / negativo / neutral) agrupado en intervalos de tiempo. |
get_article_counts | Predeterminada | Volumen de publicación de artículos agrupado en intervalos de tiempo. |
get_top_entities | Predeterminada | Temas, personas, empresas, ciudades, periodistas o fuentes más mencionados. |
get_top_people | Predeterminada | Personas cuya cobertura está en aumento frente a una línea base. |
get_top_companies | Predeterminada | Empresas cuya cobertura está en aumento frente a una línea base. |
Acceso
| Herramienta | Disponibilidad | Descripción |
|---|---|---|
get_api_access | Predeterminada | Alcances de esta clave, organización, cuota y comportamiento de derechos. No cuenta contra la cuota de solicitudes. Llámala una vez por sesión, o después de un 403. |
Monitores
Las herramientas de lectura son predeterminadas. Las herramientas de escritura son opcionales porque el esquema compartido de monitores es grande.
| Herramienta | Disponibilidad | Descripción |
|---|---|---|
list_monitors | Predeterminada | Lista y filtra monitores por UUID, nombre, estado o EVENT / MENTIONS / TOPIC. |
get_monitor | Predeterminada | Configuración completa del monitor. |
get_monitor_events | Predeterminada | Eventos estructurados de monitores EVENT y MENTIONS. |
get_monitor_newsletters | Predeterminada | Informes programados, típicamente de monitores TOPIC. |
get_monitor_summaries | Predeterminada | Historial de resúmenes de monitores generados por IA de forma continua. |
set_monitor_status | Predeterminada | Activa, pausa o archiva un monitor. El archivado no se puede revertir a través de la API pública. |
create_monitor | Opcional | Crea un monitor DRAFT o ACTIVE. El valor predeterminado es DRAFT. |
update_monitor | Opcional | Actualización parcial; los campos omitidos se conservan. |
Plataforma
Todas estas son opcionales. get_source_by_id y get_top_topics también están en research. get_story_stats es solo por nombre.
| Herramienta | Disponibilidad | Descripción |
|---|---|---|
get_source_by_id | Opcional | Una fuente de noticias por ID exacto o dominio. |
get_top_topics | Opcional | Temas cuya cobertura está en aumento frente a una línea base. |
get_story_stats | Opcional; Alcance: CLUSTERS | Volumen o velocidad de publicación a nivel de historia a lo largo del tiempo. |
watchlists | Opcional | Lista, obtiene o resuelve listas de seguimiento de la organización. |
create_watchlist / update_watchlist | Opcional | Crea o actualiza parcialmente una lista de seguimiento. |
source_groups | Opcional | Lista, obtiene o resuelve paquetes personalizados de grupos de fuentes. |
create_source_group / update_source_group | Opcional | Crea o actualiza parcialmente un grupo de fuentes. |
contact_points | Opcional | Lista u obtiene canales de notificación de monitores (correo electrónico / webhook). |
article_refresh | Opcional | Verifica un trabajo de actualización o inspecciona datos en caché de hasta 100 IDs de artículos. Solo lectura. |
Signal Insights
Registradas para cada sesión a menos que ?tools= las excluya. La API de Insights y el backend de Pokey rechazan llamadas cuando la clave no tiene acceso a Signal Insights.
El perfil monitoring incluye este conjunto. No existe un perfil solo de Signal Insights; pasa los nombres de las herramientas si quieres solo estas.
| Herramienta | Disponibilidad | Descripción |
|---|---|---|
signal_insights_create_workspace | Predeterminada | Crea un espacio de trabajo. Llámala una vez al inicio de una conversación. |
signal_insights_search_signals | Predeterminada | Busca señales por nombre u objetivo. |
signal_insights_read_signal | Predeterminada | Metadatos de señales (clasificación, esquema o recuentos de boletines). |
signal_insights_list_newsletters | Predeterminada | Títulos y extractos de boletines para una señal TOPIC. |
signal_insights_read_newsletter | Predeterminada | Contenido completo del boletín como markdown. |
signal_insights_export_events | Predeterminada | Exporta eventos EVENT / MENTIONS a S3. Devuelve una vista previa y la ruta del archivo. |
signal_insights_execute_code | Predeterminada | Python en un kernel IPython persistente (pandas, numpy, matplotlib). |
signal_insights_preview_chart | Predeterminada | Renderiza gráficos en el visor de gráficos interactivo. |
signal_insights_shell | Predeterminada | Bash en el sandbox. |
signal_insights_list_files | Predeterminada | Lista archivos en el espacio de trabajo. |
signal_insights_read_file | Predeterminada | Lee un archivo del espacio de trabajo. |
signal_insights_write_file | Predeterminada | Escribe un archivo del espacio de trabajo. |
signal_insights_grep | Predeterminada | Búsqueda con expresiones regulares sobre el contenido de archivos. |
signal_insights_str_replace | Predeterminada | Busca y reemplaza una cadena en un archivo. |
Prompts y recursos
Los hosts que admiten prompts de MCP pueden invocar estos playbooks:
entity_deep_divenarrative_tracecoverage_trendjournalist_beat_profilecompetitive_landscapespike_explainer
Recursos de referencia bajo demanda:
perigon://reference/fields— semántica de campos de respuestaperigon://reference/chaining— playbooks de investigación entre endpointsperigon://reference/entitlements— mapa de alcance a comportamiento de esta sesiónperigon://reference/charts— reglas de formato de gráficos de Signal Insights
Visores de MCP Apps (registrados cuando alguna herramienta de Signal Insights está activa):
ui://signal-insights/chart-viewerui://signal-insights/export-viewer
Flujo de trabajo de Signal Insights
- Llama a
signal_insights_create_workspaceuna vez al inicio de una conversación. - Pasa el ID del espacio de trabajo devuelto a cada herramienta de análisis posterior.
- Los archivos de
signal_insights_execute_codeysignal_insights_shellpersisten en ese espacio de trabajo. Las exportaciones se guardan en/home/user/workspace/artifacts/dentro del sandbox. - Después de un reinicio, el UUID del espacio de trabajo anterior sigue siendo válido. El kernel es nuevo; los artefactos exportados a S3 permanecen.
Consejos de prompting
Dale al modelo la fecha actual (o una herramienta de fecha). Algunos modelos tratan su fecha límite de conocimiento como "hoy" y obtienen noticias desactualizadas.
Ejemplos:
- Los 5 titulares políticos principales en Estados Unidos de hoy.
- Últimas noticias tecnológicas de California esta semana.
- Encuentra periodistas que cubran energía renovable y luego muestra sus artículos recientes.
- Busca Tesla y luego encuentra historias recientes sobre ellos.
- Lista mis monitores de eventos activos y muestra los últimos eventos de uno de ellos.
- Crea un borrador de monitor para salidas de ejecutivos en semiconductores.
Registro MCP
Nombre del registro: io.github.goperigon/perigon-mcp-server.
server.json es la fuente de verdad. Una versión publicada es inmutable. Incrementa version en server.json y vuelve a publicar después de cualquier cambio en el listado.
Desarrollo local
Este repositorio usa Bun. Pon los secretos en .dev.vars.
| Variable | Requerida | Descripción |
|---|---|---|
ANTHROPIC_API_KEY | Sí | Requerida para cada ruta, incluyendo /v1/mcp. También usada por el chat del playground. |
PERIGON_API_KEY | Playground | Clave predeterminada del playground. |
POKEY_SIGNAL_INSIGHTS_BASE_URL | No | URL base de Pokey para Signal Insights. El valor predeterminado es https://api.perigon.io/pokey en Wrangler. Usa http://localhost:3001 para acceder a un Pokey local. |
Para usar cookies del panel de Perigon con el playground, añade esto a /etc/hosts:
127.0.0.1 local-mcp.perigon.io
bun i
bun dev
bun test
bun dev sirve el worker de MCP y el playground.
Contribución y mantenedores
Abre un issue de GitHub o un pull request para errores, herramientas faltantes o casos de uso. Alguien de Perigon lo revisará.
Mantenido por el equipo de Perigon:
- Desarrollador principal: Vasyl Teliman (desarrollo de funciones, seguridad, servidor)
- Diseñador principal: Galen Rutledge (desarrollo de funciones, mantenimiento continuo)
- Desarrollo inicial: Islem Maboud (transporte, autenticación, despliegue, playground)