Skip to main content
Glama

wikidata-mcp-server

Server Details

Search and fetch Wikidata entities, execute SPARQL queries, and resolve external identifiers.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/wikidata-mcp-server
GitHub Stars
1

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 7 of 7 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: entity data retrieval, label resolution, sitelinks, statements, external ID lookup, text search, and SPARQL queries. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent pattern: wikidata_<verb>_<noun>, with verbs like get, resolve, search, query. Names are predictable and clearly indicate the operation.

Tool Count5/5

With 7 tools, the server covers the core Wikidata query operations without being overly sparse or bloated. Each tool serves a necessary role.

Completeness4/5

The tool set covers essential Wikidata interactions: entity fetch, labels, sitelinks, statements, external ID resolution, search, and SPARQL. Missing are batch entity retrieval and write operations, which are reasonable omissions for a read-oriented MCP server.

Available Tools

7 tools
wikidata_get_entityGet Wikidata EntityA
Read-only
Inspect

Fetch a Wikidata entity (item or property) by QID or PID. Use the fields parameter to trim what is returned to the caller — major items can be large. Omit fields to get all data. Q-IDs (e.g. Q76) fetch items; P-IDs (e.g. P31) fetch properties from the correct endpoint automatically. Use wikidata_get_statements for deep claim traversal with label resolution.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQ-ID (e.g., "Q76") or P-ID (e.g., "P31"). Case-insensitive — normalized to uppercase.
fieldsNoFields to include in the response. Options: "labels", "descriptions", "aliases", "statements", "sitelinks". Omit for all fields.
languagesNoLanguage codes to include in labels, descriptions, and aliases (e.g., ["en", "de"]). Omit to return all available languages.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesNormalized entity ID (e.g., "Q76" or "P31").
typeYesEntity type: "item" or "property".
labelsNoMap of language code to label string (e.g., {"en": "Barack Obama", "de": "Barack Obama"}).
aliasesNoMap of language code to list of alias strings (e.g., {"en": ["Barack H. Obama", "President Obama"]}).
data_typeNoProperty data type (e.g., "wikibase-item", "external-id"). Present on properties only.
sitelinksNoMap of site code (e.g., "enwiki") to sitelink metadata with title, url, and badges fields.
statementsNoMap of property ID to array of raw statement objects. Use wikidata_get_statements for resolved claims with label resolution.
descriptionsNoMap of language code to description string (e.g., {"en": "44th President of the United States"}).
fieldsReturnedYesWhich fields are included in this response.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only (readOnlyHint true) and open world (openWorldHint true). The description adds: automatic endpoint selection for Q vs P IDs, case-insensitivity with normalization, and size warnings for major items. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with front-loaded purpose. No filler words. Every sentence adds essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values are covered. The description covers purpose, parameter guidance, endpoint selection, and sibling differentiation. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. The description adds meaningful context: id is case-insensitive and normalized, fields can be omitted for all data (with size warning), languages filter labels/descriptions/aliases. This adds value beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Fetch a Wikidata entity (item or property) by QID or PID,' providing a specific verb and resource. It distinguishes from sibling tool wikidata_get_statements by noting that tool is for deep claim traversal with label resolution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using the fields parameter to trim large responses and recommends wikidata_get_statements for deep claim traversal. It does not explicitly state when not to use this tool, but the context is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikidata_get_labelsGet Wikidata LabelsA
Read-only
Inspect

Resolve one or more QIDs or PIDs to their human-readable labels and descriptions. Lightweight — returns no claim data. Supports up to 50 IDs per call (batched automatically). Designed for the common agent pattern: receive QIDs from a SPARQL query, then humanize them.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesQ-IDs (e.g., "Q76") or P-IDs (e.g., "P31") to resolve. 1–50 IDs per call.
languagesNoBCP 47 language codes for returned labels and descriptions (e.g., ["en", "de", "fr"]).

Output Schema

ParametersJSON Schema
NameRequiredDescription
foundYesCount of IDs that returned data.
entitiesYesMap of entity ID to labels and descriptions. IDs that were not found are absent.
notFoundYesIDs from the request that did not return data (not found or invalid).
languagesYesThe language codes that were requested.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. Description adds lightweight nature, batching up to 50 IDs, and no claim data. Could mention error handling, but overall adds valuable behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the main action. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values don't need explanation. Description adequately covers purpose, usage context, constraints (batching), and integration pattern. Complete for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description provides context about batching and pattern, but doesn't add specific parameter semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it resolves QIDs/PIDs to human-readable labels and descriptions, distinguishing it from siblings by noting it returns no claim data and is designed for humanizing SPARQL results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context: designed for the common agent pattern after SPARQL queries, lightweight, no claim data. Does not explicitly state when not to use, but context with siblings implies alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikidata_get_statementsGet Wikidata StatementsA
Read-onlyIdempotent
Inspect

