项目简介

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 进行快速部署。

  1. 克隆仓库:
    git clone https://github.com/KogSector/ConHub
    cd ConHub
  2. 配置环境: 复制 '.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
    # ...
  3. 使用 Docker 启动 (推荐): 运行以下命令启动所有 ConHub 微服务和数据库:
    docker-compose up --build
    服务启动后,您可以通过浏览器访问 'http://localhost' 来使用前端应用。

如果您希望进行本地开发,也可以单独启动数据库服务,然后使用 '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 请求来与之交互。

  1. 初始化连接: 客户端首先发送 'initialize' 请求以协商协议版本和能力。
  2. 获取资源列表: 发送 'resources/list' 请求,获取 ConHub 管理下可用的数据源(如 GitHub 仓库、Google Drive 文件等)。
  3. 读取资源内容: 发送 'resources/read' 请求,通过 URI 读取特定资源(如代码文件、文档)的内容。
  4. 调用工具: 发送 'tools/list' 请求获取 ConHub 集成的 AI 智能体提供的可用工具(如代码生成、代码分析工具),然后发送 'tools/call' 请求执行特定工具并传入参数。
  5. 实时上下文: MCP 服务会通过 'resources/updated' 等通知,实时向客户端推送上下文变化。

信息

分类

开发者工具