cyanheads avatar

Wikipedia Mcp Server

cyanheads/wikipedia-mcp-server

Connects Claude directly to Wikipedia's MediaWiki REST and Action APIs across all language editions. Exposes full-text search, article summaries with Wikidata QIDs, targeted section reads, geospatial article lookup, and language edition enumeration. Built on cyanheads' mcp-ts-core framework, so you get declarative tool definitions, structured error handling with recovery hints, and dual transport support (stdio and streamable HTTP). The wikitext stripping pipeline uses wtf_wikipedia to deliver clean plain text while preserving section structure. Reach for this when you need encyclopedic lookups without API keys, want to cross-reference Wikidata entities, or need to work across non-English Wikipedia editions in a single session.

GitHub stars
6
tools
7
transport
STDIO, HTTP
env vars
6
last updated
Nov 11, 2026

Install

From registry metadata
$ npx add-mcp https://wikipedia.caseyjhand.com/mcp --name wikipedia

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http wikipedia https://wikipedia.caseyjhand.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 7 tools

Verified live against the running server on Nov 6, 2026.

wikipedia_search_articlesSearch Wikipedia articles by full-text query. Returns ranked results with plain-text titles, short descriptions, Wikidata QIDs, snippets (HTML stripped), page IDs, and word counts — the description is usually enough to tell same-named articles apart without a summary call per...5 params

Search Wikipedia articles by full-text query. Returns ranked results with plain-text titles, short descriptions, Wikidata QIDs, snippets (HTML stripped), page IDs, and word counts — the description is usually enough to tell same-named articles apart without a summary call per...

Parameters* required
languagestring
Wikipedia language edition code (default "en"). Examples: "fr", "de", "ja".default: en
limitinteger
Maximum number of results to return per page (default 10). Positive integers above 50 are clamped with a notice.default: 10
offsetinteger
Result offset for pagination (default 0). Pass the nextOffset from a previous response to fetch the next page; limit still governs the per-page size. An offset past the total match count returns an...default: 0
query*string
Search query. CirrusSearch operators include incategory:"1648 treaties", morelike:Peace of Westphalia, intitle:Python, hastemplate:Infobox, and insource:Python; support depends on the selected inst...
sortstring
Result order (default relevance). Keep the same query and sort when paging with offset.one of relevance · last_edit_desc · create_timestamp_desc · incoming_links_desc · title_natural_ascdefault: relevance
wikipedia_get_summaryFetch the short article summary that answers "what is X?". The extract is a truncated fragment from the start of the lead section — usually a sentence or two, and as little as a tenth of the lead — alongside the Wikidata QID (wikibase_item) for cross-referencing with wikidata-...2 params

Fetch the short article summary that answers "what is X?". The extract is a truncated fragment from the start of the lead section — usually a sentence or two, and as little as a tenth of the lead — alongside the Wikidata QID (wikibase_item) for cross-referencing with wikidata-...

Parameters* required
languagestring
Wikipedia language edition code (default "en"). Examples: "fr", "de", "ja".default: en
title*string
Article title (URL-decoded), e.g. "Python (programming language)". A trailing #fragment is accepted and ignored; the characters < > [ ] { } and | cannot appear in a Wikipedia page name.
wikipedia_get_articleFetch article content as clean plain text. Without section_index: returns the full article with == Section == markers preserved for structure — or, when the article exceeds the size budget, a compact section outline (truncated: true) that points to wikipedia_get_sections plus...5 params

Fetch article content as clean plain text. Without section_index: returns the full article with == Section == markers preserved for structure — or, when the article exceeds the size budget, a compact section outline (truncated: true) that points to wikipedia_get_sections plus...

Parameters* required
cursorstring
Opaque next_cursor from the previous table page. Keep title, language, section_index and table_index unchanged. Empty means the first page.
languagestring
Wikipedia language edition code (default "en"). Examples: "fr", "de", "ja".default: en
section_indexinteger
Section index from wikipedia_get_sections. 0 reads the lead section (Introduction) — the text above the first heading. Omit for the full article. Providing this returns the targeted section plus ev...
table_indexinteger
1-based outer wikitable or infobox ordinal in the section. Requires section_index. Returns only that table in complete row pages; nested cell tables have no ordinal.
title*string
Article title (e.g. "Python (programming language)"). A trailing #fragment is accepted and ignored; the characters < > [ ] { } and | cannot appear in a Wikipedia page name.
wikipedia_get_sectionsFetch the table of contents for a Wikipedia article. Returns section titles, heading levels, section numbering (e.g. "2.1"), and section_index values. The first entry is the lead section, index 0, titled Introduction — the text above the first heading, which Wikipedia's own ta...2 params

Fetch the table of contents for a Wikipedia article. Returns section titles, heading levels, section numbering (e.g. "2.1"), and section_index values. The first entry is the lead section, index 0, titled Introduction — the text above the first heading, which Wikipedia's own ta...

