Skip to main content
Glama
schwarztim

Elastic MCP Server

by schwarztim

Elastic MCP Server

A comprehensive MCP (Model Context Protocol) server for Elasticsearch with InfoSec-focused tools for security management, search operations, index management, and cluster monitoring.

Features

  • Security Management: Users, roles, API keys, privileges

  • Search & Query: Full-text search, ES|QL, aggregations

  • Index Operations: List, create, delete, mappings, settings

  • Cluster Monitoring: Health, stats, nodes, shards

  • Cross-Platform: Works on Windows, macOS, and Linux

Quick Start

1. Install Dependencies

npm install

2. Configure Environment

Copy .env.example to .env and configure your Elasticsearch connection:

# macOS/Linux
cp .env.example .env

# Windows (Command Prompt)
copy .env.example .env

# Windows (PowerShell)
Copy-Item .env.example .env

Edit .env with your credentials:

# Elasticsearch endpoint
ELASTIC_URL=https://your-deployment.es.region.azure.elastic-cloud.com

# API Key authentication (recommended)
ELASTIC_API_KEY_ENCODED=your-base64-encoded-api-key

3. Build

npm run build

4. Run

npm start

Configuration

Environment Variables

Variable

Required

Description

ELASTIC_URL

Yes

Elasticsearch cluster URL

ELASTIC_API_KEY_ENCODED

Yes*

Pre-encoded API key (base64)

ELASTIC_API_KEY_ID

Yes*

API key ID (alternative to encoded)

ELASTIC_API_KEY_SECRET

Yes*

API key secret (use with ID)

ELASTIC_USERNAME

Yes*

Basic auth username

ELASTIC_PASSWORD

Yes*

Basic auth password

ELASTIC_SKIP_SSL_VERIFY

No

Skip SSL verification (default: false)

ELASTIC_TIMEOUT

No

Request timeout in ms (default: 30000)

LOG_LEVEL

No

Logging level (default: info)

*One authentication method is required: encoded API key, ID+secret, or username+password.

Authentication Methods

Use the pre-encoded API key from the Elasticsearch API key creation response:

ELASTIC_API_KEY_ENCODED=YWNCT3hKc0JjVEtMYUN5ZWVNa046UGR4OUxwOFRtY2R5WElfTjBvMEhrQQ==

Separate ID and Secret

If you have the raw ID and secret:

ELASTIC_API_KEY_ID=acBOxJsBcTKLaCyeeMkN
ELASTIC_API_KEY_SECRET=Pdx9Lp8TmcdyXI_N0o0HkA
ELASTIC_USERNAME=elastic
ELASTIC_PASSWORD=your-password

Available Tools

Search Tools (5 tools)

Tool

Description

search

Execute search queries using Elasticsearch Query DSL

esql_query

Execute ES|QL queries for data analysis

get_document

Retrieve a specific document by ID

count

Count documents matching a query

msearch

Execute multiple search queries in one request

Security Tools (12 tools)

Tool

Description

list_users

List all users in the security realm

get_user

Get detailed user information

create_user

Create a new user with roles

delete_user

Delete a user

set_user_enabled

Enable or disable a user

list_roles

List all defined roles

get_role

Get role details

create_role

Create or update a role

delete_role

Delete a role

list_api_keys

List API keys

create_api_key

Create a new API key

invalidate_api_key

Invalidate API keys

get_privileges

Get current user privileges

has_privileges

Check specific privileges

authenticate

Get current authenticated user info

Index Tools (9 tools)

Tool

Description

list_indices

List all indices with health and stats

get_index

Get index details

get_mappings

Get field mappings

get_settings

Get index settings

create_index

Create a new index

delete_index

Delete an index (requires confirmation)

refresh_index

Refresh an index

get_index_stats

Get index statistics

get_aliases

Get index aliases

Cluster Tools (8 tools)

Tool

Description

cluster_health

Get cluster health status

cluster_stats

Get comprehensive cluster statistics

cluster_info

Get basic cluster info and version

nodes_info

Get node information

nodes_stats

Get node statistics

pending_tasks

List pending cluster tasks

allocation_explain

Explain shard allocation

get_shards

Get shard allocation details

Usage Examples

Search for Security Events

{
  "tool": "search",
  "arguments": {
    "index": "logs-*",
    "query": {
      "bool": {
        "must": [
          { "match": { "event.category": "authentication" } },
          { "match": { "event.outcome": "failure" } }
        ]
      }
    },
    "size": 100,
    "sort": [{ "@timestamp": "desc" }]
  }
}

List All Users

{
  "tool": "list_users",
  "arguments": {}
}

Check Cluster Health

{
  "tool": "cluster_health",
  "arguments": {
    "level": "indices"
  }
}

Create an API Key

{
  "tool": "create_api_key",
  "arguments": {
    "name": "my-api-key",
    "expiration": "30d",
    "role_descriptors": {
      "read-only": {
        "cluster": ["monitor"],
        "indices": [{
          "names": ["logs-*"],
          "privileges": ["read"]
        }]
      }
    }
  }
}

Development

Run Tests

npm test

Run Tests with Coverage

npm run test:coverage

Lint

npm run lint

Watch Mode

npm run dev

Claude Desktop Integration

macOS / Linux

Config location: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or ~/.config/claude/claude_desktop_config.json (Linux)

{
  "mcpServers": {
    "elastic": {
      "command": "node",
      "args": ["/path/to/elastic-mcp/dist/index.js"],
      "env": {
        "ELASTIC_URL": "https://your-deployment.es.region.azure.elastic-cloud.com",
        "ELASTIC_API_KEY_ENCODED": "your-encoded-api-key"
      }
    }
  }
}

Windows

Config location: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "elastic": {
      "command": "node",
      "args": ["C:\\Users\\YourName\\elastic-mcp\\dist\\index.js"],
      "env": {
        "ELASTIC_URL": "https://your-deployment.es.region.azure.elastic-cloud.com",
        "ELASTIC_API_KEY_ENCODED": "your-encoded-api-key"
      }
    }
  }
}

Windows Notes:

  • Use double backslashes (\\) in JSON paths, or forward slashes (/) which also work

  • Ensure Node.js is installed and available in your PATH

  • Run npm install and npm run build before first use

Security Considerations

  • API keys are never logged or exposed in responses

  • All credentials must be provided via environment variables

  • SSL certificate verification is enabled by default

  • The delete_index tool requires explicit confirmation

  • Created API keys return the encoded value but not the raw secret

License

MIT

Available Tools

37 tools
allocation_explainA

Explain why a shard is unassigned or why it remains on its current node.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoIndex name
shardNoShard number
primaryNoWhether to explain primary (true) or replica (false)

TDQS

