The Stochastic Parrot

io.github.portneymkPublished by GitHub account portneymkv1.1.0Updated Oct 24, 2026

Span-grounded audits of how US outlets covered the same story, quotes checkable at the source.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingKnowledge & Memory

Overview

AI-generated overview

Lets an assistant audit how US news outlets covered the same story, with quotes grounded in spans that can be checked at the source.

What you can do
The Stochastic Parrot provides span-grounded audits of how US outlets covered the same story. Its output ties quoted material to specific spans so a reader can verify the quote at the source. The manifest lists no tools, so the exact operations are not documented here.
When to use it
Useful when comparing coverage of one story across US outlets and when you need quotes that can be traced back and checked rather than paraphrased. Less relevant if you need general web search or non-US sources.
Requirements
A remote streamable HTTP endpoint at the provider's site; no packages, environment variables, or headers are declared. The manifest declares no authentication, and no account or API key is listed.
Before you install
The manifest declares no authentication and no credentials, so nothing secret is requested by name. The service is third-party and remote: queries and any story text you submit go to the provider. Verify quoted spans at the original source before relying on them.

Installation

In SourceWeft

  1. Open The Stochastic Parrot in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.portneymk%2Fstochastic-parrot/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "the-stochastic-parrot": {
      "type": "http",
      "url": "https://thestochasticparrot.com/api/mcp"
    }
  }
}

Tools

16

whats_new

The desk's change window: the 20 most recently published pieces, newest first, with the desk's own dek, its computed split counts, and the story-chain ids each piece belongs to. This is the cheap 'what moved since I last looked' call — a few KB, not the multi-megabyte /feed.json — so a scheduled agent can poll it safely. Filter by date, kind, or chain. For anything older than the window, use list_audits with a date range.

Parameterskindchainlimitsince

search_corpus

Full-text search over every published piece (titles, deks, context lines, outlet names, and source headlines). Returns matching pieces with slug, title, URL, and a highlighted snippet, best matches first. Use the slug with get_audit for full detail.

Parameterslimitqueryrequired

get_audit

Fetch one piece's full detail JSON by slug: headline, kind, date, context, dek, outlets, verified contradictions with verbatim spans, naming/framing splits, and the full source list. Slugs come from search_corpus or list_audits.

Parametersslugrequired

list_audits

List published pieces (summaries: slug, title, kind, date, counts of hard contradictions and naming/framing splits), newest first. All filters optional and combinable.

Parameterskindlimitsinceuntiloutlet

list_corrections

The desk's public corrections ledger: every logged error on a published piece — what was wrong, what changed, and when — in original ledger order.

Takes no parameters.

get_chain

Story chains: multi-piece storylines the desk has covered more than once. Call without arguments to list the available chain ids; pass chain_id for one chain in full (its pieces in order, claim ledger, and reopen conditions).

Parameterschain_id

verify_piece

Provenance record for one piece: SHA-256 hashes of its canonical JSON and published HTML as of the last corpus sync. Re-hash the live artifacts at the piece's URL and compare to confirm what you read is what the desk published.

Parametersslugrequired

get_framing_index

The Framing Index: across the cross-outlet corpus, how often disagreements between outlets are hard contradictions vs naming/framing splits — totals, rate, monthly trend, per-outlet appearances. The desk's core longitudinal measurement.

Takes no parameters.

get_coverage_record

The capture-coverage record: what the desk's observatory actually monitored and when, including gaps. Read this before treating any silence in the corpus as meaningful — the desk's own rule.

Takes no parameters.

get_claim_ledger

A story chain's claim ledger: specific verbatim claims outlets made, each tracked through states (open, corroborated, contradicted, corrected, quietly_abandoned, resolved) with a receipt for every transition. Empty claims list = the desk has not logged claims for that chain yet.

Parameterschainrequired

get_storyboards

A chain's per-newsroom storyboards: for each outlet, every piece it filed on the story entry-by-entry, the desk's published READ of what each piece was built to do (objective label, motive with its mandatory innocent read, confidence), the label arc, and the desk's 'story, as built' synthesis where one exists.

Parameterschainrequired

list_letters

Letters to the Desk: reader mail, excerpted and initialed, with the desk's replies in its own voice. The desk's only interactive surface with its readership.

Takes no parameters.

get_boxscore

The Daily Box Score for one day — the desk's frozen per-day stat snapshot. Requires the day; days are listed at /boxscore/ on the site.

Parametersdayrequired

submit_letter

Submit a letter to the desk. If the desk answers, the exchange may be published on the Letters page (excerpted, initialed) — through the desk's normal editorial process, never directly. Requires the reader key.

Parameterskeyrequiredfromtextrequired

report_error

Report a suspected error in a published piece (a miscount, a quote that reads wrong, a broken claim). Verified catches are fixed and logged on the public corrections ledger, credited 'Caught by a reader.' Requires the reader key.

Parameterskeyrequiredslugdescriptionrequired

propose_development

Tip the desk that a story moved — a development on an existing chain or a story worth auditing. Lands in the same proposed-developments queue the observatory's triggers feed; the desk decides what, if anything, to file. Requires the reader key.

Parameterskeyrequiredtiprequiredchain

Version history

1
  1. v1.1.0LatestSep 16, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.