Skip to main content
Vaelor

Connect a client

Connect Vaelor to Claude Code as an MCP server

Updated 2026-10-06 · Engine v1.72.0

Vaelor speaks MCP over streamable HTTP. Claude Code registers one URL and the tools appear in the session.

1. Run the server

Docker is the recommended path. Clone the repository first:

git clone https://github.com/anatolykoptev/vaelor && cd vaelor
docker build -t vaelor .
docker run -p 8897:8897 \
  -e LLM_API_BASE=http://host.docker.internal:8317/v1 \
  -e LLM_API_KEY=your-key \
  vaelor

From source you need Go 1.26+ and a C compiler (the tree-sitter grammars are C):

make build
./bin/vaelor

The server listens on port 8897 (MCP_PORT changes it). LLM_API_KEY is optional: most tools run without it and only skip the narrative and ranking layer.

2. Register it

claude mcp add -s user -t http vaelor http://127.0.0.1:8897/mcp

-s user makes it available in every project. Inside Claude Code, /mcp lists the connected servers and their tools.

3. Make a first call

You do not need a local clone. understand and call_trace take a GitHub repository directly and fetch it on the first call. That first call indexes the repository, so give it a few seconds; later calls reuse the index.

{
  "tool": "call_trace",
  "arguments": {
    "repo": "gorilla/mux",
    "symbol": "ServeHTTP",
    "direction": "callees",
    "depth": 2
  }
}

In a session you can simply ask Claude Code to trace the callees of ServeHTTP in gorilla/mux; it will choose the tool.

What unlocks what

You add You get
Nothing but the binary repo analysis, call tracing, impact analysis, structural rewrite, PR review
PostgreSQL with Apache AGE (DATABASE_URL) the persistent PageRank, community and surprise signals, and code_graph (which also needs LLM_API_KEY)
An embedder (EMBED_URL) and pgvector in the same database (DATABASE_URL) semantic_search and code_research reranking
GITHUB_TOKEN higher GitHub rate limits and private repositories

Other clients

The same URL should work in any MCP client that supports streamable HTTP. This page covers Claude Code, which is what I have tested over HTTP.

For clients that start a server as a subprocess, the binary also speaks MCP over stdio: vaelor stdio, or the older vaelor --stdio from the README. I checked both on a binary built from v1.72.0: a client started it, listed the tools and ran symbol_search. I have not registered it in Claude Code itself, so the claude mcp add form for stdio is untested. read_output is listed only when the server runs with OUTPUT_DIR set, on either transport. It lets a client page through a large result the server spilled to a file; a client on the same host can read that file directly. Without OUTPUT_DIR large results are condensed and nothing is saved.

Next: the impact_analysis reference, or a measured example.