counterpedia.searchFull-text search across the public Counterpedia record index.
Example arguments
{ "query": "Heppner" }For agents
Counterpedia exposes a remote MCP endpoint for read-only access to public Counterpedia records. Tool responses preserve the record posture the public site serves; the interface does not admit, publish, or modify records.
https://counterpedia.vercel.app/mcpRemote MCP | Streamable HTTP | read-only.
Add the public endpoint as a remote HTTP MCP server, then inspect the saved connection.
claude mcp add --transport http counterpedia https://counterpedia.vercel.app/mcp claude mcp get counterpedia
The MCP TypeScript client can connect directly with a Streamable HTTP transport.
Manual HTTP clients must advertise Accept: application/json, text/event-stream. The SDK transport handles protocol negotiation for you.
import { Client, StreamableHTTPClientTransport } from "@modelcontextprotocol/client";
const client = new Client({ name: "counterpedia-client", version: "1.0.0" });
await client.connect(
new StreamableHTTPClientTransport(new URL("https://counterpedia.vercel.app/mcp")),
);
const tools = await client.listTools();This list is rendered from the same registry used by the MCP server.
counterpedia.searchFull-text search across the public Counterpedia record index.
Example arguments
{ "query": "Heppner" }counterpedia.readRetrieves one record's current projection by exact record identifier.
Example arguments
{ "record_id": "HEPPNER-LIFECYCLE-0001" }counterpedia.explainReturns the record's lifecycle explanation: admitted claims and refused candidates as the page model declares them.
Example arguments
{ "record_id": "HEPPNER-LIFECYCLE-0001" }counterpedia.sourcesReturns the sources array with label, source_type, and canonical URL where available.
Example arguments
{ "record_id": "HEPPNER-LIFECYCLE-0001" }counterpedia.historyReturns the editions array in published order.
Example arguments
{ "record_id": "HEPPNER-LIFECYCLE-0001" }counterpedia.verifyReturns the record's corpus posture and what is verifiable: verification_reports field and committed ARCS receipt artifacts.
Example arguments
{ "record_id": "HEPPNER-LIFECYCLE-0001" }counterpedia.public-object-linkGiven an object_ref and object_kind, resolves the exact public href for that object using the same route-generation logic the site itself uses — never a guessed or invented URL shape.
Example arguments
{ "object_ref": "TH-S01-SRC-0001", "object_kind": "source" }counterpedia.get_source_presenceReturns the exact public SourcePresence composition for one governed public Counterpedia SourceRecord.
Example arguments
{ "source_id": "TH-S01-SRC-0001" }counterpedia.wikimedia_lookupRuns the same exact lookup the /search Wikimedia observation group runs over the bound Wikimedia release: an exact Wikidata QID, or an exact normalized-string match against a Wikipedia title, Wikidata label, alias, or external identifier.
Example arguments
{ "query": "Q42" }Captured against https://counterpedia.vercel.app/mcp at . Every value below is derived from the retained response bytes committed alongside this page; none of it is restated by hand.
counterpedia.search — isError falsecounterpedia.read — isError falsecounterpedia.sources — isError falsecounterpedia.verify — isError falseThis is an observation of the served read interface. It does not create admission, standing, verification, or any other governed state.
Wikimedia observations are available over MCP as exact lookup only. counterpedia.wikimedia_lookup runs the same exact QID and normalized-string lookup as the public Search page over the fixed Wikimedia release, with no prefix, substring, or fuzzy matching. Its results are observations, not admission decisions or canonical identity. counterpedia.search searches the public Counterpedia record index only.