Parameters* required
languagestring
Wikipedia language edition code (default "en"). Examples: "fr", "de", "ja".default: en
title*string
Article title (e.g. "Python (programming language)"). A trailing #fragment is accepted and ignored; the characters < > [ ] { } and | cannot appear in a Wikipedia page name.
wikipedia_search_nearbyFind Wikipedia articles about places near a geographic coordinate. Returns articles sorted by distance from the query point, with titles, short descriptions, Wikidata QIDs, page IDs, coordinates, and distance in meters. Useful for "what is notable near X?" research workflows....5 params

Find Wikipedia articles about places near a geographic coordinate. Returns articles sorted by distance from the query point, with titles, short descriptions, Wikidata QIDs, page IDs, coordinates, and distance in meters. Useful for "what is notable near X?" research workflows....

Parameters* required
languagestring
Wikipedia language edition code (default "en"). Examples: "fr", "de", "ja".default: en
latitude*number
WGS 84 latitude in decimal degrees (range: −90 to 90).
limitinteger
Maximum number of results to return (default 10). Positive integers above 500 are clamped with a notice. Geosearch has no pagination; use narrower radii at the ceiling.default: 10
longitude*number
WGS 84 longitude in decimal degrees (range: −180 to 180).
radius_metersinteger
Search radius in meters (default 1000, min 10, max 10000 — the MediaWiki geosearch bounds). Must be an integer; a value above the maximum is clamped to it.default: 1000
wikipedia_get_languagesList 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. A popular article exi...3 params

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. A popular article exi...

Parameters* required
editionsarray
Edition codes to keep, e.g. ["fr", "de", "gsw"]. Each is matched case-insensitively against both edition_code and language_code, so either spelling of a mismatch edition finds it ("gsw" matches the...
languagestring
Wikipedia language edition to query from (default "en"). Examples: "fr", "de", "ja".default: en
title*string
Article title in the source language edition. A trailing #fragment is accepted and ignored; the characters < > [ ] { } and | cannot appear in a Wikipedia page name.
wikipedia_get_referencesList the footnotes an article cites — its reference lists, in document order — with each footnote's text, external links (archive copies included), and DOIs. wikipedia_get_article drops footnote markers and reference lists, so use this for the sources behind a claim. label is...3 params

List the footnotes an article cites — its reference lists, in document order — with each footnote's text, external links (archive copies included), and DOIs. wikipedia_get_article drops footnote markers and reference lists, so use this for the sources behind a claim. label is...

Parameters* required
cursorstring
Opaque next_cursor from the previous page. Keep title and language unchanged. Empty means the first page.
languagestring
Wikipedia language edition code (default "en"). Examples: "fr", "de", "ja".default: en
title*string
Article title (e.g. "Seine"). A trailing #fragment is accepted and ignored; the characters < > [ ] { } and | cannot appear in a Wikipedia page name.

Sponsors

Configuration

MCP_LOG_LEVELdefault: info

Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

MCP_TRANSPORT_TYPEdefault: http

Selects the HTTP transport.

MCP_HTTP_HOSTdefault: 127.0.0.1

The hostname for the HTTP server.

MCP_HTTP_PORTdefault: 3010

The port to run the HTTP server on.

MCP_HTTP_ENDPOINT_PATHdefault: /mcp

The endpoint path for the MCP server.

MCP_AUTH_MODEdefault: none

Authentication mode to use: 'none', 'jwt', or 'oauth'.

Readme

@cyanheads/wikipedia-mcp-server

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

7 Tools

Details

Repository
github.com/cyanheads/wikipedia-mcp-server
Category
Search & Web Crawling
Package
@cyanheads/wikipedia-mcp-server
Transport
STDIO, HTTP
Registry
MCP registry, active
Resources
1
Tools verified
Nov 6, 2026

More from cyanheads

Related Search & Web Crawling MCP servers

View all
1ibeal avatarTidal Mcpibeal/tidal-mcpMCP server for TIDAL - search tracks, manage playlists, and get personalized recommendations6stars
2lineofflight avatarFrankfurterlineofflight/frankfurter-mcpConvert currencies and fetch blended FX rates from 50+ institutional sources.6stars
3jaytheskier avatarFedlex Connectorjaytheskier/fedlex-connectorSearch Swiss federal legislation: laws, articles, amendments via the Fedlex SPARQL endpoint.6stars
4khalidsaidi avatarRAGMapkhalidsaidi/ragmapFind a retrieval MCP server that works today: a daily-checked list of servers that search knowledge.6stars
5mahach666 avatarPilotmcpmahach666/pilotmcpMCP server for ASCON Pilot-ICE PDM: objects, documents, remarks, search, admin6stars
6nk3750 avatarJitapink3750/jitapiTurn any OpenAPI spec into an executable agent interface using graphs and semantic search.6stars