Guardian Open Platform β search and retrieve full article text from The Guardian archive.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Search, browse, and retrieve full article text from The Guardian's journalism archive (1999βpresent) via MCP. STDIO or Streamable HTTP.
A free Guardian Open Platform API key is required. Register at https://open-platform.theguardian.com/access β the non-commercial developer tier is free. Set it as
GUARDIAN_API_KEYin your MCP client config or.envfile. The server will not start without it.Rate limits (free tier): 5,000 requests/day, 12 calls/second. The server applies no additional throttling β stay within these bounds.
Three tools for working with The Guardian's journalism archive:
| Tool | Description |
|---|---|
guardian_search | Full-text search across The Guardian's archive (1999βpresent) with optional section, tag, contributor, and date filters. Returns articles with full body text (HTML stripped, truncated at 2,000 words). |
guardian_get_article | Fetch a single Guardian article by its ID (path slug) with full body text and all metadata. Use after guardian_search to retrieve the complete untruncated text. |
guardian_browse | Browse The Guardian's content by section or tag, or discover available sections and tags. Four modes: section_latest, tag_latest, list_sections, list_tags. |
guardian_searchFull-text search with structured filters across the entire Guardian archive.
from_date, to_date)guardian_get_article for complete textrelevance (default), newest, or oldestpage + page_size (1β50 per page)guardian_get_articleFetch one article by its Guardian path-slug ID.
article_id from guardian_search results β the id field, e.g. "world/2024/mar/01/ukraine-war-latest"truncated: true in the response means the body still exceeded 2,000 words after fetchingguardian_browseBrowse and discover Guardian content β four modes in one tool.
section_latest: newest articles from a section (requires section_id)tag_latest: newest articles carrying a tag (requires tag_id)list_sections: returns all Guardian sections as a flat list β use to discover valid section_id valueslist_tags: searches the tag taxonomy with optional query and tag_type filter β use to discover contributor IDs (tag_type=contributor), keyword tags, series, and moreBuilt on @cyanheads/mcp-ts-core:
none, jwt, oauthin-memory, filesystem, Supabase, Cloudflare KV/R2/D1Guardian-specific:
guardian_browse mode list_tags + tag_type=contributorAgent-friendly output:
guardian_get_article for the restunauthorized, no_results, not_found, invalid_date, api_error) with recovery hints for each casetotal, page, and pages on all paginated responses so agents can communicate result scopeguardian_search β echoes the query and suggests how to broadenA
GUARDIAN_API_KEYis required. Register for the free non-commercial developer key at https://open-platform.theguardian.com/access.
Add the following to your MCP client configuration file:
Or with npx (no Bun required):
Or with Docker:
For Streamable HTTP, set the transport and start the server:
| Variable | Description | Default |
|---|---|---|
GUARDIAN_API_KEY | Required. Free developer key from open-platform.theguardian.com/access. | β |
MCP_TRANSPORT_TYPE | Transport: stdio or http. | stdio |
MCP_HTTP_PORT | Port for HTTP server. | 3010 |
MCP_AUTH_MODE | Auth mode: none, jwt, or oauth. | none |
MCP_LOG_LEVEL | Log level (RFC 5424). | info |
LOGS_DIR | Directory for log files (Node.js only). | <project-root>/logs |
STORAGE_PROVIDER_TYPE | Storage backend. | in-memory |
OTEL_ENABLED | Enable OpenTelemetry instrumentation (spans, metrics, completion logs). | false |
See .env.example for the full list of optional overrides.
Build and run:
Run checks and tests:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/guardian-mcp-server)<a href="https://allmcps.com/mcp/guardian-mcp-server"><img src="https://allmcps.com/api/badge/guardian-mcp-server?style=directory" alt="Guardian MCP Server on AllMCPs" /></a>