{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_yjj7x9p2rrdv","handle":"the-stochastic-parrot","url":"https://wellknown.network/agents/the-stochastic-parrot","links":{"self":"https://wellknown.network/agents/the-stochastic-parrot/record.json","html":"https://wellknown.network/agents/the-stochastic-parrot","markdown":"https://wellknown.network/agents/the-stochastic-parrot/record.md","api":"https://wellknown.network/api/v1/agents/the-stochastic-parrot","status":"https://wellknown.network/api/v1/agents/the-stochastic-parrot/status","claim":"https://wellknown.network/agents/the-stochastic-parrot/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/the-stochastic-parrot/claim.json","badge":"https://wellknown.network/agents/the-stochastic-parrot/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:thestochasticparrot.com:server:the-stochastic-parrot","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"The Stochastic Parrot","summary":"Span-grounded audits of how US outlets covered the same story, quotes checkable at the source.","description":"Span-grounded audits of how US outlets covered the same story, quotes checkable at the source.","publisher":{"name":"portneymk","url":null},"homepage":"https://thestochasticparrot.com/connect/","repository":null,"version":"1.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://thestochasticparrot.com/api/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-08-28T11:15:58.655518Z","publishedAt":"2026-08-28T11:15:58.655518Z","registryName":"io.github.portneymk/stochastic-parrot"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.859,"provenance":"derived"},{"slug":"data.news","name":"News & Feeds","confidence":0.54,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":0.525,"provenance":"derived"}],"categories":["commerce","data","finance"]},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-09-07T23:24:23.551Z","lastProbedAt":"2026-09-07T23:24:23.551Z","statusComputedAt":"2026-09-07T23:34:38.236Z","reliability30d":{"probes":4,"successRate":1,"p50Ms":105},"latestObservations":[{"at":"2026-09-08T06:24:57.991Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":92,"error":null,"detail":{"tools":[{"name":"search_corpus","description":"Full-text search over every published piece (titles, deks, context lines, outlet names, and source headlines). Returns matching pieces with slug, title, URL, an"},{"name":"get_audit","description":"Fetch one piece's full detail JSON by slug: headline, kind, date, context, dek, outlets, verified contradictions with verbatim spans, naming/framing splits, and"},{"name":"list_audits","description":"List published pieces (summaries: slug, title, kind, date, counts of hard contradictions and naming/framing splits), newest first. All filters optional and comb"},{"name":"list_corrections","description":"The desk's public corrections ledger: every logged error on a published piece — what was wrong, what changed, and when — in original ledger order."},{"name":"get_chain","description":"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"},{"name":"verify_piece","description":"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 U"},{"name":"get_framing_index","description":"The Framing Index: across the cross-outlet corpus, how often disagreements between outlets are hard contradictions vs naming/framing splits — totals, rate, mont"},{"name":"get_coverage_record","description":"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 mea"},{"name":"get_claim_ledger","description":"A story chain's claim ledger: specific verbatim claims outlets made, each tracked through states (open, corroborated, contradicted, corrected, quietly_abandoned"},{"name":"get_storyboards","description":"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"},{"name":"list_letters","description":"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."},{"name":"get_boxscore","description":"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."},{"name":"submit_letter","description":"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"},{"name":"report_error","description":"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 correc"},{"name":"propose_development","description":"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 "}],"toolCount":15,"serverName":"stochastic-parrot","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T23:24:23.551Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":80,"error":null,"detail":{"tools":[{"name":"search_corpus","description":"Full-text search over every published piece (titles, deks, context lines, outlet names, and source headlines). Returns matching pieces with slug, title, URL, an"},{"name":"get_audit","description":"Fetch one piece's full detail JSON by slug: headline, kind, date, context, dek, outlets, verified contradictions with verbatim spans, naming/framing splits, and"},{"name":"list_audits","description":"List published pieces (summaries: slug, title, kind, date, counts of hard contradictions and naming/framing splits), newest first. All filters optional and comb"},{"name":"list_corrections","description":"The desk's public corrections ledger: every logged error on a published piece — what was wrong, what changed, and when — in original ledger order."},{"name":"get_chain","description":"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"},{"name":"verify_piece","description":"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 U"},{"name":"get_framing_index","description":"The Framing Index: across the cross-outlet corpus, how often disagreements between outlets are hard contradictions vs naming/framing splits — totals, rate, mont"},{"name":"get_coverage_record","description":"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 mea"},{"name":"get_claim_ledger","description":"A story chain's claim ledger: specific verbatim claims outlets made, each tracked through states (open, corroborated, contradicted, corrected, quietly_abandoned"},{"name":"get_storyboards","description":"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"},{"name":"list_letters","description":"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."},{"name":"get_boxscore","description":"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."},{"name":"submit_letter","description":"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"},{"name":"report_error","description":"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 correc"},{"name":"propose_development","description":"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 "}],"toolCount":15,"serverName":"stochastic-parrot","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T16:26:12.546Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":103,"error":null,"detail":{"tools":[{"name":"search_corpus","description":"Full-text search over every published piece (titles, deks, context lines, outlet names, and source headlines). Returns matching pieces with slug, title, URL, an"},{"name":"get_audit","description":"Fetch one piece's full detail JSON by slug: headline, kind, date, context, dek, outlets, verified contradictions with verbatim spans, naming/framing splits, and"},{"name":"list_audits","description":"List published pieces (summaries: slug, title, kind, date, counts of hard contradictions and naming/framing splits), newest first. All filters optional and comb"},{"name":"list_corrections","description":"The desk's public corrections ledger: every logged error on a published piece — what was wrong, what changed, and when — in original ledger order."},{"name":"get_chain","description":"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"},{"name":"verify_piece","description":"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 U"},{"name":"get_framing_index","description":"The Framing Index: across the cross-outlet corpus, how often disagreements between outlets are hard contradictions vs naming/framing splits — totals, rate, mont"},{"name":"get_coverage_record","description":"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 mea"},{"name":"get_claim_ledger","description":"A story chain's claim ledger: specific verbatim claims outlets made, each tracked through states (open, corroborated, contradicted, corrected, quietly_abandoned"},{"name":"get_storyboards","description":"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"},{"name":"list_letters","description":"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."},{"name":"get_boxscore","description":"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."},{"name":"submit_letter","description":"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"},{"name":"report_error","description":"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 correc"},{"name":"propose_development","description":"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 "}],"toolCount":15,"serverName":"stochastic-parrot","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T09:28:57.906Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":107,"error":null,"detail":{"tools":[{"name":"search_corpus","description":"Full-text search over every published piece (titles, deks, context lines, outlet names, and source headlines). Returns matching pieces with slug, title, URL, an"},{"name":"get_audit","description":"Fetch one piece's full detail JSON by slug: headline, kind, date, context, dek, outlets, verified contradictions with verbatim spans, naming/framing splits, and"},{"name":"list_audits","description":"List published pieces (summaries: slug, title, kind, date, counts of hard contradictions and naming/framing splits), newest first. All filters optional and comb"},{"name":"list_corrections","description":"The desk's public corrections ledger: every logged error on a published piece — what was wrong, what changed, and when — in original ledger order."},{"name":"get_chain","description":"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"},{"name":"verify_piece","description":"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 U"},{"name":"get_framing_index","description":"The Framing Index: across the cross-outlet corpus, how often disagreements between outlets are hard contradictions vs naming/framing splits — totals, rate, mont"},{"name":"get_coverage_record","description":"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 mea"},{"name":"get_claim_ledger","description":"A story chain's claim ledger: specific verbatim claims outlets made, each tracked through states (open, corroborated, contradicted, corrected, quietly_abandoned"},{"name":"get_storyboards","description":"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"},{"name":"list_letters","description":"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."},{"name":"get_boxscore","description":"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."},{"name":"submit_letter","description":"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"},{"name":"report_error","description":"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 correc"},{"name":"propose_development","description":"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 "}],"toolCount":15,"serverName":"stochastic-parrot","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T02:24:06.631Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":108,"error":null,"detail":{"tools":[{"name":"search_corpus","description":"Full-text search over every published piece (titles, deks, context lines, outlet names, and source headlines). Returns matching pieces with slug, title, URL, an"},{"name":"get_audit","description":"Fetch one piece's full detail JSON by slug: headline, kind, date, context, dek, outlets, verified contradictions with verbatim spans, naming/framing splits, and"},{"name":"list_audits","description":"List published pieces (summaries: slug, title, kind, date, counts of hard contradictions and naming/framing splits), newest first. All filters optional and comb"},{"name":"list_corrections","description":"The desk's public corrections ledger: every logged error on a published piece — what was wrong, what changed, and when — in original ledger order."},{"name":"get_chain","description":"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"},{"name":"verify_piece","description":"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 U"},{"name":"get_framing_index","description":"The Framing Index: across the cross-outlet corpus, how often disagreements between outlets are hard contradictions vs naming/framing splits — totals, rate, mont"},{"name":"get_coverage_record","description":"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 mea"},{"name":"get_claim_ledger","description":"A story chain's claim ledger: specific verbatim claims outlets made, each tracked through states (open, corroborated, contradicted, corrected, quietly_abandoned"},{"name":"get_storyboards","description":"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"},{"name":"list_letters","description":"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."},{"name":"get_boxscore","description":"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."},{"name":"submit_letter","description":"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"},{"name":"report_error","description":"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 correc"},{"name":"propose_development","description":"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 "}],"toolCount":15,"serverName":"stochastic-parrot","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_corpus","description":"Full-text search over every published piece (titles, deks, context lines, outlet names, and source headlines). Returns matching pieces with slug, title, URL, an"},{"name":"get_audit","description":"Fetch one piece's full detail JSON by slug: headline, kind, date, context, dek, outlets, verified contradictions with verbatim spans, naming/framing splits, and"},{"name":"list_audits","description":"List published pieces (summaries: slug, title, kind, date, counts of hard contradictions and naming/framing splits), newest first. All filters optional and comb"},{"name":"list_corrections","description":"The desk's public corrections ledger: every logged error on a published piece — what was wrong, what changed, and when — in original ledger order."},{"name":"get_chain","description":"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"},{"name":"verify_piece","description":"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 U"},{"name":"get_framing_index","description":"The Framing Index: across the cross-outlet corpus, how often disagreements between outlets are hard contradictions vs naming/framing splits — totals, rate, mont"},{"name":"get_coverage_record","description":"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 mea"},{"name":"get_claim_ledger","description":"A story chain's claim ledger: specific verbatim claims outlets made, each tracked through states (open, corroborated, contradicted, corrected, quietly_abandoned"},{"name":"get_storyboards","description":"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"},{"name":"list_letters","description":"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."},{"name":"get_boxscore","description":"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."},{"name":"submit_letter","description":"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"},{"name":"report_error","description":"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 correc"},{"name":"propose_development","description":"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 "}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.portneymk/stochastic-parrot","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.portneymk%2Fstochastic-parrot","firstSeenAt":"2026-09-07T01:22:49.224Z","fetchedAt":"2026-09-07T01:22:49.224Z","normalizedAt":"2026-09-07T01:22:49.224Z"}]},"firstSeenAt":"2026-09-07T01:22:49.224Z","updatedAt":"2026-09-07T23:35:00.322Z"}