A3.5/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 mentions the tool 'explains' shard allocation issues, but does not specify whether this is a read-only operation, what permissions are required, how the explanation is formatted, or if it has side effects. For a diagnostic tool with zero annotation coverage, this is a significant gap in transparency.

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, direct sentence that efficiently conveys the tool's purpose without unnecessary words. It is front-loaded with the core functionality, making it easy to understand quickly, and every part of the sentence contributes meaningfully.

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 diagnostic nature, 3 parameters, no annotations, and no output schema, the description is minimally adequate but lacks completeness. It explains what the tool does but does not cover behavioral aspects like response format, error handling, or usage constraints, which are important for a tool that explains system states.

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 does not mention any parameters, but the input schema has 100% description coverage, with clear documentation for 'index', 'shard', and 'primary'. Since the schema fully describes the parameters, the baseline score is 3, as the description adds no additional semantic context beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('explain') and resource ('shard'), specifying what it explains ('why a shard is unassigned or why it remains on its current node'). It distinguishes itself from sibling tools like 'get_shards' or 'cluster_health' by focusing on diagnostic explanations rather than status retrieval.

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

Usage Guidelines3/5

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

The description implies usage in troubleshooting scenarios involving shard allocation issues, but it does not explicitly state when to use this tool versus alternatives like 'get_shards' for status checks or 'cluster_health' for broader diagnostics. No exclusions or prerequisites are mentioned, leaving some ambiguity in context.

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

authenticateB

Get information about the currently authenticated user.

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 the full burden of behavioral disclosure. It states the tool retrieves information, implying a read-only operation, but doesn't specify details like authentication requirements, rate limits, error conditions, or the format of the returned information. This leaves gaps in understanding how the tool behaves in practice.

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, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. There's no wasted verbiage or redundancy.

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 has 0 parameters and no output schema, the description is minimally adequate but lacks depth. It explains what the tool does but doesn't cover behavioral aspects like authentication needs or response format. For a simple tool, this might suffice, but it could be more informative to aid an agent fully.

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 the input schema has 100% coverage (empty object). The description doesn't need to add parameter semantics, as there are none to document. A baseline score of 4 is appropriate since no parameters exist, and the description doesn't introduce confusion.

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 tool's purpose: 'Get information about the currently authenticated user.' It specifies the verb ('Get information about') and the resource ('the currently authenticated user'), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'get_user' or 'list_users', which could retrieve user information in different contexts.

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., authentication status), exclusions, or compare it to sibling tools such as 'get_user' or 'list_users'. Without this context, an agent might struggle to choose between similar tools.

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

cluster_healthB

Get the health status of the Elasticsearch cluster including node counts, shard status, and overall health.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoLevel of detail
wait_for_statusNoWait for cluster to reach this status
timeoutNoTimeout to wait (e.g., "30s")

TDQS

B3.1/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 what information is returned but doesn't disclose behavioral aspects like whether this is a read-only operation (implied by 'Get'), potential performance impact, authentication requirements, rate limits, or error conditions. For a tool with no 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 front-loads the core purpose ('Get the health status...') and adds specific details about what's included. Every word earns its place with no redundancy or unnecessary elaboration. It's appropriately sized for this type of diagnostic tool.

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 moderate complexity (health monitoring with 3 optional parameters), no annotations, and no output schema, the description is minimally adequate. It explains what the tool does but lacks behavioral context and usage guidance. The absence of output schema means the description should ideally hint at return format, but it doesn't. It's complete enough to understand the basic purpose but insufficient for confident 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 schema fully documents all three parameters. The description adds no parameter-specific information beyond what's in the schema. According to scoring rules, with high schema coverage (>80%), the baseline is 3 even with no param info in the description, which applies here.

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 ('health status of the Elasticsearch cluster'), and specifies what information is included ('node counts, shard status, and overall health'). It distinguishes this tool from other cluster-related tools like 'cluster_info' and 'cluster_stats' by focusing specifically on health metrics. However, it doesn't explicitly contrast with all sibling tools, so it's not a perfect 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 'cluster_info' or 'cluster_stats'. It doesn't mention prerequisites, timing considerations, or specific use cases. The agent must infer usage from the purpose alone, which is insufficient for optimal tool selection.

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

cluster_infoB

Get basic cluster information including version and build details.

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('Get'), implying it's non-destructive, but doesn't address other critical aspects like authentication requirements, rate limits, error conditions, or what the output format looks like. For a tool with zero annotation coverage, this is a significant gap in behavioral transparency.

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 immediately states the tool's purpose without unnecessary words. It's front-loaded with the core action ('Get basic cluster information') and specifies the details included. Every word earns its place, making it maximally concise while remaining informative.

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, no annotations), the description is minimally adequate. It explains what information is retrieved but doesn't cover behavioral aspects like authentication or output format. For a read-only metadata tool, this might be sufficient, but the lack of output details and behavioral context keeps it at a baseline level of completeness.

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 the schema fully documents the lack of inputs. The description appropriately doesn't waste space discussing parameters, maintaining focus on what the tool does rather than what it accepts. This meets the baseline expectation for parameterless 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 clearly states the tool's purpose with a specific verb ('Get') and resource ('basic cluster information'), specifying what information is retrieved ('version and build details'). It distinguishes from siblings like 'cluster_health' or 'cluster_stats' by focusing on version/build metadata rather than health metrics or statistical data. However, it doesn't explicitly name these distinctions, keeping it at a 4 rather than 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. It doesn't mention prerequisites, timing considerations, or comparisons to sibling tools like 'nodes_info' or 'cluster_health' that might provide overlapping or complementary information. This lack of explicit usage context leaves the agent without clear selection criteria.

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

cluster_statsB

Get comprehensive cluster statistics including indices, nodes, and resource usage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/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 retrieves statistics (implying a read-only operation) but doesn't clarify permissions required, rate limits, response format, or whether it's a real-time or cached view. This leaves significant gaps for a tool that likely interacts with a critical system like Elasticsearch.

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 ('Get comprehensive cluster statistics') and adds useful scope details. Every word earns its place, with no redundancy or fluff.

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 complexity (cluster-wide statistics in what appears to be an Elasticsearch context) and lack of annotations or output schema, the description is minimally adequate. It specifies what statistics are included but doesn't address behavioral aspects like permissions or response format, which are important for such a system-level tool.

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 zero parameters, and schema description coverage is 100% (since there are no parameters to describe). The description adds no parameter information, which is appropriate here. Baseline for zero parameters is 4, as there's nothing for the description to compensate for.

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 tool's purpose with a specific verb ('Get') and resource ('comprehensive cluster statistics'), including the scope ('indices, nodes, and resource usage'). It distinguishes itself from siblings like 'cluster_health' or 'nodes_stats' by emphasizing comprehensiveness, though it doesn't explicitly name alternatives.

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

Usage Guidelines3/5

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