Fetch property claims for a Wikidata entity with qualifier and reference detail. Value QIDs are resolved to human-readable labels by default. Use the properties parameter to fetch only specific P-IDs — omitting it returns all statements, which can be large. Designed for fact verification: "what does Wikidata say about this entity's {property}?". Preferred-rank statements are the most current values.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQ-ID (e.g., "Q76") or P-ID of the entity to fetch statements for.
languageNoLanguage code for label resolution of QID values (e.g., "en", "de").en
propertiesNoP-IDs to fetch (e.g., ["P31", "P569", "P27"]). Omit to return all properties (may be large for major items).
resolve_labelsNoResolve wikibase-item value QIDs to human-readable labels via a batched label call. Set to false to skip label resolution and return raw QIDs only (faster, smaller payload).

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesThe entity ID whose statements were fetched.
statementsYesMap of property ID to array of normalized statements. Each statement has id, rank, property, value (with type-specific fields), and optional qualifiers and references arrays.
propertyCountYesNumber of distinct properties returned.
labelsResolvedYesTrue when QID values were resolved to labels. False when resolve_labels was set to false.
statementCountYesTotal number of statement objects across all properties.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds that value QIDs are resolved to human-readable labels by default and that preferred-rank statements are the most current values. This enhances transparency beyond the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no redundancy. It front-loads the core purpose and follows with actionable guidance. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown but indicated as true), the description covers purpose, usage context, parameter behavior, and key behavioral details. It is sufficient for an agent to understand when and how to use this tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context: explaining that the 'properties' parameter can be used to fetch specific P-IDs and that omitting it returns all statements. It also notes that QID resolution is default, corresponding to the 'resolve_labels' parameter. This adds value beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches property claims for a Wikidata entity with qualifier and reference detail. The verb 'fetch' and resource 'property claims' are specific, and the description distinguishes from siblings like 'wikidata_get_entity' which retrieves entity metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases: 'Designed for fact verification: what does Wikidata say about this entity's {property}?' It also advises using 'properties' parameter to limit output and warns that omitting it returns all statements which can be large. However, it does not directly compare with sibling tools for when not to use this specific one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikidata_resolve_external_idResolve Wikidata External IDA
Read-only
Inspect

Look up a Wikidata entity by an external identifier such as a DOI, PubMed ID, ORCID iD, or OpenAlex ID. Returns match= on success, match=null when not found, and match=null with multipleMatches populated when a Wikidata data integrity issue causes more than one entity to claim the same external ID. Common cross-server join use cases: CrossRef DOI → Wikidata paper QID (P356), PubMed PMID → Wikidata paper QID (P698), ORCID → author QID (P496), OpenAlex ID → entity QID (P10283). Known value normalization is applied automatically: DOIs are uppercased, PMID prefixes stripped, ORCID hyphens normalized.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe external identifier value to look up (e.g., "10.1038/nature01234" for a DOI, "32283226" for a PubMed ID, "0000-0002-1825-0097" for an ORCID).
languageNoLanguage code for label and description in the response (e.g., "en", "de").en
propertyYesP-ID of the external identifier property (e.g., "P356" for DOI, "P698" for PubMed ID, "P496" for ORCID, "P10283" for OpenAlex ID, "P345" for IMDb ID).

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchYesMatching entity, or null when no Wikidata entity claims this external identifier (including the case where multipleMatches is populated).
valueYesThe normalized value that was searched (may differ from input due to canonicalization).
propertyYesThe P-ID used for the lookup.
multipleMatchesNoPresent when more than one Wikidata entity claims this external ID (data integrity issue). match is null when this field is present. Inspect the list and select the correct QID manually.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds valuable behavioral details: return value patterns (success, null, multipleMatches), and automatic normalization (DOIs uppercased, PMID prefixes stripped, ORCID hyphens normalized). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, starting with the action, then success/failure conditions, then use cases, then normalization. It is moderately sized but every sentence adds value. Minor improvement could be to trim redundancy, but it remains effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description is complete for a resolver tool. It covers the lookup function, result variants, normalization, and common use cases. No gaps are evident for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The description adds context by explaining the property parameter as a P-ID and giving common examples (P356 for DOI, etc.), and detailing normalization for the value parameter. This extra meaning justifies a score above the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Look up a Wikidata entity by an external identifier' and lists specific IDs (DOI, PubMed, ORCID, OpenAlex). It distinguishes from siblings by focusing on external ID resolution, which is a unique capability among the server's tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides common cross-server join use cases (e.g., CrossRef DOI to Wikidata QID) and implies when to use this tool (when an external ID is available). It does not explicitly exclude alternatives, but the context is clear enough for an agent to select appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikidata_search_entitiesSearch Wikidata EntitiesA
Read-only
Inspect

