MCP Code Analysis
A powerful codebase analysis toolkit that leverages the Model Context Protocol (MCP) for AI-assisted code understanding and transformation.
Features
- Code Analysis: Parse and analyze codebases with abstract syntax trees
- Context Generation: Create rich contextual information for AI models
- Tool Integration: Built on the MCP SDK for seamless AI tool integration
- Extensible Architecture: Plugin-based system for custom analyzers
Requirements
- Node.js 18+
- NPM 9+
- Redis (optional, only required for production environments)
Installation
Redis Configuration (Optional)
Redis is used for session storage in production environments. For development and testing, the system will automatically fall back to an in-memory session store if Redis is not available.
Note: There is a known issue with Redis connectivity where operations may fail even when Redis is running. See the "Tech Debt" section in
plan.md
for details. For now, you can use the./use-memory-session.sh
script to run the server with the memory session store. For more information, see Redis Troubleshooting Guide.
To install Redis:
By default, the application tries to connect to Redis at redis://localhost:6379
. You can configure the Redis connection using environment variables:
Development
Usage
Documentation
License
MIT
CodeAnalysis MCP Server
A comprehensive Model Context Protocol (MCP) server for advanced code analysis, providing tools and insights through an extensible architecture.
🚀 Features
- Basic Code Analysis: Syntax and structure analysis
- Code Metrics: Complexity, line counts, and code quality metrics
- Dependency Analysis: Package and import relationship visualization
- Knowledge Graph: Code relationships visualization and querying
- Memory System: Store and retrieve insights about codebases
- Visualizations: Generate diagrams in multiple formats (Mermaid, DOT, ASCII)
- Socio-Technical Analysis: Understand team and code relationships
- Multi-Repository Analysis: Cross-repository relationship analysis
- Evolution Planning: Code improvement recommendations
- Live Watching: Monitor code changes in real-time
- IDE Integration: Tools for editor integration
- Developer Tools: Enhanced AI-assisted development workflow support
📋 Prerequisites
- Node.js 18+
- npm or yarn
- Redis (optional for development, recommended for production)
🛠️ Installation
🖥️ Usage
The CodeAnalysis MCP server can be used in two ways:
1. As an MCP Server
This starts the MCP server that can be connected to by any MCP client like Claude Desktop, Cursor, or others.
2. Using the CLI
The project includes a comprehensive CLI for direct interaction:
3. Using Developer Tools for AI-Assisted Development
The project includes special tools designed to enhance AI-assisted development:
See the Developer Tools Guide for detailed information.
📊 Example Commands
Basic Analysis
Code Metrics
Dependency Analysis
Code Quality
Knowledge Graph
Insights & Memory
Developer Tools
🏗️ Architecture
The project follows the MCP architecture with these components:
- MCP Server: Core server implementation using the MCP protocol
- Analysis Features: Modular code analysis capabilities
- CLI: Command-line interface for direct interaction
- Transport Layer: Communication mechanism (stdio by default)
🔌 Integration with MCP Clients
This server is compatible with any MCP-compliant client, including:
- Claude Desktop App
- Cursor Editor
- Continue
- Other MCP-compatible tools
📝 Path Specification
Commands accept paths in various formats:
- Local directory:
./src
or/absolute/path/to/dir
- Local file:
./src/file.ts
or/path/to/file.ts
- Repository URL:
https://github.com/username/repo
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
MCP SDK State Management Architecture
This project implements stateful tools for the Model Context Protocol (MCP) SDK, providing a framework for building tools that maintain context between invocations.
Architecture Overview
The state management architecture is organized into several modular components:
Core Components
Stateful Tool Helper (statefulTool.ts
)
The central integration point with the MCP SDK, providing:
- Tool registration with session management
- MCP-compliant response formatting
- In-memory session management
- Helper functions for session access and manipulation
Tool Machine (toolMachine.ts
)
XState-based state machine that defines the execution flow for tools:
- State transitions (idle, toolSelected, parametersSet, executing, etc.)
- Context management for parameters, results, and history
- Error handling and recovery paths
This component delegates session management to the statefulTool implementation.
Tool Service (toolService.ts
)
Core execution service that coordinates tool state transitions:
- Manages tool selection, parameter validation, and execution
- Tracks execution history
- Handles execution results and errors
Types (types.ts
)
Shared type definitions that ensure consistency across the state management system:
- SessionData: Structure for storing tool state
- SessionStore: Interface for session storage implementations
- ExecutionResult: Standard response format for tools
Integration with MCP SDK
The architecture integrates with the MCP SDK by:
- Extending the tool registration pattern with state management
- Maintaining compatibility with MCP's response format
- Providing session and context tracking for stateful operations
Usage Example
Distributed State Management
For distributed environments, the Redis-based implementations provide:
- Session persistence across server restarts
- Distributed locking for concurrent access
- TTL-based session cleanup
- Error handling for network/connection issues
Testing
The components include comprehensive test suites to verify:
- Tool state transitions
- Session management
- Error handling and recovery
- Response formatting
- Distributed operation (with Redis)
AI Development Tools
The CodeAnalysis MCP Server provides specialized tools for AI-assisted development. These tools help collect code context that can be fed to AI systems for more effective assistance.
Client Scripts
The repository includes several client scripts in the tools/
directory:
- HTTP Client (
tools/http-client.js
): Connects to the MCP server via HTTP transport (default).Copy - Raw Client (
tools/mcp-raw-client.js
): A simpler client that only captures server information.Copy - Simple Client (
tools/simple-client.js
): Communicates with the server via stdio.Copy
All client scripts generate an ai-context.json
file in the project root. This file contains valuable context about your codebase that can be shared with AI assistants to provide better-informed responses.
Prompt Template
A prompt template for AI assistants is available at templates/ai-prompt-template.md
. This template helps structure your requests to AI assistants with proper context from the MCP tools.
Server Transport Modes
The MCP server supports two transport modes:
- HTTP Transport (default): Runs on port 3000 by default. Best for client-server architecture.
- Stdio Transport: For direct process communication. Set the
STDIO_TRANSPORT=true
environment variable to enable.
Session Storage Architecture
MCP Code Analysis now features a modular session store architecture with automatic backend detection:
- Flexible Storage: Automatically switches between Redis and in-memory storage
- Development Friendly: Run without Redis during development
- Production Ready: Use Redis for persistence in production environments
- Automatic Fallback: Gracefully falls back to memory storage when Redis is unavailable
For more details, see the Session Store Architecture documentation.
Requirements
- Node.js 18+
- npm or yarn
- Redis (optional for development, recommended for production)
This server cannot be installed
A comprehensive Model Context Protocol server for advanced code analysis that provides tools for syntax analysis, dependency visualization, and AI-assisted development workflow support.