The description implies usage for obtaining broad cluster metrics, but provides no explicit guidance on when to use this tool versus alternatives like 'cluster_health' or 'nodes_stats'. It lacks any 'when-not' scenarios or prerequisites, leaving the agent to infer context from the tool's name and description alone.

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

countC

Count documents in an index that match a query.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex name or pattern
queryNoOptional Query DSL to filter documents

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 mentions matching a query but does not cover critical aspects like whether this is a read-only operation, performance implications (e.g., rate limits), or what happens with invalid inputs. 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.

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 and wastes no space, making it highly concise and well-structured for quick 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?

Given the complexity of a counting operation with query filtering, no annotations, and no output schema, the description is incomplete. It fails to explain return values (e.g., count format, error handling) or behavioral nuances, which are essential for effective tool use in this 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?

The input schema has 100% description coverage, clearly documenting both parameters ('index' and 'query'). The description adds minimal value beyond the schema, as it only reiterates the query filtering concept without providing additional syntax, format details, or examples. Baseline score of 3 is appropriate given 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 verb ('count') and resource ('documents in an index'), specifying the action and target. However, it does not explicitly differentiate from sibling tools like 'search' or 'get_index_stats', which might also involve document queries or counts, leaving some ambiguity in distinguishing its unique role.

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, such as 'search' for retrieving documents or 'get_index_stats' for broader statistics. It lacks context on prerequisites, exclusions, or comparisons to sibling tools, offering minimal usage direction.

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

create_api_keyC

Create a new API key for authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAPI key name
expirationNoExpiration time (e.g., "1d", "30d")
role_descriptorsNoCustom role descriptors
metadataNo

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 lacks critical behavioral details. It states it creates a new API key but doesn't disclose permissions required, whether the key is displayed immediately, if it's revocable, rate limits, or security implications. 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 no wasted words. It's front-loaded with the core action and purpose, 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 doesn't explain what the tool returns (e.g., the generated key value), error conditions, or behavioral nuances, leaving significant gaps for agent understanding.

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 75%, with three parameters well-described and one ('metadata') lacking description. The tool description adds no parameter-specific information beyond what the schema provides, so it doesn't compensate for the coverage gap but meets the baseline since schema does most 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 verb 'create' and resource 'API key', specifying it's for authentication. However, it doesn't differentiate from sibling tools like 'invalidate_api_key' or 'list_api_keys', which would require mentioning this is specifically for generating new keys rather than managing existing ones.

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., authentication state), when not to use it (e.g., if you need to list existing keys), or refer to sibling tools like 'list_api_keys' for checking existing keys first.

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

create_indexC

Create a new index with optional settings, mappings, and aliases.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex name
settingsNoIndex settings
mappingsNoField mappings
aliasesNoIndex aliases

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 'create' implies a write operation, the description doesn't address critical aspects like permissions required, whether the operation is idempotent, what happens if the index already exists, or any rate limits. 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 that front-loads the core purpose and lists optional components without unnecessary elaboration. Every word contributes directly to understanding the tool's function, making it highly concise and well-structured.

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 creating an index (a write operation with multiple parameters) and the absence of both annotations and an output schema, the description is inadequate. It fails to explain what the tool returns, error conditions, or behavioral nuances, leaving the agent with incomplete information for reliable invocation.

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 parameters thoroughly. The description adds minimal value by mentioning that settings, mappings, and aliases are optional, but this is already implied by the schema's lack of 'required' designation for those fields. No additional semantic context is provided beyond what the schema offers.

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 index'), making the purpose immediately understandable. It also mentions optional components (settings, mappings, aliases) which adds specificity. However, it doesn't explicitly differentiate from sibling tools like 'list_indices' or 'get_index', which would be needed for 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, when to choose this over other index-related tools, or any context for its application. The agent must infer usage from the purpose alone, which is insufficient for effective tool selection.

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

create_roleC

Create or update a role with specified cluster and index privileges.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRole name
clusterNoCluster privileges
indicesNoIndex privileges
applicationsNoApplication privileges
run_asNoUsers this role can impersonate
metadataNo

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 mentions 'Create or update' which implies mutation, but doesn't specify whether this requires admin privileges, if it's idempotent, what happens on conflicts, or what the response looks like (e.g., success confirmation or error). For a mutation tool with zero 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.

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's appropriately sized and front-loaded with 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 mutation tool with 6 parameters, no annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects like permissions needed, idempotency, error conditions, or response format. While the schema covers parameter documentation well, the description fails to provide the necessary context for safe and 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 83% (5 out of 6 parameters have descriptions), so the schema already documents most parameters well. The description adds minimal value by mentioning 'cluster and index privileges' which corresponds to two parameters, but doesn't explain the other four parameters or provide additional context beyond what's in the schema. 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 or update') and resource ('a role') with specific privilege types ('cluster and index privileges'), which provides a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from sibling tools like 'create_user' or 'get_role', which would require mentioning it's for role management specifically within a security/privilege context.

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., authentication, permissions), when to choose 'create' vs 'update', or how it differs from related tools like 'create_user' or 'delete_role'. Without this context, an agent might struggle to select this tool appropriately.

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

create_userC

Create a new user with specified roles and permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesUsername
passwordNoPassword (optional if using external auth)
rolesYesList of role names
full_nameNoFull name
emailNoEmail address
enabledNoWhether the user is enabled
metadataNoCustom metadata

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. It mentions 'roles and permissions' but doesn't explain what happens upon creation (e.g., whether the user is immediately active, if email verification is needed, or what the response includes). For a mutation tool with zero annotation coverage, 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.

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 front-loads the core purpose ('Create a new user') and adds necessary detail ('with specified roles and permissions') without redundancy, 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?

Given the complexity of a user creation tool (a mutation operation with 7 parameters, no annotations, and no output schema), the description is insufficient. It lacks details on behavioral outcomes, error conditions, or what the tool returns, leaving the agent with incomplete guidance for proper invocation.

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 7 parameters with basic descriptions. The description adds minimal value by hinting at 'roles and permissions', which aligns with the 'roles' parameter, but doesn't provide additional context like format examples or constraints beyond what the schema states. 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 a new user') and specifies what gets created ('with specified roles and permissions'), which is a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'set_user_enabled' or 'get_user', which would require explicit comparison to achieve a score of 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. There are multiple sibling tools for user management (e.g., 'delete_user', 'get_user', 'set_user_enabled'), but the description doesn't mention any of them or provide context about prerequisites, such as required permissions or when user creation is appropriate.

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

delete_indexA

Delete an index. WARNING: This permanently deletes all data in the index.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex name to delete
confirmYesMust be true to confirm deletion

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden and excels by disclosing critical behavioral traits: it's a destructive operation ('permanently deletes all data in the index'), which is essential for safe tool selection. This goes beyond what the input schema provides.

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

