agentic-mcp

使用说明

  • 项目简介
    • 这是一个用来搭建 MCP(Model Context Protocol)服务器的完整实现。服务器核心职责包括托管和管理资源、注册并执行工具、定义和渲染提示模板,且通过 JSON-RPC 与客户端通信。支持会话管理、能力声明,并具备多种传输协议支持(如标准输入输出、服务器端事件、WebSocket 等),为 LLM 应用提供安全、可扩展的上下文服务框架。
  • 主要功能点
    • 资源与数据访问:服务器可以托管和管理资源,供客户端查询和使用。
    • 工具注册与执行:服务器可以注册来自多家提供商的“工具”(Tools),LLM 可以通过 JSON-RPC 调用外部功能。
    • 提示模板与渲染:支持可定制的系统提示、模型选择与上下文渲染,帮助控制对话上下文与输出格式。
    • 会话管理:对多轮对话提供会话和历史上下文管理,支持会话层级的分级策略。
    • 多传输协议:默认通过标准输入/输出运行,理论上可扩展到 SSE、WebSocket 等传输方式。
    • 自动化配置信息:通过配置文件描述提供商、命令、标志与输出格式,无需修改代码即可添加新提供商。
  • 安装步骤
    • 安装运行所需环境,确保 Node.js 版本符合仓库要求(如 Node.js >= 22)。
    • 获取源码并安装依赖:
      • 使用 npx 或本地安装来启动服务器(具体命令请结合仓库 README 提示)。
    • 构建应用(如有构建步骤)并生成可执行二进制(如 dist/index.js)。
    • 启动 MCP 服务器:通过 Node 直接执行构建产物(示例:node dist/index.js),服务器将按默认端口和传输协议对外提供 MCP 服务。
  • 服务器配置(MCP 客户端需要的最小配置信息)
    • JSON 配置示例(供 MCP 客户端推断连接信息,实际客户端不需要修改服务端实现): { "serverName": "agentic-mcp", "command": "node", "args": ["dist/index.js"] }
    • 说明
      • serverName: 服务器在客户端侧的标识名称,便于区分和管理。
      • command: 启动服务器的执行命令。对于直接运行的实现,通常是 node。
      • args: 命令参数, 指向服务入口文件(如 dist/index.js)。若有其他启动参数,请在此处添加。
    • client 侧在连接 MCP 服务器时需要知道服务器名称与启动命令信息,以便通过 JSON-RPC 调用资源、工具、提示等能力。实际客户端的配置不依赖服务端的实现细节,但上述信息有助于理解如何在集成场景中对接服务器。
  • 基本使用方法
    • 启动服务器后,客户端通过 MCP 协议的 JSON-RPC 请求与服务器进行交互,完成资源读取、工具调用与提示渲染等能力的访问。
    • 在多提供商场景中,服务器会注册各提供商对应的工具,并对外暴露如 list_providers、ping_provider、help_provider、provider_metrics 等全局工具,以及 per-provider 的 ask_<provider>、ping_<provider>、help_<provider> 等工具。
    • 认证与安全:服务器在实现中包含会话管理、权限校验、输入校验和输出大小限制等安全机制,确保对外暴露接口的鲁棒性。
  • 进一步探索
    • 阅读仓库中的开发与测试脚本,了解工具注册、请求分发、会话管理等实现细节。
    • 结合实际需要,向 MCP 客户端提供商配置提供键入信息以适应不同的提供商 CLI、参数结构与输出格式。

服务器信息