Skip to main content
Glama

CodeAnalysis MCP Server

by 0xjcf

MCP代码分析

强大的代码库分析工具包,利用模型上下文协议 (MCP) 进行 AI 辅助代码理解和转换。

特征

  • 代码分析:使用抽象语法树解析和分析代码库
  • 上下文生成:为人工智能模型创建丰富的上下文信息
  • 工具集成:基于 MCP SDK 构建,实现无缝 AI 工具集成
  • 可扩展架构:基于插件的自定义分析器系统

要求

  • Node.js 18+
  • NPM 9+
  • Redis(可选,仅生产环境需要)

安装

# Clone the repository git clone https://github.com/yourusername/mcp-codeanalysis.git cd mcp-codeanalysis # Install dependencies npm install # Build the project npm run build

Redis 配置(可选)

Redis 用于生产环境中的会话存储。在开发和测试环境中,如果 Redis 不可用,系统将自动回退到内存会话存储。

注意:Redis 连接存在一个已知问题,即使 Redis 正在运行,操作也可能会失败。有关详情,请参阅plan.md中的“技术债务”部分。目前,您可以使用./use-memory-session.sh脚本运行带有内存会话存储的服务器。有关更多信息,请参阅Redis 故障排除指南

安装 Redis:

# Ubuntu/Debian sudo apt-get install redis-server # macOS brew install redis # Windows (using WSL is recommended) # For native Windows, download from https://redis.io/download

默认情况下,应用程序会尝试通过redis://localhost:6379连接到 Redis。您可以使用环境变量配置 Redis 连接:

# Set custom Redis URL export REDIS_URL=redis://custom-host:6379 # Force memory session store even if Redis is available export FORCE_MEMORY_SESSION=true

发展

# Run in development mode npm run dev # Run tests npm test # Run linting npm run lint

用法

# Start the MCP server npm start # Run CLI tool node ./tools/mcp-stdio-client.js --task "Analyze dependencies" --files "src/*.ts"

文档

执照

麻省理工学院

CodeAnalysis MCP 服务器

用于高级代码分析的综合模型上下文协议 (MCP) 服务器,通过可扩展的架构提供工具和见解。

🚀 功能

  • 基本代码分析:语法和结构分析
  • 代码指标:复杂度、行数和代码质量指标
  • 依赖关系分析:包和导入关系可视化
  • 知识图谱:代码关系可视化和查询
  • 记忆系统:存储和检索有关代码库的见解
  • 可视化:生成多种格式的图表(Mermaid、DOT、ASCII)
  • 社会技术分析:了解团队和代码关系
  • 多存储库分析:跨存储库关系分析
  • 演进规��:代码改进建议
  • 实时监控:实时监控代码变化
  • IDE 集成:编辑器集成工具
  • 开发者工具:增强的AI辅助开发工作流程支持

📋 先决条件

  • Node.js 18+
  • npm 或 yarn
  • Redis(开发可选,生产推荐)

🛠️ 安装

# Clone the repository git clone https://github.com/your-username/codeanalysis-mcp.git cd codeanalysis-mcp # Install dependencies pnpm install # Build the project pnpm build

🖥️ 使用方法

CodeAnalysis MCP 服务器可以通过两种方式使用:

1. 作为 MCP 服务器

# Start the MCP server pnpm start

这将启动 MCP 服务器,任何 MCP 客户端(如 Claude Desktop、Cursor 或其他客户端)都可以连接到该服务器。

2. 使用 CLI

该项目包括一个用于直接交互的综合 CLI:

# Get help pnpm run cli --help # Analyze a repository or directory pnpm run cli analyze repo ./src # Check code quality pnpm run cli quality analyze ./src

3. 使用开发者工具进行AI辅助开发

该项目包括旨在增强人工智能辅助开发的特殊工具:

# Generate code context for AI assistants node tools/ai-dev-helper.js --task="Implement new feature" --search="related functionality" # Run example client node examples/dev-tools-client.js

有关详细信息,请参阅开发人员工具指南

📊 示例命令

基本分析

