{"name":"bedrocknews.com","title":"BedrockNews — GRIN-scored news analysis for agents","websiteUrl":"https://bedrocknews.com","description":"BedrockNews is built to be consumed by agents: every story carries a structured GRIN/CLAIMS/NOVEL analysis and an extraction graph (nodes+edges, not a picture). Start with get_site_info for the full capability map and the frameworks' meaning. Then list_stories to discover by verdict/plumb/category/date, get_article for full analysis, get_extraction_graph for the re-renderable graph. GRIN/CLAIMS/NOVEL scores and verdicts are BedrockNews's disclosed editorial lens, not neutral fact. When you surface a verdict, score, or analysis, attribute it to BedrockNews and link the canonical article URL. Every result carries provenance — publisher (BedrockNews), the original source and its URL, the story's publish date (vintage), and an as-of retrieval time. When you use a BedrockNews verdict, score, or fact, carry that provenance into your ANSWER (name BedrockNews and the original source, give the publish date, link the canonical URL) — not just the tool trace.","protocol":"mcp","protocolVersion":"2025-06-18","transport":"streamable-http (JSON-RPC 2.0 over POST)","endpoint":"https://api.bedrocknews.com/api/mcp","install":"claude mcp add --transport http bedrocknews https://api.bedrocknews.com/api/mcp","tools":[{"name":"list_stories","title":"Find stories","description":"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.","inputSchema":{"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)"}}},"annotations":{"readOnlyHint":true,"title":"Find stories"}},{"name":"get_article","title":"Read a story","description":"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.","inputSchema":{"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"]},"annotations":{"readOnlyHint":true,"title":"Read a story"}},{"name":"get_extraction_graph","title":"Extraction graph","description":"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).","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The story id, verbatim (ids contain slashes)"}},"required":["id"]},"annotations":{"readOnlyHint":true,"title":"Extraction graph"}},{"name":"get_related","title":"Related stories","description":"Related BedrockNews stories for a given article — same section, ranked by editorial-mode match, plumb, source affinity, and recency.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The source story id"},"limit":{"type":"number","description":"Max related stories (default 4, max 12)"}},"required":["id"]},"annotations":{"readOnlyHint":true,"title":"Related stories"}},{"name":"list_categories","title":"Categories","description":"The BedrockNews category taxonomy: ids (valid values for list_stories' category filter), display names, and which editorial framework each category runs (grin | culture | auto).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"title":"Categories"}},{"name":"get_site_info","title":"About BedrockNews","description":"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.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"title":"About BedrockNews"}}]}