Perigon
Official Perigon news API: articles, stories, companies, journalists, monitors, and stats.
Connector by goperigon · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/goperigon-perigon-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://mcp.perigon.io/v1/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 40 read · 3 write · 11 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 54
Read from the source code; the running server may list different tools.
Read 40 · Look things up without changing anything.
article_refreshcontact_pointsget_api_accessget_article_countsget_avg_sentimentget_company_newsget_location_newsget_monitorget_monitor_eventsget_monitor_newslettersget_monitor_summariesget_person_news
Show 28 more tools
get_source_by_idget_story_statsget_top_companiesget_top_entitiesget_top_peopleget_top_topicslist_monitorssearch_companiessearch_journalistssearch_news_articlessearch_news_storiessearch_peoplesearch_sourcessearch_story_historysearch_topicssearch_vector_newssearch_vector_wikipediasearch_wikipediasignal_insights_grepsignal_insights_list_filessignal_insights_list_newsletterssignal_insights_read_filesignal_insights_read_newslettersignal_insights_read_signalsignal_insights_search_signalssource_groupssummarize_newswatchlists
Write 3 · Create, change, send or run things.
create_source_groupcreate_watchlistsignal_insights_create_workspace
Delete 11 · Delete, drop, revoke or wipe things.
create_monitorset_monitor_statussignal_insights_execute_codesignal_insights_export_eventssignal_insights_preview_chartsignal_insights_shellsignal_insights_str_replacesignal_insights_write_fileupdate_monitorupdate_source_groupupdate_watchlist
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
Authorization
Network hosts it talks to 8
agent-plugins.org· found in codeapi.perigon.io· found in codecdn.jsdelivr.net· found in codechallenges.cloudflare.com· found in codedrive.google.com· found in codegithub.com· found in codemcp.perigon.io· found in remote endpoint, install command, codeperigon.io· found in code
Files it touches
/home/user/workspace- Any path the agent passes to its tools
Tools (54)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
article_refreshCheck article refresh job status or peek cacheread-onlyCheck the status of a background article-refresh job by ID, or peek best-effort cached refresh data for up to 100 article IDs without starting a job. Read-only — this tool cannot submit new refresh jobs or spend refresh credits; it only observes jobs submitted elsewhere (e.g. via the REST API directly).
contact_pointsList or get contact pointsread-onlyList or get by UUID the organization's contact points (delivery channels used by monitor notifications — email or webhook). Read-only; use this to find a contactPointId before wiring it into create_monitor/update_monitor.
create_monitorCreate monitorcan change or delete dataCreate a Perigon monitor for continuously detecting events, mentions, or scheduled topic briefings. Defaults to DRAFT; only pass ACTIVE when the user explicitly asks to start processing. ACTIVE TOPIC monitors require both a schedule and newsletter configuration. An ACTIVE monitor starts background processing and can deliver notifications to configured contact points; delivered notifications cannot be recalled.
create_source_groupCreate source groupCreate a new custom source group (a curated bundle of publisher domains) usable via the sourceGroup filter. Only use this when the user explicitly asks to create one.
create_watchlistCreate watchlistCreate a new watchlist of people and/or companies. Only use this when the user explicitly asks to create a watchlist — do not create one speculatively as part of a search or monitor workflow.
get_api_accessGet API access and entitlementsread-onlyReport this API key's scopes, organization, usage quota, pagination limits, and the entitlement behavior those scopes imply (which article fields always come back null, which filter params will 403, and any silent date-window clamps). Call this once at the start of a session, or whenever a field is unexpectedly null, a 403 occurs, or coverage before/after a date seems to be missing — a null field or empty date range may reflect this key's plan rather than absent data. Calling this tool does not count against the account's request quota.
get_article_countsArticle volumeread-onlyGet article publication volume bucketed over time for articles matching the given filters. Use this when the user asks about coverage trends, how much a topic was covered over time, or wants a chart/table of article counts — NOT just for finding the total number of articles (use search_news_articles with showNumResults for a simple total count). Returns one count per time bucket. Use splitBy to control the interval (HOUR, DAY, WEEK, MONTH, or NONE for a single total across the whole date range). Supports a curated subset of article filters: q, from/to, source(Group), category, topic, language,…
get_avg_sentimentAverage sentimentread-onlyGet average sentiment scores (positive, negative, neutral) bucketed over time for articles matching the given filters. Use this when the user asks about sentiment trends, how tone of coverage has shifted, or wants a chart/table of sentiment over a period — NOT for reading sentiment on individual articles (use search_news_articles for that). Returns one sentiment record per time bucket with averaged positive, negative, and neutral scores. Use splitBy to control the interval (HOUR, DAY, WEEK, MONTH, or NONE for a single aggregate across the whole date range). Supports a curated subset of article…
get_company_newsCompany newsread-onlyQuick shortcut to get recent news about a specific company by name. Automatically looks up company details for context, then finds recent articles mentioning that company within a configurable time window. Use this for simple 'what's the latest news about [company]?' queries. For advanced filtering, use search_news_articles with companyDomain or companySymbol instead.
get_location_newsLocation newsread-onlyQuick shortcut to get recent news for a geographic location (city, state, or country). Automatically detects the location type and applies appropriate geographic filters. Use this for simple 'what's happening in [location]?' queries. For advanced filtering, use search_news_articles with explicit city/state/country parameters instead.
get_monitorGet monitorread-onlyRetrieve the complete configuration for one Perigon monitor by UUID, including its objective, status, classification, article query, output schema, schedule, watchlist, and delivery contact points. Schedule hours are wall-clock times in timezoneId.
get_monitor_eventsGet monitor eventsread-onlyRetrieve structured matches emitted asynchronously by an EVENT or MENTIONS monitor. Returns extracted schema data, event summaries, matched entities, and a bounded set of related article details. Use pagination or date filters for additional results.
get_monitor_newslettersGet monitor newslettersread-onlyRetrieve human-readable briefings generated on a monitor's schedule, typically for TOPIC monitors. Returns newsletter content and bounded citation metadata. Use pagination, title, or date filters for additional results.
get_monitor_summariesGet monitor summariesread-onlyRetrieve rolling AI-generated summaries produced as a monitor processes matching content. Use pagination or creation-date filters to inspect summary history.
get_person_newsPerson newsread-onlyQuick shortcut to get recent news about a specific person by name. Automatically looks up the person's profile for context, then finds recent articles mentioning them within a configurable time window. Use this for simple 'what's the latest news about [person]?' queries. For advanced filtering, use search_news_articles with personName instead.
Show 39 more tools
get_source_by_idGet source by IDread-onlyLook up one news source/publisher by its exact ID or domain. Use this after search_sources or search_news_articles surfaces a source you want full detail on — `id` is @InternalParameter on search_sources, so this endpoint is the only route to a single source's paywall status, alt names, and location.
get_story_statsStory volumeread-onlyGet story-level (clustered headline) volume or velocity over time — the story equivalent of get_article_counts. Use metric='volume' for publication counts bucketed by time, or metric='velocity' for how fast specific clusters are accumulating mentions (requires clusterId from search_news_stories). Requires the CLUSTERS permission.
get_top_companiesTop companiesread-onlyGet the companies whose news coverage is spiking — mentioned significantly more in a recent window than a prior baseline period. Use this when the user asks 'which companies are trending?', 'which companies are getting more coverage than usual?', or 'what companies are suddenly in the news?' — NOT for simple most-mentioned frequency (use get_top_entities for that). Returns a ranked list with current mention count, baseline count, and a spike score (higher = bigger relative increase). The comparison window defaults to last 3 days vs. last 30 days; override with currentFrom/To and baselineFrom/T…
get_top_entitiesTop entitiesread-onlyGet the most frequently mentioned entities in articles matching the given filters, ranked by raw mention count. Use this when the user asks 'what topics/people/companies are most covered?' or 'who appears most in X news?' — i.e., questions about overall mention frequency within a fixed window. Do NOT use this for detecting sudden spikes or trending entities; use get_top_people or get_top_companies for spike detection instead. Defaults to returning topics, people, and companies; use the entity parameter to request other types (cities, journalists, sources). Supports the same article filters as …
get_top_peopleTop peopleread-onlyGet the people whose news coverage is spiking — mentioned significantly more in a recent window than a prior baseline period. Use this when the user asks 'who is trending?', 'who suddenly got a lot of coverage?', or 'which people are in the news more than usual?' — NOT for simple most-mentioned frequency (use get_top_entities for that). Returns a ranked list with current mention count, baseline count, and a spike score (higher = bigger relative increase). The comparison window defaults to last 3 days vs. last 30 days; override with currentFrom/To and baselineFrom/To. Supports all standard arti…
get_top_topicsTop topicsread-onlyGet the topics whose news coverage is spiking — mentioned significantly more in a recent window than a prior baseline period. Use this alongside get_top_people and get_top_companies when the user asks 'what topics are trending?' The comparison window defaults to last 3 days vs. last 30 days; override with currentFrom/To and baselineFrom/To. Supports the same curated article filters as the other stats tools.
list_monitorsList monitorsread-onlyList and search the authenticated user's Perigon monitors. Use this first to discover monitor UUIDs, inspect statuses, or find monitors by name or classification. Archived monitors are excluded unless explicitly requested.
search_companiesCompaniesread-onlySearch corporations and businesses in the Perigon database. Use this to look up company information, find companies by industry/sector, or identify companies by stock ticker or domain. Filter by name, domain, ticker symbol, industry, sector, country, or stock exchange. Returns company profiles with id, domains, tickers, CEO, employee count, industry/sector classification, headquarters, and description. Feed id/domains/symbol into search_news_articles(companyId|companyDomain|companySymbol) to find coverage.
search_journalistsJournalistsread-onlySearch 230k+ journalist and reporter profiles in the Perigon database. Use this to find who covers specific topics, publications, or regions — or who is personally based in a place. Two distinct location concepts: `countries` filters reporting focus (what they cover, derived from their published articles), while `locationCountry`/`locationState`/`locationCounty`/`locationCity`/`locationArea` filter their own profile location (where they are based) — these levels AND together, so pass only the narrowest level the user named. Also filter by name, Twitter handle, publication, content category, to…
search_news_articlesArticlesread-onlySearch and filter individual news articles from 200k+ global sources. Use this for finding specific articles by keyword, topic, category, source, location, person, company, journalist, sentiment, or time range. Supports Boolean query syntax (AND, OR, NOT), exact phrases, and wildcards. Returns full article metadata: content/summary, entities, topics, taxonomies, keywords, sentiment, story cluster ID, and matchedAuthors (journalist IDs — feed into search_journalists(journalistIds) to profile who wrote it). A null field here may reflect this key's plan rather than absent data — see get_api_acces…
search_news_storiesStoriesread-onlySearch clustered news stories (headlines) that group related articles across multiple sources into a single narrative. Use this to understand major news events, trending headlines, and story arcs rather than finding individual articles. Filter by category, topic, source, location, person, company, or time range. Returns summaries, key points, unique/total article counts, sentiment, and top topics/categories/people/companies/locations for the cluster. Feed the id into search_story_history to see how the story evolved, or search_news_articles(newsStoryIds) to pull its member articles.
search_peoplePeopleread-onlySearch 650k+ public figures, politicians, celebrities, executives, and newsworthy individuals in the Perigon database. Use this to look up biographical information about specific people or find people by occupation. Filter by name, occupation, or Wikidata ID. Returns biographical profiles with name, aliases, occupation, position, political party, gender, dates of birth/death, and description. Prefer wikidataId over personName on search_news_articles to avoid name ambiguity.
search_sourcesSourcesread-onlySearch 200k+ news publications and media outlets in the Perigon database. Use this to discover or compare news sources by name, domain, location, audience size, or publishing volume. Filter by curated bundles (top10, top100), paywall status, or geographic location. Returns source profiles with domain, monthly visits, top topics covered, and publishing frequency.
search_story_historyStory Historyread-onlySearch story history to track how news stories evolve over time. Returns timestamped snapshots of story clusters including summaries, short summaries, key points, and changelogs. Use this to understand how a story has developed, what changed between updates, and to review the timeline of a news event. Filter by cluster ID, date range, sort order, or changelog presence. Only use this tool instead of search_news_stories tool when you need to understand the history of a story.
search_topicsTopicsread-onlyBrowse and search the Perigon topic taxonomy. Use this to discover available topics for use as filters in other search tools (articles, stories, journalists). Topics are more granular than categories. Filter by name, category, or subcategory. Returns topic names with their category/subcategory classification.
search_vector_newsVector Newsread-onlySemantic search over recent news articles using natural language and vector embeddings. Use this instead of search_news_articles when the query is conversational, conceptual, or intent-based rather than keyword-based (e.g., 'how is AI transforming drug discovery' vs 'AI drug discovery'). Defaults to the last 30 days; override with pubDateFrom/pubDateTo for older coverage. Returns articles ranked by relevance score with content, metadata, and similarity scores.
search_vector_wikipediaVector Wikipediaread-onlySemantic search over Wikipedia pages using natural language and vector embeddings. Use this instead of search_wikipedia when the query is conceptual or conversational rather than keyword-based. Finds pages related by meaning even without exact keyword matches. Returns page summaries, Wikidata IDs, categories, and similarity scores. Filter by viewership with pageviewsFrom/pageviewsTo — there is no boolean has-pageviews filter on this endpoint (unlike search_wikipedia).
search_wikipediaWikipediaread-onlySearch Wikipedia pages using keyword-based queries with advanced filtering. Use this for factual background information, encyclopedia-style lookups, or when you need structured Wikipedia data. Filter by title, summary, content, Wikidata entity IDs, categories, page views, and revision dates. Returns page summaries, URLs, Wikidata IDs, categories, page view statistics, and last modification dates.
set_monitor_statusSet monitor statuscan change or delete dataActivate, pause, or archive a Perigon monitor. ACTIVE starts its processing pipeline, STOPPED pauses it, and ARCHIVED hides it from default lists and cannot be reversed through the public API. Use only when the user explicitly requests the lifecycle change.
signal_insights_create_workspaceInitialize Insights analysisCreate a new Signal Insights analysis workspace. Call this ONCE at the beginning of any conversation that needs data analysis. Returns a workspace handle required by all analysis tools (signal_insights_execute_code, signal_insights_shell, signal_insights_export_events, file tools). Do NOT invent workspace IDs — always use the one returned here.
signal_insights_execute_codeRun Insights codecan change or delete dataExecute Python code inside a persistent sandboxed Jupyter kernel (IPython). State is fully preserved between calls: variables, imports, DataFrames, fitted models, and function definitions all remain in memory. WORKSPACE (/home/user/workspace): default working directory. Use this to create any files you need. DATA (/home/user/workspace/artifacts): S3-backed read-write directory. Query result files appear here automatically. This directory persists across sandbox restarts. OUTPUT (/home/user/workspace/artifacts/output): write user-facing deliverables here (charts, reports, CSVs, exports). Files …
signal_insights_export_eventsExport monitor eventscan change or delete dataExport signal events using a structured query API. No raw SQL — specify signals, fields, filters, aggregations, and ordering. EVENT and MENTIONS signals only — TOPIC (briefing) signals will error; use signal_insights_list_newsletters / signal_insights_read_newsletter instead. Returns a preview of the first rows plus an S3 file path for the full dataset (JSONL). Available fields: eventType, eventDate, createdAt, updatedAt, summary, uuid, data, articles, signalId, or data.<path> for JSONB subfields (e.g. data.companyName). Filter options: eventTypes (list), date ranges (eventDateFrom/To, created…
signal_insights_grepSearch Insights filesread-onlySearch a file's contents for lines matching a regex pattern. Reads the file via the SDK (no shell injection risk). Returns matching lines with line numbers. Use on files up to a few MB; for larger files, use signal_insights_execute_code directly instead.
signal_insights_list_filesList Insights filesread-onlyList files in a directory of the sandbox workspace. Default directory is the workspace root (/home/user/workspace).
signal_insights_list_newslettersList monitor briefingsread-onlyList newsletters (briefings) for a TOPIC signal. Returns title, short excerpt (~500 chars), and timestamps — not full content. Only works for TOPIC signals; EVENT and MENTIONS will error. Use after signal_insights_read_signal confirms classificationType is TOPIC, then call signal_insights_read_newsletter for full content.
signal_insights_preview_chartPreview Insights chartcan change or delete dataRender a chart to the user. Use this whenever you want to DISPLAY a chart — it is the only tool whose output appears in the interactive chart viewer. Runs Python in the SAME persistent Jupyter kernel as signal_insights_execute_code, so variables, imports, and DataFrames computed there are available here. Do data prep/analysis in signal_insights_execute_code; use this tool only for the plotting code. Call plt.show() after the chart. One plt.show() per chart; for multiple charts call this tool separately. No outbound internet access except *.amazonaws.com.
signal_insights_read_fileRead Insights fileread-onlyRead a file from the sandbox workspace. Internally, this reads the full file into memory. Use on files up to a few MB; for larger files, use signal_insights_execute_code directly instead.
signal_insights_read_newsletterRead monitor briefingread-onlyFetch a full newsletter by UUID and return it as markdown (YAML frontmatter + body). Use after signal_insights_list_newsletters to get complete briefing content for context or analysis. Only works for newsletters belonging to TOPIC signals.
signal_insights_read_signalRead monitor detailsread-onlyGet full signal metadata including classificationType and type-specific fields. EVENT/MENTIONS: data schema, event types, event count — use before export_events. TOPIC: newsletterCount and date range — use list_newsletters / read_newsletter.
signal_insights_search_signalsSearch monitorsread-onlySearch for signals by name or monitoring objective. Optional classificationTypes filter: EVENT, MENTIONS, TOPIC (briefings). Omit for all types. Results include classificationType, eventCount, and newsletterCount. Use this to find relevant signals before fetching data. If the search query is not present, this can be used to list all available signals.
signal_insights_shellInsights shellcan change or delete dataRun a bash command in the E2B sandbox environment. Working directory is /home/user/workspace. Query data files are accessible at /home/user/workspace/artifacts. No internet access except *.amazonaws.com.
signal_insights_str_replaceEdit Insights filecan change or delete dataFind and replace a string in a file in the sandbox workspace. Internally, this reads the full file into memory. Use on files up to a few MB; for larger files, use signal_insights_execute_code directly instead.
signal_insights_write_fileWrite Insights filecan change or delete dataWrite content to a file in the sandbox workspace. Creates directories as needed.
source_groupsList, get, or resolve source groupsread-onlyList, get by ID, or resolve by exact name the organization's custom source groups (curated domain bundles usable via the sourceGroup filter, alongside built-ins like top10/top100). Pass id for a single lookup, resolveNames to look up by exact name, or neither to list/search.
summarize_newsSearch Summarizerread-onlyGenerate an AI-powered summary of news coverage matching your filters. Use this when the user wants a synthesized overview or briefing on a topic rather than a list of individual articles. Combines article search with LLM summarization to produce concise, coherent summaries with supporting article citations. Accepts all standard article filters (keywords, categories, topics, sources, dates, locations) plus summarization controls (prompt, model, temperature).
update_monitorUpdate monitorcan change or delete dataPartially update a Perigon monitor's configuration. Omitted fields remain unchanged; query, schema, schedules, entity groups, and contact points are complete replacements when provided. Use set_monitor_status for lifecycle changes.
update_source_groupUpdate source groupcan change or delete dataPartially update a source group. Only provided fields are changed; the domains array is replaced wholesale when provided, not merged. Only use this when the user explicitly asks to modify a source group.
update_watchlistUpdate watchlistcan change or delete dataPartially update a watchlist. Only provided fields are changed; people/companies arrays are replaced wholesale when provided, not merged. Only use this when the user explicitly asks to modify a watchlist.
watchlistsList, get, or resolve watchlistsread-onlyList, get by ID, or resolve by exact name the organization's watchlists (curated people/company lists used to scope monitors and article searches via the watchlist filter). Pass id for a single lookup, resolveNames to look up by exact name, or neither to list/search by nameContains.
Compare and alternatives
Featured in
Signals
- Stars
- 6
- Forks
- 2
- Open issues
- 0
- Last commit
- Oct 23, 2026 (5 days ago)
- Last release
- Sep 24, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.goperigon/perigon-mcp-server- Version
- 1.0.0
- Auth
- Bearer token
- License
- Apache-2.0
- Repository
- github.com/goperigon/perigon-mcp-server
- Website
- dev.perigon.io/docs/mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Perigon MCP server. Agent Mart. https://agentmart.dev/connectors/goperigon-perigon-mcp-server (last updated 2026-10-24)