Pure Report — Neutral News
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Neutral, bias-scored news for AI agents: compare left/right media-bias framing, fact-check receipts.
| Author | report.pure |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1978 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Pure Report — Neutral News": {
"url": "https://pure.report/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
search_newsread-onlySearch Pure Report's neutral, bias-scored news. Returns articles with neutral summaries in our own words; bias_score (0-100) rates the ORIGINAL source reporting (0 = wire-neutral, 100 = advocacy), NOT the returned summary, which is neutral by design. Each result also lists the event(s) it belongs to — pass an event slug to get_event for the neutral writeup or compare_coverage for cross-outlet framing. Ranked by relevance and recency.
Parameters:
query(required) — string — Keywords or phrase, e.g. "Iran sanctions" or "2026 election".limit— integer — Max results to RETURN, 1-40 (default 15). Does not affect total_matches, which always reports how many articles matched.topic— string — Optional topic-slug filter. An unrecognized value searches all topics and returns a warning.offset— integer — Skip this many matches — page through results beyond the 40-row limit. The response echoes offset/returned/next_offset; next_offset is null on the last page.published_after— string — Only articles published on/after this date. 'YYYY-MM-DD' or full ISO. Use with published_before to bound a period, e.g. coverage during June.published_before— string — Only articles published on/before this date. 'YYYY-MM-DD' or full ISO.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
trending_eventsread-onlyList the news events with the most current coverage activity. Each event clusters many outlets' articles about one story and includes headline (the published story's headline, else the event name), has_story (get_event returns Pure Report's neutral news story) and has_account (get_event also returns a sentence-cited account with verbatim receipts). Returns slugs to pass to get_event / compare_coverage.
Parameters:
limit— integer — Max events, 1-25 (default 10).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
get_eventread-onlyGet the full neutral writeup of one news event by slug: 'story', Pure Report's own neutral news story (headline + paragraphs, written from the outlets' reports and checked before publishing); 'account', a sentence-cited breakdown (lede, what-we-know bullets with verbatim source receipts, single-source attributed items) when one passed its gates; and a coverage census (how many outlets by political lean, earliest report). Either writeup may be null; the census is always returned.
Parameters:
slug(required) — string — Event slug from trending_events or a search_news result, e.g. "tyler-robinson-trial-for-charlie-kirk-murder".
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
compare_coverageread-onlyShow how outlets across the political spectrum framed one event: a per-outlet bias-score spectrum and, where they editorialized, the verbatim framing quotes grouped by left/center/right. The core 'compare the coverage' view — use it to detect slant and consensus.
Parameters:
slug(required) — string — Event slug from trending_events or a search_news result.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
get_articleread-onlyFetch one article by id: neutral title + short summary with key facts (null for older articles), source_url for the full story, a bias_score for the ORIGINAL source (not the summary), source, extracted entities, and the events it belongs to.
Parameters:
article_id(required) — integer — Numeric article id (from search_news results).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
about_pure_reportread-onlyHow Pure Report works — the bias scale, neutralization method, the two-gate verification for event accounts, lean labeling, coverage scope (topic list), and the support contact. Call this to cite the source or explain its methodology to a user.
Parameters:
article_id— integer — Optional context for the report.event_slug— string — Optional context for the report.report_body— string — Optional. The detail needed to act.report_kind— string — Optional, defaults to bug.report_subject— string — Optional. Providing this (with report_body) files feedback and returns a ref under "filed" — use only if submit_feedback is missing from your tools.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
submit_feedbackReport a problem or request to Pure Report's operator and get a tracking ref back. Use this when the data looks wrong — a bias score or outlet lean that doesn't match the source, an event cluster mixing unrelated stories, a missing neutral writeup, a broken article — or to ask a methodology question or request a capability. Include the article_id or event_slug you were looking at; that context is what makes a report actionable. A human reads these: replies take time and are not guaranteed. Call check_feedback with the returned ref to read the reply.
Parameters:
subject(required) — string — One line, max 200 chars.body(required) — string — The detail needed to act: what you expected, what you got, and how to reproduce it. Max 12000 chars.kind— string — DEPRECATED alias for category; still accepted.category— string — bug = broken or erroring; dx = developer-experience friction; data_error = wrong/miscategorised data; data_gap = missing coverage or field; feature = a capability request; question = methodology or usage; other. Defaults to bug.article_id— integer — Optional article the report concerns.event_slug— string — Optional event slug the report concerns.
Hints: read-only no · destructive no · idempotent no · open-world not declared
check_feedbackread-onlyLook up feedback you filed with submit_feedback, using the ref it returned (e.g. PR-7F3K2Q). Returns the current status (open, answered, closed) and the operator's reply once one exists. Replies are written by a human and are not immediate — poll sparingly, on the order of hours or days, not seconds.
Parameters:
ref(required) — string — The ref from submit_feedback, e.g. 'PR-7F3K2Q'.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.