使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个 MCP 服务器端,核心职责是以标准化的 JSON 结构向 MCP 客户端提供资源、工具以及提示模板等上下文信息,并通过 gRPC 提供服务接口,支持会话管理与多服务器聚合。
    • 同时提供了 MCP 客户端与管理组件,便于在同一系统中对接多个 MCP 服务器。
  • 主要功能点

    • MCP 资源管理:对资源的读取、列出等能力的接口实现,便于 LLM 调用时获取上下文。
    • MCP 工具注册与调用:提供服务器端对工具的注册、执行、以及结果获取的能力。
    • Prompts 定义与渲染:支持定义并渲染用于 LLM 交互的提示模板,提升对话质量。
    • 多服务器管理:可以注册、配置、查询、更新与删除多个 MCP 服务器,并对其健康/可用性进行状态管理。
    • 会话与权限支持:通过元数据(workspace_id、user_id 等)实现会话范围控制与权限边界。
    • 多传输协议支持:核心通信以 gRPC 提供服务入口,同时为未来扩展留有 Stdio、SSE、WebSocket 等传输路径的接口。
  • 安装步骤

    • 本仓库包含完整的服务端实现与客户端工具。请在具备 Python 3.12+ 的环境中运行,并配置依赖项(通常通过项目文档指引的方式安装依赖,如 pip install -r requirements.txt 等)。
    • 配置数据库连接信息与环境变量,确保 PostgreSQL、Redis、以及必要的外部服务可用。
    • 启动 MCP 服务器(示例命令为运行 app/main.py 或通过容器化方案启动相关服务)。
    • 根据需要启动其他相关服务(如应用后端、向量检索组件等)。
  • 服务器配置(示例说明) MCP 客户端需要的配置为 JSON 结构,包含服务器的名称、传输类型、连接方式及参数等。仓库中默认提供两个默认服务器示例:一个通过 SSE 接入核心 API 的远程 MCP 服务;另一个通过本地命令执行的_stdio 类型服务器。以下为示例配置要素说明,请按实际环境替换为具体地址与凭证(注意:客户端通常不需要你在此处暴露私钥等敏感信息)。

    • 服务器名称
    • 传输类型(transport_type):sse、http、streamable_http、stdio
    • 对应连接参数:
      • 如果 transport_type 为 sse/http/streamable_http:
        • url:服务地址
        • headers:可选的请求头(如 Authorization 等)
        • 可能的 api_key
      • 如果 transport_type 为 stdio:
        • command:执行的命令
        • args:参数列表
        • env:环境变量
    • 示例要素(不用于直接抄代码,供理解配置结构): { "servers": { "oasm-assistant-mcp": { "transport_type": "sse", "url": "<CORE_API_URL>/api/mcp", "headers": { "api-key": "<OASM_CLOUD_APIKEY>" } }, "searxng": { "transport_type": "stdio", "command": "npx", "args": ["-y", "mcp-searxng"], "env": { "SEARXNG_URL": "<SEARXNG_URL>" } } } }

    说明

    • MCP 客户端通常需要以上配置来建立与 MCP 服务器的连接。该服务器实现提供了相应的接口以暴露资源、工具、提示等能力,客户端据此可以进行查询、调用与渲染。
    • 请根据实际部署环境替换示例中的地址、密钥与参数。
  • 基本使用方法

    • 启动 MCP 服务器后,MCP 客户端可以通过读取上述 JSON 配置并使用相应的连接信息,向服务器请求资源、工具、提示等上下文数据,并执行工具调用获取结果。
    • 客户端可通过定义的 API 调用获取具体资源、列出可用工具、获取/执行提示模板等。
  • 重要提示

    • 确保数据库与缓存服务可用,且 MCP 服务器对外暴露的接口符合客户端约定。
    • 若你仅用于测试,请在隔离环境中进行,避免生产数据暴露。

信息

分类

AI与计算