Skip to main content
Glama
thiagorchaves

AWS OpenSearch MCP Server

AWS OpenSearch MCP, read-only

MCP em Python para investigar domínios do Amazon OpenSearch Service usando profiles AWS locais, incluindo SSO. O servidor foi desenhado para operação segura em CI, QA, produção e telemetry, sem ferramentas de escrita.

O que ele entrega

  • Profiles permitidos: ci, qa, prod e telemetry.

  • Regiões permitidas por configuração.

  • Descoberta de domínios AWS-managed com boto3.

  • Targets customizados/self-managed, incluindo OpenSearch atrás de Nginx ou proxy.

  • Autenticação no data plane com AWS Signature Version 4, Basic, header de ambiente ou nenhuma autenticação somente para targets explícitos.

  • Consultas limitadas por tamanho, timeout e quantidade de documentos.

  • Redação de campos com aparência de segredo ou credencial.

  • Diagnósticos específicos para shards, flood stage, mappings e timestamps antigos.

  • Nenhum endpoint genérico de request e nenhuma ferramenta de escrita.

Related MCP server: mssql-mcp

Tools disponíveis

Tool

Objetivo

list_aws_profiles

Mostra profiles permitidos, disponibilidade local e regiões

list_domains

Lista domínios por profile e região

get_domain_config

Lê configuração AWS do domínio

get_cluster_health

Saúde green/yellow/red

get_cluster_stats

Estatísticas gerais do cluster

list_indices

Índices, tamanho, documentos e shards

get_index_details

Settings, mappings, aliases e stats

search_index

Query DSL read-only com limites

get_latest_documents

Documentos mais recentes por timestamp

get_field_mapping

Tipo e conflito de mapping de um campo

get_field_count

Uso de index.mapping.total_fields.limit

get_shard_allocation

Distribuição e estado dos shards

explain_unassigned_shard

Motivo de shard não alocado

get_disk_allocation

Disco por nó

get_cluster_settings

Settings transient, persistent e default

get_indexing_stats

Indexação, busca, merges, refresh e segmentos

get_pending_tasks

Tarefas pendentes no cluster manager

get_ingest_pipelines

Pipelines de ingestão

diagnose_cluster

Diagnóstico consolidado de saúde, disco e flood stage

diagnose_timestamp

Min/max, mapping e amostras para dados antigos

Pré-requisitos

  • Python 3.10 ou superior.

  • uv recomendado.

  • Profiles AWS já configurados em ~/.aws/config e ~/.aws/credentials.

  • Rota de rede até o endpoint. Para domínio VPC-only, a máquina precisa estar na VPN, VPC ou em um túnel apropriado.

Instalação

git clone https://github.com/thiagorchaves/aws-opensearch-mcp-server.git
cd aws-opensearch-mcp-server
cp config.example.yaml config.yaml
uv sync --extra dev

Valide os profiles utilizados:

aws sts get-caller-identity --profile telemetry
aws opensearch list-domain-names --profile telemetry --region us-east-1

Quando o profile usa AWS SSO:

aws sso login --profile telemetry

Rodar manualmente

AWS_OPENSEARCH_MCP_CONFIG="$PWD/config.yaml" \
AWS_SDK_LOAD_CONFIG=1 \
uv run aws-opensearch-mcp

O transporte padrão é stdio, portanto o processo aparentemente fica sem imprimir respostas no terminal. Isso é esperado: ele aguarda um cliente MCP.

Targets customizados, self-managed e Nginx

As tools que recebem domain também aceitam o nome de um target em profiles.settings.<profile>.opensearch_targets. Quando o nome corresponde a um target configurado, o servidor conecta diretamente em endpoint_url e não chama DescribeDomain. Caso contrário, o fluxo AWS-managed permanece inalterado: DescribeDomain resolve e valida o domínio antes da conexão.

