Knowledge Agent MCP 服务器

使用说明(Markdown格式)如下所示:

项目简介 Knowledge Agent 的 MCP 服务器实现,提供标准化的资源管理、工具注册与执行,以及 Prompts 定义与渲染能力,允许 LLM 客户端通过 JSON-RPC 与服务器交互,扩展后端能力以支持多种数据源与外部功能。

主要功能点

  • MCP 核心能力:托管 Resources(资源)、注册与执行 Tools(工具)、定义与渲染 Prompts(提示模板),并通过 JSON-RPC 对外暴露能力。
  • 传输协议扩展:支持多种传输协议(如 Command/stdio、SSE、Streamable 等),方便在不同部署场景中接入 MCP 客户端。
  • 服务器端会话与安全:实现会话管理、能力声明与基于配置的身份认证与权限控制,便于对接外部代理或大模型客户端。
  • 自动化 MCP 服务实例化:支持基于配置创建多个 MCP 服务器,按名称、传输类型、命令与端点进行灵活组合。
  • 与 ADK/Langfuse 等生态集成:与现有的 Agent、A2A、Keycloak、Langfuse 等模块协同工作,提供统一的上下文服务框架。

安装与运行步骤

  1. 下载依赖并构建
  • 参考仓库中的构建脚本与模块,确保 Go 环境与相关依赖就绪后,使用 go build 构建服务端可执行文件。
  1. 配置 MCP 服务器
  • 使用 MCP 服务器的配置项配置 MCP 服务器,包含服务器名称、传输类型、命令路径、参数、超时时间、认证等。服务器端配置示例将以 JSON 提供给 MCP 客户端(下方提供示例 JSON)。
  1. 启动 MCP 服务
  • 通过适配的启动命令启动 MCP 服务,确保日志输出正常显示各服务器实例的创建与启动过程。
  • 如需生产化部署,建议结合容器化、健康检查与就绪探针等机制确保高可用。
  1. 配置 MCP 客户端
  • MCP 客户端的配置为 JSON(示例在下方给出),用于描述需要连接的 MCP 服务器及启动参数。客户端本身不需要编写 MCP 服务器端代码,只需提供正确的服务器启动命令和参数即可。

服务器配置(MCP 客户端需要的 JSON 配置示例) 下面给出准确的示例,描述一个名为 filesystem 的 MCP 服务器,以及一个可选的 SSE 传输服务端口。该配置仅用于 MCP 客户端的启动信息展示,不要求在 MCP 服务器端代码中直接使用。

{ "servers": [ { "name": "filesystem", "description": "本地文件系统 MCP 服务器", "enabled": true, "transport_type": "command", "command": { "path": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"], "env": { "WORKSPACE": "/workspace" }, "inherit_env": ["PATH"] }, "endpoint": "", "auth": { "type": "bearer", "token_env": "MCP_FS_TOKEN" }, "tool_filter": [], "timeout": 30 }, { "name": "github-datastore", "description": "GitHub 数据源 MCP 服务器", "enabled": true, "transport_type": "sse", "endpoint": "http://mcp-servers.local/github", "auth": { "type": "bearer", "token_env": "MCP_GITHUB_TOKEN" }, "tool_filter": [], "timeout": 60 } ], "retry": { "enabled": true, "max_retries": 3, "initial_delay": "500ms", "max_delay": "30s", "backoff_multiplier": 2.0 } }

说明:

  • 上述示例展示了两个 MCP 服务器实例。第一个通过命令传输(command/stdio)的方式启动一个本地文件系统服务,其它参数按实际实现书写。第二个示例展示了 SSE 传输的服务器端点配置。
  • client 侧的 JSON 仅用于描述服务器启动命令、端点、认证、超时等元信息,实际 MCP 服务器实现代码会按配置启动对应的传输层并暴露工具接口。

基本使用方法

  • 启动后,客户端可通过 JSON-RPC 调用 MCP 服务器暴露的资源、工具与提示模板。
  • 如需扩展,只需在配置中添加新的 MCPServerConfig 条目,服务器自动暴露对应的工具集合。
  • 如要与 Langfuse、Keycloak、A2A 等进行集成,确保相应的依赖服务已启动并在配置中正确启用。

注意事项

  • MCP 服务端需要正确配置传输类型与命令参数,确保子服务器可被正确启动并对外暴露接口。
  • 安全策略(Token、OAuth、Basic 等)应与调用方对等,避免未授权访问。
  • 生产环境建议结合日志、健康检查、指标和资源限额进行运维管理。

关键词: 模型上下文协议, 工具注册, 资源管理, JSON-RPC, 多传输协议

分类ID: 6

服务器信息