CounterpediaExplore knowledge. Follow the sources.

For agents

Connect to Counterpedia

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.

Endpoint

https://counterpedia.vercel.app/mcp

Remote MCP | Streamable HTTP | read-only.

Claude Code

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

Generic Streamable HTTP client

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();

Served tools

This list is rendered from the same registry used by the MCP server.

counterpedia.search

Full-text search across the public Counterpedia record index.

Example arguments

{ "query": "Heppner" }
counterpedia.read

Retrieves one record's current projection by exact record identifier.

Example arguments

{ "record_id": "HEPPNER-LIFECYCLE-0001" }
counterpedia.explain

Returns the record's lifecycle explanation: admitted claims and refused candidates as the page model declares them.

Example arguments

{ "record_id": "HEPPNER-LIFECYCLE-0001" }
counterpedia.sources

Returns the sources array with label, source_type, and canonical URL where available.

Example arguments

{ "record_id": "HEPPNER-LIFECYCLE-0001" }
counterpedia.history

Returns the editions array in published order.

Example arguments

{ "record_id": "HEPPNER-LIFECYCLE-0001" }
counterpedia.verify

Returns 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-link

Given 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_presence

Returns the exact public SourcePresence composition for one governed public Counterpedia SourceRecord.

Example arguments

{ "source_id": "TH-S01-SRC-0001" }
counterpedia.wikimedia_lookup

Runs 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" }

Session transcript

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.

  1. counterpedia.search — isError false
    query
    Heppner
    match_count
    1
    record_id
    HEPPNER-LIFECYCLE-0001
  2. counterpedia.read — isError false
    record_id
    HEPPNER-LIFECYCLE-0001
    schema_version
    2
    title
    Heppner AI privilege ruling: governed claim lifecycle
  3. counterpedia.sources — isError false
    record_id
    HEPPNER-LIFECYCLE-0001
    sources_present
    true
    source_count
    1
  4. counterpedia.verify — isError false
    record_id
    HEPPNER-LIFECYCLE-0001
    verification_reports_present
    true
    verification_report_count
    2

This is an observation of the served read interface. It does not create admission, standing, verification, or any other governed state.

Wikimedia over MCP

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.

Open Search →