profiles:
  settings:
    telemetry:
      # Mantido por compatibilidade: valida o domínio AWS e usa o proxy no data plane.
      endpoint_overrides:
        logs-production: https://nginx.internal.example

      # Não chama DescribeDomain; use `nginx-logs` no parâmetro domain.
      opensearch_targets:
        nginx-logs:
          endpoint_url: https://nginx.internal.example
          auth_mode: sigv4
          signing_region: us-east-1       # padrão: região informada à tool
          signing_service: es             # padrão: es
          signing_host: search-logs.us-east-1.es.amazonaws.com
          tls_verify: true                # padrão: true

        self-managed-basic:
          endpoint_url: https://opensearch.internal.example
          auth_mode: basic
          username_env: OPENSEARCH_READONLY_USERNAME
          password_env: OPENSEARCH_READONLY_PASSWORD

        self-managed-header:
          endpoint_url: https://opensearch.internal.example
          auth_mode: header
          header_name: Authorization
          header_value_env: OPENSEARCH_READONLY_AUTHORIZATION

endpoint_url deve usar https:// por padrão; http:// só é permitido com allow_insecure_http: true no próprio target. URLs com .. no path, query string ou fragment são rejeitadas. O servidor rejeita campos não suportados no target, portanto senhas e tokens literais em YAML não são aceitos: basic e header leem seus valores exclusivamente das variáveis de ambiente indicadas.

Para sigv4, signing_host é aplicado como o header HTTP Host, que é o valor usado pelo AWSV4SignerAuth ao calcular a assinatura, enquanto a conexão TCP/TLS continua apontando para endpoint_url. Isso exige que o Nginx/proxy aceite e encaminhe esse Host. Não há canal separado de host de assinatura no opensearch-py; se o proxy precisar receber um Host diferente do host assinado, é necessária uma custom connection/proxy que resolva essa tradução.

auth_mode: none é permitido exclusivamente em um opensearch_targets configurado de forma explícita; domínios AWS-managed e endpoint_overrides legados continuam usando SigV4.

Configuração no Kiro

Use o arquivo de usuário ~/.kiro/settings/mcp.json ou o arquivo do workspace .kiro/settings/mcp.json:

{
  "mcpServers": {
    "aws-opensearch-readonly": {
      "command": "uv",
      "args": [
        "--directory",
        "/home/SEU_USUARIO/Projects/aws-opensearch-mcp-server",
        "run",
        "aws-opensearch-mcp"
      ],
      "env": {
        "AWS_OPENSEARCH_MCP_CONFIG": "/home/SEU_USUARIO/Projects/aws-opensearch-mcp-server/config.yaml",
        "AWS_SDK_LOAD_CONFIG": "1",
        "AWS_OPENSEARCH_MCP_LOG_LEVEL": "INFO"
      },
      "timeout": 120000
    }
  }
}

Evite autoApprove no primeiro uso. Depois de revisar os parâmetros e resultados, ferramentas puramente informativas, como get_cluster_health, podem ser aprovadas conforme a política do time.

Testes

uv run pytest -q
uv run ruff check .

Para abrir no MCP Inspector:

uv run mcp dev mcp_server.py

Exemplos de prompts no Kiro

Use o profile telemetry em us-east-1 e liste os domínios OpenSearch disponíveis.
No domínio logs-production, rode diagnose_cluster e explique apenas achados warning ou superiores.
No índice sentinelone-*, verifique o mapping de @timestamp e diagnostique por que os documentos mais novos parecem ser de janeiro.
Liste os 20 maiores índices e verifique quais estão próximos de index.mapping.total_fields.limit.
Encontre shards não alocados e execute explain_unassigned_shard para o primeiro deles. Não faça alterações.

Privacidade dos dados

As respostas das tools entram no contexto do cliente de IA. Restrinja source_fields, evite consultar documentos com dados pessoais desnecessários e use uma identidade com acesso somente aos índices necessários.

IAM mínimo

O arquivo examples/iam-policy.example.json contém uma base. Ajuste conta, domínio e regiões.

A permissão es:ESHttpPost aparece porque APIs read-only como _search e _cluster/allocation/explain usam POST. O MCP não expõe endpoints arbitrários nem operações de escrita, mas a identidade AWS ainda deve seguir privilégio mínimo e, quando disponível, Fine-Grained Access Control do OpenSearch.

Proteções implementadas

  • Allowlist de profile e região.

  • Validação de domínio, índice e campo.

  • Bloqueio de path injection.

  • Limite de documentos, bytes de query e resposta.

  • Timeout em consultas.

  • Bloqueio de script, script_fields, runtime_mappings, rescore e stored_fields nas queries fornecidas pelo modelo.

  • Redação recursiva de tokens, senhas, cookies, chaves e segredos.

  • Paginação e tamanhos internos de agregações limitados.

  • Logs enviados para stderr, preservando o protocolo MCP em stdout.

  • Produção e todos os demais profiles permanecem read-only nesta versão.

Evolução sugerida

Uma segunda versão pode adicionar ferramentas de escrita estritamente específicas, sempre em pares preview_* e apply_*, com confirmação explícita e bloqueio por profile. Não adicione uma tool de request HTTP arbitrário, pois ela contornaria todas as proteções deste servidor.

Referências oficiais

Available Tools

20 tools
diagnose_clusterB

Generate an evidence-based read-only diagnosis for health, shards, disk and flood-stage blocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 'read-only' indicating non-destructiveness, but lacks disclosure on permission requirements, performance impact, or potential failure modes. The scope is clear but behavioral traits are minimal.

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 sentence with no fluff, front-loading the key purpose and scope. Every word earns its place.

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

Completeness2/5

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

Given the complexity (3 required undocumented parameters) and existence of an output schema, the description fails to cover parameter semantics. While the tool may have good output documentation, the input side is critically incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description does not explain any of the three required parameters (profile, region, domain). This is a major gap; the agent cannot infer what values to provide.

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 'generate' and the resource 'read-only diagnosis' with specific scope: health, shards, disk, and flood-stage blocks. This distinguishes it from sibling tools like get_cluster_health or get_disk_allocation.

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 as a comprehensive diagnostic tool via 'evidence-based read-only diagnosis,' but provides no explicit guidance on when to use it versus alternatives like get_cluster_health or explain_unassigned_shard. No when-not-to-use 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.

diagnose_timestampB

Diagnose stale data by checking date mappings, min/max values, and newest/oldest samples.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
domainYes
regionYes
profileYes
sample_sizeNo
timestamp_fieldNo@timestamp

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It lists diagnostic actions but does not disclose whether the tool is read-only, required permissions, or potential side effects. Lacks behavioral context beyond the listed checks.

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?

Single sentence, no wasted words, front-loaded with the main purpose. However, additional structure (e.g., listing steps) could improve readability.

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 6 parameters (4 required) and no param descriptions, the description is insufficient. It does not cover error conditions, prerequisites, or the meaning of output. Presence of output schema reduces burden but not enough.

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

Parameters1/5

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

Schema description coverage is 0% and description does not explain how parameters (e.g., sample_size, timestamp_field) affect behavior. Only general actions like checking mappings and samples are mentioned, without mapping to specific parameters.

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?

Description clearly states the tool diagnoses stale data by checking date mappings, min/max values, and newest/oldest samples. The verb 'diagnose' and resource 'stale data' are specific, and the actions differentiate it from siblings like diagnose_cluster.

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?

Implied usage for stale data issues, but no explicit guidance on when to use this tool vs alternatives (e.g., diagnose_cluster). No exclusions or when-not-to-use mentioned.

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

explain_unassigned_shardB

Explain the first unassigned shard, or a specific shard when all shard fields are given.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNo
shardNo
domainYes
regionYes
primaryNo
profileYes
include_yes_decisionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description only states the action ('explain') without disclosing behavioral traits such as whether it is read-only, required permissions, side effects, or output format. This is insufficient for an agent to assess operational impact.

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 sentence that front-loads the purpose. It is concise, though it could benefit from slightly more detail without becoming verbose.

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 7 parameters, no schema descriptions, no annotations, and a conceptually complex topic (shard explanation), the description is too minimal. It fails to define 'explain', describe the output schema, or provide enough context for correct agent 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 0%, so the description must compensate. It adds meaning by indicating that providing 'all shard fields' triggers specific shard mode, but does not list which parameters compose those fields or explain their roles, leaving ambiguity for the agent.

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 explains an unassigned shard, distinguishing between the first unassigned or a specific shard when all identifying fields are given. This differentiates it from sibling tools like diagnose_cluster or get_shard_allocation.

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 two usage scenarios (first unassigned vs specific shard), but provides no explicit guidance on when to prefer this tool over alternatives or prerequisites. Context from sibling tools is not addressed.

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

