
Perigon
io.github.goperigonPublished by GitHub account goperigonv1.0.0Updated Oct 27, 2026
Official Perigon news API: articles, stories, companies, journalists, monitors, and stats.
Overview
Hosted Perigon MCP server that lets an assistant search real-time news, look up entities, read monitors, and run analysis on coverage data.
- What you can do
- Search articles, story clusters, story history, semantic news, Wikipedia, journalists, sources, people, companies and topics, and get AI summaries with citations
- Look up recent coverage of a company, person or location by name
- Get coverage statistics: sentiment over time, article volume, top entities, and people or companies with spiking coverage
- Read and manage monitors: list monitors, fetch events, newsletters and summaries, and set status; create or update monitors as opt-in tools
- Work with platform objects such as watchlists, source groups, contact points and article refresh jobs
- Run Signal Insights analysis in a workspace: export events, execute Python, render charts, and read, write…
- When to use it
- Useful when an assistant needs current news coverage, entity or journalist research, trend and sentiment statistics, or monitoring of topics and events, and you want it through a hosted endpoint rather than a local package.
- Requirements
- Remote Streamable HTTP endpoint at mcp.perigon.io (SSE path for legacy clients). Authentication is required: OAuth sign-in with a verified Perigon user holding at least User role in an organization, or a Perigon API key sent as an Authorization Bearer header. Tool availability depends on the key's scopes; a tools query parameter can narrow the session's tool set.
Installation
In SourceWeft
- Open Perigon in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.goperigon%2Fperigon-mcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"perigon": {
"type": "http",
"url": "https://mcp.perigon.io/v1/mcp"
}
}
}README
Perigon MCP
Perigon's hosted MCP server for real-time news, entities, and monitors.
[Deploy status] [License: Apache-2.0] [MCP Registry version] [Listed on Smithery] [Transport: Streamable HTTP] [Documentation] [Try it in the playground]
- 🚀 Quick start
- 🔐 Authentication
- 🔧 Choosing tools
- 🛠️ Tools
- 📚 Prompts and resources
- 📊 Signal Insights workflow
- 💡 Prompting tips
- 📦 MCP Registry
- 💻 Local development
- 👥 Contributing and maintainers
- ⚖️ License
Quick start
Endpoint: https://mcp.perigon.io/v1/mcp
Try it in the playground (requires a signed-in Perigon dashboard session). Human-oriented setup: perigon.io/docs/api/mcp. Install with an agent: pass perigon.io/mcp.md to your AI client and follow the steps (OAuth sign-in, no API key in chat).
OAuth (recommended)
Add the server URL only. On first connect, the client discovers OAuth metadata and opens Perigon sign-in. See Authentication.
Native Streamable HTTP:
mcp-remote (clients without native HTTP):
Claude Code:
Then run /mcp in Claude Code and choose Authenticate when prompted.
Codex CLI — add to ~/.codex/config.toml:
Then run codex mcp login perigon.
API key (scripts and pinned keys)
Use when the client cannot complete OAuth or you need a fixed key in config. Keys from perigon.io/dev/keys.
Native Streamable HTTP:
mcp-remote:
Claude Code:
SSE at /v1/sse exists for legacy clients. Use Streamable HTTP for new integrations.
Authentication
The MCP endpoint accepts Authorization: Bearer credentials in two forms:
OAuth
Hosted discovery (production):
- Protected resource:
https://mcp.perigon.io/.well-known/oauth-protected-resource(alias:https://mcp.perigon.io/.well-known/oauth-protected-resource/v1/mcp) - Authorization server metadata:
https://mcp.perigon.io/.well-known/oauth-authorization-server
Clients discover the authorization, token, and registration endpoints from the authorization server metadata (PKCE required).
The client completes the standard authorization-code flow with PKCE, then sends the resulting access token on every MCP request.
- Sign-in requires a verified Perigon user with at least User role in the organization.
- Usage is billed to your organization. No API key is needed in the client.
- Revoking MCP access or removing a member takes effect on the next request.
Unauthenticated requests receive 401 with a WWW-Authenticate header pointing at the protected-resource metadata URL.
API key
Create or copy a key at perigon.io/dev/keys and set it in the client’s Authorization header (see Quick start examples). Scopes and quotas follow that key.
Choosing tools
Append ?tools= to the MCP URL to limit the session. ?tool= is an alias and wins if both are present.
- Comma-separated tool names, profile aliases, or a mix.
- The filter intersects with what your credentials allow (API key scopes or your org’s MCP access for OAuth). It cannot expand access.
- Omit the parameter or pass an empty value → default set (opt-in tools stay off; smaller tool list for token savings).
- Pass
all→ scope-allowed default tools plus every opt-in catalogue tool (monitor write, platform helpers,get_source_by_id,get_top_topics,get_story_stats, and the rest). Scope-gated search tools still require the matching permission. - Unknown names are dropped. If every name is unknown, the default set is used.
get_story_stats is not in any profile. Request it by name. Requires the CLUSTERS scope.
Tools
Availability:
- Default — registered when
?tools=is omitted (and the key has the listed scope, if any). - Scope — registered only when the key has that permission.
- Opt-in — omitted from the default set. Request by name, profile, or
?tools=all. Registration is not the same as API access.
Search
Shortcuts
Each tool looks up an entity, then searches recent articles about it.
Stats
Always on for any valid key. Prefer these over counting search results by hand.
Access
Monitors
Read tools are default. Write tools are opt-in because the shared monitor schema is large.
schedulePolicy hours and days are wall-clock times in timezoneId, matching Delivery settings in the Perigon product. The public API stores those intervals in UTC; this server converts on read and write. A daily 3:00 AM America/Chicago briefing is returned and accepted as hour: 3, not hour: 8. get_monitor also includes a human-readable Schedule: line. Monthly schedules preserve configured daysOfMonth (including day 31). Complex monitors with more than 24 intervals fall back to a lossy weekly conversion on read so returned schedules remain updatable through MCP; writes that would exceed 24 intervals after conversion are rejected instead of approximated.
Platform
All of these are opt-in. get_source_by_id and get_top_topics are also in research. get_story_stats is name-only.
Signal Insights
Registered for every session unless ?tools= excludes them.
The monitoring profile includes this set. There is no Signal Insights-only profile; pass the tool names if you want only these.
Prompts and resources
Hosts that support MCP prompts can invoke these playbooks:
entity_deep_divenarrative_tracecoverage_trendjournalist_beat_profilecompetitive_landscapespike_explainer
On-demand reference resources:
perigon://reference/fields— response field semanticsperigon://reference/chaining— cross-endpoint research playbooksperigon://reference/entitlements— this session's scope-to-behavior mapperigon://reference/charts— Signal Insights chart formatting rules
MCP Apps viewers (registered when any Signal Insights tool is active):
ui://signal-insights/chart-viewerui://signal-insights/export-viewer
Monitors Insights workflow
- Call
signal_insights_create_workspaceonce at the start of a conversation. - Pass the returned workspace ID to every later analysis tool.
- Durable files live under
artifacts/(exports and query results go there automatically). Put user-facing deliverables inartifacts/output/. File and shell tools can write elsewhere in the workspace, but onlyartifacts/is backed by persistent storage. - After a sandbox restart, the workspace ID stays valid. The Jupyter kernel and in-memory Python state reset; files under
artifacts/remain. Other workspace paths may be empty on a fresh sandbox.
Prompting tips
Give the model the current date (or a date tool). Some models otherwise treat their knowledge cutoff as "today" and fetch stale news.
Examples:
- Top 5 political headlines in the United States from today.
- Latest tech news from California this week.
- Find journalists covering renewable energy, then show their recent articles.
- Search for Tesla, then find recent stories about them.
- List my active event monitors and show the latest events from one of them.
- Create a draft monitor for executive departures in semiconductors.
ChatGPT plugin skills
Workflow instructions for OpenAI’s plugin format live under skills/. Each skill is a folder with a SKILL.md file (YAML name + description, then procedure)—see Skills and Build skills.
Point the plugin manifest at "skills": "./skills/". You can import skills from the deployed MCP server via Scan Tools in the submission portal, or ship this directory in the plugin package.
MCP Registry
Registry name: io.github.goperigon/perigon-mcp-server.
server.json is the source of truth. A published version is immutable. Bump version in server.json and republish after any listing change.
Local development
This repo uses Bun. Copy .dev.vars.example to .dev.vars (gitignored) and fill in values.
The dev server binds to local-mcp.perigon.io (see vite.config.ts). Add this line to /etc/hosts so that hostname resolves on your machine:
bun dev serves the MCP worker and the playground at https://local-mcp.perigon.io:5173.
Contributing and maintainers
Open a GitHub issue or pull request for bugs, missing tools, or use cases. Someone at Perigon will review it.
Report security issues privately. See SECURITY.md. Do not open a public issue.
Maintained by the Perigon team.
License
Source: README.md at commit c554c95
Tools
0Version history
1- v1.0.0LatestSep 24, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts