Skip to main content
Glama
joelgombin

MCP Wikidata Server

by joelgombin

search_entities

Find Wikidata entities by text query to retrieve structured data for items or properties using language-specific searches with configurable result limits.

Instructions

Search for entities in Wikidata by text query

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term
languageNoLanguage code (default: en)en
limitNoMaximum number of results (default: 10, max: 50)
typeNoEntity type filter (item, property)

Implementation Reference

  • Core handler function that performs the Wikidata entity search using the wbsearchentities API action, processes results into a structured format.
    async def search_entities( self, query: str, language: str = "en", limit: int = 10, type: Optional[str] = None ) -> Dict[str, Any]: params = { "action": "wbsearchentities", "search": query, "language": language, "limit": min(limit, self.config.max_results), "format": "json", } if type: params["type"] = type data = await self._make_request(self.config.wikibase_api_url, params) entities = [] for item in data.get("search", []): entities.append({ "id": item.get("id"), "label": item.get("label"), "description": item.get("description", ""), "url": f"https://www.wikidata.org/entity/{item.get('id')}" }) return {"entities": entities}
  • Registers the search_entities tool with MCP framework, including name, description, and input schema.
    Tool( name="search_entities", description="Search for entities in Wikidata by text query", inputSchema={ "type": "object", "properties": { "query": { "type": "string", "description": "Search term" }, "language": { "type": "string", "description": "Language code (default: en)", "default": "en" }, "limit": { "type": "integer", "description": "Maximum number of results (default: 10, max: 50)", "default": 10, "maximum": 50 }, "type": { "type": "string", "description": "Entity type filter (item, property)", "enum": ["item", "property"] } }, "required": ["query"] } ),
  • Defines the input schema for the search_entities tool, specifying parameters like query, language, limit, and type.
    inputSchema={ "type": "object", "properties": { "query": { "type": "string", "description": "Search term" }, "language": { "type": "string", "description": "Language code (default: en)", "default": "en" }, "limit": { "type": "integer", "description": "Maximum number of results (default: 10, max: 50)", "default": 10, "maximum": 50 }, "type": { "type": "string", "description": "Entity type filter (item, property)", "enum": ["item", "property"] } }, "required": ["query"] }
  • Dispatch handler in the MCP tools class that calls the WikidataClient's search_entities method with tool arguments.
    if name == "search_entities": result = await self.client.search_entities(**arguments)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/joelgombin/mcp-wikidata'

If you have feedback or need assistance with the MCP directory API, please join our Discord server