Skip to main content
Glama
usegranthq

UseGrant MCP Server

Official
by usegranthq

UseGrant MCP Server

This is a Model Context Protocol (MCP) server for interacting with the UseGrant API. It provides a set of tools for managing providers, clients, tenants, and access tokens through the UseGrant platform.

Tools

  • list_providers: List all providers

  • create_provider: Create a new provider

  • get_provider: Get a provider by ID

  • delete_provider: Delete a provider

  • list_clients: List all clients for a provider

  • create_client: Create a new client for a provider

  • get_client: Get client details by provider and client ID

  • delete_client: Delete a client from a provider

  • list_domains: List all domains for a provider

  • add_domain: Add a domain to a provider

  • get_domain: Get a domain by provider and domain ID

  • delete_domain: Delete a domain from a provider

  • verify_domain: Verify a domain for a provider

  • create_access_token: Create a new access token for a client

  • list_tenants: List all tenants

  • create_tenant: Create a new tenant

  • get_tenant: Get a tenant by ID

  • delete_tenant: Delete a tenant

  • list_tenant_providers: List all providers for a tenant

  • create_tenant_provider: Create a new provider for a tenant

  • get_tenant_provider: Get a provider for a tenant

  • delete_tenant_provider: Delete a provider for a tenant

  • list_tenant_provider_policies: List all policies for a tenant provider

  • create_tenant_provider_policy: Create a new policy for a tenant provider

  • get_tenant_provider_policy: Get a policy for a tenant provider

  • delete_tenant_provider_policy: Delete a policy for a tenant provider

  • validate_access_token: Validate an access token for a tenant

Related MCP server: MCP Boilerplate

Requirements

  • Node.js 16 or higher

  • A valid UseGrant API key. Refer here for more details.

Using with Claude desktop

Add the following config to your claude_desktop_config file:

{
  "mcpServers": {
    "usegrant": {
      "command": "npx",
      "args": ["-y", "@usegrant/mcp-server"],
      "env": {
        "USEGRANT_API_KEY": "your_api_key_here"
      }
    }
  }
}

Testing

To test the MCP server, we can use mcp inspector.

Copy the .env.example file to .env and set the USEGRANT_API_KEY environment variable.

npx @modelcontextprotocol/inspector -e USEGRANT_API_KEY=$USEGRANT_API_KEY npx tsx src/index.ts

To watch and build the project:

npm run dev

License

This project is licensed under the MIT License. See the LICENSE file for details.

Available Tools

26 tools
add_domainC

Add a domain to a provider

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain of the domain
providerIdYesThe ID of the provider

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose permissions needed, whether it's idempotent, what happens on duplicate domains, error conditions, or side effects, which are critical for a mutation tool like this.

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 a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavior, error handling, return values, and integration with sibling tools, leaving significant gaps for the agent to operate effectively.

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 parameters are documented in the schema. The description adds no meaning beyond the schema, such as explaining domain format constraints or providerId sourcing, but the baseline is 3 since the schema handles parameter documentation adequately.

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

Purpose3/5

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

The description states the action ('Add') and resource ('domain to a provider'), which gives a basic understanding of purpose. However, it's vague about what 'add' entails operationally and doesn't distinguish from siblings like 'create_provider' or 'verify_domain', leaving ambiguity about scope and differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., provider must exist), exclusions, or relationships with sibling tools like 'delete_domain' or 'verify_domain', leaving the agent to infer usage context.

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

create_access_tokenC

Create a new access token for a client

ParametersJSON Schema
NameRequiredDescriptionDefault
audienceAsArrayNoWhether to use an array of audiences
clientIdYesThe ID of the client
expiresInNoThe number of seconds the token will be valid for
forceDefaultDomainNoWhether to force the default domain
providerIdYesThe ID of the provider
useJwtTypeNoWhether to use at+jwt token type in the header

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It lacks critical behavioral details: whether this is a write operation (implied but not explicit), authentication requirements, rate limits, token format, or what happens on success/failure. For a security-sensitive token creation tool, this is a significant gap.

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 a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded, with every word earning its place.

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

Completeness2/5

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

For a 6-parameter tool with no annotations and no output schema, the description is inadequate. It doesn't explain what the tool returns (token format, expiration), error conditions, or security implications. Given the complexity and lack of structured data, more context is needed for the agent to use this tool effectively.

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 parameters are fully documented in the schema. The description adds no additional parameter context beyond what's in the schema (e.g., explaining relationships between parameters like 'providerId' and 'clientId'). Baseline 3 is appropriate when schema does all the work.

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

Purpose4/5

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

The description clearly states the action ('Create') and resource ('access token for a client'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'create_client' or 'create_provider' beyond the resource type, missing explicit sibling distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing an existing client), exclusions, or contextual triggers, leaving the agent to infer usage from the tool name alone.

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

