智能代码分析服务器

Empathic MCP Server是一个生产就绪的模型上下文协议服务器,提供全面的文件管理、命令执行和通过语言服务器协议(LSP)集成的智能代码分析功能。

  • by Vany
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Vany/empathic

使用说明

同理心MCP服务器v2.0.0🚀

生产准备就绪 模型上下文协议(MCP) 提供全面文件管理、命令执行和 智能代码分析 通过语言服务器协议(LSP)集成。

概述

Empathic扩展了Claude Desktop 23种专用工具 (16核+7 LSP)支持复杂的文件操作、命令执行和 实时代码智能 由锈分析仪供电。它基于JSON-RPC 2.0构建,提供可靠的通信、全面的错误处理和企业级性能。

🚀 v2.0.0亮点

  • 🧠 真正的LSP集成:7个使用rust分析器进行智能rust代码分析的工具
  • ⚡ 高性能:响应缓存(命中率95%以上)、优先级队列、连接池
  • 📊 智能资源管理:自动重启、内存监控、优雅降级
  • 🛡️ 生产就绪:综合测试(38/38测试通过),跨平台稳定性
  • 🔧 清洁建筑:模块化设计,类型安全工具,最小样板

特性

文件系统操作(8个工具)

  • 环境准入 -使用PATH增强功能读取环境变量
  • 文件读取 -带可选分块的Unicode安全文件读取
  • 文件写入 -支持行范围替换的原子文件写入
  • 目录列表 -具有glob模式和.gitignore支持的递归目录遍历
  • 文件删除 -具有递归功能的安全文件和目录删除
  • 文本替换 -使用正则表达式和模糊匹配进行高级搜索和替换
  • 目录创建 -使用自动父目录创建功能创建目录
  • 符号链接 -跨平台符号链接创建和管理

命令执行(6个工具)

  • shell命令 -执行具有完整bash功能支持的任意shell命令
  • Git操作 -使用工作目录控件完成git命令执行
  • Rust项目 -基于货物的Rust项目管理和构建操作
  • 构建自动化 -基于Make的构建系统执行和目标管理
  • Java/JVM项目 -基于Gradle的项目管理和依赖关系处理
  • Node.js项目 -npm包管理和脚本执行

🧠 LSP集成(7个工具)-v2.0.0生产版本

由...驱动 真锈分析仪集成 (非模拟),提供企业级代码智能:

  • 代码诊断 -实时编译器错误、警告和快速修复提示
  • 悬停信息 -即时类型信息、文档和签名详细信息
  • 代码补全 -具有智能排名和过滤功能的上下文感知自动补全
  • 转到定义 -导航到整个项目中的符号定义
  • 查找引用 -发现函数、类型和变量的所有用法
  • 文件符号 -包含函数、结构、枚举和特征的文件结构大纲
  • 工作区符号 -基于快速模糊匹配的项目范围符号搜索

LSP性能特征

  • ⚡ 次秒级响应:悬停/完成<200ms,诊断<500ms
  • 🚀 智能缓存:95%以上的缓存命中率,具有自动文件修改检测功能
  • ♻️ 自动恢复:自动锈蚀分析仪在崩溃或资源耗尽时重新启动
  • 🎯 优先级排队:首先处理关键请求(诊断)
  • 📊 资源监控:支持跨平台的内存跟踪

安装

从源代码构建

# Clone repository
git clone <repository-url>
cd empathic

# Build release binary
make release

# Binary will be available at target/release/empathic

系统要求

  • 发展:macOS与Rust 1.87+
  • 部署:Ubuntu 24.10+或同等Linux发行版
  • 依赖项:无外部运行时要求的自包含二进制文件

配置

环境变量

# Required
ROOT_DIR=/path/to/your/workspace

# Optional - Core
ADD_PATH=/additional/bin/paths  # Colon-separated additional PATH entries
LOGLEVEL=warn                   # Log level: debug, info, warn, error
LOGFILE=/path/to/logfile.log    # Optional: Write logs to file (stdout + file)

# Optional - LSP Integration (v2.0.0)
LSP_TIMEOUT=60                  # LSP request timeout in seconds
RA_LOG=warn                     # rust-analyzer log level: debug, info, warn, error  
LSP_RESTART_DELAY=2             # Restart delay in seconds for crashed LSP servers

Claude桌面集成

添加到您的Claude Desktop配置文件中:

