Cline MCP Server: Codebase Graph Setup
Cline builds its context by reading files as it works. You point it at a file or let it search, it opens what it needs, and it plans the edit from what it just read. That keeps every step visible and keeps you in control of what the agent looks at. It also means that on a large repository Cline only knows the structure it has already opened. The function it is about to change might have callers in files it never read, and reading enough of the tree to be certain costs tokens and turns.
Symvanta gives Cline that structure over MCP: a live code graph where nodes are symbols and edges are calls, imports, and implementations. Cline queries it directly for the questions that file-reading answers slowly: who calls this function, what it depends on, what breaks if the signature changes, which consumer in another repo relies on it. Cline keeps reading and editing the way it already does. The graph is a second source it can call when the question is structural.
Setting up the Symvanta MCP server in Cline
- Create a free Symvanta account at symvanta.com and connect GitHub.
- Index the repos Cline works in. A webhook reindexes on every push, so the graph stays current without a manual trigger. Plans start at $19/month, and Pro (per-seat) ships with a 7-day trial.
- Add Symvanta as a remote MCP server. Click the MCP Servers icon (the stacked server icon in the Cline toolbar), open the Remote Servers tab, and fill in a Server Name (
symvanta) and a Server URL (https://mcp.symvanta.com/mcp). Set Transport Type to Streamable HTTP, then click Add Server. - Or edit the config directly. In the MCP Servers panel, open the Configure tab and click Configure MCP Servers to open
cline_mcp_settings.json. A remote entry needstypeset tostreamableHttpand aurl:
{
"mcpServers": {
"symvanta": {
"type": "streamableHttp",
"url": "https://mcp.symvanta.com/mcp"
}
}
}
The type value is streamableHttp in camelCase with no hyphen. Leaving it out or writing streamable-http makes Cline fall back to the legacy SSE transport and the connection fails.
- Call any Symvanta tool. The first call opens a browser window for OAuth 2.0 (PKCE) login and hands Cline a scoped token. There is no API key to generate and no static
headersblock to paste into the config.
Cline runs inside VS Code, so this sits next to whatever else you already use there. If you want the same graph available to the editor's own agent, the VS Code MCP integration uses the same endpoint.
What Cline gets
Once the server connects, Cline has 25 tools available over MCP. The ones it reaches for most during an edit are these:
| Tool | What it gives Cline |
|---|---|
find_node |
Exact symbol definition, file, and signature |
relate (callers / dependencies / blast_radius / implementers) |
Real callers, what a symbol depends on, what breaks if it changes, what implements an interface |
ask_codebase |
Behavior questions ("how does X work") answered with cited files |
locate |
Text, semantic, or config-key search across the repo |
find_http_route |
The handler behind a route path and method |
list_file_symbols |
Every symbol defined in a file, before Cline opens it |
The graph covers TypeScript, JavaScript, Python, Java, Kotlin, C#, Go, Rust, Swift, PHP, and Ruby, so a polyglot repo keeps its coverage at the language boundary.
Blast radius before a multi-file edit
Say Cline is asked to change the signature of a shared validation helper used by three services. Working from its own reading, it opens the files it can find, edits the call sites it sees, and moves on, unaware of a fourth caller behind an interface or a consumer repo it never opened. The diff looks complete right up until the build fails somewhere Cline never looked.
With Symvanta wired in, Cline calls relate with kind: blast_radius on the helper before touching anything. The result comes back as real edges: which functions call it directly, which route through an interface, and which repos outside the current workspace depend on it. That is the distinction we cover in blast radius analysis: a file read finds the call sites in one file, a blast radius returns the full graph of what depends on what. Cline plans the edit against that list, and the multi-file diff it proposes covers every real caller on the first pass.
Why a graph answers this and similarity search does not is the subject of code embeddings vs. code graph, and you can see the same graph applied to real open-source repos on the architecture pages.
Frequently asked questions
Cline says the server failed to connect. What is wrong?
Check the type field. It must be streamableHttp, camelCase with no hyphen. If it is missing or spelled streamable-http, Cline falls back to SSE and the connection to a Streamable HTTP endpoint fails. Set "type": "streamableHttp" and reconnect from the MCP Servers panel.
Does this replace the files Cline reads on its own?
No. Cline keeps reading files, running commands, and planning the way it does today. Symvanta adds a second source it can call over MCP for the structural questions file-reading answers slowly: exact callers, dependencies, blast radius, and cross-repo edges. The two compose.
Does it work in both Plan mode and Act mode?
Yes. Cline can call MCP tools in either mode. In Plan mode it queries the graph to shape a plan before any edit lands, so the plan already reflects real callers and dependencies. In Act mode it runs the same tools while making the change.
Is my code used to train anything?
No. Symvanta parses your repository into a graph of symbols and relationships. Source code is discarded by default once parsing completes and is never used to train models. An Enterprise source-storage add-on exists for teams that want raw source persisted and queryable.