create_clientC

Create a new client for a provider

ParametersJSON Schema
NameRequiredDescriptionDefault
audienceYesThe audience of the client
nameYesThe name of the client
providerIdYesThe ID of the provider

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't disclose any behavioral traits like required permissions, whether the operation is idempotent, what happens on duplicate names, or what the response looks like. For a creation tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

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 a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple creation tool and front-loads the essential information. Every word earns its place.

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

Completeness2/5

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

For a creation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what a 'client' represents in this system, what happens after creation, whether there are side effects, or what the tool returns. The agent must guess at the broader context despite having rich sibling tools that suggest this is part of a provider/client management system.

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 the schema already documents all three parameters with their constraints. The description adds no parameter-specific information beyond what's in the schema - it doesn't explain what 'audience' means in context, how 'providerId' relates to other tools, or provide examples. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Create') and resource ('new client for a provider'), making the purpose immediately understandable. It distinguishes from sibling tools like 'get_client' or 'list_clients' by specifying creation rather than retrieval. However, it doesn't fully differentiate from other creation tools like 'create_provider' or 'create_access_token' beyond mentioning 'client' specifically.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing provider), when not to use it, or how it differs from similar creation tools like 'create_provider' or 'create_tenant'. The agent must infer usage from the tool name and schema alone.

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

create_providerC

Create a new provider

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesThe description of the provider
nameYesThe name of the provider

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Create a new provider' implies a write/mutation operation, it doesn't disclose important behavioral traits like required permissions, whether this is an idempotent operation, what happens on duplicate names, what the response contains, or any rate limits. For a creation tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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 extremely concise at just three words ('Create a new provider'), with zero wasted language. It's front-loaded with the core action and resource. While it may be too brief for completeness, as a standalone statement it earns full marks for conciseness.

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

Completeness2/5

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

Given this is a creation/mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what a 'provider' is in this context, doesn't differentiate from similar creation tools, and provides no behavioral context about permissions, idempotency, or response format. For a tool that creates persistent resources, this level of documentation is inadequate.

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 has 100% description coverage, with clear documentation for both required parameters (name and description). The tool description adds no parameter information beyond what's already in the schema. According to the scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.

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

Purpose3/5

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

The description 'Create a new provider' clearly states the action (create) and resource (provider), which is better than a tautology. However, it doesn't distinguish this tool from sibling creation tools like create_client, create_tenant, or create_tenant_provider, leaving ambiguity about what specifically makes a 'provider' different from those other entities.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling creation tools (create_client, create_tenant, create_tenant_provider, etc.), but the description doesn't explain what a 'provider' is or when one would create it instead of those other entities. No prerequisites, constraints, or alternatives are mentioned.

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

create_tenantC

Create a new tenant

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesThe description of the tenant
nameYesThe name of the tenant

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Create a new tenant' which implies a write operation, but fails to mention critical details like required permissions, whether the operation is idempotent, what happens on conflicts, or what the response includes. This leaves significant gaps for a mutation tool.

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 extremely concise with a single sentence, 'Create a new tenant', which is front-loaded and wastes no words. While it lacks detail, it is structurally efficient and does not include redundant information.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is incomplete. It does not address behavioral aspects like error handling, return values, or side effects, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.

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 has 100% description coverage, clearly documenting the 'name' and 'description' parameters with constraints. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3 for high schema coverage.

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

Purpose2/5

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

The description 'Create a new tenant' is a tautology that merely restates the tool name without adding specificity. It does not explain what a 'tenant' represents in this context or what resources are involved, nor does it differentiate from sibling tools like 'create_client' or 'create_provider'.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as whether authentication is required, or specify scenarios where creating a tenant is appropriate compared to other creation tools like 'create_client' or 'create_provider'.

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

create_tenant_providerC

Create a new provider for a tenant

ParametersJSON Schema
NameRequiredDescriptionDefault
audienceYesThe audience of the provider
earliestIssuanceTimeAllowedYesThe earliest issuance time allowed in hours
fingerprintsYes
tenantIdYesThe ID of the tenant
urlYesThe URL of the provider

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't disclose important behavioral traits like required permissions, whether this is idempotent, what happens on conflicts, rate limits, or what the response contains. This leaves significant gaps for an agent to understand how to use this tool safely and effectively.

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 a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a tool with this level of complexity and gets straight to the point.

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

Completeness2/5

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

For a mutation tool with 5 required parameters and no annotations or output schema, the description is insufficiently complete. It doesn't explain what constitutes a 'provider' in this context, what the creation entails, what happens after creation, or any error conditions. The agent would need to guess about important behavioral aspects of this write operation.

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 description provides no parameter information beyond what's already in the schema. With 80% schema description coverage (4 out of 5 parameters have descriptions), the schema does most of the heavy lifting. The baseline score of 3 reflects that the description adds no additional parameter semantics but the schema coverage is reasonably good.

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