get_cluster_healthC

Get OpenSearch cluster health at cluster, indices, or shards level.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNocluster
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose whether the operation is read-only, what permissions are needed, or any side effects. The output schema exists but the description should at least imply the read-only nature.

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?

Single sentence, front-loaded with the main purpose ('Get OpenSearch cluster health'). Efficient, though could be slightly more structured with parameter hints.

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 and the presence of an output schema, the description provides basic completeness. However, the lack of usage guidelines and behavioral transparency reduces overall context for 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?

With 0% schema description coverage, the description partially compensates by mentioning the 'level' concept (cluster, indices, shards), aligning with the level parameter. However, it does not explain domain, region, or profile parameters.

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

Purpose4/5

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

Clearly states it retrieves OpenSearch cluster health, and specifies granularity options (cluster, indices, shards). This distinguishes it from sibling tools like get_cluster_stats or diagnose_cluster, though not explicitly.

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 over alternatives. For example, it doesn't explain when to use get_cluster_health vs diagnose_cluster or get_cluster_settings, leaving the agent to guess.

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

get_cluster_settingsC

Read transient, persistent, and optionally default cluster settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
regionYes
profileYes
include_defaultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided, and the description only mentions 'Read' without disclosing behavioral traits such as authorization requirements, rate limits, or what happens when include_defaults is false. The existence of an output schema is not leveraged.

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, concise sentence with no extraneous information. However, it could be more structured to explain parameters or usage context.

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

Completeness2/5

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

Given the tool has 4 parameters, no annotations, and an output schema exists, the description is too brief. It does not explain the nature of 'cluster settings' or how the include_defaults parameter affects output, leaving the agent underinformed.

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

Parameters1/5

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

With 0% schema description coverage and no parameter explanations in the description, the agent has no semantic guidance for the four parameters (domain, region, profile, include_defaults). The description hints at 'default' settings but does not explicitly tie to the boolean parameter.

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 'Read' and the resource 'cluster settings', specifying types like transient, persistent, and optional defaults. It distinguishes this tool from siblings like get_cluster_health and get_cluster_stats by focusing on settings.

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_domain_config or get_cluster_health. The description lacks context for decision-making.

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

get_cluster_statsC

Get high-level cluster, node, shard, document and storage statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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 for behavioral transparency. It only states that statistics are retrieved, implying a read-only operation, but lacks details on permissions, rate limits, or any side effects. The description is too sparse to inform safe usage.

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 a single sentence, which is concise, but it is also vague and does not provide enough detail. It states the purpose but lacks important context, making it less effective than a slightly longer but more informative description.

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 the domain (multiple sibling tools, required parameters) and the lack of parameter descriptions, the description is incomplete. It does not clarify how to use the parameters or what output to expect, even though an output schema exists.

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

Parameters1/5

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

Input schema has three required parameters (domain, region, profile) with 0% coverage (no descriptions). The tool description does not explain what these parameters represent or how they are used, providing no additional meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the tool retrieves high-level statistics for cluster, node, shard, document, and storage. The verb 'Get' and resource are specific. However, it does not distinguish from sibling tools like get_cluster_health or get_cluster_settings, which are similar in 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 on when to use this tool versus alternatives. The description does not include any when-to-use or when-not-to-use context, leaving the agent to infer based on name alone.

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

get_disk_allocationC

Get per-node disk allocation and shard counts ordered by disk percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 bears full responsibility for behavioral disclosure. It does not mention that this is a read operation, whether it requires special permissions, or any side effects. The description only states the basic function, lacking transparency about 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 sentence that is front-loaded with the action. Every word is necessary; no redundancy or waste. It is concise and 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?

