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
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term | |
| language | No | Language code (default: en) | en |
| limit | No | Maximum number of results (default: 10, max: 50) | |
| type | No | Entity type filter (item, property) |
Implementation Reference
- mcp_wikidata/wikidata_client.py:46-76 (handler)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}
- mcp_wikidata/tools.py:18-47 (registration)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"] } ),
- mcp_wikidata/tools.py:21-46 (schema)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"] }
- mcp_wikidata/tools.py:167-168 (handler)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)