Skip to main content
Glama

nexus-serena-mcp

⚡ Semantic Coding Agent IDE Toolkit & Live Documentation MCP Server — Symbol


⚡ Why We Built It

Modern AI coding agents often suffer from limited context windows, hallucinated function signatures, and fragile regex search-and-replace. nexus-serena-mcp was engineered by NexusVibe AI Tech to equip AI IDEs and autonomous coding agents (Claude Code, Cursor, VS Code, Codex, Antigravity) with AST-level semantic precision, zero-dependency symbol navigation, surgical refactoring, and live documentation resolution.


Related MCP server: codebase-rag

🏗️ Architecture & 3-Layer Workflow

graph TD
    subgraph Client Layer
        A[Claude Code / Cursor / VS Code / Codex / Antigravity]
    end

    subgraph MCP JSON-RPC 2.0 Layer
        B[nexus_serena_mcp Server Engine v1.2.0]
    end

    subgraph Core Execution Engine
        C1[find_symbol_definition & find_symbol_references]
        C2[surgical_replace_symbol AST Engine]
        C3[resolve_library_docs & project_onboarding_memory]
    end

    A <-->|JSON-RPC Stdio| B
    B --> C1
    B --> C2
    B --> C3

📊 Production Benchmarks Scorecard

Metric

nexus-serena-mcp

Standard Regex / Grep

Improvement

Symbol Resolution Speed

< 12ms

~ 180ms

15x Faster

Refactoring Accuracy

100% AST Match

74% (Collisions)

+26% Safety

Memory Footprint

< 14MB

> 120MB

88% Lower

External Dependencies

0 (Stdlib Only)

15+ Packages

Zero Bloat


🚀 Quick Start & Setup Guide

VS Code & Claude Code Setup

Add nexus-serena-mcp to your MCP configuration file (mcp.json or claude_desktop_config.json):

{
  "mcpServers": {
    "nexus-serena-mcp": {
      "command": "python3",
      "args": ["path/to/nexus_serena_mcp.py"]
    }
  }
}

Cursor & Windsurf Setup

Go to Settings -> MCP Servers -> Add New MCP Server:

  • Name: nexus-serena-mcp

  • Type: command

  • Command: python3 path/to/nexus_serena_mcp.py

Codex & Antigravity Setup

Run via CLI or embed into agent pipeline:

python3 nexus_serena_mcp.py --self-test

🏛️ NexusVibe AI Tech 4-Pillar Ecosystem

Repository

Focus Area

Key Capabilities

cloud-ops-mcp

Cloud Infrastructure & Operations

AWS/GCP provisioning, log analysis, deployment automation

code-context-mcp

Codebase Indexing & Context

AST parsing, dependency graph analysis, real-time code search

agent-memory-mcp

Persistent Agent Memory

Entity extraction, graph storage, vector search, multi-session state

nexus-serena-mcp

IDE Toolkit & Live Docs

Symbol AST lookup, surgical refactoring, docstrings, project onboarding


Available Tools

5 tools
find_symbol_definitionC

Locate symbol definitions in AST

NameRequiredDescriptionDefault
pathNo
symbolYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full disclosure burden. "Locate" weakly implies a read-only lookup, but it does not say what gets scanned (whole project vs. the path argument), whether results are truncated or paginated, or what the returned structure looks like — critical for a tool with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single phrase is front-loaded and contains no wasted words, but it is terse to the point of under-specification rather than being efficiently concise. It reads like a title restated rather than a complete description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and 0% parameter documentation, this description is the only source of behavioral information and it delivers almost none. An agent would have to guess at symbol syntax, path semantics, and result shape before calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for both parameters, so the description must compensate and it does not. It never explains what "symbol" should be (fully qualified name, bare identifier, method signature) or whether "path" scopes the search to a file or directory, leaving the optional parameter's effect entirely opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Locate symbol definitions in AST" names a specific verb (locate) and resource (symbol definitions) plus an operating domain (AST), so the core action is understandable. However, it does nothing to distinguish itself from sibling find_symbol_references or surgical_replace_symbol, so an agent cannot infer why to choose this one over those.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus find_symbol_references or surgical_replace_symbol, and no mention of prerequisites. The only implicit cue is "in AST," which hints at a static-analysis scope but provides no selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_symbol_referencesC

Find symbol usage references

NameRequiredDescriptionDefault
pathNo
symbolYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden and delivers almost nothing: it doesn't say whether the search is workspace-wide or path-scoped, whether it is read-only (safe to assume but unstated), how results are ordered or paginated, or whether the symbol must be fully qualified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single short fragment with no padding, which is efficient, but the brevity comes at the cost of specification rather than being earned concision. There is no front-loaded detail beyond the bare purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and undocumented parameters, the description should explain scope, result shape, and symbol format. It supplies none of these, leaving an agent to guess about the most consequential details of the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two parameters, and the description does not compensate: the meaning of 'path' (a search scope? a file to start from?) and the accepted form of 'symbol' (bare name, qualified name, regex?) are both unexplained. This is a clear gap that the description should have filled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The fragment 'Find symbol usage references' names a recognizable verb and resource (references to a symbol), so the intent is inferable. But it never distinguishes this from find_symbol_definition or clarifies whether 'references' means call sites, imports, or textual occurrences — sibling differentiation is left entirely to the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus find_symbol_definition (which presumably locates the declaration) or when a path scope matters. The only guidance is the implicit contrast in the verb 'references', which is not enough for reliable routing between siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_onboarding_memoryD

