BedrockNews

GRIN-scored news for agents: discover by verdict, pull full analysis, traverse extraction graphs.

Should I use this

Quality & Safety

A
Description quality
92%
Schema completeness
75%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_related' description lacks action verbin get_related

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~932Tokens (tool definitions)
~794 BTypical response size
Moderate attention impact (0.73% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "news": {
      "url": "https://api.bedrocknews.com/api/mcp"
    }
  }
}

Remote endpoints

https://api.bedrocknews.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_stories(query, category, verdict, editorialMode, plumbMin, ...)

Discover BedrockNews stories with GRIN-aware filters. Filter by verdict ('extractive' | 'mixed' | 'generative'), plumb range (0-100 analytical-clarity score), editorialMode ('grin' news/politics | 'culture' | 'research' | 'ledger'), category (see list_categories), date window (since/before, ISO 8601), or a title search (substring match on titles, not full text). Sorted newest first; paginated via cursor. Returns compact story briefs — use get_article for full analysis.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional title search (substring match)"
    },
    "category": {
      "type": "string",
      "description": "Category id filter (e.g. 'politics', 'research')"
    },
    "verdict": {
      "type": "string",
      "enum": [
        "extractive",
        "mixed",
        "generative"
      ],
      "description": "GRIN verdict filter, derived from grinScores.extractive"
    },
    "editorialMode": {
      "type": "string",
      "enum": [
        "grin",
        "culture",
        "research",
        "ledger"
      ],
      "description": "Filter to one editorial framework"
    },
    "plumbMin": {
      "type": "number",
      "description": "Minimum plumb (0-100)"
    },
    "plumbMax": {
      "type": "number",
      "description": "Maximum plumb (0-100)"
    },
    "since": {
      "type": "string",
      "description": "Only stories published at/after this ISO 8601 date"
    },
    "before": {
      "type": "string",
      "description": "Only stories published before this ISO 8601 date"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous call"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default 15, max 50)"
    }
  }
}
🟢get_article(id, fields)

Fetch one BedrockNews story by id. Returns the transformed article plus its full structured analysis (GRIN scores, extraction graph, key stats, trajectory, what-to-watch). Pass fields:'grin' to get just the analysis payload without the heavy body text. Story ids contain slashes (e.g. 'ledger/2026/apr/06/iran-war-math-doesnt-work') — pass them verbatim.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The story id, verbatim (ids contain slashes)"
    },
    "fields": {
      "type": "string",
      "description": "Optional projection: 'grin' for the analysis-only view"
    }
  },
  "required": [
    "id"
  ]
}
🟢get_extraction_graph(id)

Return a story's extraction map as a real graph — nodes + edges data, not a picture. This is the load-bearing artifact for agents: re-render it in any style, or analyze who extracts value from whom. 'Not found' can mean the story has no graph (culture/research modes, or older transforms).

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The story id, verbatim (ids contain slashes)"
    }
  },
  "required": [
    "id"
  ]
}
🟢get_related(id, limit)

Related BedrockNews stories for a given article — same section, ranked by editorial-mode match, plumb, source affinity, and recency.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The source story id"
    },
    "limit": {
      "type": "number",
      "description": "Max related stories (default 4, max 12)"
    }
  },
  "required": [
    "id"
  ]
}
🟢list_categories

The BedrockNews category taxonomy: ids (valid values for list_stories' category filter), display names, and which editorial framework each category runs (grin | culture | auto).

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_site_info

BedrockNews metadata: what the site is, how the GRIN/CLAIMS/NOVEL frameworks work, terms of use + attribution, and every machine-readable surface. Also returns the full capability map (every tool, prompt, and resource) — call this first.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools