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)以及相关统计,必要时可回退到原文以避免语义损失。