Athena MCP 服务器实现

使用说明

  • 项目简介

    • 本仓库实现了一个 MCP 服务器,核心在于暴露资源、工具和 Prompt 三类能力给 MCP 客户端使用。服务器通过 FastMCP 框架实现,支持标准的 JSON-RPC 调用风格,提供对资源的读取、工具调用、以及提示模板的获取和渲染等能力,同时具备会话管理、权限治理和多传输模式的支持。
  • 主要功能点

    • 资源管理与数据访问:提供对内置资源的读取与查询能力,便于 LLM 客户端在上下文中访问结构化信息。
    • 工具注册与执行:提供若干工具函数(如 search、quicksave、health_check、recall_session 等),LLM 客户端可调用外部功能并获取结构化响应。
    • Prompt 模板定义与渲染:服务器端含有对 Prompt 模板的定义与渲染接口,便于灵活地渲染对话前置模板或对话引导。
    • JSON-RPC 通信:通过 MCP 的接口接收客户端的请求并返回标准的 JSON-RPC 响应。
    • 会话与治理:内置会话管理、权限检查、以及简单的治理/审计入口,确保能力的安全使用。
    • 多传输协议支持:默认以标准输入输出(stdio)传输,可通过 --sse 启用 SSE 传输,方便多客户端并发接入。
  • 安装与运行

    • 按项目结构,直接在仓库根目录执行运行即可(Python 环境需具备依赖;具体依赖在项目中通过快速导入方式完成)。
    • 运行方式示例(不涉及代码块,仅描述命令要点):
      • 以_stdio传输启动 MCP 服务器:python -m athena.mcp_server
      • 以 SSE 传输启动 MCP 服务器:python -m athena.mcp_server --sse --port 8765
    • 当服务器启动后,MCP 客户端可以通过配置文件中指定的 server_name、启动命令和参数与服务器建立连接,进行资源读取、工具调用和 Prompt 获取等操作。
  • 服务器配置(客户端连接信息,JSON 格式) { "server_name": "Athena MCP Server", "command": "python3 -m athena.mcp_server", "args": ["--sse", "--port", "8765"], "transport": "sse", "description": "MCP Tool Server for Athena: 提供资源、工具和 Prompts 的统一服务入口" } 注释说明:

    • server_name: MCP 服务器的名称标识,用于客户端区分不同服务器场景。
    • command: 启动 MCP 服务器的命令(不包含客户端代码自身的实现),在本仓库中对应为启动 mcp_server 的命令。
    • args: 启动参数,--sse 表示使用 SSE 传输,--port 指定服务端口。
    • transport: 客户端应使用的传输模式,应该与服务器实际暴露的传输能力保持一致(此处示例为 SSE)。
    • description: 对该 MCP 服务器的简要描述,便于客户端或运维人员理解用途。
  • 基本使用方法

    • 启动后,客户端发送 MCP 请求(如读取资源、执行工具、获取 Prompt)并接收 JSON-RPC 格式的响应。
    • 客户端应遵循 MCP 的调用约定,传入正确的请求参数,服务器将返回标准的 JSON-RPC 响应。
    • 如需扩展能力,可在服务器端新增 Tool/Resource/Prompt,并通过 MCP 客户端完成相应的调用。
  • 注意事项

    • MCP 客户端与服务器的具体 JSON-RPC 请求/响应结构遵循 MCP 规范,确保双方协议版本一致。
    • 服务器提供的工具与资源需要遵循权限治理策略,确保在 Secret Mode 等场景下内容的安全输出。
    • 如需要多客户端并发,优先考虑 SSE 传输模式,结合服务器日志和审计机制进行可观测性管理。

服务器信息