Skip to main content
Glama
jbenton

guardian-mcp-server

by jbenton
README.md
# Guardian MCP Server

An MCP server that connects an LLM to the archives (since 1999) of [The Guardian](https://www.theguardian.com/), including the full text of all articles — more than 1.9 million of them. Useful for real-time headlines, journalism analysis, and historical research.

## Installation

**A [Guardian Open Platform](https://open-platform.theguardian.com/) API key is required.** You can get one here: https://open-platform.theguardian.com/access/

The Guardian offers generous API access for *non-commercial* use of the archives, including up to 1 call/second and 500 calls/day. (See the full [Terms & Conditions](https://www.theguardian.com/open-platform/terms-and-conditions). Commercial use requires a [different license](https://bonobo.capi.gutools.co.uk/register/commercial).) 

**To install:**
```bash
npx guardian-mcp-server
```

**Sample MCP client configuration:**
```json
{
  "mcpServers": {
    "guardian": {
      "command": "npx",
      "args": ["guardian-mcp-server"],
      "env": {
        "GUARDIAN_API_KEY": "your-key-here"
      }
    }
  }
}
```

## Tool reference

`guardian_search`: search the archive for articles

Use the`detail_level` parameter to determine the size of the API response and optimize performance: `minimal` (headlines only), `standard` (headlines, summaries, and metadata), or `full` (all content, including full article text).

```json
{
  "query": "climate change",
  "section": "environment", 
  "detail_level": "minimal",
  "from_date": "2024-01-01",
  "order_by": "newest"
}
```

`guardian_get_article`: retrieve individual articles
```json
{
  "article_id": "https://www.theguardian.com/politics/2024/dec/01/example", 
  "truncate": false  // full content by default
}
```
`guardian_search_tags`: search through The Guardian's 50,000-plus hand-assigned tags

`guardian_find_related`: find articles similar to an article (via shared tags)

`guardian_get_article_tags`: returns tags assigned to any article

```json
{
  "article_id": "politics/2024/example"
}
```

`guardian_lookback`: historical search by date

`guardian_content_timeline`: analyze Guardian content on a particular topic over a defined period

```json
{
  "query": "artificial intelligence",
  "from_date": "2024-01-01",
  "to_date": "2024-06-30", 
  "interval": "month"
}
```

`guardian_top_stories_by_date`: estimates editorial importance; The Guardian's API doesn't natively return data to differentiate between Page 1 stories and inside briefs, and this tries to hack a ranking together

```json
{
  "date": "2016-06-24",  // Brexit referendum day
  "story_count": 5
}
```

`guardian_topic_trends`: compare multiple topics over time with correlation analysis and competitive rankings

```json
{
  "topics": ["artificial intelligence", "climate change", "brexit"],
  "from_date": "2023-01-01",
  "to_date": "2024-12-31",
  "interval": "quarter"
}
```

`guardian_author_profile`: generate profiles of Guardian journalists and what they cover

```json
{
  "author": "George Monbiot",
  "analysis_period": "2024"
}
```

`guardian_longread`: search The Long Read series, the paper's home for longform features

`guardian_browse_section`: browse recent articles from specific sections

`guardian_get_sections`: fetch all available Guardian sections

`guardian_search_by_length`: filter articles by word count

`guardian_search_by_author`: search articles by byline

`guardian_recommend_longreads`: get personalized Long Read recommendations based on interest

```json
{
  "count": 3,
  "context": "I'm researching technology, especially AI",
  "topic_preference": "digital culture"
}
```

## License

MIT license.

TDQS

B3.4/5.0

Scored across 16 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between search-related tools (e.g., guardian_search, guardian_search_by_author, guardian_search_by_length) that could cause minor confusion, though their descriptions help differentiate them. Tools like guardian_get_article and guardian_get_article_tags are clearly separate, and others like guardian_content_timeline and guardian_topic_trends serve unique analytical functions.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a 'guardian_' prefix, using clear verb_noun combinations (e.g., guardian_browse_section, guardian_search_tags). This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming style or structure.

Tool Count4/5

With 16 tools, the count is slightly high but reasonable for a server focused on Guardian content access and analysis, covering browsing, searching, and trend analysis. It might feel a bit heavy, but each tool appears to serve a specific function without obvious redundancy, fitting the domain's scope.

Completeness5/5

The tool set provides comprehensive coverage for interacting with Guardian content, including retrieval (get_article), browsing (browse_section, get_sections), searching (search, search_by_author, search_by_length), analysis (content_timeline, topic_trends), and specialized features (longread, recommend_longreads). There are no apparent gaps for the stated purpose, enabling agents to perform a wide range of tasks without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues