Skip to main content
Glama
Rbedoyag

Elasticsearch/OpenSearch MCP Server

by Rbedoyag

Elasticsearch/OpenSearch MCP Server

Overview

A Model Context Protocol (MCP) server implementation that provides Elasticsearch and OpenSearch interaction. This server enables searching documents, analyzing indices, and managing cluster through a set of tools.

Related MCP server: Elasticsearch MCP Server

Features

General Operations

  • general_api_request: Perform a general HTTP API request. Use this tool for any Elasticsearch/OpenSearch API that does not have a dedicated tool.

Index Operations

  • list_indices: List all indices.

  • get_index: Returns information (mappings, settings, aliases) about one or more indices.

  • create_index: Create a new index.

  • delete_index: Delete an index.

Document Operations

  • search_documents: Search for documents.

  • index_document: Creates or updates a document in the index.

  • get_document: Get a document by ID.

  • delete_document: Delete a document by ID.

  • delete_by_query: Deletes documents matching the provided query.

Cluster Operations

  • get_cluster_health: Returns basic information about the health of the cluster.

  • get_cluster_stats: Returns high-level overview of cluster statistics.

Alias Operations

  • list_aliases: List all aliases.

  • get_alias: Get alias information for a specific index.

  • put_alias: Create or update an alias for a specific index.

  • delete_alias: Delete an alias for a specific index.

Configure Environment Variables

Copy the .env.example file to .env and update the values accordingly.

Start Elasticsearch/OpenSearch Cluster

Start the Elasticsearch/OpenSearch cluster using Docker Compose:

# For Elasticsearch
docker-compose -f docker-compose-elasticsearch.yml up -d

# For OpenSearch
docker-compose -f docker-compose-opensearch.yml up -d

The default Elasticsearch username is elastic and password is test123. The default OpenSearch username is admin and password is admin.

You can access Kibana/OpenSearch Dashboards from http://localhost:5601.

Stdio

Option 1: Using uvx

Using uvx will automatically install the package from PyPI, no need to clone the repository locally. Add the following configuration to 's config file claude_desktop_config.json.

// For Elasticsearch
{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_HOSTS": "https://localhost:9200",
        "ELASTICSEARCH_USERNAME": "elastic",
        "ELASTICSEARCH_PASSWORD": "test123"
      }
    }
  }
}

// For OpenSearch
{
  "mcpServers": {
    "opensearch-mcp-server": {
      "command": "uvx",
      "args": [
        "opensearch-mcp-server"
      ],
      "env": {
        "OPENSEARCH_HOSTS": "https://localhost:9200",
        "OPENSEARCH_USERNAME": "admin",
        "OPENSEARCH_PASSWORD": "admin"
      }
    }
  }
}

Option 2: Using uv with local development

Using uv requires cloning the repository locally and specifying the path to the source code. Add the following configuration to Claude Desktop's config file claude_desktop_config.json.

// For Elasticsearch
{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "path\\to_folder_proyect\\elasticsearch_mcp_server",
        "run",
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_HOSTS": "https://localhost:9200",
        "ELASTICSEARCH_USERNAME": "elastic",
        "ELASTICSEARCH_PASSWORD": "test123"
      }
    }
  }
}

// For OpenSearch
{
  "mcpServers": {
    "opensearch-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "path\\to_folder_proyect\\elasticsearch-mcp-server",
        "run",
        "opensearch-mcp-server"
      ],
      "env": {
        "OPENSEARCH_HOSTS": "https://localhost:9200",
        "OPENSEARCH_USERNAME": "admin",
        "OPENSEARCH_PASSWORD": "admin",
        "OPENSEARCH_VERIFY_CERTS": "false"
      }
    }
  }
}

SSE

Option 1: Using uvx

# export environment variables
export ELASTICSEARCH_HOSTS="https://localhost:9200"
export ELASTICSEARCH_USERNAME="elastic"
export ELASTICSEARCH_PASSWORD="test123"

# By default, the SSE MCP server will serve on http://127.0.0.1:8000/sse
uvx elasticsearch-mcp-server --transport sse

