travsr mcp
Start the MCP server in the foreground over stdio. This is the transport local
editors and agents use: the client spawns travsr as a subprocess and talks
JSON-RPC 2.0 over its stdin and stdout.
For remote clients that are not on the same machine as the index, use
travsr serve, which speaks SSE over HTTP. travsr mcp has no
network transport of its own.
Synopsis
travsr mcp --stdio [--global] [--db <path>]
Options
| Flag | Default | Meaning |
|---|---|---|
--stdio | off | Use the stdio transport |
--global | off | Serve every repo registered in ~/.travsr/registry.json instead of just the current one |
--db <path> | discovered from the working directory | Path to a specific graph.db, bypassing discovery |
Single repo or global
The flag you pick changes the tool surface, because some tools only make sense when the server is bound to one repository.
| Mode | Tools | Notes |
|---|---|---|
| Default (single repo) | 26 | No tool takes a repo argument; the server is bound to one graph |
--global | 17 | Graph query and observability tools, each taking an optional repo; the synonym and repo-management tools are not exposed |
In single-repo mode the schemas are closed and repo is not accepted anywhere.
In global mode, supply repo when more than one repository is registered, or
calls that cannot be disambiguated return an ambiguity error rather than
guessing.
Wiring it up
You normally do not run this by hand. travsr connect writes the right config
for every AI tool it finds installed. See travsr connect.
If you are configuring a client manually, the shape is:
{
"mcpServers": {
"travsr": {
"command": "travsr",
"args": ["mcp", "--stdio"]
}
}
}
Run it from the repository root, or pass --db so the server does not depend on
the working directory the client happens to launch it in.
Checking it works
The server is silent until a client speaks to it, so an empty terminal is the
expected result. To confirm it responds, send an initialize request:
$ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | travsr mcp --stdio
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"...","serverInfo":{"name":"travsr","version":"..."},"capabilities":{"tools":{}}}}
To see whether the graph behind it is fresh, use the get_index_status tool or
run travsr status.