The Problem Developers using Claude Code need a lightweight way to issue Elasticsearch REST calls without adding a client library, server process, or OpenAPI tool definition. Existing “MCP” approaches inject large JSON schemas into the LLM context, consuming valuable token budget and requiring extra infrastructure.
What This Does The repository supplies a skill – a collection of markdown files that describe authentication, curl syntax, and reference material for the Elasticsearch Query DSL, aggregations, cluster APIs, ILM, ES|QL, and related topics.
SKILL.md– the entry‑point instruction set that Claude Code reads when the skill is invoked.references/*.md– 10 focused reference documents (e.g.,query-dsl.md,aggregations.md,cluster-api.md) that Claude loads on demand.
No compiled code, binaries, or runtime dependencies are included; the skill is consumed directly by Claude Code.
How It Is Wired There is no executable code in this repo; wiring is defined by Claude Code’s skill loader:
- Entry point –
SKILL.mdis the first file Claude reads when the skill nameelasticsearchis resolved. - Dynamic lookup – When Claude needs deeper details (e.g., a specific aggregation type), it reads the corresponding file under
references/. - External effect – The only side‑effects are the
curlcommands that Claude generates at runtime, which contact the Elasticsearch cluster identified by the environment variablesES_URLandES_API_KEY. - No internal call graph – Because the repo contains only static markdown, there are no functions, imports, or inter‑file calls to map. The “wiring” is entirely declarative and external to the repository.
How To Use It
# Clone the exact repo referenced in the brief
git clone https://github.com/moses-y/elasticsearch-skill.git
# Personal‑skill installation (available to all Claude projects)
mkdir -p ~/.claude/skills/elasticsearch
cp elasticsearch-skill/SKILL.md ~/.claude/skills/elasticsearch/
cp -r elasticsearch-skill/references ~/.claude/skills/elasticsearch/
Configure the cluster credentials before starting Claude Code:
export ES_URL="https://my-cluster.es.cloud.elastic.co:443"
export ES_API_KEY="base64‑encoded‑key"
# optional Kibana access
export KIBANA_URL="https://my-cluster.kb.cloud.elastic.co:443"
Restart Claude Code and verify with the built‑in command:
/skills
You should see elasticsearch listed.
Real‑World Use A DevOps engineer adds the skill to a CI pipeline that runs automated performance checks. The pipeline script sets ES_URL/ES_API_KEY, invokes Claude Code with a prompt that requests “the average request latency for the last 5 minutes”, and Claude reads references/query-dsl.md and references/aggregations.md to construct a curl‑based aggregation request. The result is returned to the pipeline for alerting.
Code Health & Issues
- Med – No test suite – repository contains only markdown; no unit or integration tests exist.
- Med – No CI/CD pipeline – no
.github/,Makefile, or other automation files detected. - Med – No LICENSE – the repo lacks an explicit license, leaving usage and redistribution rights unclear.
- Low – No lockfile or Dockerfile – absence of a lockfile (
package-lock.json,poetry.lock, etc.) and Dockerfile means no reproducible build environment is defined. - Low – No committed secrets – static analysis found no embedded credentials.
The Bottom Line elasticsearch-skill provides a concise, markdown‑only skill that lets Claude Code issue Elasticsearch REST calls without extra runtime components. It is immediately usable for teams comfortable managing environment variables and willing to accept the lack of tests, CI, and an explicit license. Ideal for proof‑of‑concepts or internal tooling where the simplicity of a pure‑markdown skill outweighs formal software‑process guarantees.