# The host, port, and path can be specified using the --host, --port, and --path options
uvx elasticsearch-mcp-server --transport sse --host 0.0.0.0 --port 8000 --path /sse

Option 2: Using uv


py -m pip install u #LOCAL MACHINE
pip install uv     #VIRTUAL ENV

# By default, the SSE MCP server will serve on http://127.0.0.1:8000/sse
uv run src/server.py elasticsearch-mcp-server --transport sse
uv run src/server.py opensearch-mcp-server --transport sse

# The host, port, and path can be specified using the --host, --port, and --path options
uv run src/server.py elasticsearch-mcp-server --transport sse --host 0.0.0.0 --port 8000 --path /sse
uv run src/server.py opensearch-mcp-server --transport sse --host 0.0.0.0 --port 8000 --path /sse
opensearch-mcp-server

Streamable HTTP

Option 1: Using uvx

# export environment variables
export ELASTICSEARCH_HOSTS="https://localhost:9200"
export ELASTICSEARCH_USERNAME="elastic"
export ELASTICSEARCH_PASSWORD="test123"

# By default, the Streamable HTTP MCP server will serve on http://127.0.0.1:8000/mcp
uvx elasticsearch-mcp-server --transport streamable-http

# The host, port, and path can be specified using the --host, --port, and --path options
uvx elasticsearch-mcp-server --transport streamable-http --host 0.0.0.0 --port 8000 --path /mcp

Option 2: Using uv


py -m pip install u #LOCAL MACHINE
pip install uv     #VIRTUAL ENV
# By default, the Streamable HTTP MCP server will serve on http://127.0.0.1:8000/mcp
uv run src/server.py elasticsearch-mcp-server --transport streamable-http

# The host, port, and path can be specified using the --host, --port, and --path options
uv run src/server.py elasticsearch-mcp-server --transport streamable-http --host 0.0.0.0 --port 8000 --path /mcp
uv run src/server.py opensearch-mcp-server --transport streamable-http --host 0.0.0.0 --port 8000 --path /mcp

License

This project is licensed under the Apache License Version 2.0 - see the LICENSE file for details.

Available Tools

16 tools
create_indexC
        Create a new index.
        
        Args:
            index: Name of the index
            body: Optional index configuration including mappings and settings
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
bodyNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Create a new index' implies a write/mutation operation, it doesn't disclose important behavioral traits like: whether this requires specific permissions, whether it's idempotent, what happens on conflict, rate limits, or what the response looks like. 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.

Conciseness4/5

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

The description is appropriately concise with a clear purpose statement followed by parameter documentation. The Args section is well-structured. However, the description could be more front-loaded with critical information about the tool's behavior and usage context.

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

Completeness2/5

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

For a mutation tool with 2 parameters, 0% schema description coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what an 'index' is in this context, what system this operates on, what happens after creation, or provide any error handling information. The description leaves too many critical questions unanswered.

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 0%, so the description must compensate. It provides basic parameter names and minimal semantics ('Name of the index', 'Optional index configuration including mappings and settings'), which adds some value beyond the bare schema. However, it doesn't explain format requirements, constraints, or provide examples for the 'body' parameter configuration.

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 'Create a new index' which is a clear verb+resource combination, but it's quite generic and doesn't distinguish this from sibling tools like 'create_data_stream' or 'index_document'. It doesn't specify what kind of index this creates or what system it operates in.

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 'create_data_stream' or 'index_document'. The description provides no context about prerequisites, when this operation is appropriate, or what happens if an index already exists with the same name.

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

delete_aliasC
        Delete an alias for a specific index.

        Args:
            index: Name of the index
            name: Name of the alias
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
nameYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is 'Delete', implying a destructive mutation, but lacks details on permissions, reversibility, error conditions, or effects on related data. This is insufficient 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.

Conciseness4/5

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