# Analyze a local directory pnpm run cli analyze repo ./src # Analyze a specific file pnpm run cli analyze file ./src/server.ts

代码指标

# Get code metrics with function details pnpm run cli metrics analyze ./src --functions # Save metrics to a file pnpm run cli metrics analyze ./src -o metrics-report.json

依赖关系分析

# Analyze dependencies in Mermaid format pnpm run cli dependencies analyze ./src -f mermaid -o deps.mmd # Visualize dependencies pnpm run cli visualize dependencies -p ./src --format mermaid

代码质量

# Run quality analysis pnpm run cli quality analyze ./src # Generate HTML report pnpm run cli quality analyze ./src --html -o quality-report.html

知识图谱

# Build knowledge graph pnpm run cli knowledge build ./src # Query the knowledge graph pnpm run cli knowledge query ./src "type:function AND complexity>5" # Export as diagram pnpm run cli knowledge export ./src -f mermaid

洞察力与记忆

# Store an insight pnpm run cli insights store -r ./src -t code-pattern -c "Refactoring opportunity" # Retrieve insights pnpm run cli insights retrieve -r ./src

开发人员工具

# Prepare context for AI interactions node tools/ai-dev-helper.js --task="Fix authentication bug" --files="src/auth/*.ts" --search="login" # Use with AI prompts # Copy content from the generated ai-context.json file into your AI assistant prompt # or use the template in templates/ai-prompt-template.md

🏗️ 建筑

该项目遵循 MCP 架构,包含以下组件:

  1. MCP 服务器:使用 MCP 协议的核心服务器实现
  2. 分析特点:模块化代码分析功能
  3. CLI :用于直接交互的命令行界面
  4. 传输层:通信机制(默认为stdio)

🔌 与 MCP 客户端集成

该服务器与任何符合 MCP 的客户端兼容,包括:

  • 克劳德桌面应用程序
  • 光标编辑器
  • 继续
  • 其他 MCP 兼容工具

📝 路径规范

命令接受各种格式的路径:

  • 本地目录: ./src/absolute/path/to/dir
  • 本地文件: ./src/file.ts/path/to/file.ts
  • 存储库 URL: https://github.com/username/repo

🤝 贡献

欢迎贡献代码!欢迎提交 Pull 请求。

📄 许可证

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

MCP SDK 状态管理架构

该项目为模型上下文协议 (MCP) SDK 实现了有状态工具,为构建在调用之间维护上下文的工具提供了框架。

架构概述

状态管理架构分为几个模块化组件:

src/state/ ├── helpers/ │ └── statefulTool.ts # Main entry point for stateful tool creation ├── machines/ │ └── toolMachine.ts # XState machine for tool execution flow ├── services/ │ ├── toolService.ts # Core execution service for tools │ ├── redisToolExecutionService.ts # Distributed execution service │ ├── redisSessionStore.ts # Redis-based session persistence │ └── types.ts # Shared type definitions

核心组件