{
  "mcpServers": {
    "empathic": {
      "command": "/path/to/empathic",
      "env": {
        "ROOT_DIR": "/Users/username/projects",
        "LOGLEVEL": "warn"
      }
    }
  }
}

用法

配置后,当Claude Desktop启动时,empathic会自动运行。服务器提供了Claude可以调用的工具:

  • 在工作区中读写文件
  • 执行开发命令(git、cargo、npm等)
  • 在项目目录中导航和搜索
  • 执行文本转换和替换
  • 管理项目构建过程
  • 🧠 新功能:使用智能LSP驱动的工具分析Rust代码
  • ⚡ 新功能:获得实时诊断、完成和导航

所有操作仅限于配置 ROOT_DIR 为了安全。

LSP先决条件

为了使LSP集成正常工作:

  1. 安装锈蚀分析仪:可通过PATH(例如,通过rustup)获得

    rustup component add rust-analyzer
    # OR via package manager
    # brew install rust-analyzer  # macOS
    # apt install rust-analyzer   # Ubuntu
    
  2. Rust项目:LSP工具自动检测Rust项目(包含 Cargo.toml)

  3. 演出:锈蚀分析仪分析项目时,首次LSP请求可能需要更长的时间

发展

构建命令

make build    # Debug build for development
make release  # Optimized production build
make test     # Run full test suite
make check    # Run linting and formatting checks
make clean    # Clean build artifacts

项目结构

src/
├── main.rs           # Entry point and JSON-RPC server
├── lib.rs            # Library exports
├── config.rs         # Configuration management
├── mcp.rs            # MCP protocol implementation
├── fs.rs             # Filesystem utilities
├── lsp/              # 🧠 LSP integration (NEW v2.0.0)
│   ├── mod.rs        # LSP module exports
│   ├── manager.rs    # Process lifecycle management
│   ├── client.rs     # JSON-RPC communication layer
│   ├── project_detector.rs # Rust project detection
│   ├── types.rs      # LSP error wrappers
│   ├── cache.rs      # Response caching with TTL
│   ├── performance.rs # Priority queues and metrics
│   └── resource.rs   # Memory monitoring and restart
└── tools/            # MCP tool implementations
    ├── mod.rs        # Tool registry and common utilities
    ├── env.rs        # Environment variable access
    ├── read_file.rs  # File reading operations
    ├── write_file.rs # File writing operations
    ├── list_files.rs # Directory listing
    ├── delete_file.rs # File deletion
    ├── replace.rs    # Text search and replace
    ├── mkdir.rs      # Directory creation
    ├── symlink.rs    # Symbolic link management
    ├── executor.rs   # Command execution tools
    └── lsp/          # 🧠 LSP tools (NEW v2.0.0)
        ├── mod.rs    # LSP tools exports
        ├── diagnostics.rs # lsp_diagnostics
        ├── hover.rs  # lsp_hover
        ├── completion.rs # lsp_completion
        ├── goto_definition.rs # lsp_goto_definition
        ├── find_references.rs # lsp_find_references
        ├── document_symbols.rs # lsp_document_symbols
        └── workspace_symbols.rs # lsp_workspace_symbols

tests/
├── common/           # Shared test utilities
├── lsp/              # 🧠 LSP integration tests (NEW v2.0.0)
│   ├── manager.rs    # Process management tests
│   ├── client.rs     # JSON-RPC communication tests
│   └── integration.rs # End-to-end LSP tests
├── lsp_tools/        # 🧠 Individual LSP tool tests (NEW v2.0.0)
│   └── *.rs         # Per-tool test files
└── *.rs             # Per-tool test files

测试

该项目包括全面的测试,包括:

  • 所有21个带边缘外壳的MCP工具(14个核心+7个LSP工具)
  • Unicode处理和国际文本支持
  • 跨平台兼容性(macOS和Ubuntu)
  • 错误条件和恢复机制
  • 🧠 新增:LSP集成和锈蚀分析仪通信
  • ⚡ 新增:使用缓存和资源管理进行性能测试
  • 📊 新功能:具有内存泄漏检测功能的长期运行稳定性测试

使用运行测试 make test 或 cargo test.

测试结果v2.0.0

  • 核心测试:所有16核MCP工具通过✅
  • LSP测试:所有7个LSP工具均通过真锈分析仪✅
  • 总覆盖范围:38/38项测试通过(100%)✅
  • 代码质量:零警告,干净汇编✅

