Documentation

MCP server

MCP is how an AI agent talks to us. Connect it once and your agent can search the corpus, read transcripts, and manage the alerts that watch for you — without you writing any HTTP.

This is the primary way most customers use Sputnik. The dashboard is where you configure things.

Connect it

https://sputnikintelligence.com/mcp

In Claude, add it as a custom connector with that URL. You will be asked to sign in through the browser once; after that your agent acts as you, for your team. Other MCP clients that support remote servers with OAuth work the same way.

The app has a page that walks through this with screenshots: Connect MCP in the sidebar.

MCP and API keys are different credentials

The MCP server authenticates you as a signed-in user; the REST API uses an API key. An API key does not work against /mcp. If your agent runs somewhere it cannot complete a browser sign-in — a cron job, a container — use the REST API.

The tools

Tool names follow one rule, so you can usually guess them rather than look them up:

PrefixMeansExample
search_a query-ranked listsearch_posts
list_a plain list, no rankinglist_posts
get_one entity, by slugget_post
create_ update_ delete_act on one entitycreate_alert
add_ remove_membership only — which publications sit in a collectionadd_sources_to_collection

Every tool is one-to-one with a REST endpoint. There is no operation available on one surface and not the other, and a test fails the build if that stops being true.

Reading the corpus

  • search_posts — full-text search over everything, ranked by relevance or recency.
  • list_posts — a chronological feed, scoped to one collection, publication, person, topic or sponsor.
  • get_post — one post in full.
  • get_transcript — a podcast episode as paged speaker turns, with real names.
  • search_people, get_person — authors, hosts and guests.
  • search_sources, get_source — the publications we index.
  • search_topics, get_topic — what the corpus is about.
  • search_sponsors, get_sponsor — who is advertising, and where.

Organising and monitoring

  • list_collections, get_collection, create_collection, update_collection, delete_collection, add_sources_to_collection, remove_sources_from_collection
  • list_projects, get_project, create_project, update_project, delete_project
  • list_alerts, get_alert, create_alert, update_alert, delete_alert
  • list_alert_searches, create_alert_search, update_alert_search, delete_alert_search
  • list_alert_destinations, create_alert_destination, delete_alert_destination
  • list_team_webhooks, create_team_webhook, update_team_webhook, delete_team_webhook
  • list_alert_hits — what your alerts have found.

Things worth telling your agent

Search returns slugs; get_ returns detail. A search result is a pointer, deliberately — returning full bodies would fill an agent's context with text it did not ask for. Fetch the ones that matter.

Link things by their sputnik_url. Every entity carries one. Use it verbatim rather than building a URL from the slug, so a rendered answer is clickable.

A podcast's words come from get_transcript. They are not on the post — get_post returns text_content for a newsletter or a blog post, and for an episode the words are in the transcript.

Follow next_cursor until it is null. Every list is paged the same way. The two exceptions, search_topics and search_sponsors, are capped rather than paged and say so.

Rate limits and usage

MCP tool calls count against the same daily allowance as REST calls — see Rate limits. Listing the tools is free; only actual calls count.