Skip to main content
Glama
ed-smartass

esmole-mcp

by ed-smartass

add_connection

Create a named Elasticsearch connection saved globally or in the project's .esmole.json, using user/password or API key auth and optional SSH tunnel, read-only mode, scheme, and TLS verification.

Instructions

Add a named Elasticsearch connection. scope "global" (default) saves it to the user store; "project" saves it to .esmole.json in the project root. Auth via user/password or apiKey; optional ssh tunnel, readonly flag, scheme and verifyTls.

Input Schema

NameRequiredDescriptionDefault
sshNo
hostYes
nameYes
portNo
typeNoelasticsearch
userNo
scopeNoglobal
apiKeyNo
schemeNohttps
passwordNo
readonlyNo
verifyTlsNo
queryTimeoutMsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden and does add valuable behavior: it reveals where the connection is persisted for each scope and that credentials are stored acceptably via two auth schemes, plus optional ssh tunneling and TLS verification. It omits important traits: whether an existing name is overwritten or rejected, whether credentials are written in plaintext to .esmole.json, and whether the connection is validated on add.

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?

Three dense sentences, no filler, and the most decision-relevant fact (scope semantics) is front-loaded immediately after the purpose statement. Every clause carries distinct information.

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

Completeness3/5

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

For a 13-parameter mutation tool with a nested object, no annotations and no output schema, the description covers the top-level shape but not overwrite/idempotency behavior or the nested ssh credential options. An agent could call it, but might pick the wrong auth fields or silently clobber an existing connection.

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% across 13 parameters (including a nested ssh object), so the description must compensate. It covers scope, user/password, apiKey, readonly, scheme, verifyTls and the existence of ssh, but leaves name, host, port, type, queryTimeoutMs, and all nested ssh fields (agent, hostKey, privateKeyPath, passphrase) 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?

States a specific verb and resource — "Add a named Elasticsearch connection" — which clearly separates it from update_connection, remove_connection, list_connections and test_connection. It does not name those siblings explicitly, but the create semantics are unambiguous.

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?

Gives real guidance on the scope choice (default 'global' writes to the user store, 'project' writes to .esmole.json in the project root) and lists auth alternatives (user/password vs apiKey). However, it never says when to use this versus update_connection (e.g. what happens if the name already exists) or test_connection (validate before saving).

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