Server definition
- Hash
- sha256:a43ae723d68a0f36d33df58b77c9aec2d3ae6e5006f28e3760e53b163b3ef11e
- What it is
- What a remote MCP server returned when asked what it offers: 6 tools
The blob, as servednamed by its sha256
{
"instructions": "Encyclopedic context from Wikipedia, in any language edition via the language parameter (default \"en\"). Start with wikipedia_get_summary for \"what is X?\" — it returns a short extract from the start of the lead plus the Wikidata QID, and a page_type of \"disambiguation\" means the title was ambiguous, so follow up with wikipedia_search_articles, which is also the tool to reach for whenever the exact title is unknown. For depth, call wikipedia_get_sections and then wikipedia_get_article with a section_index — section_index 0 is the full lead the summary extract is cut from — rather than reading a whole article. To cite what you quote, use the url and revision_id returned by the same read: https://<edition>.wikipedia.org/w/index.php?oldid=<revision_id> is a permanent link to exactly the text you read.",
"tools": [
{
"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. Both paths keep superscripts and subscripts apart from the text beside them (10²³, H₂O), render formulas as their TeX, and render code samples as fenced blocks with their indentation intact. A section read also renders data tables as pipe-delimited rows (header row first) and infoboxes as \"label: value\" lines; a table too large to include leaves a \"[table omitted: N rows]\" marker in its place. The full-article path carries no data tables or infoboxes, so read the section for those. Tables used only for layout, such as multi-column lists, keep their content as ordinary text. 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. Every read returns the canonical article URL and the ID of the revision it was read from, for citation; a full read also returns that revision's timestamp. Redirect pages are followed automatically, and the citation fields name the target article.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"language": {
"default": "en",
"description": "Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
"type": "string"
},
"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.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"title": {
"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.",
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "wikipedia_get_article",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"title",
"content",
"content_type",
"truncated",
"language"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"content": {
"description": "Plain-text article content. Both full articles and section reads carry == Section == markers above the text each one heads, code samples as ``` fenced blocks, and superscripts and subscripts as Unicode characters (10²³, H₂O), or as ^x / ^(…) and _x / _(…) where a character has none. Section reads also carry data tables as | cell | cell | rows with a | --- | row under the header. When truncated is true, this instead carries a section outline (heading names and byte sizes) plus a pointer to the targeted-read path.",
"type": "string"
},
"content_type": {
"description": "Content type: \"full_article\" or \"section\".",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `not_found`: No Wikipedia article exists for the given title. `invalid_title`: The title contains characters MediaWiki cannot name a page with. `invalid_section`: The section_index is out of range for this article. `invalid_language`: The language is not a valid BCP 47 code, or names a Wikipedia edition that does not exist. Other values are possible when a failure originates below the handler.",
"examples": [
"not_found",
"invalid_title",
"invalid_section",
"invalid_language"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"language": {
"description": "Language edition queried.",
"type": "string"
},
"last_modified": {
"description": "ISO 8601 timestamp of that revision, for dating the content. Full-article reads only; a section read carries none.",
"type": "string"
},
"original_length": {
"description": "Character length of the full article text before outlining. Present only when truncated is true.",
"type": "number"
},
"pageid": {
"description": "Wikipedia page ID. Absent on API parse responses that omit it.",
"type": "number"
},
"revision_id": {
"description": "ID of the revision the content was read from. \"https://<edition>.wikipedia.org/w/index.php?oldid=<revision_id>\" is a permanent link to exactly that version.",
"type": "string"
},
"section_title": {
"description": "Section title when section_index was provided — \"Introduction\" for the lead, which has no heading of its own. Absent for full-article reads.",
"type": "string"
},
"sections_suggested": {
"description": "True when content is an outline — call wikipedia_get_sections, then wikipedia_get_article with a section_index to read a specific section. Present only when truncated is true.",
"type": "boolean"
},
"title": {
"description": "Resolved article title.",
"type": "string"
},
"truncated": {
"description": "True when a full-article read exceeded the size budget and content is a section outline instead of the full text. Always false for section reads and for full articles within budget.",
"type": "boolean"
},
"url": {
"description": "Canonical desktop URL of the article (e.g. \"https://en.wikipedia.org/wiki/Eiffel_Tower\"), for citing the page rather than composing a URL from the title.",
"type": "string"
}
},
"type": "object"
}
},
{
"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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"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.",
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"language": {
"default": "en",
"description": "Wikipedia language edition to query from (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
"type": "string"
},
"title": {
"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.",
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "wikipedia_get_languages",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"source_title",
"source_language",
"languages",
"total_languages"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `not_found`: No Wikipedia article exists for the title in the specified language. `invalid_title`: The title contains characters MediaWiki cannot name a page with. `no_other_languages`: Article exists but has no other language editions. `invalid_language`: The language is not a valid BCP 47 code, or names a Wikipedia edition that does not exist. Other values are possible when a failure originates below the handler.",
"examples": [
"not_found",
"invalid_title",
"no_other_languages",
"invalid_language"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"languages": {
"description": "Available language editions excluding the source language. Narrowed to the requested codes when editions was given, and empty when none of them matched.",
"items": {
"additionalProperties": false,
"description": "A single language edition entry.",
"properties": {
"edition_code": {
"description": "Wikipedia edition subdomain that serves this article (e.g. \"als\"). Pass THIS value as the `language` parameter to other wikipedia-mcp-server tools; language_code is not always a valid edition. Absent when the serving host could not be established — language_code alone does not determine it.",
"type": "string"
},
"language_code": {
"description": "MediaWiki language code from langlinks (e.g. \"gsw\"). May differ from the Wikipedia subdomain — use edition_code as the `language` input to other tools.",
"type": "string"
},
"title": {
"description": "Article title in this language edition.",
"type": "string"
},
"url": {
"description": "Full URL to the article in this language edition. Absent when the API omitted it and no host is known for the language code.",
"type": "string"
}
},
"required": [
"language_code",
"title"
],
"type": "object"
},
"type": "array"
},
"missing": {
"description": "Requested edition codes with no article for this title, echoed as they were passed. Present whenever editions was given — empty when every code matched — and absent otherwise.",
"items": {
"type": "string"
},
"type": "array"
},
"source_language": {
"description": "The language edition that was queried.",
"type": "string"
},
"source_title": {
"description": "Resolved article title in the source language edition — the redirect target when the input was an alias.",
"type": "string"
},
"total_languages": {
"description": "Total number of other language editions the article has. Always the unfiltered count, so it exceeds the length of languages whenever editions narrowed the list.",
"type": "number"
}
},
"type": "object"
}
},
{
"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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"language": {
"default": "en",
"description": "Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
"type": "string"
},
"title": {
"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.",
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "wikipedia_get_sections",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"title",
"sections",
"total_sections",
"language"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `not_found`: No Wikipedia article exists for the given title. `invalid_title`: The title contains characters MediaWiki cannot name a page with. `no_sections`: Article exists but has no sections (stub or very short article). `invalid_language`: The language is not a valid BCP 47 code, or names a Wikipedia edition that does not exist. Other values are possible when a failure originates below the handler.",
"examples": [
"not_found",
"invalid_title",
"no_sections",
"invalid_language"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"language": {
"description": "Language edition queried.",
"type": "string"
},
"pageid": {
"description": "Wikipedia page ID. Absent for stub articles.",
"type": "number"
},
"sections": {
"description": "Article sections in document order with index values for targeted reads, led by the index-0 lead entry.",
"items": {
"additionalProperties": false,
"description": "A single table-of-contents entry.",
"properties": {
"index": {
"description": "Section index — pass to wikipedia_get_article as section_index. 0 is the lead section.",
"type": "number"
},
"level": {
"description": "Heading depth: 2 = ==, 3 = ===, etc. The lead section reports 1.",
"type": "number"
},
"number": {
"description": "Section number (e.g. \"2.1\") for hierarchical navigation; \"0\" for the lead section.",
"type": "string"
},
"title": {
"description": "Section heading text; \"Introduction\" for the lead, which has no heading.",
"type": "string"
}
},
"required": [
"index",
"number",
"title",
"level"
],
"type": "object"
},
"type": "array"
},
"title": {
"description": "Article title as resolved by Wikipedia.",
"type": "string"
},
"total_sections": {
"description": "Number of entries returned, counting the index-0 lead section.",
"type": "number"
}
},
"type": "object"
}
},
{
"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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"language": {
"default": "en",
"description": "Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
"type": "string"
},
"title": {
"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.",
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "wikipedia_get_summary",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"title",
"page_type",
"extract",
"language"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"description": {
"description": "Short description of the article subject.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `not_found`: No Wikipedia article exists for the given title. `invalid_title`: The title contains characters MediaWiki cannot name a page with. `invalid_language`: The language is not a valid BCP 47 code, or names a Wikipedia edition that does not exist. Other values are possible when a failure originates below the handler.",
"examples": [
"not_found",
"invalid_title",
"invalid_language"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"extract": {
"description": "Plain-text summary extract — a truncated fragment from the start of the lead section, not the whole lead. Superscripts and subscripts stay apart from the text beside them (10²³, H₂O), as wikipedia_get_article renders them. Call wikipedia_get_article with section_index 0 for the full lead.",
"type": "string"
},
"language": {
"description": "Language edition queried.",
"type": "string"
},
"last_modified": {
"description": "ISO 8601 timestamp of that revision, for dating the content.",
"type": "string"
},
"latitude": {
"description": "WGS 84 latitude of the article subject in decimal degrees. Pass with longitude to wikipedia_search_nearby, whose inputs carry these names, to find other notable articles around the same point. Absent for an article that is not geotagged.",
"type": "number"
},
"longitude": {
"description": "WGS 84 longitude of the article subject in decimal degrees. Pass with latitude to wikipedia_search_nearby, whose inputs carry these names, to find other notable articles around the same point. Absent for an article that is not geotagged.",
"type": "number"
},
"page_type": {
"description": "Page type from the Wikipedia REST API. Common values: \"standard\" (regular article), \"disambiguation\" (disambiguation page), \"no-extract\" (article with no extract). When \"disambiguation\", call wikipedia_search_articles with a more specific query.",
"type": "string"
},
"pageid": {
"description": "Wikipedia page ID. Absent when the API omits it.",
"type": "number"
},
"revision_id": {
"description": "ID of the revision the extract was read from. \"https://<edition>.wikipedia.org/w/index.php?oldid=<revision_id>\" is a permanent link to exactly that version.",
"type": "string"
},
"thumbnail_url": {
"description": "URL of the article thumbnail image, if available.",
"type": "string"
},
"title": {
"description": "Resolved article title (may differ from input for redirects).",
"type": "string"
},
"url": {
"description": "Canonical desktop URL of the article (e.g. \"https://en.wikipedia.org/wiki/Eiffel_Tower\"), for citing the page rather than composing a URL from the title.",
"type": "string"
},
"wikibase_item": {
"description": "Wikidata QID (e.g. \"Q28865\"). Use to chain into wikidata-mcp-server without a separate lookup.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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 result. When Wikipedia has a spelling correction for the query, it is returned as suggestion. 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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"language": {
"default": "en",
"description": "Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
"type": "string"
},
"limit": {
"default": 10,
"description": "Maximum number of results to return per page (default 10, max 50). Must be a positive integer.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"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.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"query": {
"description": "Search query (e.g. \"Python programming language\"). Must not be empty.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "wikipedia_search_articles",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"results",
"language",
"effectiveQuery",
"totalCount",
"offset",
"shown"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"cap": {
"description": "The result ceiling that cut this page — the search window. Present only alongside truncated.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"effectiveQuery": {
"description": "The query sent to Wikipedia.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `empty_query`: The query is an empty string, which Wikipedia reads as a missing parameter. `offset_too_large`: The offset is at or past the search window, which has no continuation. `invalid_language`: The language is not a valid BCP 47 code, or names a Wikipedia edition that does not exist. Other values are possible when a failure originates below the handler.",
"examples": [
"empty_query",
"offset_too_large",
"invalid_language"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"language": {
"description": "Language edition queried.",
"type": "string"
},
"nextOffset": {
"description": "Offset to request the next page. Present only when more results remain — pass it back as offset to continue; absent at the end of results.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"notice": {
"description": "Guidance when no results matched (naming the spelling suggestion when there is one), when the end of results was reached while paging, when the page was cut at the search window, or when descriptions and Wikidata QIDs could not be loaded for the page. Absent on ordinary result pages.",
"type": "string"
},
"offset": {
"description": "The result offset applied to this page (echo of the input).",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"results": {
"description": "Ranked search results.",
"items": {
"additionalProperties": false,
"description": "A single search result entry.",
"properties": {
"description": {
"description": "Short description of the article subject (e.g. \"General-purpose programming language\"). Absent when the article has none, or when descriptions could not be loaded for the page (see notice).",
"type": "string"
},
"pageid": {
"description": "Stable numeric Wikipedia page ID — a durable reference for cross-referencing or de-duplication. Not a tool input; pass the title to follow-up tools.",
"type": "number"
},
"snippet": {
"description": "Plain-text search snippet with matched terms.",
"type": "string"
},
"title": {
"description": "Article title (e.g. \"Python (programming language)\").",
"type": "string"
},
"wikibase_item": {
"description": "Wikidata QID (e.g. \"Q28865\") for chaining into wikidata-mcp-server. Absent when the article has no Wikidata item, or when it could not be loaded for the page (see notice).",
"type": "string"
},
"wordcount": {
"description": "Article word count.",
"type": "number"
}
},
"required": [
"title",
"pageid",
"snippet",
"wordcount"
],
"type": "object"
},
"type": "array"
},
"shown": {
"description": "Number of results returned on this page.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"suggestion": {
"description": "Wikipedia's spelling correction for the query, when it has one (e.g. \"einstein\" for \"einstien\"). Re-run with it as query to search the corrected spelling. Absent when the query has no likely misspelling.",
"type": "string"
},
"totalCount": {
"description": "Total matching results in Wikipedia.",
"type": "number"
},
"truncated": {
"description": "True when this page was cut at Wikipedia's 10,000-result search window and totalCount matches remain that no offset can reach. Absent on every other page, including a genuine last page.",
"type": "boolean"
}
},
"type": "object"
}
},
{
"description": "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. Only articles carrying their own coordinate tag (GeoData, set on the article itself — not the Wikidata item's coordinate) are returned, and that tag is what places and measures each result; not all articles about locations are geotagged, and an article whose tag is wrong appears where the tag puts it, which its description usually makes plain.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"language": {
"default": "en",
"description": "Wikipedia language edition code (default \"en\"). Examples: \"fr\", \"de\", \"ja\".",
"type": "string"
},
"latitude": {
"description": "WGS 84 latitude in decimal degrees (range: −90 to 90).",
"type": "number"
},
"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.",
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"longitude": {
"description": "WGS 84 longitude in decimal degrees (range: −180 to 180).",
"type": "number"
},
"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.",
"maximum": 9007199254740991,
"minimum": 10,
"type": "integer"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"name": "wikipedia_search_nearby",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"results",
"language",
"queryLatitude",
"queryLongitude",
"radiusMetersUsed",
"truncated",
"shown",
"cap"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"cap": {
"description": "The limit that was applied.",
"type": "number"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `invalid_coordinates`: Latitude or longitude is outside valid WGS 84 range. `invalid_language`: The language is not a valid BCP 47 code, or names a Wikipedia edition that does not exist. Other values are possible when a failure originates below the handler.",
"examples": [
"invalid_coordinates",
"invalid_language"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"language": {
"description": "Language edition queried.",
"type": "string"
},
"notice": {
"description": "Guidance when results were capped (raise limit, or — at the 500 ceiling — sweep narrower radii) or when no geotagged articles were found (increase radius). Absent when neither applies.",
"type": "string"
},
"queryLatitude": {
"description": "Latitude used for the search.",
"type": "number"
},
"queryLongitude": {
"description": "Longitude used for the search.",
"type": "number"
},
"radiusMetersUsed": {
"description": "Radius in meters used for the search.",
"type": "number"
},
"results": {
"description": "Geotagged articles sorted ascending by distance_meters.",
"items": {
"additionalProperties": false,
"description": "A single geotagged article result.",
"properties": {
"description": {
"description": "Short description of the article subject (e.g. \"Tower in Paris, France\"). Absent when the article has none.",
"type": "string"
},
"distance_meters": {
"description": "Distance from the query coordinate in meters.",
"type": "number"
},
"latitude": {
"description": "Latitude of the article's own coordinate tag, in decimal degrees.",
"type": "number"
},
"longitude": {
"description": "Longitude of the article's own coordinate tag, in decimal degrees.",
"type": "number"
},
"pageid": {
"description": "Stable numeric Wikipedia page ID — a durable reference for cross-referencing or de-duplication. Not a tool input; pass the title to follow-up tools.",
"type": "number"
},
"title": {
"description": "Article title (e.g. \"Eiffel Tower\").",
"type": "string"
},
"wikibase_item": {
"description": "Wikidata QID (e.g. \"Q243\") for chaining into wikidata-mcp-server. Absent when the article has no Wikidata item.",
"type": "string"
}
},
"required": [
"title",
"pageid",
"latitude",
"longitude",
"distance_meters"
],
"type": "object"
},
"type": "array"
},
"shown": {
"description": "Number of results returned.",
"type": "number"
},
"truncated": {
"description": "True when more articles matched than the limit allowed. Established by probing one result past the limit, so a match count landing exactly on the limit reports false — except at the 500 ceiling, where no probe is possible and any full page reports true.",
"type": "boolean"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:a43ae723d68a0f36d33df58b77c9aec2d3ae6e5006f28e3760e53b163b3ef11e | sha256sum