Purpose4/5

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

The description clearly states the action ('Create') and resource ('new provider for a tenant'), making the purpose immediately understandable. However, it doesn't differentiate this tool from the sibling 'create_provider' tool, which appears to serve a similar function but potentially at a different scope or level.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'create_provider' or other sibling tools. There's no mention of prerequisites, context, or exclusions that would help an agent choose appropriately between similar creation tools in the server.

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

create_tenant_provider_policyC

Create a new policy for a tenant provider

ParametersJSON Schema
NameRequiredDescriptionDefault
audienceYesThe audience of the tenant provider policy
conditionsYesThe conditions of the tenant provider policy
descriptionYesThe description of the tenant provider policy
nameYesThe name of the tenant provider policy
providerIdYesThe ID of the tenant provider
tenantIdYesThe ID of the tenant

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'Create' which implies a write/mutation operation, but doesn't disclose behavioral traits like required permissions, whether the policy is immediately active, idempotency, error conditions, or what happens on success (e.g., returns policy ID). This is inadequate for a mutation tool with zero annotation coverage.

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 a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration or repetition.

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

Completeness2/5

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

Given the complexity (6 required parameters for a mutation tool), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what a 'tenant provider policy' is, how it's used, or what the tool returns, leaving significant gaps for the agent to operate effectively.

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%, with each parameter well-documented in the schema (e.g., 'audience', 'conditions', 'description'). The description adds no parameter semantics beyond what the schema provides, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Create') and resource ('new policy for a tenant provider'), making the purpose understandable. It distinguishes from siblings like 'delete_tenant_provider_policy' and 'get_tenant_provider_policy' by specifying creation, but doesn't differentiate from other creation tools (e.g., 'create_tenant', 'create_provider') beyond the resource type.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., existing tenant and provider), exclusions, or relationships with sibling tools like 'create_tenant_provider' or 'list_tenant_provider_policies'. The agent must infer usage from the tool name and schema alone.

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

delete_clientC

Delete a client from a provider

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYesThe ID of the client
providerIdYesThe ID of the provider

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the destructive action ('Delete') but lacks critical details: whether deletion is permanent or reversible, what permissions are required, if it affects related data, or what the response looks like. This is inadequate for a mutation tool with zero annotation coverage.

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 a single, efficient sentence with zero wasted words. It's front-loaded with the core action and target, making it immediately understandable. Every word earns its place by conveying essential purpose without redundancy.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks behavioral details (e.g., permanence, side effects), usage context, and response expectations. While concise, it doesn't provide enough information for safe and effective tool invocation in a complex environment with many sibling tools.

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 description adds no parameter-specific information beyond what the schema provides. Since schema description coverage is 100% (both parameters are documented with clear descriptions), the baseline score of 3 applies. The description doesn't compensate with additional context about parameter relationships or usage.

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

Purpose4/5

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

The description clearly states the action ('Delete') and target ('a client from a provider'), providing a specific verb+resource combination. It distinguishes itself from siblings like 'delete_provider' or 'delete_tenant' by specifying the client resource type, though it doesn't explicitly contrast with other deletion tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. While the description implies it's for removing clients, there's no mention of prerequisites, conditions, or comparisons to related tools like 'delete_tenant_provider' or 'get_client' for verification. The agent must infer usage from context alone.

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

delete_domainC

Delete a domain from a provider

ParametersJSON Schema
NameRequiredDescriptionDefault
domainIdYesThe ID of the domain
providerIdYesThe ID of the provider

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool performs a deletion, implying it's destructive, but doesn't specify whether this action is reversible, requires specific permissions, has side effects (e.g., cascading deletions), or returns confirmation data. For a destructive operation, this lack of detail is a significant gap.

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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action ('Delete'), making it immediately scannable. Every word earns its place, and there is no redundancy or fluff.

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

Completeness2/5

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

