Skip to main content
Glama

NervusDB MCP Server

Official
by nervusdb
README.md6.46 kB
# @nervusdb/mcp > Official MCP server for NervusDB - Code knowledge graph with repomix integration [![npm version](https://badge.fury.io/js/%40nervusdb%2Fmcp.svg)](https://www.npmjs.com/package/@nervusdb/mcp) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ## Features - **Code Knowledge Graph**: Build cross-language code knowledge graphs using `@nervusdb/core` and `repomix` - **Project Insights**: Analyze code impact, find related files, and explore project structure - **Workflow Automation**: Task management with branch creation and PR submission - **Code Operations**: Read, write files, and run tests with safety checks - **Database Tools**: Query and maintain the knowledge graph index - **Shadow Index Strategy**: Ensures reliable indexing with fingerprint validation ## Prerequisites - Node.js 20.0.0 or higher - pnpm 8.0.0 or higher ## Quick Start **Install Dependencies** ```bash pnpm install ``` **Run the Server** ```bash # For development pnpm start:stdio # Build for production pnpm build ``` **Index a Project** ```bash pnpm synapse:index -p /path/to/your/project ``` ## Claude Desktop Integration Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS): ```json { "mcpServers": { "nervusdb-mcp": { "command": "npx", "args": ["-y", "@nervusdb/mcp"] } } } ``` Alternatively, if you've installed the package globally: ```json { "mcpServers": { "nervusdb-mcp": { "command": "nervusdb-mcp" } } } ``` **Installation Options:** ```bash # Option 1: Use npx (recommended, no installation needed) # Just add the config above, Claude will run it automatically # Option 2: Install globally for faster startup npm install -g @nervusdb/mcp ``` ## Configuration ### GitHub Authentication (for Workflow Tools) Workflow tools (`workflow.submitForReview`) require GitHub authentication to create pull requests. The server supports **3 authentication methods** with automatic fallback: **Method 1: Environment Variables (Recommended for CI/CD)** ```bash # Set GITHUB_TOKEN or GH_TOKEN export GITHUB_TOKEN=ghp_your_personal_access_token # Or in your shell profile (~/.zshrc or ~/.bashrc) echo 'export GITHUB_TOKEN=ghp_xxx' >> ~/.zshrc ``` **Method 2: GitHub CLI (Recommended for Local Development)** ```bash # Install gh CLI brew install gh # macOS # Or see https://cli.github.com/ for other platforms # Authenticate gh auth login ``` **Method 3: Claude Desktop Configuration** Add environment variables to Claude Desktop config: ```json { "mcpServers": { "nervusdb-mcp": { "command": "npx", "args": ["-y", "@nervusdb/mcp"], "env": { "GITHUB_TOKEN": "ghp_your_personal_access_token" } } } } ``` **Authentication Priority:** 1. `GITHUB_TOKEN` environment variable (highest priority) 2. `GH_TOKEN` environment variable 3. `gh auth token` command (if gh CLI is authenticated) If no authentication is available, workflow tools will provide clear error messages with setup instructions. ## Available Tools The NervusDB MCP server provides 13 tools across 4 categories: ### 1. Workflow Tools ⚙️ - `workflow.startTask` - Create task branch and update ledger - `workflow.submitForReview` - Push branch and create pull request **(requires GitHub authentication)** ### 2. Project Tools - `project.getStructure` - Get project file structure with statistics - `project.analyzeImpact` - Analyze code impact based on knowledge graph - `project.findRelatedFiles` - Find files related to a target file - `project.readFile` - Read arbitrary file content ### 3. Code Tools - `code.readFile` - Read project file content - `code.writeFile` - Write content to project file (requires confirmation) - `code.runTests` - Run tests using Vitest and return results ### 4. Database Tools - `db.getStats` - Get index metadata and statistics - `db.query` - Execute typed or raw queries against knowledge graph - `db.rebuildIndex` - Rebuild project index with telemetry - `db.getHealth` - Check index health with fingerprint validation ## Usage Example ```typescript // 1. Start a new task workflow.startTask({ taskId: '42', owner: 'alice', designDoc: 'docs/design/feature-42.md', }); // 2. Analyze code impact project.analyzeImpact({ projectPath: '/workspace/my-project', functionName: 'calculateTotal', limit: 20, }); // 3. Read a file code.readFile({ projectPath: '/workspace/my-project', file: 'src/services/orderService.ts', }); // 4. Run tests code.runTests({ projectPath: '/workspace/my-project', filter: 'orderService', }); // 5. Query the knowledge graph db.query({ projectPath: '/workspace/my-project', query: { type: 'typed', filter: { predicate: 'CONTAINS' }, options: { limit: 100 }, }, }); // 6. Submit for review workflow.submitForReview({ confirm: true, title: 'feat: optimize order calculation', reviewers: ['bob'], }); ``` ## How It Works 1. **Indexing**: Uses `repomix` to collect project files and `@nervusdb/core` to build a knowledge graph 2. **Storage**: Maintains shadow indices with fingerprint validation for data integrity 3. **Query**: Provides typed and raw query interfaces to explore code relationships 4. **Workflow**: Integrates with Git workflows for task management ## Project Structure ``` nervusdb-mcp/ ├── src/ │ ├── server/ # MCP server implementation │ ├── tools/ # Tool implementations (workflow, project, code, db) │ ├── services/ # Business logic services │ ├── domain/ # Core domain logic (indexing, query) │ └── utils/ # Shared utilities ├── bin/ # CLI executables ├── docs/ # Documentation └── tests/ # Test suites ``` ## Development ```bash # Install dependencies pnpm install # Run tests pnpm test # Check code quality pnpm check # Build for production pnpm build ``` ## Documentation - [Tools Overview](docs/tools/overview.md) - Detailed documentation for all 13 tools - [Architecture Design](docs/architecture/ADR-002-Architecture-Design.md) - [Quality Guidelines](docs/quality-guidelines.md) - [Build and Release](docs/build-and-release.md) ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines. ## License MIT

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nervusdb/nervusdb-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server