项目简介
ConHub 旨在通过统一平台,将代码仓库、文档和云存储等多种数据源与 AI 智能体(如 Amazon Q, GitHub Copilot 等)无缝集成。它利用 Model Context Protocol (MCP) 作为核心通信协议,为大型语言模型 (LLM) 客户端提供语义搜索、代码索引、文档处理以及实时的开发上下文。ConHub 采用微服务架构,提供可扩展、安全的上下文服务框架。
主要功能点
- 多源集成: 连接 GitHub, GitLab, Google Drive, Dropbox, OneDrive, Notion 等多种数据源,统一管理开发上下文。
- AI 智能体支持: 集成 Amazon Q, GitHub Copilot 等 AI 助手,并通过 MCP 协议支持自定义智能体。
- 智能搜索与索引: 双引擎架构,结合代码索引(如 Tantivy)和语义搜索(基于向量数据库 Qdrant),提供高效精准的搜索能力。
- 插件系统: 统一的插件架构,便于扩展数据源和智能体管理。
- 实时上下文共享: 在所有连接的 AI 智能体之间实现上下文的实时共享与同步。
- 安全与合规: 内置零信任安全模型、JWT 认证、OAuth 2.0、角色访问控制、速率限制等安全机制。
安装步骤
ConHub 推荐使用 Docker 和 Docker Compose 进行快速部署。
- 克隆仓库:
git clone https://github.com/KogSector/ConHub cd ConHub - 配置环境:
复制 '.env.example' 文件为 '.env',并根据您的需求编辑 '.env' 文件,填入数据库连接字符串、API 密钥等信息。
cp .env.example .env # 编辑 .env 文件,例如: # DATABASE_URL_LOCAL=postgresql://conhub:conhub_password@localhost:5432/conhub # OPENAI_API_KEY=sk-your-openai-key # ... - 使用 Docker 启动 (推荐):
运行以下命令启动所有 ConHub 微服务和数据库:
服务启动后,您可以通过浏览器访问 'http://localhost' 来使用前端应用。docker-compose up --build
如果您希望进行本地开发,也可以单独启动数据库服务,然后使用 'npm run dev' 启动前端和后端服务。
服务器配置 (面向 MCP 客户端)
ConHub 的 MCP 服务器作为核心服务,通过 WebSocket 和 HTTP (JSON-RPC) 协议为 MCP 客户端提供上下文。要连接 ConHub MCP 服务,MCP 客户端通常需要配置服务名称、启动命令及参数。以下是 MCP 客户端配置 ConHub MCP 服务的示例:
{ "name": "ConHub MCP Service", "description": "ConHub MCP服务,提供多源上下文和AI智能体集成。", "command": "node", "args": [ "mcp/service/src/server.js" ], "env": { "MCP_SERVICE_PORT": "3004", "LOG_LEVEL": "info", "ALLOWED_ORIGINS": "http://localhost:3000", "BACKEND_URL": "http://localhost:8000" // 其他必要的环境变量,如数据库连接、API密钥等,请根据您的.env文件进行配置。 }, "transport": "websocket", "endpoint": "ws://localhost:3004", "capabilities": { "resources": { "list": true, "read": true, "subscribe": true }, "tools": { "list": true, "call": true }, "prompts": { "list": true, "get": true }, "logging": { "level": "info" }, "completion": true } }
- 'name': MCP 服务的名称,此处为 "ConHub MCP Service"。
- 'description': 服务的功能描述。
- 'command': 启动 MCP 服务的可执行命令,此处为 'node'。
- 'args': 传递给 'command' 的参数,此处为 MCP 服务的主入口文件 'mcp/service/src/server.js'。
- 'env': 运行 MCP 服务所需的环境变量,例如 'MCP_SERVICE_PORT' 定义了服务监听的端口,'BACKEND_URL' 指向 ConHub 主后端服务。请根据实际部署环境调整这些值。
- 'transport': 客户端与服务器通信使用的传输协议,此处为 'websocket'。
- 'endpoint': MCP 服务的 WebSocket 连接地址,通常是 'ws://localhost:3004' (如果 'MCP_SERVICE_PORT' 设置为 3004)。
- 'capabilities': 声明 MCP 客户端希望 MCP 服务提供的能力,包括资源管理、工具调用、Prompt 模板等。
基本使用方法
一旦 ConHub MCP 服务启动并被您的 MCP 客户端成功连接,您可以通过客户端发送 MCP 协议定义的 JSON-RPC 请求来与之交互。
- 初始化连接: 客户端首先发送 'initialize' 请求以协商协议版本和能力。
- 获取资源列表: 发送 'resources/list' 请求,获取 ConHub 管理下可用的数据源(如 GitHub 仓库、Google Drive 文件等)。
- 读取资源内容: 发送 'resources/read' 请求,通过 URI 读取特定资源(如代码文件、文档)的内容。
- 调用工具: 发送 'tools/list' 请求获取 ConHub 集成的 AI 智能体提供的可用工具(如代码生成、代码分析工具),然后发送 'tools/call' 请求执行特定工具并传入参数。
- 实时上下文: MCP 服务会通过 'resources/updated' 等通知,实时向客户端推送上下文变化。
信息
分类
开发者工具