Conciseness5/5

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

Two sentences with zero waste: the first states the action, the second provides crucial warning. It's appropriately sized and front-loaded with the most important information.

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

Completeness4/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 strong but could mention prerequisites (e.g., permissions) or response format. However, it covers the core behavioral risk adequately given the 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%, so the input schema already documents both parameters ('index' and 'confirm') well. The description doesn't add any parameter-specific details beyond the schema, meeting the baseline for high coverage.

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

Purpose5/5

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

The description clearly states the specific action ('Delete') and resource ('an index'), distinguishing it from siblings like 'get_index' or 'create_index'. It's not a tautology and provides explicit purpose.

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

Usage Guidelines4/5

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

The description includes a WARNING that indicates when to be cautious (permanent deletion), but doesn't explicitly state when to use this vs. alternatives like 'delete_role' or 'delete_user'. It provides clear context but lacks sibling differentiation.

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

delete_roleC

Delete a role from Elasticsearch.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRole name to delete

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 the action ('Delete') but lacks critical behavioral details: whether deletion is permanent, if it requires admin permissions, what happens to users assigned to the role, or error conditions. This is a significant gap for a destructive operation 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 front-loaded with the core action and resource, making it easy to parse quickly. No unnecessary words or redundancy are present.

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 (a destructive operation) and lack of annotations or output schema, the description is incomplete. It doesn't address safety, permissions, or outcomes, which are crucial for an AI agent to use this tool correctly. More context is needed for such a high-stakes tool.

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

Parameters3/5

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

Schema description coverage is 100%, with the single parameter 'name' documented as 'Role name to delete'. The description doesn't add any meaning beyond this, such as format constraints or examples. Baseline 3 is appropriate since the schema handles the parameter documentation adequately.

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 ('Delete') and resource ('a role from Elasticsearch'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'delete_index' or 'delete_user', which follow the same pattern for 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?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., role must exist), consequences (e.g., irreversible deletion), or related tools like 'list_roles' for verification. The description is purely functional without contextual advice.

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

delete_userA

Delete a user from Elasticsearch. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesUsername to delete

TDQS

A3.9/5.0
Behavior4/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 effectively communicates the irreversible nature of the deletion ('cannot be undone'), which is critical for a destructive operation. However, it lacks details on permissions needed, error conditions, or what happens to associated data.

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

Conciseness5/5

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

The description is two sentences with zero waste: the first states the purpose, and the second provides a crucial warning. It's front-loaded with the core action and efficiently conveys essential information without unnecessary elaboration.

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?

For a destructive tool with no annotations and no output schema, the description is minimally adequate. It covers the irreversible nature but misses details like response format, error handling, or dependencies. Given the high stakes of user deletion, more context would be beneficial.

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 'username' parameter fully documented. The description doesn't add any parameter-specific details beyond what the schema provides, such as format constraints or examples, so it 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.

Purpose5/5

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

The description clearly states the specific action ('Delete') and target resource ('a user from Elasticsearch'), distinguishing it from sibling tools like 'get_user' or 'set_user_enabled'. It uses precise language that leaves no ambiguity about the tool's function.

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

Usage Guidelines3/5

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

The description implies usage through the warning 'This action cannot be undone', suggesting it should be used cautiously for permanent deletion. However, it doesn't explicitly state when to use this versus alternatives (e.g., 'set_user_enabled' for disabling instead of deleting) or provide prerequisites like required permissions.

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

esql_queryC

Execute an ES|QL query for data analysis. ES|QL is a piped query language for filtering, transforming, and aggregating data.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesES|QL query string
formatNoResponse format

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 executes queries for data analysis but omits critical details such as required permissions, potential impacts on system performance, rate limits, error handling, or what the response entails (e.g., format options beyond the 'format' parameter). This is a significant gap for a query execution 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 highly concise and well-structured in two sentences: the first states the tool's purpose, and the second explains ES|QL. Every sentence adds value without redundancy, making it front-loaded and efficient 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 (executing queries for data analysis), lack of annotations, and no output schema, the description is incomplete. It fails to address behavioral aspects like security, performance, or response handling, which are crucial for effective use. The high schema coverage doesn't compensate for these missing contextual elements.

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 parameters ('query' and 'format'). The description adds minimal value beyond the schema by mentioning ES|QL's purpose but doesn't elaborate on parameter usage, syntax examples, or format options. 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 tool's purpose: 'Execute an ES|QL query for data analysis' with the specific verb 'execute' and resource 'ES|QL query'. It distinguishes ES|QL as 'a piped query language for filtering, transforming, and aggregating data', which helps differentiate it from other query tools like 'search' or 'msearch' in the sibling list. However, it doesn't explicitly contrast with these siblings, keeping it from 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 explicit guidance on when to use this tool versus alternatives. It mentions ES|QL's capabilities (filtering, transforming, aggregating) but doesn't specify scenarios where it's preferred over other query tools like 'search' or 'msearch', nor does it outline prerequisites or exclusions. This lack of comparative context leaves usage unclear.

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

get_aliasesC

Get index aliases.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoIndex name or pattern
aliasNoAlias name

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. It only states the action ('Get') without detailing whether this is a read-only operation, what permissions are required, how results are formatted, or any limitations like pagination. This leaves significant gaps in understanding the tool's behavior 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 just three words, front-loading the key information without any wasted text. It is appropriately sized for a simple tool, making it easy to parse quickly, though this conciseness contributes to gaps in other dimensions.

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 (2 parameters, no annotations, no output schema), the description is incomplete. It fails to explain what the tool returns, how to interpret results, or any behavioral nuances, leaving the agent with insufficient context to use the tool effectively beyond the basic action implied by the name.

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 parameters 'index' and 'alias' clearly documented. The description adds no additional meaning beyond what the schema provides, such as explaining how these parameters interact or typical usage patterns. However, since schema coverage is high, the baseline score of 3 is appropriate as the schema handles the 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 'Get index aliases' states the basic action (get) and resource (index aliases), which is clear but minimal. It doesn't specify whether this retrieves all aliases, aliases for specific indices, or how it differs from sibling tools like 'list_indices' or 'get_index', making it somewhat vague in distinguishing its specific 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 such as 'list_indices' or 'get_index', nor any context about prerequisites or typical use cases. The description lacks any explicit or implied usage instructions, leaving the agent with no direction on application.

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

get_documentC

