LLM上下文提炼服务

Middleman是一款企业级模型上下文协议(MCP)服务器,作为原始数据与昂贵LLM之间的信号过滤器,通过提炼和总结数据来显著降低API成本。

  • by JithunMethusahan
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 JithunMethusahan/middleman

使用说明

Middleman: The Context Refiner MCP 🚀

Enterprise-grade context distillation for LLMs. Cut API costs by 95%.

Middleman是一个企业级的模型上下文协议(MCP)服务器,旨在充当混乱的原始数据和昂贵的LLM之间的“信号过滤器”。 它在进入AI之前会获得另一个MCP输出(例如维基百科),对其进行总结,并将其发送给AI以保存令牌。

现实世界影响

源数据 原始代币 中间人信号 代币减少 成本节约
维基百科(全文) ~25000 ~800 98.8% 💰💰💰
Reddit讨论 ~15000 ~600 96% 💰💰💰

✨ 主要特点

  • 本地文件处理: 局部高密度蒸馏 .txt, .log,以及 .md 文件夹。
  • 手术焦点查询: 告诉中间人你到底在找什么(例如。, “只关注星舰发动机的技术规格”)以确保摘要具有相关性。
  • XML结构化输出: 以严格格式返回数据 <summary><core_facts>...</core_facts></summary> 模式,针对机器对机器通信进行了优化。
  • 基于FastMCP构建: 模型上下文协议的健壮Python实现。

🛠️ 技术栈

组件 技术
运行时 Python 3.10+
协议 MCP(模型上下文协议)
主引擎 meta llama/lama-3.2.3-3b指令:免费(通过OpenRouter)
编排 FastMCP

🚀 安装和设置

1.先决条件

2.克隆和安装

git clone https://github.com/JithunMethusahan/middleman.git
cd middleman
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt![alt text](image.png)

3.环境配置

在您的环境中设置API密钥:

export OPENROUTER_API_KEY="your_key_here"
# Windows: $env:OPENROUTER_API_KEY="your_key_here"

4.验证连接:

运行附带的基准测试,以确保代理和压缩器正常工作:

python tests/experiment.py

4.与克劳德桌面/光标集成

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "middleman": {
      "command": "/path/to/your/venv/bin/python",
      "args": ["/path/to/middleman/server.py"],
      "env": {
        "OPENROUTER_API_KEY": "sk-or-v1-..."
      }
    }
  }
}

5.连接下游工具(代理网关)

Middleman是一个通用代理。它不是用工具硬编码的;相反,它“包装”了其他MCP服务器。您可以通过根目录中的servers.json文件管理这些连接。

1.配置您的工具(servers.json)

将任何兼容MCP的服务器添加到此文件中。中间人将在后台自动启动这些程序并拦截其数据。

{
  "fetch": {
    "command": "python",
    "args": ["-m", "mcp_server_fetch"]
  },
  "sqlite": {
    "command": "uvx",
    "args": ["mcp-server-sqlite", "--db-path", "test.db"]
  }
}

2.人工智能如何使用网关

主AI(Claude/Cursor)通过delegate_and_refine工具与中间人通信。此工具充当“安全管道”

工具参数:

1.target_server:在servers.json中定义的名称(例如“fetch”)。

2.target_tool:该服务器上的实际工具名称(例如,“fetch”或“query_db”)。

3.tool_kwargs_json:json格式的下游工具的参数。

4.focus_query:您希望中间人从由此产生的膨胀中提取的特定信号。

3.工作流程示例

当你要求人工智能研究一个主题时,其内部逻辑如下:

AI调用:委派和重新定义

(target_server="fetch", target_tool="fetch", tool_kwargs_json='{"url": "https://wiki..."}', focus_query="Founding date")

Fetch服务器:下载15000个原始维基百科HTML令牌。

中间人:拦截15000个代币。.

Llama:将成立日期提取到一个20个标记的XML块中。meta Llama/lama-3.2.3-3b指令:免费

AI结果:仅接收20个标记的XML。代币节省:99.8%。

您可以免费使用的模型

1.🦙 Meta(拉玛家族)

Meta的开源模型目前主导着免费版

meta llama/lama-3.3-70b-instruction:免费(一般任务的首选)

meta llama/lama-3.2-3b指令:免费(速度极快,重量轻)

元美洲驼/lama-3.1-405b:免费(巨型模型,稍慢)

2.🌐 谷歌

google/gemini-2.0-flash-exp:免费(100万个代币上下文窗口)

3.🧠 深度求索

deepseek/deepseek-r1:免费(最适合深度逻辑思维)

🤝 贡献与定制

Middleman的设计是可扩展的。想要添加对PDF、YouTube成绩单或SQL数据库的支持吗?

  1. 分叉回购。
  2. 将您的工具添加到 server.py.
  3. 提交拉取请求。

如需定制企业集成或咨询,请通过以下方式联系作者 GitHub问题.


📄 许可证

根据Apache许可证2.0版(“许可证”)许可; 除非遵守许可证,否则您不得使用此文件。 您可以在以下网址获得许可证副本:http://www.apache.org/licenses/LICENSE-2.0