Amp MCP Server: Codebase Context and Setup
Amp runs a coding agent in threads and gives it real execution: code_exec runs code, tool_search finds the tools the agent can call, and the agent reads and edits files in the working copy. What those tools do not hand the agent is the structure of the codebase it is editing. On a small repository it can reconstruct that structure by reading enough files. On a large one it greps, reads, and infers, and inference is where a signature change breaks a caller the agent never opened.
Symvanta parses your GitHub repositories into a code graph, nodes for symbols and edges for calls, imports, and implementations, and serves that graph over a hosted MCP endpoint. Amp connects to it as a remote MCP server, so the agent can resolve a symbol by identity, list its callers, and measure blast radius before it writes an edit.
This page covers the setup, what the graph adds to an Amp thread, and how to check the connection when a tool does not appear.
Add Symvanta to Amp
-
Create a Symvanta account at symvanta.com, connect GitHub, and pick the repositories to index. Indexing starts from there: a GitHub webhook reindexes the graph on every push, so you do not trigger it by hand. Plans start at $19 per month.
-
Add the remote MCP definition. Amp stores remote MCP definitions on ampcode.com, so one definition is available across Amp clients without a local settings file. Run:
amp mcp remote add symvanta https://mcp.symvanta.com/mcp --auth oauthEvery
amp mcp remotecommand needs one scope option. Add--personal,--workspace <workspace>,--project <project>, or--current-projectto place the definition. For a single developer,--personalis the usual choice:amp mcp remote add symvanta https://mcp.symvanta.com/mcp --auth oauth --personal--auth oauthselects OAuth as the authentication type. Amp can also detect the authentication type when you omit the flag, but naming it here keeps the definition explicit. -
Sign in. The first connection opens a browser for an OAuth 2.0 (PKCE) login against your Symvanta account. Approve it once. If the browser does not open on its own,
amp mcp remote --personal login symvantaprints the ampcode.com OAuth URL. There is no API key to generate or paste. -
Verify the definition. Check that Amp can reach the server and refresh the tool list:
amp mcp remote --personal check symvanta amp mcp remote --personal tools symvanta --refreshamp mcp remote --personal listprints every definition in the scope, and adding--jsonreturns the same data in a structured form. -
Confirm inside a thread. In an Amp thread, ask the agent to run
tool_searchfor the Symvanta tools and then call one, for example resolving a symbol withfind_node. Amp discovers saved remote tools withtool_searchand calls them throughcode_exec, so a successful call is the end-to-end check: the definition is reachable, the OAuth session is live, and the graph is answering.
OAuth and remote MCP definitions
Symvanta uses OAuth 2.0 with PKCE for interactive clients and publishes its authorization server metadata so clients can register themselves. Amp handles this for remote definitions: with --auth oauth and no client options, Amp uses the credentials it has configured for the provider or the provider's automatic client setup, then stores the resulting session in Amp's secret storage. Amp refreshes the token when it expires, so a long-lived thread does not need a new sign-in.
Remote definitions are stored by ampcode.com rather than in a local file. That changes two things worth knowing:
- They follow you across clients. The same definition is available in the Amp CLI, the editor extension, the web app, and the Mac and iOS apps without copying a settings file to each one.
- They work in orbs. Browser-based OAuth flows are not available inside an orb, but remote definitions handle OAuth through ampcode.com, so an orb thread can reach the graph without repository changes. A local
amp.mcpServersentry, by contrast, is configured on your own machine and is not available in an orb.
Sign-ins stay personal. When you share a remote definition with a workspace or project, Amp copies the server URL, name, authentication type, and stored credentials on the server side; an existing OAuth sign-in is not copied, and each member completes their own login. To clear a stored session and force a fresh login, run amp mcp remote --personal logout symvanta.
What Amp's agent gets
Symvanta exposes 25 tools over MCP. The ones that change how an agent navigates a large codebase:
| Tool | What it does |
|---|---|
find_node |
Resolves a symbol to its exact file, line range, and signature |
relate |
Callers, dependencies, blast radius, implementers, and call chains, all as graph traversals |
ask_codebase |
Answers behavior questions ("how does X work") with cited file references |
locate |
Text, semantic, or config-key search across the repo |
map |
A repo or module's architecture skeleton |
find_http_route |
Jumps from a path and HTTP method straight to its handler |
diff_impact |
What a branch or diff breaks, before you merge it |
list_tests_for |
The tests that already cover a given symbol |
estimate_scope |
Sizes a change across files and layers before you start it |
ref |
Pins a feature branch, or overlays uncommitted edits on the graph |
Coverage runs across TypeScript, JavaScript, Python, Java, Kotlin, C#, Go, Rust, Swift, PHP, and Ruby. The MCP page describes the endpoint itself, and the architecture pages show the same output on public repositories.
Find callers and blast radius from a thread
Amp's own file tools answer where a piece of text appears. The graph answers which symbol a name refers to, and what depends on it. Two workflows carry most of that value.
Find callers. relate with kind: callers on a symbol returns the resolved call sites, not a list of lines that contain the name. Comments, documentation, and unrelated methods that share the name drop out, and a call routed through an interface resolves to the implementation. That is the difference between a search result and a call graph, and it is the first query to run when the agent needs to know who depends on a function before it changes it. The find callers use case walks through the query.
Blast radius. relate with kind: blast_radius walks outward from a symbol through calls, imports, and implementations, across every repository linked in the project. It returns the impact surface as a list of symbols and files, so a rename that reaches three services shows up at planning time instead of in a failed build. The blast radius use case covers the walk, and blast radius analysis covers why a text search cannot reproduce it.
Around those two, the rest of the graph answers the adjacent questions. find_node resolves a symbol to its file, line range, and signature. find_http_route maps a method and path to its handler. estimate_scope sizes a change across files and layers. list_tests_for returns the tests that already cover a symbol. diff_impact reports what a branch or pending diff breaks before it merges.
Branch-aware context
A thread working on a feature branch needs a graph that matches that branch. Symvanta reindexes tracked branches and lets a session pin one, and the ref tool does that pinning: point it at a branch and the graph answers from that revision instead of the default branch. ref also overlays uncommitted working-tree edits on a synthetic revision, so a query can reflect a change that has not been committed yet. That keeps context close to the code in front of the agent, and it is the tradeoff between a hosted and a local index covered in where your code index should live.
How Symvanta complements Amp's own tools
Symvanta does not replace anything Amp already does. Amp still reads files, runs commands through code_exec, searches for tools, and writes edits. Symvanta adds a second option for one class of question: where a symbol lives, what calls it, and what a change reaches. The agent can use the graph to decide which files matter, then read those files with its own tools.
Two Amp behaviors are worth pairing with the connection. First, Amp can bundle MCP servers in skills through mcp.json, which loads their tools only when the skill runs and keeps the always-on tool list short; a remote definition is the right choice when the server should be available in every thread instead. Second, tool count affects model performance, so keeping the definition enabled only where it is useful is the same advice Amp gives for any MCP server.
Troubleshooting
- The definition is not listed. Every
amp mcp remotecommand needs a scope option. Re-run the command with--personal,--workspace <workspace>,--project <project>, or--current-project, then check the same scope withamp mcp remote <scope> list. - The server is listed but its tools do not appear. Refresh the cached tools with
amp mcp remote --personal tools symvanta --refresh. Tool discovery needs cached tools, and a running thread refreshes its remote catalog in the background, so start a new thread after a change instead of expecting every open thread to update at once. - Authentication fails or a call returns unauthorized. Re-run the login with
amp mcp remote --personal login symvanta. If a provider-side token was revoked,amp mcp remote --personal logout symvantaclears the stored session so the next login starts clean. - The command refuses to add the definition. If Amp has marked the provider as unsupported, the command prints the provider's notice and does not add the definition. Update Amp, then retry.
- Orb threads cannot reach the graph. Use a remote MCP definition rather than a local
amp.mcpServersentry. Browser OAuth is unavailable in an orb, and remote definitions handle authentication through ampcode.com. - A query returns nothing for a repository you expect. Confirm the repository is indexed and belongs to the project the session is scoped to, and that the graph has finished its first index. Webhooks keep it current after that.
Pricing and the trial
Every Symvanta plan starts with a 7-day trial and takes no card. Starter is $19 per month, Pro is $29 per seat per month, and Enterprise is $99 per seat per month with a 15-seat minimum. Enterprise adds on-prem deployment, SCIM directory sync, and audit logs. The MCP connection itself is included in the plan: you pay for indexed repositories and seats, not per tool call. See pricing for the full comparison, or start the trial and index a repository.
Frequently asked questions
Does this replace Amp's own tools?
No. Amp still reads files, runs commands through code_exec, discovers tools with tool_search, and writes edits. Symvanta adds graph queries beside those tools: exact symbol resolution, callers, dependencies, and blast radius. The agent uses the graph to decide which files matter and reads them with its own tools.
Do I need an API key?
No. Interactive clients sign in with OAuth 2.0 (PKCE), and Amp stores the session for a remote definition in its secret storage. A scoped API credential exists for CI runners and cloud agents that cannot complete an interactive login, but the Amp setup on this page does not need one.
Is my code used to train anything?
No. Symvanta parses your repository into a graph of nodes and edges, symbols and the relationships between them, and that structure is what the MCP tools query. Source code itself is discarded by default after parsing and is never used for training. An Enterprise source-storage add-on exists for teams that specifically want raw source retained.
How fresh is the index?
GitHub webhooks reindex a repository on every push to a tracked branch, so the graph stays current without a manual trigger. For a feature branch or uncommitted local edits, the ref tool pins the session to that branch or overlays the edits on a synthetic revision, so the agent can query work that has not landed on the default branch yet.
Does the Symvanta MCP server work in Amp orbs?
Yes, through a remote MCP definition. Browser-based OAuth is unavailable inside an orb, but remote definitions handle authentication through ampcode.com, so an orb thread reaches the graph without repository changes. A local amp.mcpServers entry configured on your machine is not available in an orb.
Can I use the same Symvanta server in another client?
Yes. The endpoint and the underlying index are shared across clients: one repository, indexed once, queried by Amp, Claude Code, Codex CLI, Cursor, or any other MCP-compatible agent. See the integration guides for client-specific setup.
What does it cost?
Every plan starts with a 7-day trial and takes no card. Starter is $19 per month, Pro is $29 per seat per month, and Enterprise is $99 per seat per month with a 15-seat minimum. The MCP connection is not a separate charge.