Retrieve a specific document by its ID from an index.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex name
idYesDocument ID
_sourceNoFields to include

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 the tool retrieves a document but doesn't disclose behavioral traits such as error handling (e.g., what happens if the ID doesn't exist), performance characteristics (e.g., speed, limitations), or security aspects (e.g., authentication needs). This leaves significant gaps for a read 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, clear sentence that efficiently conveys the core functionality without unnecessary words. It's front-loaded with the main action ('Retrieve'), making it easy to scan and understand 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?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is insufficient. It lacks details on return values (e.g., document format, error responses), usage context (e.g., part of a document database system), and behavioral expectations, leaving the agent with incomplete information for reliable invocation.

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 parameters (index, id, _source). The description adds minimal value beyond the schema by implying the tool uses an ID for retrieval, but it doesn't explain parameter interactions (e.g., how _source affects output) 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 ('Retrieve') and resource ('a specific document by its ID from an index'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'search' or 'get_index', which might also retrieve documents or index information, so it doesn't reach the highest 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 like 'search' (for querying documents) or 'get_index' (for index metadata). It mentions retrieving by ID but doesn't clarify prerequisites (e.g., needing a valid index and ID) or exclusions (e.g., not for bulk retrieval).

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

get_indexB

Get detailed information about a specific index including settings and mappings.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex name

TDQS

B3.1/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 this is a read operation ('Get'), but doesn't disclose behavioral traits like permissions needed, rate limits, error handling (e.g., if index doesn't exist), or response format. For a tool with no annotations, this leaves significant gaps.

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?

Single sentence, front-loaded with the core purpose, and efficiently specifies included fields ('settings and mappings') without waste. Every word earns its place, making it easy to parse.

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 no annotations, no output schema, and a simple parameter schema, the description is adequate but incomplete. It covers the purpose and scope but lacks details on behavior, usage context, or output, which are needed for a tool with no structured support.

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 single parameter 'index' fully documented in the schema. The description adds no additional meaning beyond the schema, such as format examples or constraints. Baseline 3 is appropriate 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 ('detailed information about a specific index'), specifying what fields are included ('settings and mappings'). It distinguishes from siblings like 'get_settings' or 'get_mappings' by combining both, but doesn't explicitly contrast with them.

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 on when to use this tool versus alternatives like 'get_settings', 'get_mappings', or 'list_indices'. The description implies usage for a specific index, but lacks context about prerequisites, error conditions, or comparisons to sibling tools.

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

get_index_statsB

Get statistics for one or more indices including document counts, storage, and operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoIndex name or pattern (omit for all indices)

TDQS

B3.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 full burden. It mentions what statistics are returned but doesn't disclose behavioral traits like whether this is a read-only operation, performance impact, rate limits, authentication requirements, or error conditions. The description adds minimal context beyond the basic purpose.

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 purpose and key details (statistics types). Every word earns its place with zero wasted text, making it easy to parse quickly.

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 moderate complexity (statistical retrieval), no annotations, and no output schema, the description is minimally adequate. It covers what statistics are returned but lacks details on format, pagination, or error handling. For a tool with no structured safety or output information, it should provide more behavioral 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 the single parameter 'index' fully documented in the schema. The description doesn't add any parameter-specific semantics beyond what the schema provides (e.g., examples of patterns, default behavior when omitted). Baseline 3 is appropriate when 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 verb ('Get statistics') and resource ('for one or more indices'), specifying the types of statistics (document counts, storage, and operations). It distinguishes from siblings like 'list_indices' (which lists names) and 'get_index' (which retrieves index configuration), but doesn't explicitly contrast them.

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

Usage Guidelines3/5

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

The description implies usage for retrieving statistical metrics about indices, but provides no explicit guidance on when to use this tool versus alternatives like 'cluster_stats' (cluster-level statistics) or 'nodes_stats' (node-level statistics). 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_mappingsC

Get the field mappings for an index.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex name or pattern

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 a read operation ('Get'), implying it's likely non-destructive, but doesn't disclose behavioral traits such as permissions required, rate limits, response format, or whether it's a safe operation. This leaves significant gaps for an agent to understand how to invoke it 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, clear sentence with no wasted words. It's front-loaded with the core purpose, making it efficient and easy to parse, which is ideal 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 the complexity of a tool that retrieves field mappings (which could involve technical details like data types or mappings structure), the description is too minimal. With no annotations, no output schema, and no behavioral context, it doesn't provide enough information for an agent to fully understand what the tool returns or how to use it correctly in 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?

The schema description coverage is 100%, with the single parameter 'index' documented as 'Index name or pattern'. The description adds no additional meaning beyond this, such as examples or constraints on the index name. Given the high schema coverage, a baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.

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 the resource 'field mappings for an index', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_index' or 'get_settings', which also retrieve index-related information, so it doesn't fully distinguish its specific 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_index' and 'get_settings' that might overlap in retrieving index metadata, there's no indication of when field mappings are needed specifically, leaving usage context unclear.

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

get_privilegesB

