
Guardian Mcp Server
io.github.cyanheads由 GitHub 账号 cyanheads 发布v0.2.0更新于 Oct 24, 2026
Guardian Open Platform: search and retrieve full article text from The Guardian archive.
概览
通过《卫报》开放平台 API 检索、浏览并获取《卫报》档案(1999 年至今)的全文文章。
- 可以做什么
- 用布尔查询、栏目、标签、作者和日期筛选检索文章,并支持排序与分页
- 按路径 slug ID 获取单篇文章,返回去除 HTML 的正文、元数据和作者信息
- 按栏目或标签浏览最新内容,并列出可用栏目与标签以发现筛选条件
- 适用场景
- 适合助手需要《卫报》报道做研究、新闻摘要、引文或来源收集,或按栏目、标签、作者整理筛选后的阅读清单时使用。
- 运行要求
- 通过 npx、bunx 或 Docker 在本地运行;使用包方式需 Bun v1.4.0+ 或 Node.js v24+。需要 GUARDIAN_API_KEY 中的免费《卫报》开放平台 API 密钥,并能访问《卫报》API 的网络。可选配置涵盖传输方式、HTTP 主机与端口、认证模式、日志和 OpenTelemetry。
安装
在 SourceWeft 中
- 打开 控制台中的 Guardian Mcp Server,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
@cyanheads/guardian-mcp-server
Search, browse, and retrieve full article text from The Guardian's journalism archive (1999–present) via MCP. STDIO or Streamable HTTP.
Overview
The Guardian's journalism archive, 1999 to today. Search full text, browse by section or tag, and fetch individual articles.
Tools
Capability reference
guardian_search_articles tool
- Boolean
querysyntax (AND/OR/NOT, quoted phrases), optionalsection/tag/contributorandfrom_date/to_date(YYYY-MM-DD) filters;order_by:relevance(default),newest, oroldest;page+page_size(1–50, default 10) - Articles carry metadata, HTML-stripped body text and a
truncatedflag; results includetotal,page,pages,page_size, andorder_by - Fails with
no_resultsorinvalid_date(dates must be real calendar dates) tagaccepts comma (AND), pipe|(OR), hyphen-(NOT), and parentheses, e.g.environment/climate-crisis|environment/flooding. Wrap an OR expression in parentheses when also passingcontributor.
guardian_get_article tool
- Required
article_id: the path-slugidreturned byguardian_search_articlesorguardian_browse_content - Returns HTML-stripped body text, metadata, contributors, pillar/section classification, and
truncated - Fails with
not_found
guardian_browse_content tool
- Four
modevalues:section_latest(requiressection_id),tag_latest(requirestag_id),list_sections,list_tags;page+page_size(1–50, default 10) for articles and tags list_tagsfilters by optionalqueryandtag_type(keyword,contributor,blog,series,tone,type,publication,newspaper-book,newspaper-book-section); output carriesmode,total, and the matchingresults/sections/tagsarray- Fails with
missing_section_id,missing_tag_id,section_not_found, ortag_not_found.tag_idaccepts the same boolean expressions as search'stag.
All three tools also fail with status-specific HTTP errors. Not retryable: unauthorized (401), access_denied (403), request_rejected (400), validation_failed (422), invalid_request, request_conflict, request_not_found, and api_unsupported (501). Retryable: api_timeout (408/425/504), rate_limited (429), and api_error (other 5xx). Each error carries a recovery hint.
Features
Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
Guardian-specific:
- Wraps the Guardian Open Platform API with a free non-commercial developer key
- Full body text extraction — HTML stripped, not just headlines or abstracts
- Contributor ID discovery via
guardian_browse_contentmodelist_tagswithtag_type=contributor - Section and tag taxonomy browsing (
list_sections,list_tags) for filter discovery before searching - Free tier: 5,000 requests/day, 12 calls/second — the server applies no additional throttling
Agent-friendly output:
- Search and article-returning browse modes cap previews at 2,000 words and set
truncated; callguardian_get_articlefor the full text - Typed error reasons across all three tools, each paired with a recovery hint
total/page/pageson every paginated response so callers can track result scope
Getting started
Add the following to your MCP client configuration file. Register for a free Guardian Open Platform API key at open-platform.theguardian.com/access.
Or with npx (no Bun required):
Or with Docker:
For Streamable HTTP, set the transport and start the server:
Prerequisites
- Bun v1.4.0 or higher (or Node.js v24+).
- A free Guardian Open Platform API key — register at open-platform.theguardian.com/access. The non-commercial developer tier is free and instant.
Installation
- Clone the repository:
- Navigate into the directory:
- Install dependencies:
- Configure environment:
Configuration
See .env.example for the full list of optional overrides.
Running the server
Local development
-
Build and run:
-
Run checks and tests:
Docker
The Dockerfile defaults to HTTP transport, stateless session mode, and logs to /var/log/guardian-mcp-server. OpenTelemetry peer dependencies are installed by default — build with --build-arg OTEL_ENABLED=false to omit them.
Project structure
Development guide
See CLAUDE.md / AGENTS.md for development guidelines and architectural rules. The short version:
- Handlers throw, framework catches — no
try/catchin tool logic - Use
ctx.logfor request-scoped logging,ctx.statefor tenant-scoped storage - Register new tools in the
createApp()toolsarray insrc/index.ts - Wrap external API calls: validate raw → normalize to domain type → return output schema; never fabricate missing fields
Contributing
Issues are welcome. Run checks and tests before submitting:
License
Apache-2.0 — see LICENSE for details.
Powered by The Guardian.
来源:README.md,提交 dba8632
工具
0版本历史
4- v0.2.0最新Oct 16, 2026
- v0.1.5Oct 8, 2026
- v0.1.4Sep 22, 2026
- v0.1.3Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分