The description is brief and front-loaded with the core purpose, followed by parameter details. It avoids unnecessary fluff, but the parameter section could be more integrated into the flow rather than a separate 'Args:' block, slightly affecting structure.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks critical context such as success/error responses, side effects, or prerequisites, making it inadequate for safe and effective tool invocation in a complex environment.

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 lists both parameters ('index' and 'name') with brief explanations, adding meaning beyond the schema's 0% coverage. However, it doesn't specify format constraints (e.g., index naming rules) or provide examples, leaving gaps in understanding despite compensating somewhat for the low 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 verb 'Delete' and the resource 'alias for a specific index', making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'delete_index' or 'delete_document', which would require explicit comparison to achieve 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 'delete_index' or 'put_alias' for modification. The description only states what it does, not when it's appropriate, leaving the agent to infer usage from context without explicit direction.

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

delete_by_queryC
        Deletes documents matching the provided query.
        
        Args:
            index: Name of the index
            body: Query to match documents for deletion
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
bodyYes

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 deletes documents, implying a destructive mutation, but fails to add context on permissions, rate limits, reversibility, or what happens to matched documents. For a deletion tool, this is a significant gap in safety and operational details.

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 appropriately sized and front-loaded, starting with the core purpose in the first sentence. The 'Args' section is structured but could be more integrated. There's no wasted text, though it could be slightly more concise by merging the purpose and parameter explanations.

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 (destructive deletion with query matching), lack of annotations, no output schema, and low schema description coverage, the description is incomplete. It doesn't address critical aspects like return values, error handling, or the scope of deletion (e.g., partial vs. complete matches), 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?

The description includes an 'Args' section that lists parameters ('index' and 'body') with brief explanations, adding meaning beyond the input schema, which has 0% description coverage. However, the explanations are minimal ('Name of the index', 'Query to match documents for deletion') and don't fully compensate for the schema's lack of details, such as query format or index constraints.

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: 'Deletes documents matching the provided query.' It specifies the verb ('deletes') and resource ('documents'), making the action explicit. However, it doesn't distinguish this from sibling tools like 'delete_document' or 'delete_index,' which limits differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It lacks context such as prerequisites, when-not-to-use scenarios, or comparisons to siblings like 'delete_document' (which might delete by ID) or 'delete_index' (which deletes entire indices). This omission leaves the agent without usage direction.

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

delete_documentC
        Delete a document by ID.
        
        Args:
            index: Name of the index
            id: Document ID
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
idYes

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 ('Delete') but doesn't mention permissions needed, whether deletion is permanent, error handling, or other behavioral traits like rate limits or side effects.

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 appropriately sized and front-loaded with the core action. The two-sentence structure is efficient, though the parameter list could be integrated more seamlessly rather than as a separate 'Args:' section.

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

Completeness2/5

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

Given the complexity of a deletion tool with no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks crucial details like confirmation prompts, return values, error conditions, or integration with sibling tools.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It lists the parameters ('index' and 'id') with brief explanations, adding some meaning beyond the schema. However, it doesn't fully detail constraints or examples, leaving gaps in understanding.

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

Purpose4/5

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

The description clearly states the verb ('Delete') and resource ('document by ID'), making the purpose specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'delete_index' or 'delete_by_query', which would require a 5.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'delete_by_query' or 'delete_index'. The description only states what the tool does, not the context or prerequisites for its use.

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

delete_indexC
        Delete an index.
        
        Args:
            index: Name of the index
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool deletes an index but doesn't mention critical aspects like whether this is reversible, requires specific permissions, affects data, or has rate limits. This is inadequate for a destructive operation.

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

Conciseness4/5

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

The description is brief and front-loaded with the core purpose, followed by parameter details. It avoids unnecessary words, though the formatting with extra whitespace slightly reduces efficiency. Overall, it's appropriately sized for a simple tool.

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 destructive nature, lack of annotations, no output schema, and low schema coverage, the description is incomplete. It fails to address safety, outcomes, or error handling, leaving significant gaps for an AI agent to use it correctly.

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

Parameters3/5

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