For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks critical context such as confirmation of deletion, error conditions (e.g., what happens if the domain doesn't exist), or behavioral details (e.g., irreversible action). The agent must guess these aspects, which is inadequate for a tool that permanently removes resources.

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%, with both parameters ('domainId' and 'providerId') clearly documented in the schema. The description adds no additional semantic context about these parameters, such as where to find these IDs or their format. The baseline score of 3 reflects adequate parameter documentation solely from the schema.

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

Purpose4/5

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

The description clearly states the action ('Delete') and resource ('a domain from a provider'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'get_domain' or 'list_domains' by specifying the destructive operation. However, it doesn't explicitly differentiate from 'delete_tenant' or 'delete_provider', which target different resources.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the domain must exist or be in a specific state), consequences (e.g., what happens to associated data), or when to choose other tools like 'verify_domain' first. The agent must infer usage from the tool name alone.

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

delete_providerC

Delete a provider

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the provider

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Delete a provider', implying a destructive mutation, but doesn't add context such as whether deletion is permanent, requires specific permissions, or has side effects (e.g., affecting associated tenants or domains). This leaves significant gaps for a destructive operation.

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 extremely concise with a single sentence, 'Delete a provider', which is front-loaded and wastes no words. It efficiently conveys the core purpose without unnecessary elaboration.

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

Completeness2/5

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

Given the tool's complexity as a destructive delete operation with no annotations and no output schema, the description is incomplete. It doesn't address critical aspects like success/failure responses, error conditions, or confirmation requirements, making it inadequate for safe and effective use by an AI agent.

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%, with the parameter 'id' documented as 'The ID of the provider'. The description doesn't add any meaning beyond this, such as format examples or where to find the ID. Baseline is 3 since the schema adequately covers the parameter semantics.

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

Purpose4/5

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

The description clearly states the action ('Delete') and the resource ('a provider'), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'delete_client' or 'delete_tenant', which follow the same pattern, so it lacks sibling distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention prerequisites like needing the provider ID or warn about irreversible deletion, nor does it reference related tools like 'get_provider' for verification or 'list_providers' for selection.

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

delete_tenantC

Delete a tenant

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the tenant

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Delete a tenant' which implies a destructive mutation, but doesn't specify if this is irreversible, requires specific permissions, has side effects (e.g., cascading deletion), or what happens on success/failure. This leaves critical behavioral traits unaddressed.

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 extremely concise with a single sentence, 'Delete a tenant', which is front-loaded and wastes no words. This is efficient for a simple tool, though it may be too brief for adequate completeness.

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

Completeness2/5

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

Given the complexity of a deletion operation with no annotations and no output schema, the description is insufficient. It doesn't cover behavioral aspects like irreversibility, error handling, or return values, leaving the agent with significant gaps in understanding how to use the tool safely and effectively.

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 has 100% description coverage, with the 'id' parameter clearly documented. The description adds no additional meaning beyond the schema, such as explaining what constitutes a valid tenant ID or where to find it. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Delete') and resource ('a tenant'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like delete_client or delete_domain, which follow the same pattern, so it lacks specific distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention prerequisites like ensuring the tenant exists (via get_tenant) or warn about irreversible deletion, nor does it reference related tools like list_tenants for selection.

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

delete_tenant_providerC

Delete a provider for a tenant

ParametersJSON Schema
NameRequiredDescriptionDefault
providerIdYesThe ID of the tenant provider
tenantIdYesThe ID of the tenant

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is 'Delete', implying a destructive mutation, but doesn't address critical aspects like permissions needed, whether deletion is reversible, side effects, or what happens to associated resources. This is a significant gap for a destructive operation.

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 a single, efficient sentence with zero wasted words. It's appropriately sized for a simple deletion tool and front-loads the core action, making it easy to parse quickly.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks information about behavioral consequences, success/failure responses, and how it fits within the broader system (e.g., sibling tools). The agent must guess these critical aspects.

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%, with both parameters ('tenantId' and 'providerId') clearly documented in the schema. The description adds no additional parameter semantics beyond implying these IDs are needed for deletion, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Delete') and the resource ('a provider for a tenant'), which is specific and unambiguous. However, it doesn't distinguish this tool from sibling deletion tools like 'delete_provider' or 'delete_tenant', leaving some ambiguity about scope.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the provider must exist), exclusions, or related tools like 'delete_tenant_provider_policy', leaving the agent to infer usage from context alone.

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

delete_tenant_provider_policyC

Delete a policy for a tenant provider

ParametersJSON Schema
NameRequiredDescriptionDefault
policyIdYesThe ID of the tenant provider policy
providerIdYesThe ID of the tenant provider
tenantIdYesThe ID of the tenant

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Delete' implies a destructive mutation, the description doesn't specify whether this action is reversible, what permissions are required, what happens to associated data, or any rate limits. This leaves significant gaps for a destructive operation.

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 a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a straightforward deletion operation and gets directly to the point.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is insufficient. It doesn't address critical behavioral aspects like reversibility, permissions, or error conditions, nor does it explain what happens after deletion or how to verify success. The 100% schema coverage helps with parameters but doesn't compensate for the missing operational context.

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%, with all three parameters clearly documented in the schema itself. The description doesn't add any additional parameter context beyond what's already in the schema, so it meets the baseline expectation without providing extra value.

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

Purpose4/5

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

The description clearly states the action ('Delete') and the resource ('a policy for a tenant provider'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar deletion tools like 'delete_tenant_provider' or 'delete_provider', which would require more specificity to earn a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'delete_tenant_provider' and 'delete_provider' available, there's no indication of what distinguishes this deletion operation from those, nor any prerequisites or contextual constraints mentioned.

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

get_clientC

Get client details by provider and client ID

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYesThe ID of the client
providerIdYesThe ID of the provider

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose if it's read-only, requires authentication, handles errors, returns structured data, or has rate limits, which are critical for a retrieval tool.

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 a single, efficient sentence that front-loads the core purpose without any fluff or redundancy. Every word earns its place, making it highly concise and well-structured for quick understanding.

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

Completeness2/5

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

Given the tool's complexity (retrieval with two required parameters) and lack of annotations and output schema, the description is incomplete. It doesn't explain what 'client details' includes, error handling, or return format, leaving significant gaps for the agent to infer behavior.

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 description adds minimal semantics by naming the parameters ('provider and client ID'), but the input schema already has 100% coverage with clear descriptions for both parameters. This meets the baseline of 3, as the schema does the heavy lifting without needing extra detail.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('client details') with specific identifiers ('by provider and client ID'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_clients' or 'get_provider', which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'list_clients' for browsing or 'get_provider' for provider details. It lacks context about prerequisites, error conditions, or typical use cases, leaving the agent without usage direction.

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

get_domainC

Get a domain by provider and domain ID

ParametersJSON Schema
NameRequiredDescriptionDefault
domainIdYesThe ID of the domain
providerIdYesThe ID of the provider

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action without disclosing behavioral traits like read-only nature, error handling, authentication needs, or rate limits. It doesn't add meaningful context beyond the basic operation.

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 a single, efficient sentence with zero waste—front-loaded and appropriately sized for a simple retrieval tool. Every word earns its place.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for a retrieval tool. It lacks details on return values, error cases, or behavioral context, leaving gaps despite the tool's low complexity.

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 the schema fully documents both parameters. The description adds no extra meaning beyond implying these IDs are required for lookup, aligning with the baseline when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('a domain'), specifying it's retrieved by 'provider and domain ID'. It distinguishes from siblings like 'list_domains' by focusing on a single domain, though it doesn't explicitly contrast with 'verify_domain' or 'delete_domain'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'list_domains' for browsing or 'verify_domain' for validation. The description implies usage when you have specific IDs, but lacks explicit context or exclusions.

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

get_providerC

Get a provider by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the provider

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the action ('Get') but doesn't disclose behavioral traits: whether it's a read-only operation, requires authentication, has rate limits, returns error if ID is invalid, or what the output format might be. For a retrieval tool with zero annotation coverage, this is a significant gap.

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 extremely concise ('Get a provider by ID')—a single, clear sentence with zero waste. It's front-loaded and efficiently communicates the core purpose without unnecessary elaboration.

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

Completeness2/5

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

Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is incomplete. It doesn't cover behavioral aspects (e.g., read-only nature, error handling) or output expectations, leaving gaps for an AI agent to infer. For a basic retrieval tool, more context would be helpful despite the straightforward schema.

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 description adds minimal meaning beyond the input schema. It mentions 'by ID', which aligns with the schema's single 'id' parameter (100% coverage). No additional details on ID format, validation, or examples are provided. With high schema coverage, the baseline is 3, and the description doesn't significantly enhance parameter understanding.

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

Purpose4/5

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

The description 'Get a provider by ID' clearly states the verb ('Get') and resource ('provider'), and specifies the lookup mechanism ('by ID'). It distinguishes from siblings like 'list_providers' (which retrieves multiple providers) and 'get_tenant_provider' (which involves tenant context). However, it doesn't explicitly contrast with these alternatives in the description text itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid provider ID), contrast with 'list_providers' for bulk retrieval, or specify scenarios where this is appropriate (e.g., detailed view of a single known provider). Usage is implied but not articulated.

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

get_tenantC

Get a tenant by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the tenant

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'Get' implies a read operation but lacks details on permissions, rate limits, error handling (e.g., invalid ID), or return format. For a tool with zero annotation coverage, this is insufficient behavioral disclosure.

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 a single, efficient sentence with zero wasted words. It's front-loaded with the core action ('Get a tenant'), making it easy to parse quickly. Every word earns its place.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what a 'tenant' is in this context, what data is returned, or how errors are handled. For a read operation with no structured output documentation, more context is needed.

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%, with the parameter 'id' documented as 'The ID of the tenant'. The description adds no additional meaning beyond this, such as ID format or sourcing. With high schema coverage, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('a tenant by ID'), making the purpose unambiguous. However, it doesn't distinguish this tool from other 'get_' siblings like get_client or get_provider, which follow the same pattern but target different resources.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a tenant ID), contrast with list_tenants for browsing, or specify error conditions. Without such context, an agent might misuse it.

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

get_tenant_providerC

Get a provider for a tenant

ParametersJSON Schema
NameRequiredDescriptionDefault
providerIdYesThe ID of the tenant provider
tenantIdYesThe ID of the tenant

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action ('Get') without detailing what 'Get' entails—e.g., whether it's a read-only operation, what data is returned, error conditions, or authentication needs. This leaves significant gaps in understanding the tool's behavior.

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 a single, efficient sentence with no wasted words, making it appropriately concise. However, it's front-loaded with minimal detail, which could be improved by adding more context without sacrificing brevity.

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

Completeness2/5

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

Given the complexity of a tool with 2 parameters, no annotations, and no output schema, the description is incomplete. It fails to explain what 'provider' means, what data is returned, or how this differs from similar tools, leaving the agent with insufficient context to use it effectively.

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 has 100% description coverage, with clear documentation for 'providerId' and 'tenantId'. The description adds no additional meaning beyond the schema, as it doesn't explain parameter relationships or usage context. With high schema coverage, the baseline score of 3 is appropriate, but no extra value is provided.

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

Purpose3/5

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

The description 'Get a provider for a tenant' states a basic purpose with a verb ('Get') and resource ('provider for a tenant'), but it's vague about what 'provider' means in this context and doesn't differentiate from sibling tools like 'get_provider' or 'list_tenant_providers'. It lacks specificity about what type of provider or what information is retrieved.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With siblings like 'get_provider' and 'list_tenant_providers', the description doesn't clarify if this is for retrieving a specific provider linked to a tenant, making it unclear when to choose this over other tools. No exclusions or prerequisites are mentioned.

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

get_tenant_provider_policyC

Get a policy for a tenant provider

ParametersJSON Schema
NameRequiredDescriptionDefault
policyIdYesThe ID of the tenant provider policy
providerIdYesThe ID of the tenant provider
tenantIdYesThe ID of the tenant

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Get a policy' which implies a read-only operation, but it doesn't clarify if this requires authentication, returns specific data formats, handles errors, or has any side effects. For a tool with three required parameters and no annotation coverage, this leaves significant behavioral gaps.

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 a single, straightforward sentence that efficiently conveys the core action without unnecessary words. It's front-loaded with the key verb 'Get,' making it easy to parse. However, it could be slightly more informative without losing conciseness, such as by hinting at the policy type or usage context.

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

Completeness2/5

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

Given the complexity of a tool with three required parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the policy entails, the return format, error conditions, or how it fits into the broader context of tenant provider management. This leaves the agent with insufficient information to use the tool effectively beyond basic parameter passing.

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 schema description coverage is 100%, with clear descriptions for each parameter (policyId, providerId, tenantId) in the input schema. The description adds no additional parameter semantics beyond what's already documented in the schema, such as format examples or relationships between IDs. This meets the baseline score of 3 since the schema adequately covers parameter details.

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

Purpose3/5

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

The description 'Get a policy for a tenant provider' clearly states the action (get) and resource (policy for a tenant provider), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'list_tenant_provider_policies' or specify what type of policy it retrieves (e.g., security, access), leaving it somewhat vague compared to more specific alternatives.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'list_tenant_provider_policies' for listing multiple policies or other 'get_' tools for different resources. It lacks context about prerequisites, such as needing existing tenant, provider, and policy IDs, or when this retrieval is appropriate over other operations.

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

list_clientsC

List all clients

ParametersJSON Schema
NameRequiredDescriptionDefault
providerIdYesThe ID of the provider

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It doesn't disclose behavioral traits such as whether this is a read-only operation (implied by 'List'), pagination, rate limits, authentication needs, or error handling. The description is minimal and lacks context beyond the basic action.

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 extremely concise with a single phrase 'List all clients', which is front-loaded and wastes no words. Every part of the description earns its place by conveying the core action.

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

Completeness2/5

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

Given no annotations, no output schema, and a simple input schema, the description is incomplete. It doesn't explain what 'clients' are, the return format, or any constraints (e.g., permissions needed). For a tool with one required parameter and no structured context, more detail is needed to be fully helpful.

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 the schema already documents the 'providerId' parameter. The description doesn't add any meaning beyond what the schema provides (e.g., why providerId is required, what happens if invalid). Baseline is 3 as the schema handles parameter documentation adequately.

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

Purpose3/5

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

The description 'List all clients' clearly states the verb ('List') and resource ('clients'), but it's vague about scope and doesn't differentiate from sibling tools like 'get_client' or 'list_tenants'. It doesn't specify what 'all' means in context (e.g., all clients for a provider, all clients globally).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'get_client' (for a single client) or other list tools (e.g., 'list_providers'). The description implies a bulk retrieval, but there's no explicit comparison or exclusion criteria.

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

list_domainsC

List all domains for a provider

ParametersJSON Schema
NameRequiredDescriptionDefault
providerIdYesThe ID of the provider

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'List all domains' implies a read-only operation, it doesn't specify whether this requires authentication, how results are returned (e.g., pagination, format), or any rate limits. The description is minimal and lacks essential behavioral context for a tool with no annotation coverage.

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 a single, efficient sentence with zero waste. It's front-loaded with the core purpose ('List all domains for a provider'), making it immediately clear without unnecessary elaboration. Every word earns its place.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns a list of domains. It doesn't explain the return format, error conditions, or behavioral traits like authentication needs. For a read operation with no structured support, more context is needed to be fully helpful.

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%, with the parameter 'providerId' clearly documented in the schema as 'The ID of the provider'. The description mentions 'for a provider', which aligns with but doesn't add meaningful detail beyond the schema. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('List all domains') and the resource ('for a provider'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'get_domain' (singular retrieval) and 'add_domain'/'delete_domain' (mutations), though it doesn't explicitly mention these distinctions in the text itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_domain' (for retrieving a single domain) or 'verify_domain', nor does it specify prerequisites or contexts where listing domains is appropriate versus other operations.

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

list_providersB

List all providers

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. 'List all providers' implies a read-only operation but doesn't specify whether it's paginated, sorted, or includes metadata. It lacks details on rate limits, authentication needs, or what 'all' entails (e.g., active only, includes deleted). For a tool with zero annotation coverage, this is insufficient.

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 extremely concise ('List all providers')—just three words that directly convey the core action. It's front-loaded with no wasted words, making it easy to parse quickly. This is an example of efficient communication.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema), the description is minimally adequate. However, without annotations or output schema, it doesn't explain what the list returns (e.g., provider objects, IDs only) or behavioral aspects. For a basic list operation among many siblings, it could benefit from slightly more context about scope or format.

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?

The tool has 0 parameters, and schema description coverage is 100% (though schema is empty). The description doesn't need to explain parameters, so it meets baseline expectations. No additional parameter information is required or provided.

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

Purpose4/5

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

The description 'List all providers' clearly states the verb ('List') and resource ('providers'), making the purpose immediately understandable. It distinguishes from siblings like 'get_provider' (singular retrieval) and 'create_provider' (creation). However, it doesn't specify scope (e.g., all providers in the system vs. filtered), which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'list_providers' over 'get_provider' for single retrieval, or how it relates to other list tools like 'list_tenants' or 'list_clients'. There's no context about prerequisites, permissions, or typical use cases.

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

list_tenant_provider_policiesC

List all policies for a tenant provider

ParametersJSON Schema
NameRequiredDescriptionDefault
providerIdYesThe ID of the tenant provider
tenantIdYesThe ID of the tenant

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it's a list operation, implying read-only behavior, but doesn't disclose any behavioral traits like pagination, sorting, rate limits, authentication requirements, or what happens if the tenant/provider doesn't exist. This leaves significant gaps for an agent to use it correctly.

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 a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly without unnecessary elaboration.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for a tool with two required parameters. It doesn't explain what 'policies' entail, the format of the returned list, or any error conditions. For a list operation in a management context, this lacks sufficient context for reliable agent use.

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%, with clear descriptions for both required parameters (tenantId and providerId). The description doesn't add any meaning beyond what the schema provides—it doesn't explain the relationship between tenant and provider or how policies are scoped. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('List all') and resource ('policies for a tenant provider'), making the purpose understandable. However, it doesn't distinguish this tool from similar siblings like 'list_tenant_providers' or 'list_providers' by specifying what type of policies are being listed or their scope.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_tenant_provider_policy' (singular) and 'list_tenant_providers', there's no indication of when this list operation is preferred or what prerequisites might exist (e.g., needing a specific tenant/provider).

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

list_tenant_providersC

List all providers for a tenant

ParametersJSON Schema
NameRequiredDescriptionDefault
tenantIdYesThe ID of the tenant

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires authentication, potential rate limits, or what the return format looks like (e.g., pagination, structure).

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 a single, efficient sentence with zero waste. It's appropriately sized for a simple list operation and front-loads the core purpose without unnecessary elaboration.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'providers' are in this context, the return format, or any limitations. For a tool with 1 parameter and no structured output, more context is needed to guide effective use.

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 the input schema fully documents the 'tenantId' parameter. The description adds no additional meaning beyond implying the parameter is used to scope the listing, which is already clear from the schema. Baseline 3 is appropriate as the schema handles parameter documentation.

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

Purpose4/5

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

The description clearly states the action ('List all') and resource ('providers for a tenant'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list_providers' or 'get_tenant_provider', which could cause confusion about scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'list_providers' or 'get_tenant_provider'. The description lacks context about prerequisites or exclusions, leaving the agent to infer usage from the tool name alone.

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

list_tenantsB

List all tenants

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. 'List all tenants' implies a read-only operation but doesn't disclose pagination, sorting, filtering, rate limits, authentication requirements, or return format. For a list operation with zero annotation coverage, this is inadequate.

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 maximally concise - three words that directly convey the core functionality without any fluff. It's front-loaded and every word earns its place, making it efficient for agent comprehension.

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

Completeness2/5

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

For a list operation with no annotations and no output schema, the description is insufficient. It doesn't explain what 'tenants' are in this context, what data is returned, whether results are paginated, or any system constraints. The agent lacks necessary context 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?

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. Baseline 4 is correct for zero-parameter tools.

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

Purpose4/5

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

The description 'List all tenants' clearly states the verb ('List') and resource ('tenants'), making the purpose immediately understandable. It distinguishes from siblings like 'get_tenant' (singular retrieval) and 'create_tenant' (creation). However, it lacks specificity about scope or format, preventing a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, compare with 'get_tenant' for single-tenant retrieval, or explain when listing is appropriate versus other list_* tools. This leaves the agent without contextual usage cues.

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

verify_domainC

Verify a domain for a provider

ParametersJSON Schema
NameRequiredDescriptionDefault
domainIdYesThe ID of the domain
providerIdYesThe ID of the provider

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'verify' but doesn't disclose behavioral traits such as what verification entails (e.g., DNS checks, email confirmation), whether it's idempotent, requires specific permissions, or has side effects like updating domain status. This leaves significant gaps for an agent to understand the tool's behavior.

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 a single, efficient sentence with zero waste. It is front-loaded with the core purpose ('verify a domain for a provider'), making it easy to parse quickly without unnecessary details.

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

Completeness2/5

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

Given the complexity of a verification tool with no annotations and no output schema, the description is incomplete. It lacks details on what verification does, expected outcomes, error conditions, or how it fits into the broader workflow with siblings like 'add_domain'. This makes it inadequate for an agent to use effectively without guesswork.

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%, with clear descriptions for 'domainId' and 'providerId'. The description adds no additional meaning beyond the schema, such as explaining the relationship between domain and provider or what constitutes valid IDs. Baseline 3 is appropriate as the schema adequately documents parameters.

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

Purpose4/5

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

The description clearly states the action ('verify') and the resource ('a domain for a provider'), which is specific and meaningful. However, it doesn't explicitly differentiate from sibling tools like 'get_domain' or 'add_domain', which might have overlapping contexts but different purposes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't specify prerequisites (e.g., domain must be added first), timing (e.g., after adding a domain), or contrast with tools like 'get_domain' (which might retrieve status without verification).

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 26 tool updatesv1.0.0
    • First observedadd_domain
    • First observedcreate_access_token
    • First observedcreate_client
    • First observedcreate_provider
    • First observedcreate_tenant
    • First observedcreate_tenant_provider
    • First observedcreate_tenant_provider_policy
    • First observeddelete_client
    • First observeddelete_domain
    • First observeddelete_provider
    • First observeddelete_tenant
    • First observeddelete_tenant_provider
    • First observeddelete_tenant_provider_policy
    • First observedget_client
    • First observedget_domain
    • First observedget_provider
    • First observedget_tenant
    • First observedget_tenant_provider
    • First observedget_tenant_provider_policy
    • First observedlist_clients
    • First observedlist_domains
    • First observedlist_providers
    • First observedlist_tenant_provider_policies
    • First observedlist_tenant_providers
    • First observedlist_tenants
    • First observedverify_domain

TDQS

B3.2/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific resources and actions (e.g., create_client vs. delete_client, get_domain vs. verify_domain). There is no ambiguity or overlap in functionality, making it easy for an agent to select the correct tool.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case throughout (e.g., create_provider, delete_tenant, list_domains). The naming is predictable and uniform, enhancing readability and usability.

Tool Count3/5

With 26 tools, the count is borderline high for a typical MCP server scope, potentially feeling heavy. However, given the domain (provider, client, tenant, domain, policy management), it covers many operations, so it's not extreme but leans toward being extensive.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for the domain, including create, get, list, delete, and verify operations across all resources (providers, clients, tenants, domains, policies). There are no obvious gaps, ensuring agents can handle full workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.

    111
  • Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server

  • The Stytch MCP server is a reference implementation that demonstrates remote MCP server authentication and authorization using Stytch Connected Apps. It provides OAuth 2.1-compliant authorization (including PKCE), Dynamic Client Registration, and validates Stytch-issued access tokens to enable AI agents to securely interact with external services through permissioned access, supporting scopes like openid, email, profile, and manage:project_data.

  • The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.

Related MCP Servers

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/usegranthq/mcp-server'

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