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.
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.
Tool Definition Quality
Average 4.5/5 across 7 of 7 tools scored.
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.
All tools follow a consistent pattern: wikidata_<verb>_<noun>, with verbs like get, resolve, search, query. Names are predictable and clearly indicate the operation.
With 7 tools, the server covers the core Wikidata query operations without being overly sparse or bloated. Each tool serves a necessary role.
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 toolswikidata_get_entityGet Wikidata EntityARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Q-ID (e.g., "Q76") or P-ID (e.g., "P31"). Case-insensitive — normalized to uppercase. | |
| fields | No | Fields to include in the response. Options: "labels", "descriptions", "aliases", "statements", "sitelinks". Omit for all fields. | |
| languages | No | Language codes to include in labels, descriptions, and aliases (e.g., ["en", "de"]). Omit to return all available languages. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Normalized entity ID (e.g., "Q76" or "P31"). |
| type | Yes | Entity type: "item" or "property". |
| labels | No | Map of language code to label string (e.g., {"en": "Barack Obama", "de": "Barack Obama"}). |
| aliases | No | Map of language code to list of alias strings (e.g., {"en": ["Barack H. Obama", "President Obama"]}). |
| data_type | No | Property data type (e.g., "wikibase-item", "external-id"). Present on properties only. |
| sitelinks | No | Map of site code (e.g., "enwiki") to sitelink metadata with title, url, and badges fields. |
| statements | No | Map of property ID to array of raw statement objects. Use wikidata_get_statements for resolved claims with label resolution. |
| descriptions | No | Map of language code to description string (e.g., {"en": "44th President of the United States"}). |
| fieldsReturned | Yes | Which fields are included in this response. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 LabelsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Q-IDs (e.g., "Q76") or P-IDs (e.g., "P31") to resolve. 1–50 IDs per call. | |
| languages | No | BCP 47 language codes for returned labels and descriptions (e.g., ["en", "de", "fr"]). |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | Count of IDs that returned data. |
| entities | Yes | Map of entity ID to labels and descriptions. IDs that were not found are absent. |
| notFound | Yes | IDs from the request that did not return data (not found or invalid). |
| languages | Yes | The language codes that were requested. |
Tool Definition Quality
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.
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.
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.
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.
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.
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_sitelinksGet Wikidata SitelinksARead-onlyIdempotentInspect
Fetch Wikipedia and Wikimedia project article URLs for a Wikidata item. A sitelink maps a site code (e.g., "enwiki") to a Wikipedia article title and URL. Major items can have 300+ sitelinks across languages. Use sites to filter to specific language editions, or wikis_only to return only Wikipedia links. Only Q-IDs (items) have sitelinks — properties (P-IDs) do not.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Q-ID of the item (e.g., "Q76"). Only items have sitelinks; properties (P-IDs) are not supported. | |
| sites | No | Optional filter to specific site codes (e.g., ["enwiki", "frwiki", "dewiki"]). Omit to return all sitelinks. | |
| wikis_only | No | When true, return only Wikipedia sitelinks (site codes ending in "wiki", e.g., "enwiki", "dewiki"). Excludes Wikisource, Wiktionary, Wikiquote, etc. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | The Q-ID whose sitelinks were fetched. |
| count | Yes | Number of sitelinks returned. |
| message | No | Informational note when no sitelinks were found. Absent when sitelinks are present. |
| sitelinks | Yes | Map of site code to sitelink metadata. Empty when the entity has no matching sitelinks. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, openWorld, idempotent), the description adds behavioral context: major items can have 300+ sitelinks (performance hint) and the mapping between site codes and URLs. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five sentences, front-loaded with the action verb, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 adequately covers purpose, data structure, filtering, and limitations. No gaps remain for an agent using this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description still adds meaning by explaining the sitelink concept, clarifying that only Q-IDs work, and suggesting use of filtering parameters (sites, wikis_only).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches Wikipedia and Wikimedia project URLs for a Wikidata item, using specific verbs and distinguishing the resource (sitelinks) from siblings like wikidata_get_entity or wikidata_get_labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to get article URLs) and explicitly states that properties (P-IDs) do not have sitelinks, guiding agents away from invalid inputs. It also describes filtering options but does not directly compare to sibling tools.
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 StatementsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Q-ID (e.g., "Q76") or P-ID of the entity to fetch statements for. | |
| language | No | Language code for label resolution of QID values (e.g., "en", "de"). | en |
| properties | No | P-IDs to fetch (e.g., ["P31", "P569", "P27"]). Omit to return all properties (may be large for major items). | |
| resolve_labels | No | Resolve 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
| Name | Required | Description |
|---|---|---|
| id | Yes | The entity ID whose statements were fetched. |
| statements | Yes | Map 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. |
| propertyCount | Yes | Number of distinct properties returned. |
| labelsResolved | Yes | True when QID values were resolved to labels. False when resolve_labels was set to false. |
| statementCount | Yes | Total number of statement objects across all properties. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 IDARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The 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). | |
| language | No | Language code for label and description in the response (e.g., "en", "de"). | en |
| property | Yes | P-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
| Name | Required | Description |
|---|---|---|
| match | Yes | Matching entity, or null when no Wikidata entity claims this external identifier (including the case where multipleMatches is populated). |
| value | Yes | The normalized value that was searched (may differ from input due to canonicalization). |
| property | Yes | The P-ID used for the lookup. |
| multipleMatches | No | Present 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. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 EntitiesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Entity type to search. Use "item" for Q-IDs (people, places, concepts) or "property" for P-IDs (predicates). | item |
| limit | No | Maximum number of results to return. Range: 1–50. | |
| query | Yes | Search terms to match against entity labels, aliases, and descriptions. | |
| offset | No | Pagination offset. Start at 0; increment by limit to page through results. | |
| language | No | BCP 47 language code for returned labels and descriptions (e.g., "en", "de", "zh"). | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | Yes | The entity type that was searched ("item" or "property"). |
| query | Yes | The search query that was executed. |
| message | No | Recovery hint when results are empty — suggests how to broaden the query. Absent when results are present. |
| results | Yes | Ranked list of matching entities. Empty when no results found. |
| language | Yes | The language used for label and description display. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 QueryARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SPARQL 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 | |
| timeout | No | Client-side timeout in seconds (1–55). Capped at 55s — the Wikidata server hard limit is 60s. | |
| language | No | Language 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
| Name | Required | Description |
|---|---|---|
| results | Yes | Array of result bindings. Each row maps variable names to binding objects with { type, value, "xml:lang"?, datatype? } fields. |
| rowCount | Yes | Number of result rows. |
| truncated | Yes | True 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. |
| variables | Yes | Variable names returned by the SELECT clause. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!