The description adds minimal semantics by naming the parameter ('index') and indicating it's the name of the index to delete. With 0% schema description coverage and 1 parameter, this provides basic clarification but doesn't compensate fully for the schema gap, meeting the baseline for low 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 ('Delete') and target resource ('an index'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar deletion tools like 'delete_data_stream' or 'delete_document' among the siblings, 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 like 'delete_data_stream' or 'delete_by_query'. It lacks context about prerequisites, consequences, or typical use cases, offering only basic usage instructions.

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

general_api_requestB

Perform a general HTTP API request. Use this tool for any Elasticsearch/OpenSearch API that does not have a dedicated tool.

        Args:
            method: HTTP method (GET, POST, PUT, DELETE, etc.)
            path: API endpoint path
            params: Query parameters
            body: Request body
        
ParametersJSON Schema
NameRequiredDescriptionDefault
methodYes
pathYes
paramsNo
bodyNo

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 it performs HTTP requests but doesn't disclose critical behavioral traits like authentication requirements, rate limits, error handling, response formats, or whether operations are read-only or destructive. For a general API 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.

Conciseness4/5

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

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by usage guidance and parameter details. It avoids unnecessary fluff, though the parameter explanations are minimal and could be more structured for clarity.

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 (general API requests with 4 parameters), no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It lacks details on authentication, error handling, response structure, and practical examples, making it inadequate for safe and effective use without additional 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 0%, so the description must compensate. It lists all 4 parameters with brief explanations (e.g., 'HTTP method', 'API endpoint path'), adding basic meaning beyond the schema's property names. However, it doesn't provide detailed semantics like format examples, constraints, or how params/body interact with the API, leaving room for ambiguity.

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: 'Perform a general HTTP API request' and specifies it's for Elasticsearch/OpenSearch APIs without dedicated tools. It distinguishes from siblings by being a catch-all for APIs not covered by specific tools like create_index or search_documents, though it doesn't explicitly name all siblings.

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

Usage Guidelines4/5

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

The description provides clear usage context: 'Use this tool for any Elasticsearch/OpenSearch API that does not have a dedicated tool.' This explicitly tells when to use it versus alternatives (the dedicated sibling tools), though it doesn't specify when NOT to use it or provide examples of edge cases.

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

get_aliasC
        Get alias information for a specific index.

        Args:
            index: Name of the index
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes

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 this is a 'Get' operation, implying it's likely read-only and non-destructive, but doesn't confirm this or describe other behaviors like error handling, authentication needs, rate limits, or what 'alias information' includes (e.g., metadata, configuration). This leaves significant gaps 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 appropriately sized and front-loaded, with the purpose stated clearly in the first sentence and parameter details following. There's no wasted text, though the structure is simple and could benefit from more explicit separation of sections.

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 read operation with one parameter), no annotations, and no output schema, the description is incomplete. It doesn't explain what 'alias information' returns, potential errors, or how this fits with sibling tools, leaving the agent with insufficient context to use it effectively.

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

Parameters3/5

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

The schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'index' is the 'Name of the index', which clarifies the parameter's purpose beyond the schema's generic 'string' type. However, it doesn't provide examples, constraints, or format details, offering only basic semantic context.

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 alias information') and the target resource ('for a specific index'), which is a specific verb+resource combination. However, it doesn't distinguish this tool from its sibling 'list_aliases' or 'put_alias', which reduces the score from 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 'list_aliases' (which might list all aliases) or 'put_alias' (which creates/modifies aliases). 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.

get_cluster_healthB

Returns basic information about the health of the cluster.

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 for behavioral disclosure. It states this is a read operation ('Returns'), but doesn't mention authentication requirements, rate limits, performance impact, or what constitutes 'basic information' versus detailed health data. The description is minimal and lacks important 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 gets straight to the point with zero wasted words. It's appropriately sized for a zero-parameter tool and front-loads the essential information about what the tool does.

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 cluster health monitoring tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'health' means in this context, what metrics or statuses are returned, or how to interpret the results. Given the complexity of cluster health assessment and the lack of structured documentation, the description should provide more context about what constitutes 'basic information' and what the agent can expect to learn.

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 the schema already fully documents the parameter situation. The description appropriately doesn't waste space discussing non-existent parameters, earning a baseline 4 for parameter semantics.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Returns') and resource ('basic information about the health of the cluster'). It distinguishes from some siblings like 'get_cluster_stats' by focusing specifically on 'health' rather than general statistics, though the distinction could be more explicit.

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_cluster_stats' or other monitoring tools. It doesn't mention prerequisites, timing considerations, or any context for when health information is needed versus other cluster data.

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

