代码助手服务

Noor MCP Code Assistant 是一个连接Claude Desktop与RAG代码代理API的服务器,提供代码相关的上下文感知答案。

  • by Nooruddin-dev
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Nooruddin-dev/noor_mcp_code_assistant

使用说明

🚀 Noor MCP代码助手

MCP(模型上下文协议)服务器,将Claude Desktop与您的RAG-powered代码代理API连接起来。


📋 概述

此项目创建了一个MCP服务器,该服务器允许 克劳德桌面 与你现有的沟通 RAG代码代理API 奔跑在 localhost:8900。当您在Claude Desktop中询问与代码相关的问题时,它可以使用此工具从您的代码库中获取上下文感知的答案。

🎯 特性

  • ✅ 与Claude Desktop无缝集成
  • ✅ 连接到现有的RAG API(/api/chat/rag)
  • ✅ 会话管理确保对话的连续性
  • ✅ 全面的错误处理
  • ✅ 可通过环境变量进行配置
  • ✅ 为未来的代理扩展(SQL、React、Java)做好准备

🏗️ 项目结构

noor_mcp_code_assistant_parent/
├── env_container/              # Virtual environment
│   ├── bin/
│   ├── lib/
│   └── ...
└── noor_mcp_code_assistant/    # Project source
    ├── mcp_server.py           # Main MCP server
    ├── config.py               # Configuration management
    ├── requirements.txt        # Dependencies
    ├── .env.example            # Environment template
    ├── .env                    # Your configuration (git-ignored)
    └── README.md               # This file

🚀 快速开始

1.️⃣ 创建虚拟环境

导航到父文件夹并创建环境:

cd noor_mcp_code_assistant_parent
python3.11 -m venv env_container

激活环境:

# Linux/WSL/macOS
source env_container/bin/activate

# Windows PowerShell
.\env_container\Scripts\Activate

2.️⃣ 安装要求

cd noor_mcp_code_assistant
pip install -r requirements.txt

3.️⃣ 配置环境变量

复制示例文件并自定义:

cp .env.example .env

编辑 .env 使用您的设置:

# Required
RAG_API_BASE_URL=http://localhost:8900
RAG_CHAT_ENDPOINT=/api/chat/rag

# Optional
DEFAULT_SESSION_ID=claude-desktop-session
REQUEST_TIMEOUT=120

4.️⃣ 配置Claude桌面版

找到您的Claude Desktop配置文件:

窗户:

%APPDATA%\Claude\claude_desktop_config.json

(通常: C:\Users\<YourUsername>\AppData\Roaming\Claude\claude_desktop_config.json)

添加MCP服务器配置:

{
  "mcpServers": {
    "noor-code-assistant": {
      "command": "wsl",
      "args": [
        "-d", "Ubuntu-20.04",
        "--",
        "/home/<your-username>/noor_mcp_code_assistant_parent/env_container/bin/python",
        "/home/<your-username>/noor_mcp_code_assistant_parent/noor_mcp_code_assistant/mcp_server.py"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

⚠️ 重要提示: 替换 <your-username> 使用您的实际WSL用户名并相应地调整路径。

🔍 查找您的WSL分发名称

wsl --list --verbose

使用所示的确切名称(例如。, Ubuntu-20.04, Ubuntu等等)


5.️⃣ 验证设置

第一步: 确保您的RAG API正在运行:

# In WSL terminal
cd /path/to/your/rag-project
source env_container/bin/activate
uvicorn main:app --reload --port 8900

第二步: 测试RAG API:

curl -X POST http://localhost:8900/api/chat/rag \
  -H "Content-Type: application/json" \
  -d '{"session_id": "test", "message": "hello"}'

步骤3: 完全重新启动Claude Desktop(检查系统托盘)

步骤4: 这 noor-code-assistant 工具现在应该出现在Claude Desktop中!


💬 使用示例

配置后,您可以询问Claude Desktop:

“使用代码助手创建一个C#函数,通过员工ID获取员工请求”

“询问代码助理如何在我的项目中实现分页”

“使用code_assistant向我显示员工实体的DTO结构”


🔮 添加未来代理

当您准备添加更多代理(SQL、React、Java)时:

步骤1:将端点添加到RAG API

@app.post("/api/sql/agent")
async def sql_agent(request: SQLAgentRequest):
    # Your SQL agent logic
    pass

第二步:更新 .env

SQL_AGENT_ENDPOINT=/api/sql/agent

步骤3:取消注释中的工具定义 mcp_server.py

查找评论 sql_agent 工具和处理程序,然后取消注释。

步骤4:重新启动克劳德桌面


🐛 故障排除

问题 解决方案
MCP服务器未出现 在以下网址查看克劳德桌面日志 %APPDATA%\Claude\logs\
连接被拒绝 确保RAG API正在运行 localhost:8900
WSL路径问题 使用完整的Linux路径(例如。, /home/user/...)
未找到Python 在venv中使用Python的完整路径
超时错误 增加 REQUEST_TIMEOUT 在 .env

📋 查看日志

克劳德桌面日志:

C:\Users\<YourUsername>\AppData\Roaming\Claude\logs\

独立测试MCP服务器:

cd noor_mcp_code_assistant
source ../env_container/bin/activate
python mcp_server.py

📊 配置参考

变量 默认值 描述
RAG_API_BASE_URL http://localhost:8900 RAG API的基本URL
RAG_CHAT_ENDPOINT /api/chat/rag 聊天端点路径
DEFAULT_SESSION_ID claude-desktop-session 连续性的默认会话
REQUEST_TIMEOUT 120 API超时(秒)

🔐 安全说明

  • 此MCP服务器仅用于 出站 向本地RAG API发送HTTP请求
  • 不存储或记录敏感数据
  • 会话ID仅用于对话上下文
  • 所有通信都通过本地主机进行

📄 许可证

MIT许可证-随意使用和修改!


👨‍💻 作者

努尔·乌丁


🌟 支持

如果您觉得这有帮助,请:

  • ⭐ 为存储库添加星号
  • 📺 订阅 努尔代码逻辑
  • 🔗 与其他开发人员分享

快乐编码! 🚀