Skip to main content
CLI Reference

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

FlagDefaultMeaning
--stdiooffUse the stdio transport
--globaloffServe every repo registered in ~/.travsr/registry.json instead of just the current one
--db <path>discovered from the working directoryPath 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.

ModeToolsNotes
Default (single repo)26No tool takes a repo argument; the server is bound to one graph
--global17Graph 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.