{"name":"io.github.cyanheads/wikipedia-mcp-server","slug":"cyanheads-wikipedia-mcp-server","title":null,"description":"Search Wikipedia, read summaries and full text, target sections, find nearby pages, list languages.","url":"https://mcp.market/server/cyanheads-wikipedia-mcp-server","rating":null,"grade":"A","score":93,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":38,"stars":3,"forks":0,"downloads_week":254,"last_push_at":"2026-09-17T17:09:53.000Z","license":"Apache-2.0"},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/cyanheads/wikipedia-mcp-server","website":null,"version":"0.2.2","remotes":[{"type":"streamable-http","url":"https://wikipedia.caseyjhand.com/mcp"}],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/wikipedia-mcp-server","version":"0.2.2","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/wikipedia-mcp-server","version":"0.2.2","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"tools":[{"name":"wikipedia_get_article","description":"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 a section_index read instead of the full text. With section_index (from wikipedia_get_sections): returns that section and every subsection nested under it, each heading above its own body. section_index 0 is the lead section, the text above the first heading, which is the full prose wikipedia_get_summary returns only a truncated fragment of. Section-targeted reads are faster and smaller when only part of the article is needed. Data tables are omitted from both paths, so a section whose body is entirely a data table returns its heading and little else; tables used only for layout, such as multi-column lists, keep their content. Page furniture is omitted as well — maintenance banners, sister-project and library-resource boxes, portal bars, and spoken-article notices — while a hatnote naming a related article is kept. Redirect pages are followed automatically.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"type":"string","description":"Article title (e.g. \"Python (programming language)\"). A trailing #fragment is accepted and ignored; the characters < > [ ] { } and | cannot appear in a Wikipedia page name."},"section_index":{"description":"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 every subsection nested under it, as plain text.","type":"integer","minimum":0,"maximum":9007199254740991},"language":{"default":"en","description":"Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".","type":"string"}},"required":["title"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"wikipedia_get_languages","description":"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 exists in hundreds of editions, so pass editions to narrow the answer to the codes you care about — the codes with no article come back under missing, and total_languages still reports the full count. Redirect pages are followed automatically, and source_title reports the resolved article the links belong to. The language parameter specifies which edition to query from.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"type":"string","description":"Article title in the source language edition. A trailing #fragment is accepted and ignored; the characters < > [ ] { } and | cannot appear in a Wikipedia page name."},"language":{"default":"en","description":"Wikipedia language edition to query from (default \"en\"). Examples: \"fr\", \"de\", \"ja\".","type":"string"},"editions":{"description":"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 edition whose edition_code is \"als\"). Omit to list every edition. A code with no article for this title is reported under missing rather than dropped, and is not a failure.","minItems":1,"type":"array","items":{"type":"string"}}},"required":["title"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"wikipedia_get_sections","description":"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 table of contents omits. Pass a section_index to wikipedia_get_article to retrieve just that section. Useful for enumerating article structure before doing a targeted section read. Redirect pages are followed automatically.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"type":"string","description":"Article title (e.g. \"Python (programming language)\"). A trailing #fragment is accepted and ignored; the characters < > [ ] { } and | cannot appear in a Wikipedia page name."},"language":{"default":"en","description":"Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".","type":"string"}},"required":["title"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"wikipedia_get_summary","description":"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-mcp-server, a short description, a thumbnail URL, the canonical article URL, the revision the extract was read from, and, for a geotagged article, latitude and longitude that pass straight to wikipedia_search_nearby to answer \"what else is notable near this\". For the lead section in full, call wikipedia_get_article with section_index 0. Redirect pages are followed automatically. When page_type is \"disambiguation\", the title matched a disambiguation page — call wikipedia_search_articles with a more specific query to find the intended article. Prefer this over wikipedia_get_article unless article depth is needed.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"type":"string","description":"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."},"language":{"default":"en","description":"Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".","type":"string"}},"required":["title"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"wikipedia_search_articles","description":"Search Wikipedia articles by full-text query. Returns ranked results with plain-text titles, snippets (HTML stripped), page IDs, and word counts. Best when the exact article title is unknown or when multiple articles on a topic are needed. Pass a result title to wikipedia_get_summary, wikipedia_get_article, or wikipedia_get_sections for follow-up reads. Use offset to page beyond the first result page. Supports all Wikipedia language editions.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query (e.g. \"Python programming language\"). Must not be empty."},"limit":{"default":10,"description":"Maximum number of results to return per page (default 10, max 50). Must be a positive integer.","type":"integer","minimum":1,"maximum":50},"offset":{"default":0,"description":"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 empty result array, not an error. Wikipedia serves no result past 10,000, so an offset at or beyond that fails — narrow the query instead.","type":"integer","minimum":0,"maximum":9007199254740991},"language":{"default":"en","description":"Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".","type":"string"}},"required":["query"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"wikipedia_search_nearby","description":"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.","write_action":false,"price_micros":0,"input_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, min 10, max 10000 — the MediaWiki geosearch bounds). Must be an integer; a value above the maximum is clamped to it.","type":"integer","minimum":10,"maximum":9007199254740991},"limit":{"default":10,"description":"Maximum number of results to return (default 10, max 500 — the MediaWiki geosearch ceiling). Must be a positive integer. Geosearch has no pagination, so articles past this limit are only reachable by raising it or searching narrower radii.","type":"integer","minimum":1,"maximum":500},"language":{"default":"en","description":"Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".","type":"string"}},"required":["latitude","longitude"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}}],"scan":{"score":93,"grade":"A","scanned_at":"2026-09-19T00:31:20.783Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T00:31:20.686Z","components":{"code":{"score":25,"max":25,"notes":["26 source files scanned","26 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1149ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://wikipedia.caseyjhand.com/mcp","reachable":true,"authRequired":false,"latencyMs":1149,"serverInfo":{"name":"wikipedia-mcp-server","version":"0.2.2"}}],"packages":[{"registryType":"npm","identifier":"@cyanheads/wikipedia-mcp-server","version":"0.2.2","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-17T17:10:00.230Z","repositoryUrl":"git+https://github.com/cyanheads/wikipedia-mcp-server.git","weeklyDownloads":127},{"registryType":"npm","identifier":"@cyanheads/wikipedia-mcp-server","version":"0.2.2","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-17T17:10:00.230Z","repositoryUrl":"git+https://github.com/cyanheads/wikipedia-mcp-server.git","weeklyDownloads":127}],"repo":{"found":true,"owner":"cyanheads","repo":"wikipedia-mcp-server","archived":false,"pushedAt":"2026-09-17T17:09:53Z","stars":3,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/10339515?v=4","ownerCreatedAt":"2014-12-29T13:01:12Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/10339515?v=4&s=128","source":"github"},"presence":{"stars":3,"forks":0,"downloadsWeek":254,"license":"Apache-2.0","lastPushAt":"2026-09-17T17:09:53.000Z","score":38}}}},"grade_history":[{"kind":"restore","fromGrade":"B","toGrade":"A","reason":"score 93","createdAt":"2026-09-18T00:16:54.791Z"}],"reviews":[]}