get_cluster_statsB

Returns high-level overview of cluster statistics.

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, the description carries full burden but only states it 'returns' data without disclosing behavioral traits like rate limits, authentication needs, or what 'high-level' entails. It doesn't mention if it's safe, read-only, or has side effects.

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 resource, 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 tool with no annotations and no output schema, the description is insufficient. It lacks details on what statistics are returned, format, or any behavioral context, leaving gaps for an agent to use it effectively.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add param info, but that's appropriate here, meeting the baseline for zero-param 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 verb ('Returns') and resource ('high-level overview of cluster statistics'), making the tool's function immediately understandable. It doesn't distinguish from siblings like 'get_cluster_health' or 'get_index', but the purpose is unambiguous.

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_cluster_health' or 'get_index'. The description implies it's for high-level statistics, but doesn't specify scenarios, prerequisites, or exclusions.

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

get_documentC
        Get a document by ID.
        
        Args:
            index: Name of the index
            id: Document ID
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
idYes

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 retrieves a document but doesn't cover critical aspects like whether it's a read-only operation, error handling for missing documents, authentication needs, or rate limits. This is a significant gap for a 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.

Conciseness4/5

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

The description is appropriately sized and front-loaded, with the core purpose stated first followed by parameter details. The two-sentence structure is efficient, though the 'Args:' section could be integrated more smoothly into the flow.

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 required parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or behavioral traits, making it inadequate for safe and effective use by an agent.

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

Parameters3/5

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

The description lists both parameters ('index' and 'id') with brief explanations, adding meaning beyond the schema which has 0% description coverage. However, it doesn't provide details like format examples, constraints, or how they interact, leaving the agent with only basic semantic context.

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 ('document by ID'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'get_index' or 'get_data_stream', which also retrieve resources by ID, so it lacks sibling distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'get_document' over 'search_documents' or 'get_index', nor does it specify prerequisites like needing an existing document ID. This leaves the agent without contextual usage cues.

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

get_indexC
        Returns information (mappings, settings, aliases) about one or more indices.
        
        Args:
            index: Name of the index
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes

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 states this is a read operation ('Returns information'), implying it's non-destructive, but doesn't cover other aspects like authentication needs, rate limits, error handling, or response format. 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.

Conciseness4/5

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

The description is concise and well-structured, with a clear purpose statement followed by an Args section. It uses two sentences effectively without waste. However, the formatting includes extra whitespace, and it could be more front-loaded by integrating the parameter info more seamlessly, preventing a perfect score.

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 read operation with one parameter) and lack of annotations and output schema, the description is incomplete. It covers the basic purpose and parameter but misses behavioral details like response format, error cases, or usage context. For a tool in this environment, more information is needed to ensure the agent can use it correctly without guesswork.

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

Parameters3/5

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

The description adds minimal semantics beyond the input schema. It documents the 'index' parameter in the Args section, but with 0% schema description coverage, the schema provides no details about this parameter. The description only states 'Name of the index', which is basic and doesn't explain format, constraints, or examples. This partially compensates but leaves gaps, aligning with the baseline for low 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: 'Returns information (mappings, settings, aliases) about one or more indices.' It specifies the verb ('Returns information') and resource ('indices'), and details the types of information returned. However, it doesn't explicitly differentiate from sibling tools like 'list_indices' or 'get_document', which would be needed for 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. It doesn't mention sibling tools like 'list_indices' (which might list indices without details) or 'get_document' (which retrieves specific documents), nor does it specify prerequisites or exclusions. This lack of context leaves the agent to infer usage from the purpose alone.

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