技术细节

协议遵从

  • JSON-RPC 2.0:完全符合规范,符合正确的错误代码
  • MCP v1.0:完成模型上下文协议实现
  • Unicode支持:国际文本的正确字形聚类处理
  • 错误处理:带有上下文信息的结构化错误响应

演出

  • 针对典型开发工作流程进行了优化
  • 内存效率高,运行时开销最小
  • 响应式工具执行的快速启动时间
  • 尽可能进行原子文件操作
  • 🚀 新增:LSP响应缓存,命中率超过95%
  • ⚡ 新增:基于优先级的请求排队(严重/高/中/低)
  • 📊 新:连接池与LRU驱逐
  • 🔄 新:资源枯竭时自动锈分析仪重新启动

LSP绩效目标

  • 快速操作 (悬停,完成):<200ms✅
  • 中型运营 (诊断,转到):<500ms✅
  • 操作缓慢 (工作区符号):<2s✅
  • 内存监控开销:每个周期<1ms✅

安全

  • 所有操作仅限于配置的工作区目录
  • 无网络访问或外部系统修改
  • 安全处理用户输入和文件路径
  • 正确的错误隔离和恢复

日志记录

Empathic提供具有可配置级别的结构化日志记录:

  • 错误:工具故障和协议错误
  • 警告:性能问题和回退操作
  • 信息:工具执行和文件操作
  • 调试:详细的协议消息和内部状态

使用配置日志记录级别 LOGLEVEL 环境变量。

日志文件输出

通过设置以下选项,将所有日志输出转换为文件(可选) LOGFILE 环境变量:

# Logs will be written to both stdout and the specified file
export LOGFILE=/var/log/empathic.log

日志文件以追加模式打开,允许日志在服务器重新启动时累积。所有日志级别都尊重 LOGLEVEL 或 RUST_LOG 设置。

故障排除

LSP集成问题

未找到锈蚀分析仪

Error: Failed to spawn rust-analyzer: No such file or directory

解决方案:安装锈蚀分析仪并确保其在您的PATH中

# Via rustup (recommended)
rustup component add rust-analyzer

# Via package manager
brew install rust-analyzer      # macOS
apt install rust-analyzer       # Ubuntu

LSP请求超时

Error: LSP request timed out after 60 seconds

解决方案:

  • 增加超时时间: LSP_TIMEOUT=120
  • 等待初始项目分析完成
  • 检查锈蚀分析仪日志: RA_LOG=debug
  • 验证项目是否有效 Cargo.toml

内存问题

Warning: rust-analyzer exceeding memory limit, restarting...

解决方案:

  • 监视器: empathic 将自动重新启动高内存进程
  • 大型项目:增加超时时间 LSP_RESTART_DELAY=5
  • 排除中的大目录 .gitignore

没有可用的LSP功能

Info: LSP tools available but no rust-analyzer features detected

解决方案:

  • 确保您位于Rust项目目录中(包含 Cargo.toml)
  • 检查 ROOT_DIR 包含您的Rust项目
  • 验证 cargo check 项目中的工作
  • 跑 cargo build 确保项目有效

性能问题

Slow LSP responses, completion delays

解决方案:

  • 首次分析速度较慢(等待完成)
  • 检查日志中的缓存状态
  • 使用系统工具监控内存使用情况
  • 考虑更小 ROOT_DIR 范围

一般故障排除

文件操作错误

Error: Operation failed outside ROOT_DIR

解决方案:确保 ROOT_DIR 设置正确,所有目标文件都在其中

权限问题

Error: Permission denied accessing file

解决方案:检查文件权限和用户访问权限

Unicode问题

Error: Invalid UTF-8 sequence

解决方案:确保文件是有效的UTF-8编码

调试模式

启用详细日志以进行故障排除:

LOGLEVEL=debug RA_LOG=debug empathic

这将提供以下详细信息:

  • LSP服务器通信
  • 文件操作和路径解析
  • 性能指标和缓存操作
  • 内存使用和资源监控

许可证

[插入适当的许可证信息]

贡献

[如果开源,请插入贡献指南]

支持

对于问题和疑问:


Empathic MCP Server v2.0.0-为AI助手提供生产就绪的文件管理、命令执行和智能代码分析。 🚀