Agently-MCP 服务器实现

使用说明(Markdown 格式):

  • 项目简介
    • Agently 提供一个完整的 MCP 服务器实现,用以向 MCP 客户端暴露资源、工具、提示模板等能力,支持会话管理、能力声明以及多种传输协议(如 Stdio、SSE、WebSocket)的通信形式。
  • 主要功能点
    • MCP 服务端核心:实现 MCP 服务器端,处理客户端的资源、工具、提示等请求,返回标准的 JSON-RPC/响应结构。
    • 会话与认证:内置会话管理和授权策略,通过 MCP 客户端在后端建立认证上下文,支持 Bearer、Cookie 等认证模式的协同工作。
    • 工具与资源托管:提供资源发现、工具注册/执行以及对 prompt 模板的管理与渲染能力,便于 LLM 调用外部工具与获取上下文。
    • 多传输协议支持:通过配置可使用 stdio、SSE、HTTP streaming 等传输方式,与客户端建立通信。
    • 工作流与 elicitations:内置 elicitations 路由与对话上下文持久化,支持对话全局上下文的可追溯性。
    • 与 Agently 的整合:与 Agently 的工作流、代理、对话、MCP 客户端等模块深度对接,确保 UI/CLI 端一致的 MCP 行为。
  • 安装与运行步骤
    • 构建
      • 使用 Go 构建本仓库中的服务可执行文件(默认包含 MCP 服务器实现)。
    • 启动 MCP 服务器(示例)
      • 运行 agently 的服务器模式以启动 HTTP 服务,默认监听端口8080,提供 MCP 相关的接口。
    • 启动 MCP 客户端
      • MCP 客户端需要配置启动信息以连接 MCP 服务器(客户端配置见下方“服务器配置”部分的 JSON 示例)。
  • 服务器配置(MCP 客户端需要的配置,示例 JSON) 服务器名称: agently-local 服务器启动命令与参数示例(JSON,供 MCP 客户端在工作区中记录,用于连接 MCP 服务器;客户端本身不需要理解或执行该配置,只需知道如何把信息放到工作区以便与 MCP 服务器建立连接): { "server": "agently-local", "transport": { "type": "stdio", "clientTransportStdio": { "command": "agently", "arguments": ["serve"] } } } 说明:
    • server 字段是 MCP 客户端端用来识别服务器的名称。
    • transport.type 指定传输机制为标准输入输出(stdio),即 MCP 客户端通过进程间通信与服务器交互。
    • clientTransportStdio.command 为服务器的启动命令(此处对应仓库中实现的 agently 可执行文件名,具体按实际部署调整)。
    • clientTransportStdio.arguments 指定服务器启动所需的参数(如 "serve" 表示以服务模式启动)。
  • 基本使用方法
    • 在服务器上启动 MCP 服务端(执行 agently serve,监听默认端口8080,或通过 -addr 指定端口)。
    • 在 MCP 客户端配置中记录服务器信息(如上面的 JSON 示例),以便建立通信连接。
    • MCP 客户端可通过定义的工具/资源调用、资源查询、PROMPT 渲染等功能与服务器交互,获取上下文信息与执行结果。
    • 如需进一步与 Agently 的其他模块集成,可以通过提供的配置及插件将工具、资源、Prompts 等对接上去。
  • 备注
    • 本实现包含可运行的服务器端代码,且具备明确的 MCP 功能模块:资源、工具、Prompts 以及会话与鉴权管理;非单纯示例或测试代码。

服务器信息