Analyze repository structural memory

NameRequiredDescriptionDefault
root_pathNo

TDQS

D1.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden, yet it discloses nothing about whether the analysis is read-only, whether it writes cache/state, what the output looks like, cost, or permissions. 'Analyze' alone is not a behavior disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single short, front-loaded phrase with no filler, so it is concise. The brevity is not the problem — the problem is that the content is underspecified, which is penalized in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A single optional parameter, no output schema, and no annotations means the description is the only source of truth, and it provides nothing about the analysis produced, its scope, or its return shape. An agent cannot call this correctly or interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description never mentions root_path — not its meaning, whether it defaults to the current working directory (the parameter is optional), or what path form is expected. The param name is somewhat self-descriptive but the description adds nothing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase 'Analyze repository structural memory' pairs a verb with an abstract object, but 'structural memory' is not a concrete resource and nothing distinguishes this tool from the siblings, which are all symbol/code lookup tools. An agent cannot predict what this returns or how it differs from find_symbol_definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, when not to, or how it relates to the listed siblings (find_symbol_definition, find_symbol_references, resolve_library_docs). Nothing guides selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_library_docsD

Resolve docstrings for modules

NameRequiredDescriptionDefault
symbol_nameNo
library_nameYes

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, yet it discloses nothing: not whether it needs the library installed or network access, not whether symbol_name being optional means whole-module resolution, not what is returned. Five words cannot cover a mutation-free but opaque lookup operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short with no filler, but that brevity reflects under-specification rather than disciplined editing; there is nothing to front-load because nothing substantive is said.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A two-parameter tool with no annotations, no output schema, and 0% schema coverage needs the description to explain inputs and expected returns; the description supplies none of that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so both parameters are undocumented. The word "modules" loosely hints that library_name identifies the module, but symbol_name — optional, and decisive for what gets resolved — is never mentioned in either place.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Resolve docstrings for modules" only rephrases the tool name with a synonym swap; "resolve" is ambiguous (fetch? render? look up?). It gives no basis for distinguishing this from siblings like find_symbol_definition or find_symbol_references.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, what prerequisites exist, or how it relates to the sibling symbol-lookup tools. An agent must guess from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

surgical_replace_symbolC

Surgically refactor symbol

NameRequiredDescriptionDefault
file_pathYes
new_symbolYes
old_symbolYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. "Refactor" implies code mutation, but the description never states that the file is overwritten, whether all matches or one match is replaced, what happens on ambiguous or zero matches, or whether edits are reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A three-word phrase is not wasteful but is under-specified rather than concise; "surgically" consumes space without conveying behavior. There is no front-loaded statement of what the tool does to the file.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with zero annotations, no output schema, and 0% parameter documentation needs substantially more description than this. An agent has to guess at matching scope, side effects, and return information before it can safely invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and all three parameters (old_symbol, new_symbol, file_path) are undocumented. The parameter names hint at an old-to-new replacement in a single file, but the description adds no matching rules, format expectations (fully qualified vs bare names), or scope semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Refactor" + "symbol" gives a rough verb+resource, but "surgically" is decorative and the phrase never says what actually happens (replacing occurrences of old_symbol with new_symbol in a file). Nothing distinguishes it from sibling find_symbol_references or find_symbol_definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative routing at all; an agent cannot tell whether to call find_symbol_references first or whether this tool handles all occurrences. The only hint is the word "surgically," which implies precision but not a decision rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.2.0
    • First observedfind_symbol_definition
    • First observedfind_symbol_references
    • First observedproject_onboarding_memory
    • First observedresolve_library_docs
    • First observedsurgical_replace_symbol

TDQS

C2.5/5.0

Scored across 5 tools

Disambiguation4/5

The first three tools are clearly distinct (definition, references, refactor), and resolve_library_docs is separate. project_onboarding_memory is the only vague one, as it is unclear how it differs from broader repository analysis or symbol lookup.

Naming Consistency3/5

Most names use snake_case, but the verb patterns are mixed: find_* and resolve_* are clear verb_noun forms, while surgical_replace_symbol uses an adjective and project_onboarding_memory is a noun phrase. This makes the convention inconsistent, though still readable.

Tool Count5/5

Five tools is a well-scoped set for a focused code-intelligence/refactoring server. Each tool appears to target a distinct operation, so the count is appropriate.

Completeness3/5

The surface covers definition lookup, reference search, symbol replacement, docs resolution, and repo memory. However, common code-intelligence operations like listing symbols, getting file contents, diagnostics, or rename previews are missing, leaving notable gaps for agents.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides a semantic understanding of your codebase by parsing with tree-sitter and building a graph of symbols and dependencies. Enables AI assistants to navigate code, analyze changes, and discover architecture using 18 tools with minimal context overhead.
    3 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLM agents to efficiently understand and navigate a codebase by providing semantic search over symbols and a reference graph, replacing expensive grep/glob calls with structured tools like definition lookup, caller/callee queries, and change-impact analysis.
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Indexes a codebase into a symbol-level graph and exposes tools for finding symbols, querying relationships, and assessing impact, letting AI coding agents answer structural questions in a single call within a token budget.
    44 npm
    4
    Apache 2.0