Attention Matters MCP 服务端

使用说明(简明、直观)

  • 项目简介

    • 这是一个实现 MCP(Model Context Protocol)的后端服务器。它把记忆资源、可调用工具、以及提示模板统一托管,允许 LLM 客户端通过 JSON-RPC 的方式读取资源、执行工具、获取上下文提示等,从而在对话中获得一致、可扩展的上下文服务。
  • 主要功能点

    • MCP 服务器核心:实现对 MCP 请求的处理、响应与通知,提供会话级上下文管理和能力声明。
    • 资源管理与数据访问:将“记忆资源(Neighborhoods/Occurrences)”等以规范形式托管,便于 LLM 客户端读取和组合上下文。
    • 工具注册与执行:支持多种工具接口,LLM 客户端可调用以执行外部功能(如查询、导入导出、统计等)。
    • Prompt/模板渲染:通过上下文模板与输出格式帮助 LLM 客户端获取标准化的 Prompt 与示例输出。
    • 传输协议与握手:以 MCP 的 JSON-RPC 形式通信,支持 stdio(服务器内部实现)、SSE、WebSocket 等传输方式的扩展实现。
    • 会话与能力声明:服务器端维护会话状态、记忆能力、以及提供的服务能力描述,保障可扩展性与安全性。
  • 安装步骤

    • 需求前提:需要 Rust 环境(Cargo)用于构建服务器。仓库中已经提供了 am-cli 组件,包含服务端实现。
    • 构建与安装
      • 选用 Cargo 构建并安装:在仓库根目录或工作区内执行相应构建命令,得到 am 可执行文件。
    • 启动服务器
      • 运行命令:am serve
        • 该命令基于 MCP 服务器实现,通过 stdio 传输进行 MCP 握手与请求响应。
        • 启动后服务器将等待 MCP 客户端的初始化握手,然后进入主循环,接收 JSON-RPC 请求并返回响应。
  • 服务器配置(MCP 客户端需要的最小信息)

    • 配置作用:MCP 客户端需要知道服务器端信息(名称、启动命令和参数)以建立连接并通过 MCP 协议进行通信。下面给出一个符合仓库实现的配置示例描述,仅用于参考配置,不包含代码块。
    • 配置要点
      • 服务器名称:用于标识 MCP 服务端的名称,便于客户端管理和日志区分。
      • 启动命令:用于启动 MCP 服务端的可执行文件命令。
      • 启动参数(args):服务器启动时需要传递的参数集合。
    • 示例(JSON 形式描述,便于 MCP 客户端解析):{"name":"attention-matters-mcp","command":"am","args":["serve"]}
      • 说明:此配置表示客户端应通过命令 am serve 启动服务器并使用标准输入/输出(stdio)进行 MCP 握手与后续通信。实际握手流程遵循 MCP 协议,客户端需发送 initialize 请求,随后发送 notifications/initialized 通知以完成握手。服务器会返回 JSON-RPC 响应或通知。
    • 传输模式
      • 当前实现使用 stdio 传输(stdin/stdout)。理论上也支持 SSE、WebSocket 等传输模式(需相应客户端实现和服务端适配)。
  • 基本使用方法

    • 连接与请求
      • 使用 MCP 客户端通过标准输入输出与 am serve 进行通信。最初路径是发送 initialize 请求,包含协议版本、能力等字段,随后发送 initialized 通知以完成握手。
    • 常用操作
      • 读取资源、查询记忆、调用工具、获取和导出上下文等均通过 JSON-RPC 请求完成,服务器返回结构化的 JSON-RPC 响应。
    • 典型工作流(简述)
      • 客户端启动并握手。
      • 客户端提交 am_query 请求以获取上下文 recall。
      • 客户端根据返回的上下文继续对话,并在需要时调用 am_buffer、am_ingest、am_stats、am_export、am_import、am_feedback 等工具。
      • 客户端可通过 am_query_index、am_retrieve 等实现两阶段检索,提升大规模记忆的可控性与效率。
  • 运行与测试

    • 构建后执行 am serve 启动服务器。
    • 使用 MCP 客户端进行握手并发送请求,确保服务端能够正确处理 MCP JSON-RPC 格式的请求与响应。
    • 如需本地验证,仓库包含大量集成测试和示例用例,可用于对照运行。
  • 注意事项

    • MCP 客户端与服务端的协作依赖于严格的 JSON-RPC 数据结构和握手流程,请确保客户端实现与服务端实现的协议版本兼容。
    • 由于服务端实现包含会话管理、资源管理、工具执行、以及多种查询/导出/导入功能,请在生产环境中对权限和数据持久化进行充分评估与保护。

服务器信息