Despite having an output schema, the description is too minimal. It lacks parameter explanations, behavioral details, and differentiation from many sibling tools. For a tool with three required parameters, this is insufficient for an agent to use correctly without external knowledge.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning beyond the parameter names. It does not explain what 'profile', 'region', and 'domain' represent or their constraints. With zero compensation, this is a critical gap.

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 'Get', the resource 'per-node disk allocation and shard counts', and the ordering 'by disk percentage'. It distinguishes itself from sibling tools like 'get_shard_allocation' by specifying the per-node and ordered aspect.

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 usage guidelines are provided. The description does not indicate when to use this tool over alternatives, such as when to prefer it over 'get_shard_allocation' or 'get_cluster_health'. There is no guidance on prerequisites or context.

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

get_domain_configC

Read the managed-domain configuration, nodes, storage, networking and security posture.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It states 'Read' implying read-only, but lacks details on side effects, auth requirements, rate limits, or output format. Minimal behavioral 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?

Single sentence, no redundancy. Efficient but could benefit from structured listing of aspects.

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?

With 3 undocumented required parameters, no usage guidance, and no output description despite output schema existing, the description is insufficient for an agent to confidently invoke the tool.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain the meaning or format of parameters (domain, region, profile). No additional semantic value beyond parameter names.

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 'Read' and resource 'managed-domain configuration', listing specific aspects (nodes, storage, networking, security posture). It distinguishes itself from sibling diagnostic tools by focusing on domain config.

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 (e.g., get_cluster_health, get_cluster_settings). No exclusions or context provided.

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

get_field_countC

Estimate mapped field counts and compare them with index.mapping.total_fields.limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It implies a read-only operation but does not explicitly state safety, performance impact, or prerequisites.

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 a single sentence, which is concise, but it lacks necessary detail, making it more under-specified than efficiently concise.

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?

Despite having an output schema, the description omits explanations for parameters and usage context, leaving the tool incomplete for effective invocation.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain the four required parameters (index, domain, region, profile), failing to add meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the tool estimates mapped field counts and compares them with a limit, which is specific and distinguishes it from sibling tools like get_field_mapping.

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 get_field_mapping or get_index_details, leaving the agent without decision context.

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

get_field_mappingB

Inspect one field across matching index mappings and report mapping type conflicts.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYes
indexYes
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

The description indicates a read-only inspection ('inspect') and reporting of conflicts, but lacks detail on error handling, permissions required, or behavior with non-existent fields. Without annotations, the description carries the burden and provides moderate 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 a single, efficient sentence (12 words) with no redundancy. It is appropriately front-loaded, though slightly terse for the number of parameters.

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 5 required parameters, no annotations, and an output schema, the description should provide more context on what 'mapping type conflicts' entail and how to interpret results. It lacks sufficient guidance for a tool with this many inputs.

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?

With 0% schema description coverage, the description says 'one field across matching index mappings', hinting that 'field' is the field name and 'index' might be a pattern, but does not clarify format or constraints for any of the 5 required parameters. This adds minimal value beyond the schema.

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 uses specific verb 'inspect' and resource 'one field across matching index mappings', clearly distinguishing from sibling tools like get_field_count or search_index. It also states the outcome: 'report mapping type conflicts'.

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 use when checking mapping conflicts across indices, but does not explicitly state when to prefer this tool over siblings like get_index_details or search_index. No exclusion criteria or prerequisites mentioned.

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

get_index_detailsB

Read settings, mappings, aliases and operational stats for an index or safe pattern.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

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

Explicitly describes the operation as a read ('Read'), implying no destructive side effects. Although no annotations exist, the description sufficiently discloses the non-mutating nature and what is retrieved.

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 with no extraneous text. The verb is front-loaded, and the purpose is stated immediately.

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?

Output schema handles return values, but the tool has 4 required parameters with no documentation in schema or description. An agent cannot determine how to fill these parameters without additional context.

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

Parameters1/5

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

Input schema has 0% coverage (no parameter descriptions). The tool description does not mention any parameters, their meaning, or expected format. This is a critical gap for an agent to invoke the tool correctly.

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?

Description clearly states the tool's verb (Read) and resource (index or safe pattern), listing the types of data returned: settings, mappings, aliases, operational stats. This distinguishes it from sibling tools that focus on cluster health, disk allocation, etc.

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_cluster_settings or get_field_mapping. Absence of any context about prerequisites, valid conditions, or when not to use.

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

get_indexing_statsC

