@cyanheads/wikipedia-mcp-server

v0.1.5 pre-1.0

Search Wikipedia articles, read summaries and full text, target sections, find nearby pages, and list language editions via MCP. STDIO or Streamable HTTP.

@cyanheads/wikipedia-mcp-server
claude mcp add --transport http wikipedia-mcp-server https://wikipedia.caseyjhand.com/mcp
codex mcp add wikipedia-mcp-server --url https://wikipedia.caseyjhand.com/mcp
{
  "mcpServers": {
    "wikipedia-mcp-server": {
      "url": "https://wikipedia.caseyjhand.com/mcp"
    }
  }
}
gemini mcp add --transport http wikipedia-mcp-server https://wikipedia.caseyjhand.com/mcp
{
  "mcpServers": {
    "wikipedia-mcp-server": {
      "command": "bunx",
      "args": [
        "@cyanheads/wikipedia-mcp-server@latest"
      ]
    }
  }
}
{
  "mcpServers": {
    "wikipedia-mcp-server": {
      "type": "http",
      "url": "https://wikipedia.caseyjhand.com/mcp"
    }
  }
}
curl -X POST https://wikipedia.caseyjhand.com/mcp \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-11-25" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0.0"}}}'

Tools

6

wikipedia_get_summary

open-world

Fetch the lead-section summary for a Wikipedia article — the 2–4 paragraph intro that answers "what is X?". Returns plain-text extract, Wikidata QID (wikibase_item) for cross-referencing with wikidata-mcp-server, short description, and thumbnail URL. Redirect pages are followed automatically. When page_type is "disambiguation", the title matched a disambiguation page — call wikipedia_search with a more specific query to find the intended article. Prefer this over wikipedia_get_article unless full article depth is needed.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "wikipedia_get_summary",
    "arguments": {
      "title": "<title>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Article title (URL-decoded), e.g. \"Python (programming language)\"."
    },
    "language": {
      "default": "en",
      "description": "Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
      "type": "string"
    }
  },
  "required": [
    "title",
    "language"
  ],
  "additionalProperties": false
}
view source ↗

wikipedia_get_article

open-world

Fetch article content as clean plain text. Without section_index: returns the full article with == Section == markers preserved for structure. With section_index (from wikipedia_get_sections): returns just that section as plain text. Section-targeted reads are faster and smaller when only part of the article is needed.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "wikipedia_get_article",
    "arguments": {
      "title": "<title>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Article title (e.g. \"Python (programming language)\")."
    },
    "section_index": {
      "description": "Section index from wikipedia_get_sections. Omit for the full article. Providing this returns only the targeted section as plain text.",
      "type": "number"
    },
    "language": {
      "default": "en",
      "description": "Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
      "type": "string"
    }
  },
  "required": [
    "title",
    "language"
  ],
  "additionalProperties": false
}
view source ↗

wikipedia_get_sections

open-world

Fetch the table of contents for a Wikipedia article. Returns section titles, heading levels, section numbering (e.g. "2.1"), and section_index values. Pass a section_index to wikipedia_get_article to retrieve just that section. Useful for enumerating article structure before doing a targeted section read.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "wikipedia_get_sections",
    "arguments": {
      "title": "<title>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Article title (e.g. \"Python (programming language)\")."
    },
    "language": {
      "default": "en",
      "description": "Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
      "type": "string"
    }
  },
  "required": [
    "title",
    "language"
  ],
  "additionalProperties": false
}
view source ↗

wikipedia_search_nearby

open-world

Find Wikipedia articles about places near a geographic coordinate. Returns articles sorted by distance from the query point, with titles, page IDs, coordinates, and distance in meters. Useful for "what is notable near X?" research workflows. Only articles with geographic coordinates in their Wikidata record are returned — not all articles about locations are geotagged.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "wikipedia_search_nearby",
    "arguments": {
      "latitude": "<latitude>",
      "longitude": "<longitude>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "latitude": {
      "type": "number",
      "description": "WGS 84 latitude in decimal degrees (range: −90 to 90)."
    },
    "longitude": {
      "type": "number",
      "description": "WGS 84 longitude in decimal degrees (range: −180 to 180)."
    },
    "radius_meters": {
      "default": 1000,
      "description": "Search radius in meters (default 1000, max 10000). Must be a positive integer.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "limit": {
      "default": 10,
      "description": "Maximum number of results to return (default 10, max 50). Must be a positive integer.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "language": {
      "default": "en",
      "description": "Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
      "type": "string"
    }
  },
  "required": [
    "latitude",
    "longitude",
    "radius_meters",
    "limit",
    "language"
  ],
  "additionalProperties": false
}
view source ↗

wikipedia_get_languages

open-world

List the language editions available for a Wikipedia article. Returns language codes, article titles in each language, and full URLs. Useful for cross-language research and for discovering the correct article title in a target language before fetching it. The language parameter specifies which edition to query from.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "wikipedia_get_languages",
    "arguments": {
      "title": "<title>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Article title in the source language edition."
    },
    "language": {
      "default": "en",
      "description": "Wikipedia language edition to query from (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
      "type": "string"
    }
  },
  "required": [
    "title",
    "language"
  ],
  "additionalProperties": false
}
view source ↗