Get the privileges for the current authenticated user.

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it retrieves privileges for the authenticated user, but doesn't cover aspects like response format, error conditions, rate limits, or whether it's read-only (implied but not explicit). This leaves significant gaps for a tool that likely interacts with security settings.

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, clear sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a no-parameter tool, making it highly efficient.

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 low complexity (0 parameters, no output schema) and lack of annotations, the description is minimally adequate. It states what the tool does but omits behavioral details like return format or error handling, which could be important for a privilege-related operation in a security context.

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 doesn't add parameter details, but this is appropriate given the empty input schema, earning a baseline score of 4 for not introducing unnecessary information.

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 ('privileges for the current authenticated user'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'has_privileges' or 'get_role', which likely serve related but distinct functions in the privilege/role management 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?

The description provides no guidance on when to use this tool versus alternatives such as 'has_privileges' or 'get_role', nor does it mention prerequisites like authentication. It implies usage for the current user only, 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_roleC

Get detailed information about a specific role.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRole name

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. It states the tool 'gets' information, implying a read-only operation, but doesn't disclose behavioral traits such as authentication requirements, error handling, rate limits, or what 'detailed information' includes. This is inadequate 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.

Conciseness4/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 without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more informative without losing 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 the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'detailed information' returns, potential errors, or usage context. For a tool with no structured output documentation, this leaves significant gaps for an agent to understand its full 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 input schema has 100% description coverage, with the parameter 'name' documented as 'Role name'. The description adds no additional meaning beyond this, such as format examples or constraints. With high schema coverage, the baseline is 3, as the schema does the heavy lifting.

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 detailed information about a specific role' clearly states the verb ('Get') and resource ('role'), but it's vague about what 'detailed information' entails and doesn't distinguish this tool from similar siblings like 'list_roles' or 'get_user'. It avoids tautology by not just restating the name, but lacks specificity.

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 siblings like 'list_roles' (for listing roles) or 'get_user' (for user details), nor does it specify prerequisites or contexts for usage, leaving the agent to infer based on the name alone.

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

get_settingsC

Get the settings for an index.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex name or pattern
include_defaultsNoInclude default settings

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 'Get' implies a read operation, the description doesn't specify whether this requires authentication, what format the settings are returned in, whether there are rate limits, or if it's a safe operation. For a tool 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 a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a simple retrieval tool 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?

Given the lack of annotations and output schema, the description should do more to explain what 'settings' actually means, what format they're returned in, and any behavioral considerations. For a tool in a complex domain (Elasticsearch/OpenSearch) with many sibling tools, this minimal description leaves significant gaps in understanding.

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 fully documents both parameters ('index' and 'include_defaults'). The description adds no additional parameter information beyond what's in the schema, resulting in the baseline score of 3 when 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 verb ('Get') and resource ('settings for an index'), making the purpose immediately understandable. However, it doesn't distinguish this tool from potential siblings like 'get_index' or 'get_index_stats' that might also retrieve index-related information, 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. With siblings like 'get_index', 'get_index_stats', and 'get_mappings' available, there's no indication of what makes 'get_settings' distinct or when it should be preferred over other index information retrieval tools.

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

get_shardsC

Get detailed shard allocation information.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoIndex pattern to filter

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 the full burden of behavioral disclosure. It states the tool 'Get[s] detailed shard allocation information,' implying a read-only operation, but doesn't clarify aspects like whether it requires authentication, has rate limits, returns paginated results, or what format the output takes. For a tool with no annotation coverage, this is a significant gap in transparency.

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: 'Get detailed shard allocation information.' It is front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple tool. Every word earns its place, making it highly concise and well-structured.

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 (likely moderate, involving cluster data), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'detailed' information includes, how results are formatted, or behavioral traits like error handling. For a tool with no structured support, the description should provide more context 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?

The input schema has 1 parameter with 100% description coverage ('Index pattern to filter'), so the schema fully documents the parameter. The description adds no additional meaning beyond the schema, such as examples of index patterns or how filtering works. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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 tool's purpose as 'Get detailed shard allocation information,' which is clear but vague. It specifies the verb 'Get' and resource 'shard allocation information,' but lacks specificity about what 'detailed' entails or how it differs from sibling tools like 'allocation_explain' or 'cluster_health.' It avoids tautology but doesn't fully distinguish from 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. It doesn't mention sibling tools like 'allocation_explain' (which might explain shard allocation issues) or 'cluster_health' (which includes shard status), nor does it specify prerequisites or contexts for usage. This leaves the agent without clear direction on tool selection.

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

get_userB

Get detailed information about a specific user.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesUsername to retrieve

TDQS

B3.1/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 'Get detailed information' implies a read operation, it doesn't specify what constitutes 'detailed information', whether authentication is required, what happens if the user doesn't exist, or any rate limits. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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 no wasted words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.

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 (single parameter, no output schema, no annotations), the description is minimally adequate but leaves gaps. It doesn't explain what 'detailed information' includes or the format of the response, which would be helpful since there's no output schema. For a basic read operation, it's functional but could provide more context about the returned data.

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 the single parameter 'username' clearly documented in the schema. The description doesn't add any parameter semantics beyond what's already in the schema (which specifies 'Username to retrieve'), so it meets the baseline for when schema coverage is high.

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 tool's purpose with a specific verb ('Get') and resource ('detailed information about a specific user'), making it easy to understand what the tool does. However, it doesn't differentiate from sibling tools like 'list_users' or 'get_role', which could also retrieve user-related information in different contexts.

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 'list_users' (for listing multiple users) and 'get_role' (for role information), there's no indication of when this specific user retrieval tool is appropriate versus those other options.

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

has_privilegesC

Check if the current user has specific cluster or index privileges.

ParametersJSON Schema
NameRequiredDescriptionDefault
clusterNoCluster privileges to check
indexNoIndex privileges to check

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 implies a read-only check but doesn't specify if it requires authentication, returns a boolean or detailed result, has rate limits, or handles errors. For a tool with zero annotation coverage, this is a significant gap in transparency.

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 appropriately sized and front-loaded, 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?

Given the complexity of a privilege-checking tool with no annotations and no output schema, the description is incomplete. It lacks details on authentication requirements, return format, error handling, and how it differs from siblings, making it inadequate for full contextual understanding.

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%, so the schema already documents both parameters ('cluster' and 'index') adequately. The description adds no additional meaning beyond what the schema provides, such as examples or constraints, resulting in a baseline score of 3.

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 ('Check if') and the resource ('current user has specific cluster or index privileges'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_privileges' (which likely retrieves privilege details rather than checking specific ones), missing full 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), compare to siblings like 'get_privileges', or specify scenarios for checking privileges, leaving the agent with no usage context.

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

invalidate_api_keyC

Invalidate one or more API keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoArray of API key IDs to invalidate
nameNoAPI key name to invalidate (supports wildcards)
ownerNoIf true, only invalidate keys owned by current user

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 ('invalidate') but doesn't clarify critical behaviors: whether this is reversible, what permissions are required, if it affects active sessions, or any rate limits. For a destructive operation on security credentials, this lack of transparency is a significant gap that could lead to misuse.

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 function without unnecessary words. It's front-loaded with the core action and resource, making it immediately scannable. Every word earns its place, with 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?

Given this is a destructive security operation with 3 parameters and no annotations or output schema, the description is incomplete. It doesn't address safety considerations, error conditions, or what happens after invalidation (e.g., are keys permanently deleted?). For such a sensitive tool, more context about implications and behavior is needed for safe 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?

The description mentions 'one or more API keys' which hints at the 'ids' parameter supporting multiple values, but doesn't add meaningful semantics beyond what the schema already provides. With 100% schema description coverage, the baseline is 3. The description doesn't explain parameter interactions (e.g., using 'ids' vs. 'name' with wildcards) or provide examples, so it doesn't elevate the score.

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 ('invalidate') and resource ('API keys'), making the purpose immediately understandable. It distinguishes from sibling tools like 'create_api_key' and 'list_api_keys' by focusing on revocation rather than creation or listing. However, it doesn't specify whether this is a permanent deletion or temporary invalidation, which would make it a perfect 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. It doesn't mention prerequisites (e.g., authentication requirements), when not to use it (e.g., for temporary suspension vs. permanent deletion), or how it relates to sibling tools like 'delete_user' or 'set_user_enabled' for broader access management. 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.

list_api_keysB

List API keys. Can filter by owner, name, or realm.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoIf true, only return keys owned by the current user
nameNoFilter by API key name (supports wildcards)
realm_nameNoFilter by authentication realm

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 the full burden of behavioral disclosure. It mentions filtering capabilities but doesn't describe key behaviors such as whether this is a read-only operation (implied by 'List'), what permissions are required, if there are rate limits, pagination handling, or the format of returned data. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves beyond basic functionality.

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—a single sentence that efficiently states the action and filtering options without any wasted words. It's front-loaded with the core purpose ('List API keys') and follows with essential details. Every part of the sentence earns its place by contributing directly to understanding the tool's functionality.

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 (a list operation with filtering), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like safety, permissions, or response format, which are critical for an AI agent to use this tool correctly. While the purpose is clear, the description fails to compensate for the missing structured data, leaving gaps in contextual understanding.

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 ('owner', 'name', 'realm_name') fully documented in the input schema. The description adds minimal value by listing the filterable fields ('owner, name, or realm'), which aligns with but doesn't expand upon the schema. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't provide additional syntax, examples, or constraints beyond what's in the structured data.

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 ('List') and resource ('API keys'), making the purpose immediately understandable. It distinguishes from siblings like 'create_api_key' and 'invalidate_api_key' by focusing on retrieval rather than creation or modification. However, it doesn't explicitly differentiate from other list tools like 'list_indices' or 'list_users' 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 Guidelines3/5

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

The description implies usage through the mention of filtering capabilities ('Can filter by owner, name, or realm'), suggesting this tool is for retrieving API keys with optional filtering. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'get_user' (which might include API key info) or when filtering is necessary versus retrieving all keys. 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.

list_indicesB

List all indices in the cluster with their health, status, and document counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternNoIndex pattern to filter (e.g., "logs-*")
healthNoFilter by health status
include_hiddenNoInclude hidden indices (starting with .)

TDQS

B3.4/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 returns without behavioral details. It doesn't disclose whether this is a read-only operation, potential performance impacts, pagination behavior, or authentication requirements. The description is minimal and lacks crucial operational context.

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 ('List all indices') and adds valuable output details. Every word earns its place with zero redundancy or 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?

For a tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain return format, error conditions, or behavioral constraints. While concise, it fails to provide sufficient context for safe and effective use given the lack of structured metadata.

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 all three parameters. The description adds no parameter information beyond what's in the schema, maintaining the baseline score of 3 since the schema handles the parameter documentation adequately.

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

Purpose5/5

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

The description clearly states the verb ('List') and resource ('all indices in the cluster') with specific output details ('health, status, and document counts'). It distinguishes from siblings like 'get_index' (single index) and 'get_index_stats' (statistics-focused) by emphasizing comprehensive listing of all indices.

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

Usage Guidelines3/5

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

The description implies usage for obtaining a full overview of indices, but provides no explicit guidance on when to use this versus alternatives like 'get_index' for single indices or 'get_index_stats' for detailed statistics. 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.

list_rolesB

List all roles defined in Elasticsearch.

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 only states what the tool does, not how it behaves. It lacks details on permissions required, pagination, rate limits, or output format, leaving significant behavioral gaps for a read 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, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently communicates the essential information without any structural issues.

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 read operation with no annotations and no output schema, the description is incomplete. It doesn't explain what the output contains (e.g., role names, metadata), how results are formatted, or any limitations, leaving the agent with insufficient context for effective use.

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 zero parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately doesn't mention parameters, earning a baseline high score for not adding unnecessary information.

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') and resource ('all roles defined in Elasticsearch'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_role' or 'get_privileges', 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?

No guidance is provided on when to use this tool versus alternatives like 'get_role' (for specific role details) or 'get_privileges' (for role permissions). The description implies a broad listing function but offers no explicit usage context or exclusions.

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

list_usersB

List all users in the Elasticsearch security realm.

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a list operation but doesn't mention whether it's paginated, rate-limited, requires specific permissions, or what format the output takes. This leaves significant gaps for a tool that interacts with security data.

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 any fluff or redundant information. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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?

For a zero-parameter tool with no output schema, the description is minimally adequate. It explains what the tool does but lacks details on behavioral aspects like output format or security implications. Given the security context and no annotations, more completeness would be beneficial.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a baseline score of 4 for not adding unnecessary information beyond what the schema already provides.

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 users') and resource ('in the Elasticsearch security realm'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_user' or 'authenticate', 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 like 'get_user' (for individual users) or 'authenticate' (for authentication checks). There's no mention of prerequisites, context, 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.

msearchB

Execute multiple search queries in a single request for efficiency.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchesYesArray of search requests

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 the full burden of behavioral disclosure. It mentions efficiency but fails to describe critical traits like authentication needs, rate limits, error handling, or what the response contains. For a tool with no annotations, this leaves significant gaps in understanding its 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 that front-loads the core purpose and benefit without any wasted words. It is appropriately sized for the tool's complexity, making it easy to grasp 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?

Given the lack of annotations and output schema, the description is incomplete. It does not explain what the tool returns, error conditions, or operational constraints like performance implications. For a tool with no structured data support, more context is needed to fully understand its 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?

The input schema has 100% description coverage, with the 'searches' parameter documented as 'Array of search requests.' The description adds no additional meaning beyond this, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the description does not compensate but also does not detract.

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 tool's purpose as 'Execute multiple search queries in a single request for efficiency,' which specifies the verb (execute), resource (search queries), and key benefit (efficiency). However, it does not explicitly differentiate from its sibling 'search' tool, which likely handles single queries, missing an opportunity for full 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 Guidelines3/5

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

The description implies usage when efficiency is needed for multiple searches, but it lacks explicit guidance on when to use this tool versus the 'search' sibling or other alternatives. No exclusions or prerequisites are mentioned, leaving usage context partially implied rather than clearly defined.

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

nodes_infoB

Get information about cluster nodes including roles, JVM settings, and plugins.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idNoSpecific node ID (omit for all nodes)
metricNoSpecific metrics to retrieve

TDQS

B3.1/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 describes a read operation ('Get information'), which suggests non-destructive behavior, but lacks details on permissions, rate limits, response format, or potential side effects. This is a significant gap 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 that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse and understand quickly.

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 complexity (a read operation with two optional parameters) and no annotations or output schema, the description is minimally adequate. It covers the basic purpose but lacks behavioral context, usage guidelines, and output details, leaving gaps that could hinder effective tool selection and invocation.

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 ('node_id' and 'metric'). The description does not add any parameter-specific details beyond what the schema provides, such as examples or usage context, resulting in a baseline score of 3.

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 information') and the resource ('cluster nodes'), specifying the types of information included (roles, JVM settings, plugins). It distinguishes from some siblings like 'cluster_info' or 'nodes_stats' by focusing on node-level details rather than cluster-wide metrics or statistics, though not explicitly contrasting them.

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 explicit guidance on when to use this tool versus alternatives is provided. The description implies usage for node-level details, but it does not specify scenarios, prerequisites, or compare with similar tools like 'nodes_stats' or 'cluster_health', leaving the agent to infer based on tool names alone.

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

nodes_statsB

Get statistics for cluster nodes including CPU, memory, disk, and index operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idNoSpecific node ID
metricNoSpecific metrics

TDQS

B3.1/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 'Get' implies a read operation, the description doesn't cover important aspects like whether this requires authentication, rate limits, pagination, error conditions, or the format of returned statistics. For a tool with no annotation coverage, this leaves significant gaps in understanding its 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 that front-loads the core purpose ('Get statistics for cluster nodes') and provides relevant examples without unnecessary elaboration. Every word earns its place, making it easy to parse quickly.

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 moderate complexity (2 optional parameters, no output schema, no annotations), the description is minimally adequate. It covers the what (statistics for nodes) but lacks context on why, how, or what to expect in return. For a tool with no output schema and no annotations, more detail on return values or behavioral traits would improve completeness.

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 both parameters ('node_id' and 'metric') documented in the schema. The description doesn't add any parameter-specific details beyond what's in the schema, such as examples of metric values or how node_id is formatted. 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 ('statistics for cluster nodes') with specific examples of what statistics are included (CPU, memory, disk, and index operations). However, it doesn't explicitly distinguish this tool from sibling tools like 'cluster_stats' or 'nodes_info', which appear related but have different scopes.

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 'cluster_stats' or 'nodes_info'. It mentions what statistics are included but doesn't specify use cases, prerequisites, or exclusions, 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.

pending_tasksB

Get a list of pending cluster-level tasks.

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'gets a list,' implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, or what the output format looks like (e.g., JSON structure, pagination). This leaves gaps for a tool in a cluster management context.

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 any wasted words. It's front-loaded and appropriately sized for a simple tool.

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 has no parameters and no output schema, the description is minimal but adequate for a basic list operation. However, in a cluster management context with many siblings, it could benefit from more detail on what 'pending tasks' entail or how it differs from other monitoring tools, making it only moderately complete.

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%, so no parameter information is needed. The description doesn't add param details, but with no params, a baseline of 4 is appropriate as it doesn't need to compensate for any gaps.

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 a list of') and resource ('pending cluster-level tasks'), making the purpose understandable. However, it doesn't differentiate from siblings like 'cluster_health' or 'cluster_stats', which might also provide task-related information, so it doesn't reach the highest 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?

No guidance is provided on when to use this tool versus alternatives such as 'cluster_health' or 'nodes_stats', which might overlap in monitoring cluster status. The description implies usage for pending tasks but offers no 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.

refresh_indexC

Refresh an index to make recent changes available for search.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex name or pattern

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. It mentions 'make recent changes available for search,' which implies a write-like operation that updates index state, but doesn't specify if it's idempotent, requires permissions, has side effects (e.g., performance impact), or details on what 'refresh' entails (e.g., flushing to disk). 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 that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and outcome, making it easy to understand at a glance. Every part of the sentence earns its place by conveying essential 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?

Given the tool's complexity (a mutation operation with no annotations and no output schema), the description is incomplete. It lacks details on behavioral traits (e.g., idempotency, permissions), expected outcomes, error conditions, or how it interacts with siblings like 'search' or 'create_index'. For a tool that modifies system state, this minimal description is insufficient.

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 'index' documented as 'Index name or pattern.' The description adds no additional meaning beyond this, such as examples of valid names or what 'pattern' entails. Since the schema already provides full coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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 ('refresh') and resource ('an index') with the purpose of making recent changes available for search. It distinguishes from siblings like 'create_index' or 'delete_index' by focusing on updating rather than creating or removing. However, it doesn't explicitly differentiate from tools like 'get_index' or 'search' in terms of function.

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., after data updates), exclusions (e.g., not for initial indexing), or compare to siblings like 'search' (which might trigger auto-refresh) or 'get_index_stats' (for monitoring). Usage is implied but not explicitly stated.

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

set_user_enabledC

Enable or disable a user account.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesUsername
enabledYesWhether to enable (true) or disable (false) the user

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. While 'Enable or disable' implies a mutation operation, it doesn't specify whether this requires admin privileges, if changes are reversible, what happens to the user's data when disabled, or any rate limits. 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 that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, with every word earning its place in conveying the core purpose.

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 insufficient. It doesn't explain what happens when a user is enabled/disabled, what permissions are required, whether the operation is idempotent, or what the return value looks like. Given the complexity of user account management, more contextual information 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%, so the input schema already fully documents both parameters ('username' and 'enabled'). The description doesn't add any parameter-specific information beyond what's in the schema, such as username format requirements or the implications of enabling/disabling. Baseline 3 is appropriate when 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 ('Enable or disable') and resource ('a user account'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling user management tools like 'create_user' or 'delete_user', which would require mentioning this is specifically for toggling account status rather than creating or removing users.

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_user' or 'delete_user', nor does it mention prerequisites such as requiring admin permissions or specific contexts. It simply states what the tool does without indicating appropriate usage scenarios.

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. 37 tool updatesv1.0.1
    • First observedallocation_explain
    • First observedauthenticate
    • First observedcluster_health
    • First observedcluster_info
    • First observedcluster_stats
    • First observedcount
    • First observedcreate_api_key
    • First observedcreate_index
    • First observedcreate_role
    • First observedcreate_user
    • First observeddelete_index
    • First observeddelete_role
    • First observeddelete_user
    • First observedesql_query
    • First observedget_aliases
    • First observedget_document
    • First observedget_index
    • First observedget_index_stats
    • First observedget_mappings
    • First observedget_privileges
    • First observedget_role
    • First observedget_settings
    • First observedget_shards
    • First observedget_user
    • First observedhas_privileges
    • First observedinvalidate_api_key
    • First observedlist_api_keys
    • First observedlist_indices
    • First observedlist_roles
    • First observedlist_users
    • First observedmsearch
    • First observednodes_info
    • First observednodes_stats
    • First observedpending_tasks
    • First observedrefresh_index
    • First observedsearch
    • First observedset_user_enabled

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific resources like indices, users, roles, or cluster operations, with clear boundaries. However, some overlap exists between cluster_info and cluster_stats (both provide cluster information), and between get_index and get_index_stats (both retrieve index details), which could cause minor confusion but descriptions help differentiate them.

Naming Consistency5/5

Tool names follow a highly consistent snake_case pattern with clear verb_noun conventions throughout, such as create_index, delete_user, list_roles, and get_document. There are no deviations in naming style, making the set predictable and readable.

Tool Count3/5

With 37 tools, the count feels heavy for an Elasticsearch server, bordering on excessive. While Elasticsearch has a broad API surface, this many tools may overwhelm agents and could be streamlined by grouping related operations or omitting less critical ones, though it's not extreme.

Completeness5/5

The tool set provides comprehensive coverage of Elasticsearch's core domains, including CRUD operations for indices, documents, users, roles, and API keys, along with cluster management, search, and monitoring. There are no obvious gaps; all major workflows are supported, ensuring agents can handle typical tasks without dead ends.

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

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/schwarztim/elastic-mcp'

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