状态工具助手( statefulTool.ts

与 MCP SDK 的中央集成点,提供:

  • 带有会话管理的工具注册
  • 符合 MCP 标准的响应格式
  • 内存会话管理
  • 用于会话访问和操作的辅助函数
// Creating a stateful tool with state persistence createStatefulTool(server, "my-tool", schema, handler); // With description createStatefulTool(server, "my-tool", "My stateful tool", schema, handler);

工具机( toolMachine.ts

基于 XState 的状态机,定义工具的执行流程:

  • 状态转换(空闲、工具选择、参数设置、执行等)
  • 参数、结果和历史记录的上下文管理
  • 错误处理和恢复路径

该组件将会话管理委托给 statefulTool 实现。

工具服务( toolService.ts

协调工具状态转换的核心执行服务:

  • 管理工具选择、参数验证和执行
  • 跟踪执行历史
  • 处理执行结果和错误

类型( types.ts

共享类型定义可确保整个状态管理系统的一致性:

  • SessionData:用于存储工具状态的结构
  • SessionStore:会话存储实现的接口
  • ExecutionResult:工具的标准响应格式

与 MCP SDK 集成

该架构通过以下方式与 MCP SDK 集成:

  1. 使用状态管理扩展工具注册模式
  2. 保持与 MCP 响应格式的兼容性
  3. 为状态操作提供会话和上下文跟踪

使用示例

import { createServer } from "@modelcontextprotocol/sdk"; import { createStatefulTool } from "./state/helpers/statefulTool"; import { z } from "zod"; const server = createServer(); // Register a stateful tool createStatefulTool( server, "counter", "A tool that maintains a count between invocations", { action: z.enum(["increment", "decrement", "reset"]), }, async (params) => { // Get session ID from params (or a new one will be created) const sessionId = params.sessionId; // Process the action let count = 0; // Tool logic with state manipulation... return { count }; } ); server.listen(3000);

分布式状态管理

对于分布式环境,基于 Redis 的实现提供:

  • 服务器重启后会话仍然保持
  • 用于并发访问的分布式锁定
  • 基于TTL的会话清理
  • 网络/连接问题的错误处理

测试

这些组件包括全面的测试套件,用于验证:

  • 工具状态转换
  • 会话管理
  • 错误处理和恢复
  • 响应格式
  • 分布式操作(使用Redis)

人工智能开发工具

CodeAnalysis MCP 服务器提供用于 AI 辅助开发的专用工具。这些工具有助于收集代码上下文,并将其提供给 AI 系统,从而提供更有效的辅助。

客户端脚本

该存储库在tools/目录中包含几个客户端脚本:

  • HTTP 客户端tools/http-client.js ):通过 HTTP 传输连接到 MCP 服务器(默认)。
    node tools/http-client.js --task "Your task description" --files "src/features/*.ts" --search "session"
  • 原始客户端tools/mcp-raw-client.js ):一个更简单的客户端,仅捕获服务器信息。
    node tools/mcp-raw-client.js --task "Your task description"
  • 简单客户端tools/simple-client.js ):通过 stdio 与服务器通信。
    node tools/simple-client.js --task "Your task description" --files "src/features/*.ts"

所有客户端脚本都会在项目根目录中生成一个ai-context.json文件。该文件包含有关您的代码库的宝贵上下文信息,可以与 AI 助手共享,以提供更明智的响应。

提示模板

templates/ai-prompt-template.md提供了 AI 助手的提示模板。此模板可帮助您根据 MCP 工具中的适当上下文,构建对 AI 助手的请求。

服务器传输模式

MCP 服务器支持两种传输模式:

  1. HTTP 传输(默认):默认在 3000 端口运行。最适合客户端-服务器架构。
  2. Stdio Transport :用于直接进程通信。设置STDIO_TRANSPORT=true环境变量即可启用。

会话存储架构

MCP 代码分析现在具有模块化会话存储架构,具有自动后端检测功能:

  • 灵活存储:自动在 Redis 和内存存储之间切换
  • 开发友好:开发过程中无需 Redis 即可运行
  • 生产就绪:在生产环境中使用 Redis 进行持久化
  • 自动回退:当 Redis 不可用时,优雅地回退到内存存储

有关更多详细信息,请参阅会话存储架构文档。

要求

  • Node.js 18+
  • npm 或 yarn
  • Redis(开发可选,生产推荐)

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that provides tools for code modification and generation via Large Language Models, allowing users to create, modify, rewrite, and delete files using structured XML instructions.
    Last updated -
    12
    Python
    MIT License
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that enables AI agents to retrieve and understand entire codebases at once, providing tools to analyze local workspaces or remote GitHub repositories.
    Last updated -
    9
    TypeScript
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A server component of the Model Context Protocol that provides intelligent analysis of codebases using vector search and machine learning to understand code patterns, architectural decisions, and documentation.
    Last updated -
    4
    Python
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that helps large language models process code repositories by providing file tree generation, code merging, and code analysis capabilities.
    Last updated -
    3
    14
    JavaScript
    MIT License

View all related MCP servers

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/0xjcf/MCP_CodeAnalysis'

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