token-compressor MCP 服务器

使用说明(Markdown 格式)

  • 项目简介

    • token-compressor 提供 MCP 服务器,暴露 compress_prompt 工具,实现本地提示压缩与嵌入验证,帮助在不损失语义的前提下减少提示 token 数量,降低成本。
    • 服务器当前实现包括两种形式:一个是基于纯 stdio 的简单 MCP 服务器(mcp_server.py),另一个是基于 MPL/MCP 框架的服务器实现(token_compressor_mcp/server.py),都可提供同样的 compress_prompt 能力。
  • 主要功能点

    • 通过 MCP 暴露一个工具 compress_prompt,输入文本返回压缩后的文本及元信息(模式、覆盖度、token 统计等)。
    • 两阶段流程:LLM 重写以尽量保留条件、否定等语义特征;嵌入验证确保压缩后与原文在语义上的接近度超过阈值,否则回退到原文。
    • 支持 raw_fallback(仅在无法可靠压缩时返回原文)与 compressed 模式,并给出详细状态字段。
    • 兼容 MCP 客户端(如 Claude Code),可通过配置 MCP 服务器进行连接与调用。
    • 运行依赖:本地 Ollama 服务,llama3.2:1b 模型,以及 nomic-embed-text 嵌入模型;Python 依赖包括 numpy、ollama 等。
  • 安装步骤

    • 安装前提
      • 安装并运行 Ollama,本地模型包括 llama3.2:1b(用于压缩)与 nomic-embed-text(用于嵌入比较)。
      • 安装 Python 3.10 及以上版本。
    • Python 依赖
      • pip 安装 numpy、ollama 等必要依赖(具体要求在运行环境中可通过测试用例看到的依赖方式)。
    • 运行方式
      • 简单 stdio MCP 服务器:在命令行执行 python3 mcp_server.py
      • 基于 MCP 框架的服务器:在命令行执行 python3 -m token_compressor_mcp(或等效的入口脚本),启动后通过标准输入/输出与 MCP 客户端通信。
  • 服务器配置(MCP 客户端所需信息,JSON 格式,含 server name、command、args 等)

    • 方案A(使用 simple stdio 服务器 mcp_server.py): { "serverName": "token-compressor", "command": "python3", "args": ["mcp_server.py"] }

    • 方案B(使用框架式服务器 token_compressor_mcp,推荐在生产环境使用): { "serverName": "token-compressor", "command": "python3", "args": ["-m", "token_compressor_mcp"], "cwd": "/path/to/token-compressor" // 放置仓库根目录的位置 }

    注释:以上配置用于 MCP 客户端建立连接,客户端实际不需要包含代码,仅需要知道如何启动服务器及其入口参数。

  • 基本使用方法

    • 启动服务后,在支持 MCP 的客户端中注册服务器信息(名称与启动命令),客户端即可通过 compress_prompt 工具传入 text 进行压缩,并获得压缩后的文本以及模式、覆盖度、tokens 等元信息。
    • 常用交互要点:提供文本后获取输出文本、查看 mode(compressed/raw_fallback/skipped)以及相关统计,必要时可回退到原文以避免语义损失。

服务器信息