index_documentC
        Creates or updates a document in the index.
        
        Args:
            index: Name of the index
            document: Document data
            id: Optional document ID
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
documentYes
idNo

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 states the tool 'creates or updates,' implying mutation, but doesn't clarify permissions, idempotency, error handling, or response format. For a mutation tool with zero annotation coverage, this is insufficient, though it at least hints at the action.

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 appropriately sized and front-loaded, with the purpose stated first followed by parameter details. It avoids unnecessary words, though the 'Args' section could be more integrated. Overall, it's efficient but not perfectly 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 (mutation with 3 parameters, no annotations, no output schema, and nested objects), the description is incomplete. It lacks details on behavior, error cases, return values, and how it differs from siblings, making it inadequate for safe and effective use by an agent.

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

Parameters3/5

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

The description includes an 'Args' section listing parameters (index, document, id) with brief notes, adding meaning beyond the input schema, which has 0% description coverage. However, it doesn't explain parameter formats, constraints, or examples (e.g., what 'document data' entails), leaving gaps in understanding.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Creates or updates a document in the index.' This specifies the verb (creates/updates) and resource (document in index), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'create_data_stream' or 'create_index,' which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'index_document' over 'create_data_stream' or 'create_index,' nor does it explain prerequisites or exclusions. This lack of context leaves the agent without usage direction.

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

list_aliasesB

List all aliases.

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 the full burden of behavioral disclosure. 'List all aliases' implies a read-only operation, but it doesn't specify whether this is paginated, sorted, or includes metadata. It lacks details on permissions, rate limits, or error conditions, which are critical for a tool with zero parameters and no output schema.

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 ('List all aliases.') with zero wasted words. It's front-loaded and directly conveys the core action, 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.

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 'aliases' are in this context (e.g., Elasticsearch aliases), the format of the returned list, or any behavioral traits like pagination. For a tool with no structured output documentation, more context is needed.

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

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 the schema fully documents the absence of inputs. The description adds no parameter information, which is appropriate here. A baseline of 4 is given since no parameters exist, and the description doesn't need to compensate for 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 'List all aliases' clearly states the verb ('List') and resource ('aliases'), making the purpose immediately understandable. It distinguishes from siblings like 'get_alias' (singular) and 'put_alias' (create/update). However, it doesn't specify scope (e.g., all aliases in the system vs. filtered) which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_alias' (for a specific alias) or 'put_alias' (for creation). 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.

list_indicesB

List all indices.

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 the basic action. It doesn't disclose behavioral traits such as whether this is a read-only operation, how results are formatted, if there are rate limits, or what happens with large numbers of indices.

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

Conciseness5/5

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