Search Wikidata for items or properties by text query. Returns QIDs or PIDs with labels, descriptions, and match metadata indicating whether the hit was on a label or alias. Use type="item" for real-world concepts (people, places, works) and type="property" to find predicate P-IDs. The API returns no total count — pagination is offset-based with no result ceiling indicator.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoEntity type to search. Use "item" for Q-IDs (people, places, concepts) or "property" for P-IDs (predicates).item
limitNoMaximum number of results to return. Range: 1–50.
queryYesSearch terms to match against entity labels, aliases, and descriptions.
offsetNoPagination offset. Start at 0; increment by limit to page through results.
languageNoBCP 47 language code for returned labels and descriptions (e.g., "en", "de", "zh").en

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeYesThe entity type that was searched ("item" or "property").
queryYesThe search query that was executed.
messageNoRecovery hint when results are empty — suggests how to broaden the query. Absent when results are present.
resultsYesRanked list of matching entities. Empty when no results found.
languageYesThe language used for label and description display.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds behavioral details beyond annotations: match metadata indicates hit on label or alias, API returns no total count, and pagination is offset-based with no result ceiling indicator. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences that efficiently convey purpose, usage guidance, and behavioral details. It is front-loaded with the core function. Slightly more conciseness could be achieved, but it remains clear and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters (1 required), output schema exists, and the description covers return values (QIDs/PIDs, labels, descriptions, match metadata) and pagination behavior. No gaps remain for agent understanding. The annotations already handle safety and openness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the type parameter's purpose (Q-IDs vs P-IDs) and elaborates on pagination semantics (offset-based, no ceiling). This goes beyond the schema's field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches Wikidata by text query and returns QIDs or PIDs with labels, descriptions, and match metadata. It distinguishes between searching for items vs properties via the type parameter, which differentiates it from sibling tools like wikidata_get_entity that fetch specific entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use each type ('Use type="item" for real-world concepts... and type="property" to find predicate P-IDs'). It also notes the lack of total count and offset-based pagination, offering clear context. While it does not explicitly exclude usage scenarios versus siblings, the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikidata_sparql_queryWikidata SPARQL QueryA
Read-only
Inspect

Execute a SPARQL SELECT query against the Wikidata Query Service. Full graph power: multi-hop traversals, aggregations, subqueries, OPTIONAL, FILTER, UNION, BIND. Standard Wikidata prefixes (wd:, wdt:, p:, ps:, pq:, wikibase:, bd:) are auto-injected. The wikibase:label SERVICE is also auto-injected when language is set and the query includes ?Label variables — so you can use ?itemLabel without writing the boilerplate. Hard server timeout is 60s; use LIMIT to keep queries fast. Bindings use the SPARQL 1.1 JSON format: each value is { type, value, "xml:lang"? }. Use wikidata_get_labels to humanize QID results from this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSPARQL SELECT query. Must be a SELECT query (not CONSTRUCT/DESCRIBE/ASK). Standard prefixes (wd:, wdt:, p:, ps:, pq:, wikibase:, bd:) are injected automatically. Example: SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q146. } LIMIT 10
timeoutNoClient-side timeout in seconds (1–55). Capped at 55s — the Wikidata server hard limit is 60s.
languageNoLanguage for the wikibase:label SERVICE (e.g., "en", "de"). Controls the language of ?<var>Label variables. Set to "" to suppress label SERVICE injection.en

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYesArray of result bindings. Each row maps variable names to binding objects with { type, value, "xml:lang"?, datatype? } fields.
rowCountYesNumber of result rows.
truncatedYesTrue when the endpoint returned a partial result set due to server-side memory limits. False when the full result was returned. Add a LIMIT clause to avoid truncation on large queries.
variablesYesVariable names returned by the SELECT clause.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, openWorldHint), the description details auto-injected prefixes, label SERVICE injection conditions, hard 60s server timeout with client-side 55s cap, and SPARQL 1.1 JSON return format. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with purpose, then expands on features, auto-injection, timeout, return format, and references. Every sentence adds value, though slightly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex query tool with 3 params, full schema coverage, and an output schema, the description covers purpose, usage guidance, behavioral details, parameter semantics, and sibling references comprehensively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining auto-injection of label SERVICE, the relationship between language and label variables, and the client-side timeout vs server limit. This extra context justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb-object pair: 'Execute a SPARQL SELECT query against the Wikidata Query Service.' It distinguishes from siblings by referencing wikidata_get_labels for humanizing QID results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It advises using LIMIT for speed and directs to wikidata_get_labels for humanizing QID results, implicitly guiding when to use this tool versus alternatives. Explicit exclusions are absent but not necessary given clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.