使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个基于 Model Context Protocol (MCP) 的后端服务器,用于向 LLM 客户端提供 Esa 的上下文信息、工具能力以及可自定义的 Prompt 模板。核心功能包括:管理并暴露 Resources、注册并执行 Tools、定义并渲染 Prompts,使用 JSON-RPC 风格的通信协议,默认通过 STDIO 传输进行交互,方便与本地或容器化的 AI 助手集成。
  • 主要功能点

    • 资源(Resources):暴露和渲染可用的上下文资源,例如最近文章等,支持跨会话的上下文共享。
    • 工具(Tools):注册并实现对 Esa API 的各种操作,如获取团队信息、文章、评论、分类、标签等,提供统一的输入校验和错误处理。
    • 提示模板(Prompts):定义并渲染用于与 LLM 交互的 Prompt,例如对 Esa 文章的摘要等。
    • 会话与传输:通过 MCP 的服务器端实现,当前使用 STDIO 传输进行标准输入输出的 JSON-RPC 通信,便于与本地或容器化的对话代理对接。
    • 安全和扩展性:结合 MCPContext 提供会话上下文,具备可扩展的工具、资源和提示结构,便于后续扩展。
  • 安装与运行

    • 依赖与构建
      • 需要 Node.js 环境,项目采用 TypeScript 开发,推荐使用 Node.js 20+
      • 安装依赖并构建(在项目根目录执行):安装依赖后执行构建命令将源码编译为可运行的二进制形式
    • 运行方式
      • 直接在本地环境运行(假设已安装并构建):
        • 使用标准输出输入的方式启动 MCP 服务器,服务器将监听并通过 STDIO 进行 MCP 协议通信
      • 容器化运行(推荐,简化依赖与环境管理):
        • 以 Docker 方式拉取镜像 ghcr.io/esaio/esa-mcp-server,配置环境变量 ESA_ACCESS_TOKEN 和 LANG 后启动即可
        • 参考方式:在容器中设置 ESA_ACCESS_TOKEN(ESA 的访问令牌,用于 Esa API 调用)以及 LANG(界面语言,例如 ja 或 en),镜像会提供 MCP 服务器的 STDIO 传输端口
    • 客户端配置示例(必须由 MCP 客户端提供,以下为描述性示例,非代码)
      • 服务端名称(server.name)通常为 esa(用于标识该 MCP 服务)
      • 启动命令(command):docker(若使用容器化部署)或 npx/node 命令(根据实际部署方式),用于启动 MCP 服务器
      • 启动参数(args):如运行镜像时的参数,例如运行容器、传入 ESA_ACCESS_TOKEN、LANG 等环境变量,以及镜像名称等
      • 额外配置仍需客户方在自己的配置文件中填写,示例结构如下(以 JSON 表示,实际项目中按需使用): { "server": { "name": "esa", "version": "<package.json 里的版本>" }, "command": "docker", "args": ["run", "-i", "--rm", "-e", "ESA_ACCESS_TOKEN", "-e", "LANG", "ghcr.io/esaio/esa-mcp-server"], "env": { "ESA_ACCESS_TOKEN": "<你的 ESA 访问令牌>", "LANG": "ja" } }
      • 注:MCP 客户端在连接 MCP 服务器时需要使用上述配置信息中的 server.name、command、args 等字段来启动和连接服务器(实际客户端配置可能以不同格式提供,此处给出可理解的示意)
  • 基本使用方法

    • 启动阶段
      • 在本地或容器中启动 MCP 服务器,确保 ESA_ACCESS_TOKEN 等必要环境变量已经设置
      • 服务器启动后,MCP 客户端即可通过 STDIO 传输与服务器进行 JSON-RPC 请求/响应
    • 常用操作
      • 使用 Tools 进行 Esa API 的操作,如获取团队、查询文章、发表评论等
      • 使用 Resources 读取和渲染上下文数据,提供给 LLM 进行推理与回答
      • 使用 Prompts 模板,获取可渲染的 Prompt 以驱动 LLM 的交互
    • 升级与扩展
      • 该实现设计为可扩展,新增资源、工具和提示模板时,需在相应模块中注册并暴露,确保输入校验和错误处理的一致性
  • 注意事项

    • 使用前请确保 ESA_ACCESS_TOKEN 具备所需权限,并正确配置 ESA API 的访问域名
    • STDIO 传输在容器化环境下需要正确处理输入输出流,确保日志可观测性和错误追踪
    • 若要与 Claude Desktop 等 MCP 客户端对接,请按照对应客户端的配置要求设置启动命令与环境变量

信息

分类

网页与API