Get document, storage, indexing, search, merge, refresh and segment statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNo*
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided, so description must cover behavioral traits. It only states 'Get' which implies read-only, but does not confirm idempotence, permission requirements, or any side effects. Missing critical safety cues for a tool with no annotations.

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 sentence with no wasted words. However, it is only a list, missing structure (e.g., grouping or hierarchy) that could improve readability. Still concise relative to the tool's complexity.

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?

Output schema exists, so return values might be covered, but the description omits critical context: the scope (per index), parameter semantics, and usage scenario. For a tool with 4 parameters and 3 required, this one-liner is insufficient.

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

Parameters1/5

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

Input schema has 0% description coverage. The description does not explain any parameter (profile, region, domain, index) or the default for index. It adds no meaning beyond the schema, leaving the agent without guidance on how to populate required fields.

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 lists specific statistics categories (document, storage, indexing, search, merge, refresh, segment). It identifies what the tool retrieves, but does not differentiate from siblings like get_cluster_stats or get_index_details, which reduces clarity.

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. The description merely lists statistics without explaining context (e.g., diagnosing performance issues). No mention of prerequisites or situations where it is better than siblings.

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

get_ingest_pipelinesC

Read all ingest pipeline definitions visible to the current AWS identity.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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. It indicates a read operation (non-destructive) but fails to disclose other behavioral traits such as authentication requirements, rate limits, pagination, or the level of detail returned. This is insufficient for a tool with no annotation support.

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, clear sentence with no wasted words. However, it may be too terse given the need to explain required parameters. It earns a 4 for lack of redundancy, but 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.

Completeness3/5

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

Given that an output schema exists, the description need not detail return values. However, it fails to provide any context for the three required parameters or the expected environment (e.g., AWS). The description is complete in stating the tool's core purpose but lacks the contextual richness needed for an agent to use it confidently.

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

Parameters1/5

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

Schema description coverage is 0%, and the tool description does not explain any of the three required parameters (profile, region, domain). The parameters remain completely opaque, leaving the agent without guidance on valid values or their role. The description adds no value beyond the schema's structure.

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 'Read' and the resource 'ingest pipeline definitions,' with scope 'visible to the current AWS identity.' It distinguishes this tool from siblings like get_cluster_health or get_index_details, which operate on 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. There is no mention of when not to use it, prerequisites, or comparison to similar tools like list_indices or search_index. The description only states what it does, not when it should be chosen.

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

get_latest_documentsC

Return newest documents sorted by a date field, optionally restricted by lookback hours.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo
indexYes
domainYes
regionYes
profileYes
source_fieldsNo
lookback_hoursNo
timestamp_fieldNo@timestamp

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It does not disclose behavioral traits such as authentication requirements, error handling, or what happens if the index is missing. The description only states the basic function.

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?

A single sentence that is front-loaded with the verb and resource. Very concise, but could be expanded slightly to include essential context without becoming verbose.

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?

Despite having an output schema (not shown), the description is insufficient given the tool's 8 parameters and no schema descriptions. It omits the role of required parameters and does not specify what the tool returns or how it handles edge cases.

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 coverage is 0%, so the description must compensate. It mentions 'date field' and 'lookback hours' but does not explain critical parameters like 'profile', 'region', 'domain', 'index', 'size', 'source_fields', or 'timestamp_field'. Parameter names are self-explanatory, but the description fails to add value beyond the schema.

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 uses a specific verb 'Return' and clearly identifies the resource as 'newest documents' sorted by a date field, with optional lookback hours. This distinguishes it from sibling tools like 'search_index' or 'list_indices' which operate on different levels.

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 like 'search_index'. The description implies use for newest documents but provides no exclusion criteria or context for choosing this tool over others.

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

get_pending_tasksC

List pending cluster-manager tasks and their queue wait time.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states the function without disclosing side effects, authorization needs, rate limits, or behavior when no pending tasks exist.

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 concise sentence with no redundant information. It is front-loaded and gets to the point 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?

