Skip to main content

Quickstart

Go from zero to your first MCP query in Claude Desktop in under 5 minutes.

Prerequisites


Step 1: Install Travsr

npm install -g @travsr.com/travsr

Verify the install:

travsr --version
# travsr 0.9.0

Step 2: Initialize your repository

Navigate to any Git repository and run:

cd /path/to/your-repo
travsr init

travsr init installs a post-commit hook and runs the first full index. On a medium-sized TypeScript codebase (~50 000 lines) this takes 5–20 seconds.

✓ Git hook installed (.git/hooks/post-commit)
✓ Indexing 1 247 files...
✓ Built graph: 18 432 nodes, 94 751 edges (11.2 s)
✓ Saved to .travsr/graph.db

From now on, every git commit triggers an incremental reindex of the changed files.


Step 3: Start the daemon

travsr daemon start

The daemon watches for reindex events from the git hook and keeps the graph up to date in the background.

✓ Daemon started (PID 38142)
✓ Listening on /tmp/travsr.sock
Auto-start

Add travsr daemon start to your shell profile (~/.zshrc / ~/.bashrc) to start it automatically on login.


Step 4: Connect Claude Desktop

Open your Claude Desktop config file:

PlatformPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

Add the Travsr MCP server entry:

{
"mcpServers": {
"travsr": {
"command": "travsr",
"args": ["mcp", "--stdio"]
}
}
}

Step 5: Make your first query

Restart Claude Desktop to load the new MCP server.

Now open a conversation and try:

"Using the travsr graph, what are all the callers of PaymentService.charge?"

Claude will call get_callers via MCP and return the call sites recorded in your repository's graph.

More example queries:

"What does PaymentController depend on, transitively?"
→ travsr: get_dependencies("src/controllers/PaymentController.ts", transitive: true)

"What breaks if I change UserRepository?"
→ travsr: get_blast_radius("src/repos/UserRepository.ts")

"Show me the execution path from the login endpoint to the JWT signer."
→ travsr: get_execution_path("src/routes/auth.ts#login", "src/auth/jwt.ts#sign")

What's next?