The description is extremely concise ('List all indices.') with no wasted words. It's front-loaded and efficiently communicates the core purpose in a single, clear sentence.

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 no output schema) and lack of annotations, the description is incomplete. It doesn't explain return values, error conditions, or behavioral nuances, leaving significant gaps for an AI agent to understand how to use the tool effectively.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, but that's appropriate given the lack of parameters, warranting a baseline score above minimum.

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 ('indices'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'get_index' or 'list_aliases', but it's not vague or tautological.

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_index' (for a specific index) or 'list_aliases' (for aliases). It lacks any context about prerequisites, timing, or exclusions.

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

put_aliasC
        Create or update an alias for a specific index.

        Args:
            index: Name of the index
            name: Name of the alias
            body: Alias configuration
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
nameYes
bodyYes

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 states 'Create or update' which implies mutation, but doesn't specify permissions needed, whether changes are reversible, rate limits, or what happens on conflicts. For a mutation 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.

Conciseness4/5

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

The description is brief and front-loaded with the core purpose in the first sentence. The parameter list is formatted clearly but could be more integrated. There's no wasted text, though it might benefit from slightly more elaboration given the lack of annotations and schema descriptions.

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 (mutation with 3 parameters, nested 'body' object, no output schema, and no annotations), the description is incomplete. It doesn't cover behavioral aspects like side effects, error conditions, or return values, and parameter details are sparse. This leaves the agent under-informed for safe and effective use.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema provides no parameter descriptions. The description lists parameter names ('index', 'name', 'body') but adds minimal semantics: it clarifies 'body' is 'Alias configuration', which is helpful but vague. It doesn't explain what values are expected for 'index' or 'name', or detail the structure of 'body', leaving most parameter meaning undocumented.

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 or update') and resource ('an alias for a specific index'), making the purpose explicit. However, it doesn't distinguish this tool from its sibling 'get_alias' or 'list_aliases', which would require mentioning it's a write operation versus read operations.

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 'delete_alias' or 'list_aliases'. It doesn't mention prerequisites, such as whether the index must exist, or when to choose creation versus update, leaving the agent without contextual usage cues.

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

search_documentsD
        Search for documents.
        
        Args:
            index: Name of the index
            body: Search query
        
ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
bodyYes

TDQS

D1.6/5.0
Behavior1/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states the action ('Search for documents') without any details on permissions, rate limits, pagination, error handling, or what the search returns (e.g., results format, relevance scoring). This leaves critical behavioral aspects unspecified.

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

Conciseness3/5

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

The description is brief with two sentences, which is appropriately sized. However, it is not front-loaded with key information; the first sentence is vague, and the args section lacks detail. While concise, it under-specifies rather than being efficiently informative.

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

Completeness1/5

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

Given the complexity (search operation with 2 parameters including a nested object), lack of annotations, and no output schema, the description is severely incomplete. It fails to explain what the tool does beyond the name, how to use parameters effectively, or what to expect in return. This is inadequate for a search tool in a document management system.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It lists 'index' and 'body' as args but provides no semantic meaning beyond their names. For example, it does not explain what an 'index' is in this context, what the 'body' should contain (e.g., query DSL, filters), or examples of valid values. This adds minimal value over the bare schema.

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

Purpose2/5

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

The description states 'Search for documents' which is a tautology of the tool name 'search_documents'. It does not specify what type of documents, what search capabilities exist, or how it differs from sibling tools like 'get_document' or 'index_document'. The purpose is stated but lacks specificity and differentiation.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., needing an existing index), exclusions, or comparisons to siblings like 'get_document' (for retrieval by ID) or 'list_indices' (for browsing). Usage context is entirely missing.

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.

  1. 16 tool updatesv2.0.6
    • Addedcreate_index
    • Addeddelete_alias
    • Addeddelete_by_query
    • Addeddelete_document
    • Addeddelete_index
    • Addedgeneral_api_request
    • Addedget_alias
    • Addedget_cluster_health
    • Addedget_cluster_stats
    • Addedget_document
    • Addedget_index
    • Addedindex_document
    • Addedlist_aliases
    • Addedlist_indices
    • Addedput_alias
    • Addedsearch_documents

TDQS

B3.3/5.0

Scored across 16 tools

Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific resources and actions in Elasticsearch/OpenSearch. The tools cover index management, document operations, alias handling, cluster monitoring, and search with no overlapping functionality. Even the general_api_request tool is clearly distinguished as a fallback for unsupported APIs.

Naming Consistency5/5

The tools follow a highly consistent verb_noun naming pattern throughout (e.g., create_index, delete_document, get_cluster_health, search_documents). All tools use snake_case with clear action verbs followed by resource nouns, making the API surface predictable and readable.

Tool Count5/5

With 16 tools, this server is well-scoped for the Elasticsearch/OpenSearch domain. It provides comprehensive coverage of core operations without being overwhelming. Each tool serves a specific, necessary function in the database management workflow, and the count aligns well with the complexity of the domain.

Completeness4/5

The toolset provides excellent coverage of core Elasticsearch/OpenSearch operations including CRUD for indices and documents, alias management, cluster monitoring, and search. The general_api_request tool elegantly handles edge cases. Minor gaps might include bulk operations or specific monitoring endpoints, but agents can work around these using the general tool.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for OpenSearch that enables AI assistants to interact with OpenSearch clusters through a standardized interface for search, index management, and cluster operations.
    9
    77,891 PyPI
    151
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that provides tools and resources to interact with Elasticsearch clusters, including listing indices, searching, and retrieving mappings.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to directly interact with Elasticsearch for searching, aggregating, and retrieving documents from indices, supporting full-text search, semantic search, and various query modes.
    13 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Read-only MCP server for exploring and searching OpenSearch clusters, enabling log analysis, index exploration, and query execution.
    8
    MIT