Despite having an output schema, the description does not detail the return format or additional fields. With three undocumented required parameters and no usage context, the description is insufficient for an agent to reliably invoke the tool.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain the three required parameters (domain, region, profile). It adds no meaning beyond their names, leaving agents without guidance on valid values or constraints.

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 it lists pending cluster-manager tasks and includes queue wait time. The verb 'list' and specific resource 'pending cluster-manager tasks' distinguish it from sibling tools focused on cluster health, stats, or configuration.

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. Among siblings, there are many diagnostic tools, but no explicit context for selection or exclusions.

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

get_shard_allocationB

List primary and replica shard states, nodes, sizes and unassigned reasons.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
regionYes
profileYes
index_patternNo*

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so description carries full burden. It states what is listed, but omits behavioral traits like read-only nature, permission requirements, or performance impact. Decent but could explicitly state it's a read-only snapshot.

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 verb 'List', no extraneous words. Perfectly concise for the information it conveys.

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?

Tool has 4 parameters with no descriptions and sibling relationships unexplained. Despite output schema existing, the lack of parameter context and usage guidance makes it incomplete for an agent to use effectively.

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

Parameters1/5

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

Schema description coverage is 0% and description adds no parameter explanations. The four parameters (domain, region, profile, index_pattern) are undocumented beyond their names and types, forcing agent to guess their roles.

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?

Description uses specific verb 'List' and clearly identifies the resource 'primary and replica shard states, nodes, sizes and unassigned reasons'. It effectively distinguishes from sibling tools like explain_unassigned_shard (which focuses on explanations) and get_disk_allocation (disk-level).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives such as explain_unassigned_shard or get_cluster_health. Missing context about prerequisites or typical use cases, leaving agent to infer usage.

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

list_aws_profilesA

List allowlisted AWS profiles, whether they exist locally, and allowed regions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description must bear full behavioral disclosure. It mentions reading local existence and allowed regions, implying local file system access, but does not mention authentication requirements, network calls, or potential errors. For a straightforward list operation this is adequate, but more detail would improve 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 sentence that efficiently conveys the tool's purpose. It is front-loaded with the verb 'List' and immediately states what is listed. Every part of the sentence adds value.

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

Completeness5/5

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

Given the tool has no parameters and an output schema exists, the description sufficiently explains the return content: profiles, local existence, and allowed regions. No additional context seems necessary for this simple listing 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 coverage is trivially 100%. The description adds no parameter information because none are needed. With no parameters, the baseline is 4, and the description meets expectations.

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 lists 'allowlisted AWS profiles', checks 'whether they exist locally', and shows 'allowed regions'. It uses a specific verb and resource, and clearly distinguishes from sibling tools which all deal with Elasticsearch cluster/domain/index operations.

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 does not provide explicit guidance on when to use this tool versus alternatives. However, given the distinct domain (AWS profiles vs Elasticsearch), the context makes it obvious. Still, no direct when-not or alternative suggestions are given.

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

list_domainsB

List Amazon OpenSearch Service domains visible to an allowlisted AWS profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the basic function without mentioning error handling, authentication requirements, rate limits, or pagination, leaving 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.

Conciseness4/5

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

The description is a single sentence that is front-loaded and concise, but it could include more useful detail without becoming verbose.

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 existence of an output schema and many sibling tools, the description is minimally adequate for a simple listing tool, but lacks completeness regarding scope, errors, or usage context.

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 add meaning. It contextualizes 'profile' as an AWS profile but ignores 'region', and does not provide format or constraints for either parameter.

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 uses a specific verb 'List' and resource 'Amazon OpenSearch Service domains', clearly distinguishing it from sibling tools that target specific domain diagnostics or details.

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 by stating it lists domains visible to a profile and region, but provides no explicit guidance on when to use or avoid this tool versus alternatives like get_domain_config or get_cluster_health.

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

list_indicesB

List matching indices ordered by storage size with health, shards and document counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
regionYes
profileYes
index_patternNo*

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description partially discloses behavior by stating the ordering and output fields. However, it omits details on pagination, result limits, or potential side effects. This is adequate but not thorough.

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, front-loaded with the action and key details. Every word serves a purpose without repetition.

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

Completeness2/5

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

