perigon-mcp-server
Your go-to MCP for Real-time News & Contextual Intelligence
Documentation
Perigon MCP Server
This is the official MCP server for the Perigon news API.
Documentation
For more information on how to use and connect the MCP, visit the MCP docs.
Maintainers
The Perigon MCP Server is developed and maintained by the Perigon engineering team.
Lead Developer: Islem Maboud, responsible for the architecture, implementation, and ongoing development of this MCP server, including the remote transport layer, authentication handling, deployment configuration, and the MCP playground.
Usage
Playground
You can try out the Perigon MCP server in our playground.
> Note: A valid Perigon API key is required to use the MCP. The MCP playground requires you to be already authenticated to the Perigon dashboard.
Connecting
You can connect to our remote MCP server using any MCP-compatible client.
Server URL: `https://mcp.perigon.io`
The recommended transport is Streamable HTTP (`/v1/mcp`). SSE (`/v1/sse`) is supported for legacy clients but not recommended for new integrations.
Quick Setup Examples
Streamable HTTP — native support (recommended):
{
"mcpServers": {
"perigon_news_api": {
"url": "https://mcp.perigon.io/v1/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer YOUR_PERIGON_API_KEY"
}
}
}
}Streamable HTTP — via `mcp-remote` (for clients without native HTTP support):
{
"mcpServers": {
"perigon_news_api": {
"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"
}
}
}
}For Claude Code (CLI):
claude mcp add --transport http perigon_news_api https://mcp.perigon.io/v1/mcp \
--header "Authorization: Bearer YOUR_PERIGON_API_KEY"SSE (legacy clients only):
{
"mcpServers": {
"perigon_news_api": {
"url": "https://mcp.perigon.io/v1/sse",
"type": "sse",
"headers": {
"Authorization": "Bearer YOUR_PERIGON_API_KEY"
}
}
}
}📖 **For detailed setup instructions for different clients, see our comprehensive MCP documentation.**
Selecting specific tools
By default all tools permitted by your API key are available. You can restrict a session to a smaller set by appending a `?tools=` query parameter to the server URL. This is useful for reducing context size and keeping the model focused.
https://mcp.perigon.io/v1/mcp?tools=search_news_articles,search_news_stories- Pass a comma-separated list of tool names, or `all` to explicitly activate every permitted tool.
- Only tools your API key already has access to will be activated — the parameter cannot expand permissions.
- Omitting the parameter, passing an empty value, or passing `all` are all equivalent and activate every permitted tool.
Example — Cursor config scoped to article and story search:
{
"mcpServers": {
"perigon_news_api": {
"url": "https://mcp.perigon.io/v1/mcp?tools=search_news_articles,search_news_stories",
"type": "http",
"headers": {
"Authorization": "Bearer YOUR_PERIGON_API_KEY"
}
}
}
}Named tool profiles
Instead of listing individual tool names, `?tools=` also accepts curated profile aliases — useful shorthand for reducing context to a task-appropriate subset:
| Profile | Includes |
|---|---|
| `research` | Core search, stats, and lookup tools for news research (articles, stories, journalists, sources, people, companies, topics, stats, `get_source_by_id`, `get_api_access`). |
| `monitoring` | All monitor tools (including `create_monitor`/`update_monitor`) plus every Signal Insights tool. |
| `platform` | Watchlists, source groups, contact points, article refresh status, and `get_api_access`. |
| `minimal` | `search_news_articles` plus the five stats tools and `get_api_access` — the smallest useful research set. |
Profiles can be combined with explicit tool names in the same `?tools=` value (e.g. `?tools=research,create_monitor`), and are always intersected with what your API key's scopes actually permit.
Prompt Examples
When prompting your agent we recommend providing the current date (or a tool to get it) unless the agent already has access to such information, this is because some models like Claude will otherwise think the current date is their knowledge cutoff and they will retrieve outdated information frequently.
News Articles & Stories:
- Give me the top 5 political headlines in the United States from today.
- What business stories are trending in New York today?
- Show me the latest tech news from California this week.
- Find political news from swing states in the last 3 days.
- Show me cryptocurrency-related stories from the past week.
Journalists & Sources:
- Find local news sources in Texas.
- Who are the top business journalists at major publications?
- Find journalists covering renewable energy, then show me their recent articles.
- Which journalists write the most about climate policy?
- Show me articles from major financial publications today.
People & Companies:
- Find recent news about pharmaceutical company CEOs.
- Search for Tesla as a company, then find recent news stories about them.
- Show me companies in the electric vehicle industry.
- Search for politicians mentioned in healthcare stories.
- What are tech companies saying about AI regulation?
Monitors:
- List my active event monitors.
- Show me the latest events detected by my product recall monitor.
- Create a draft monitor for executive departures in the semiconductor industry.
- Pause my competitor mentions monitor.
- Show me the latest newsletter from my AI regulation topic monitor.
Supported tools
The full list of available tools — including names, descriptions, and parameter schemas — is visible in the MCP playground. The tools available to you depend on the scopes granted to your API key.
Stats tools
The five stats tools are always available regardless of scope — the underlying `/v1/stats/*` endpoints perform no permission check beyond a valid key — and give aggregate metrics computed server-side, which is generally preferable to counting search results by hand.
| Tool | Description |
|---|---|
| `get_avg_sentiment` | Average sentiment (positive/negative/neutral) bucketed over time for articles matching a filter set. |
| `get_article_counts` | Article publication volume bucketed over time — pair with `get_avg_sentiment` on identical filters for a trend view. |
| `get_top_entities` | The most frequently mentioned topics, people, companies, cities, journalists, or sources. |
| `get_top_people` | People whose coverage is spiking relative to a baseline period. |
| `get_top_companies` | Companies whose coverage is spiking relative to a baseline period. |
Entitlement tools
| Tool | Description |
|---|---|
| `get_api_access` | Always available. Reports this key's scopes, organization, usage quota, and the derived entitlement behavior (stripped fields, blocked filters, date-window clamps). Call once per session, or after a 403 or an unexpectedly null/empty field — does not count against request quota. |
Monitor tools
The six read tools below are always available and expose the public `/v1/api/monitors` API for reading monitor configuration and output. `create_monitor` and `update_monitor` are not always-on — request them explicitly via `?tools=create_monitor,update_monitor` or the `monitoring` profile, since most sessions never call them and the shared monitor schema is large.
| Tool | Description |
|---|---|
| `list_monitors` | List and filter monitors by UUID, name, lifecycle status, or EVENT, MENTIONS, and TOPIC classification. |
| `get_monitor` | Retrieve a monitor's complete configuration, including its objective, query, output schema, schedule, watchlist, and contact points. |
| `get_monitor_events` | Retrieve structured events emitted by EVENT and MENTIONS monitors with extracted data, entities, summaries, and related articles. |
| `get_monitor_newsletters` | Retrieve scheduled human-readable briefings generated by monitors, typically for TOPIC monitors. |
| `get_monitor_summaries` | Retrieve rolling AI-generated monitor summary history. |
| `set_monitor_status` | Activate, pause, or archive a monitor. Archiving cannot be reversed through the public API. |
| `create_monitor` *(opt-in)* | Create a DRAFT or ACTIVE monitor with typed query, output schema, schedule, and delivery configuration. Defaults to DRAFT. |
| `update_monitor` *(opt-in)* | Partially update monitor configuration while preserving omitted fields. |
Platform tools
Read-only by default; opt in via `?tools=` (by name or the `platform` profile).
| Tool | Description |
|---|---|
| `get_source_by_id` | Look up one news source by exact ID or domain for full detail (paywall status, alt names, location). |
| `get_top_topics` | Topics whose coverage is spiking relative to a baseline period. |
| `get_story_stats` | Story-level (clustered headline) publication volume or velocity over time. |
| `watchlists` | List, get by ID, or resolve by name your organization's watchlists of people and companies. |
| `source_groups` | List, get by ID, or resolve by name your organization's custom source-group bundles. |
| `contact_points` | List or get by UUID your organization's monitor notification delivery channels (email/webhook). |
| `article_refresh` | Check a background article-refresh job's status, or peek cached refresh data for up to 100 article IDs — read-only, cannot submit new jobs. |
| `create_watchlist` / `update_watchlist` | Create or partially update a watchlist. Only used when explicitly requested. |
| `create_source_group` / `update_source_group` | Create or partially update a custom source group. Only used when explicitly requested. |
Research prompts
The server also registers six reusable MCP prompts that encode multi-step tool-chaining playbooks, so a host that surfaces prompts gets correct chaining without relying on the model to reconstruct it: `entity_deep_dive`, `narrative_trace`, `coverage_trend`, `journalist_beat_profile`, `competitive_landscape`, and `spike_explainer`.
Reference resources
Long-form guidance is available on-demand as MCP resources rather than always-on instructions: `perigon://reference/fields` (response field semantics), `perigon://reference/chaining` (cross-endpoint research playbooks), `perigon://reference/entitlements` (this session's scope-to-behavior mapping), and `perigon://reference/charts` (Signal Insights chart formatting rules).
Signal Insights tools
API keys with the Signal Insights scope unlock an additional set of tools for querying, exporting, and analyzing your AI signals data with a persistent Python sandbox.
Workspace pattern
Signal Insights tools use an explicit workspace handle (per SEP-2567):
1. Call `create_insights_workspace` once at the start of a conversation.
2. Pass the returned workspace ID to every subsequent analysis tool call.
3. Files written in `execute_code` or `shell` persist across calls within the same workspace. Exported data is accessible at `/home/user/workspace/artifacts/` inside the sandbox.
4. If you resume a chat after a restart, the workspace UUID from the prior conversation is still valid — the sandbox kernel will be fresh but your exported S3 artifacts are preserved.
Signal Insights tool list
| Tool | Type | Description |
|---|---|---|
| `signal_insights_create_workspace` | Setup | Create a workspace for the conversation. Must be called first for sandbox tools. |
| `signal_insights_search_signals` | Read | Search signals by name or objective; optional `classificationTypes` filter. |
| `signal_insights_read_signal` | Read | Get signal metadata (classification, schema or newsletter counts). |
| `signal_insights_list_newsletters` | Read | List newsletters for a TOPIC signal (title + excerpt). |
| `signal_insights_read_newsletter` | Read | Fetch full newsletter content as markdown. |
| `signal_insights_export_events` | Data | Export events to S3 (EVENT/MENTIONS only). Returns a preview and file path. |
| `signal_insights_execute_code` | Sandbox | Execute Python in a persistent IPython kernel. pandas, numpy, matplotlib and more pre-installed. |
| `signal_insights_preview_chart` | Sandbox | Render charts in the interactive chart viewer. |
| `signal_insights_shell` | Sandbox | Run bash commands in the sandbox. |
| `signal_insights_list_files` | Files | List files in the sandbox workspace. |
| `signal_insights_read_file` | Files | Read a file from the workspace. |
| `signal_insights_write_file` | Files | Write a file to the workspace. |
| `signal_insights_grep` | Files | Search file contents with a regex pattern. |
| `signal_insights_str_replace` | Files | Find and replace a string in a file. |
Example config — Signal Insights only
{
"mcpServers": {
"perigon": {
"url": "https://mcp.perigon.io/v1/mcp?tools=signal_insights_create_workspace,signal_insights_search_signals,signal_insights_read_signal,signal_insights_list_newsletters,signal_insights_read_newsletter,signal_insights_export_events,signal_insights_execute_code,signal_insights_preview_chart,signal_insights_shell,signal_insights_list_files,signal_insights_read_file,signal_insights_write_file,signal_insights_grep,signal_insights_str_replace",
"type": "http",
"headers": {
"Authorization": "Bearer YOUR_PERIGON_API_KEY"
}
}
}
}Example config — Signal Insights combined with news tools
{
"mcpServers": {
"perigon": {
"url": "https://mcp.perigon.io/v1/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer YOUR_PERIGON_API_KEY"
}
}
}
}With no `?tools=` filter, all tools permitted by your API key's scopes are active.
Issues / Contributing
Issues
This MCP server is still in development as we determine what use cases our users want to
solve with this server. But if you have any special requests or features you would like to
see, don't hesitate to open a github issue on this Repo. We will gladly accept any feedback
Contributing
This tool is intentionally open source so if you want to see some particular feature you
open an issue or open a PR and someone at Perigon will review it.
Local development
We are using bun for package mgmt.
Environment Variables
Add the following environment variables to `.dev.vars`
| Variable | Description |
|---|---|
| `ANTHROPIC_API_KEY` | Anthropic API key (used for playground) |
| `PERIGON_API_KEY` | Perigon API key (used for playground) |
| `POKEY_SIGNAL_INSIGHTS_BASE_URL` | Internal Pokey service URL for Signal Insights MCP tools (e.g. `http://localhost:3001`). Required only when using Signal Insights tools. |
If you wish to contribute to the MCP playground (tools inspector & chat), please make sure to modify your network hosts file (/etc/hosts on mac) to include the following
127.0.0.1 local-mcp.perigon.ioThis will allow perigon.io cookies to be available for you while doing local development.
# install deps
bun i
# Runs the mcp server and the mcp playground
bun devFrequently asked questions
What is perigon-mcp-server?
perigon-mcp-server is Your go-to MCP for Real-time News & Contextual Intelligence
How do I install perigon-mcp-server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is perigon-mcp-server open source?
Yes — it is hosted on GitHub at https://github.com/goperigon/perigon-mcp-server and has 6 stars.
Related MCP tools
这是一个金融领域相关的mcp,本项目通过集成 Tushare API 和 Binance API 为语言模型(如Claude)提供全面的实时金融数据访问能力,支持股票、基金、债券、宏观经济指标、稳定币、虚拟货币等多维度金融数据分析。其中也包含了金融数据查询、财经新闻查询、国家统计局数据查询等
The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra
A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you
MCP server to provide Figma layout information to AI coding agents like Cursor
This is MCP server for Claude that gives it terminal control, file system search and diff file editing capabilities
Browser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP