# How to choose a code-intelligence MCP server

Canonical source: https://maguyva.ai/guides/choosing-a-code-intelligence-mcp-server

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Choose the server that answers your agent's real questions about your own code: where a symbol is defined, who calls it, what breaks if it changes, and where a concept lives when nobody remembers its name.

That takes several kinds of retrieval, real parsing for the languages you ship, an index that keeps up with your commits, and setup your client can finish in minutes. Run the 15-minute test below on a repository you know: it beats any feature list, this one included.

## What to compare

Ask every candidate the same questions, then check the answers on your own code. A feature list is a claim; a correct answer on your repository is evidence.

| Criterion | What to ask | How to check it |
|---|---|---|
| **Retrieval modes** | Does it combine semantic, structural (AST), graph and exact-text search, and route each question to the right one? A single mode leaves whole classes of questions unanswered. | Ask one question of each kind: a concept, a code shape, a list of callers and an exact error string. |
| **Language depth** | For each language you ship, is the code parsed into an AST with symbols and relationships, or only indexed as text? A long language list can hide shallow support. | Find the published capability flags for your languages, then look up a symbol in each one. |
| **Repository scale** | Does it hold up on your largest repository and across several repositories at once? Do results stay ranked and bounded, or does one big file flood the answer? | Index your biggest real repository, not a demo project, and time the first useful answer. |
| **Freshness and sync** | How does the index learn about new commits, and how long until a change is searchable? A stale index answers confidently about code that no longer exists. | Commit a rename, then search for the new name and the old one. |
| **Security and data handling** | Where is your source code stored, what is sent to third parties, is it used for training, and what is deleted when you disconnect? | Read the data-handling page. Look for named providers and concrete deletion rules, not badges. |
| **Setup per client** | Is there a documented configuration for every client your team uses, and does one endpoint serve them all? | Connect two clients your team already uses and time both. |
| **Pricing model** | Is the price public? Do you pay per seat, per agent or per workspace, and is the free tier large enough for a real trial? | Price your real setup: the agents, repositories and indexed lines you would actually run. |
| **Proof on your code** | Can you test it on your own repository today, without a sales call? | If a trial needs a meeting first, that is also an answer. |

### Where the index lives

Where the index lives matters less than what it can answer. Your agent needs the right file, symbol and caller list at the moment it plans an edit, so judge every candidate by the questions above, asked on your own code.

## Test it on your repo in 15 minutes

Use a repository you know well, so you can grade every answer on sight. Keep a tally of the answers you had to correct.

1. Connect the repository and note how long it takes before the first search returns results.
2. Ask a concept question that shares no keywords with the code, such as "where do we handle expired sessions?" Open every cited file and line.
3. Look up one symbol by name, then ask for its callers. Compare the list with what you know.
4. Pick a function you plan to change and ask what depends on it. That list is its blast radius: check it against the tests that would catch a break.
5. Ask for a code shape instead of a name, such as every route handler or every class that implements a given interface.
6. Search for an exact string, such as an error message, and confirm that every hit is real.
7. Commit a small rename, wait for the index to catch up, and search for both names.
8. Count the corrections. The server that needed the fewest wins, whatever its feature list says.

## Terms, defined

- **Code-intelligence MCP server**: An MCP server that indexes source code and exposes it to AI agents as tools. Instead of pasting whole files into the prompt, the agent asks a question and gets ranked results with file paths and line numbers.
- **Code graph**: A map of how symbols, files and modules connect: definitions, references, calls, imports and inheritance. It answers "who uses this?" without reading every file.
- **Blast radius**: The code that may be affected when a symbol changes: its callers, its dependents and the tests that cover them. Knowing it before an edit is what graph search is for.
- **AST search**: Search over the abstract syntax tree, the parsed structure of the code. It finds code by shape, such as every function with a given decorator, which plain text search cannot do reliably.
- **Semantic search**: Search by meaning, using embeddings. It finds code that matches a description even when the code and the question share no words.
- **Exact-text search**: Literal or regular-expression matching. It is the right tool for error messages, configuration keys and identifiers you already know.

## Where Maguyva fits

Maguyva is a hosted code-intelligence MCP server. It indexes the GitHub repositories you connect and gives your agent 11 MCP tools, with every result cited by file path.

- **Retrieval**: Semantic, structural, graph and exact-text search, plus symbol lookup and a router tool that picks the right mode for each question. (`intelligent_search`, `semantic_search`, `structural_search`, `text_pattern_search`, `find_symbol`, `dependency_search`, `analyze_dependencies`)
- **Languages**: 285 languages and text formats indexed: 247 with AST structural search, 282 with symbol extraction and 151 with graph relationships. Depth varies by language, so check yours.
- **Freshness**: Indexes refresh through GitHub sync jobs as code changes.
- **Setup**: One remote MCP endpoint, with step-by-step configurations for 23 documented clients.
- **Pricing**: Public, and per workspace rather than per seat. The Free plan covers 3 repositories and 50,000 indexed lines, enough for the 15-minute test.
- **Data handling**: The security page names what is stored where, what is sent for embedding and what is deleted when you disconnect.

Repositories connect from GitHub today. If your code lives somewhere else, check the compatibility page before you start.

- [Start the quickstart](https://maguyva.ai/docs/quickstart)
- [See pricing](https://maguyva.ai/pricing)
- [Check language capabilities](https://maguyva.ai/docs/compatibility)
- [Read the data-handling details](https://maguyva.ai/security)