Given 4 parameters and no annotation support, the description lacks completeness. It does not explain the required parameters or how 'index_pattern' filters results. The output schema exists but the description only hints at output fields; still insufficient for confident use.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any parameters. It only implies index_pattern through 'matching' but does not clarify the meaning of 'profile', 'region', or 'domain'. The description adds no value beyond the schema's structure.

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 lists indices, specifies ordering by storage size, and mentions included fields (health, shards, document counts). It distinguishes from sibling tools like 'get_index_details' which focuses on a single index.

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_index_details' or 'search_index'. The description does not mention prerequisite steps or exclusions.

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

search_indexC

Run a bounded read-only Query DSL search. Scripts and runtime mappings are blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo
indexYes
queryYes
domainYes
regionYes
profileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

The description adds value beyond the schema by stating the search is read-only and bounded, and that scripts and runtime mappings are blocked. However, it lacks details on error handling, rate limits, pagination, or the meaning of 'bounded' in terms of result limits. With no annotations, the description carries the burden but only partially fulfills it.

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 a single sentence, which is concise, but it omits important information that would help the agent. Every sentence should earn its place; here the sentence is too brief to be fully informative.

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 (search with Query DSL, 6 parameters, output schema present), the description is insufficient. It does not explain how to formulate the query, the meaning of 'bounded', or the structure of the response. The output schema exists, but the description fails to provide the operational context needed for correct invocation.

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

Parameters1/5

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

The input schema has 0% description coverage, so the description must explain parameter meanings. It does not mention any parameter, including the critical 'query' parameter which is a complex JSON object. The description fails to clarify what Query DSL is or how to construct the query, leaving the agent with only parameter names.

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 runs a bounded read-only Query DSL search, specifying the action and resource. This distinguishes it from sibling tools like get_latest_documents or list_indices, which serve different purposes.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs. alternatives like get_latest_documents or get_field_count. The description only mentions that scripts and runtime mappings are blocked, but does not explain the appropriate context for using search_index.

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. 20 tool updatesv0.1.0
    • First observeddiagnose_cluster
    • First observeddiagnose_timestamp
    • First observedexplain_unassigned_shard
    • First observedget_cluster_health
    • First observedget_cluster_settings
    • First observedget_cluster_stats
    • First observedget_disk_allocation
    • First observedget_domain_config
    • First observedget_field_count
    • First observedget_field_mapping
    • First observedget_index_details
    • First observedget_indexing_stats
    • First observedget_ingest_pipelines
    • First observedget_latest_documents
    • First observedget_pending_tasks
    • First observedget_shard_allocation
    • First observedlist_aws_profiles
    • First observedlist_domains
    • First observedlist_indices
    • First observedsearch_index

TDQS

B3.4/5.0
Disambiguation5/5

Each tool targets a distinct aspect of OpenSearch cluster management and diagnosis, such as health, shards, fields, ingest pipelines, and domain configuration. Even tools with overlapping themes (e.g., diagnose_cluster and explain_unassigned_shard) have clearly different scopes, minimizing confusion.

Naming Consistency5/5

All tool names follow a consistent verb-noun pattern using snake_case (e.g., diagnose_cluster, get_cluster_health, list_indices). Verbs like 'get', 'list', 'diagnose', 'explain' are used predictably, making it easy for an agent to infer functionality.

Tool Count5/5

With 20 tools, the set is well-scoped for a dedicated OpenSearch diagnostic server. It covers a wide range of inspection and diagnosis tasks without being overwhelming, and each tool serves a clear purpose.

Completeness4/5

The tool set comprehensively covers read-only diagnostics: cluster health, stats, settings, shard allocation, field mappings, ingest pipelines, and more. Minor gaps exist, such as lack of node-specific details or thread pool stats, but these are acceptable given the read-only and diagnostic focus.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that enables interaction with Elasticsearch and OpenSearch clusters for searching documents and managing indices. It provides tools for cluster health monitoring, index configuration, and general API requests.
    16
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Read-only MCP server for Microsoft SQL Server that retrieves connection details from AWS Secrets Manager, enabling database exploration and querying via natural language.
    12
    11
    MIT
  • A
    license
    B
    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
    147
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server for safe, structured investigation of AWS serverless resources, providing curated tools for tracing dependencies, permissions, and failures without exposing raw SDK access.
    MIT

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/thiagorchaves/aws-opensearch-mcp-server'

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