Skip to main content
Glama
ryanmichaeljames

Dataverse MCP Server

dataverse_list_alternate_keys

Read-onlyIdempotent

List alternate keys defined on a Dataverse table. Returns schema name, logical name, key attributes, and index status for upsert integration.

Instructions

List alternate keys (EntityKeyMetadata) defined on a Dataverse table.

Alternate keys let integration tools upsert records by business values instead of GUIDs. Returns SchemaName, LogicalName, KeyAttributes, and EntityKeyIndexStatus (which tracks async index build progress). Use the LogicalName with dataverse_delete_alternate_key to remove a key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

Annotations already indicate this is read-only, open-world, idempotent, and non-destructive. The description adds valuable behavioral detail beyond annotations: it lists the specific fields returned (SchemaName, LogicalName, KeyAttributes, EntityKeyIndexStatus) and clarifies that EntityKeyIndexStatus tracks async index build progress. No contradictions 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.

Conciseness5/5

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

The description is concise: 4 sentences total. The first sentence states the core purpose, the second gives usage context, the third enumerates return fields, and the fourth provides a cross-reference to a sibling tool. Every sentence adds unique value, with no redundancy or unnecessary detail.

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 tool's simplicity (few parameters, read-only nature, and presence of output schema), the description covers all necessary aspects: what it does, what it returns, a practical usage hint, and a connection to a related tool. It does not need to explain return values as the output schema presumably does. The description feels complete for an agent to select and invoke correctly.

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?

The input schema already provides descriptions for all three parameters (dataverse_url, table_logical_name, top). The description does not add any additional semantic information about these parameters. Since schema coverage is high (descriptions exist in schema), the baseline is 3, and the description adds no extra value here.

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 specific action: 'List alternate keys (EntityKeyMetadata) defined on a Dataverse table.' The verb 'list' and the target 'alternate keys' are precise. Among siblings like dataverse_list_views or dataverse_list_tables, this uniquely identifies a distinct resource type, so the tool is well differentiated.

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 explains the purpose of alternate keys ('let integration tools upsert records by business values instead of GUIDs'), giving context for when to use the tool. It also advises to use the LogicalName output with dataverse_delete_alternate_key for removal. However, it does not explicitly state when not to use or compare to other list tools, though the uniqueness of the resource makes that less critical.

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

Install Server

Other Tools

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/ryanmichaeljames/dataverse-mcp'

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