mcpField
M
MCP Cross-Model Delegation

MCP Cross-Model Delegation

本地服务
github.com/Jostophe-021AI 与智能体05 周前更新

关于 MCP Cross-Model Delegation

MCP Cross-Model Delegation 是用于在不同语言模型间路由有限文本任务的 Python 框架和基准测试命令行工具。它应用调用方约束,并核对提取的引文与输入上下文;评估结果以实测为准,不宣称未经验证的提升。

主要功能

  1. 01向 Gemini 或 Anthropic 委派文本任务
  2. 02按隐私、成本和延迟约束路由
  3. 03核对引文与输入上下文
  4. 04运行确定性离线基准测试
  5. 05查看路由决策及原因

适用场景

  1. 01在隐私或延迟限制下选择提供方
  2. 02根据来源上下文核验提取内容
  3. 03通过基准测试比较委派配置
  4. 04无需 API 密钥离线测试路由行为

MCP 相关

它以可流式传输的 HTTP MCP 服务运行,提供任务委派、结构化发现提取和本地引文核验工具。路由由策略和提供方约束控制。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jostophe-021-mcp-cross-model-delegation": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GEMINI_API_KEY",
"-e",
"ANTHROPIC_API_KEY",
"ghcr.io/jostophe-021/mcp-cross-model-delegation:1.0.0"
],
"env": {
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
}
}
}
}
启动命令docker run -i --rm -e GEMINI_API_KEY -e ANTHROPIC_API_KEY ghcr.io/jostophe-021/mcp-cross-model-delegation:1.0.0
需要配置的环境变量
GEMINI_API_KEY密钥Optional Gemini API key; configure at least one provider at runtime.
ANTHROPIC_API_KEY密钥Optional Anthropic API key; configure at least one provider at runtime.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/jostophe-021/mcp-cross-model-delegation:1.0.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Cross-Model Delegation

English | Français

Tests Security Python 3.12 and 3.13 License: Apache-2.0

一个开放、可复现且注重安全的框架,用于衡量、比较、路由和验证异构大模型之间有明确边界的任务。

一个 Python 核心同时驱动 MCP 服务和基准测试 CLI:衡量 → 比较 → 路由 → 验证 → 改进。V1 支持 Gemini、Anthropic,以及用于离线测试的确定性假提供方。路由过程明确,引用证据会在本地核验;未经衡量,不会宣称质量、成本或延迟有所改善。

flowchart LR
    A["TASK + CONTEXT"] --> B["Caller constraints"]
    B --> C["Router"]
    H["Benchmark history"] -. "weighted policy" .-> C
    C --> D["Gemini or Anthropic"]
    D --> E["Result"]
    E --> F["Local quote check<br/>for extraction"]
    E --> G["Optional benchmark evaluation"]
    F --> G

你现在可以做什么

  • 通过统一接口,将有明确边界的文本任务委派给 Gemini 或 Anthropic。
  • 在选择提供方之前应用隐私、能力、成本和延迟限制;查看路由原因。
  • 根据提供的上下文核验提取出的引用。
  • 无需 API 密钥即可运行确定性的离线基准测试,也可以选择进行跨提供方的实时实验。

有何不同

同一循环负责衡量、路由、执行、验证证据并评估结果。默认策略为手动;使用 rules 和 benchmark_weighted 需要明确选择启用。历史评分不代表未来的质量或延迟。请参阅架构、方法和用例。

5 分钟快速上手

支持 Python 3.12 或 3.13,以及 uv。Gemini API 密钥和 Anthropic API 密钥彼此独立;可以配置其中一个或两个。Claude 订阅不包含 Anthropic API 额度。

git clone https://github.com/Jostophe-021/mcp-cross-model-delegation.git
cd mcp-cross-model-delegation
uv sync --locked --extra all --extra test
uv run crossmodel doctor
uv run crossmodel providers
uv run crossmodel bench run benchmarks/datasets/basic.jsonl

上方的基准测试使用 FakeProvider,无需 API 密钥。**仅用于软件验证——不是大模型性能测试结果。**请参阅四个离线示例。

试用真实提供方

只有在准备调用真实提供方时,才设置 GEMINI_API_KEY 或 ANTHROPIC_API_KEY。**调用实时 API 可能会产生提供方费用。**请先使用合成文本或可再分发的文本,并在运行实时基准测试前检查计划的调用次数。

在此代码仓库中,使用 uv sync --locked --extra gemini 或 uv sync --locked --extra anthropic 安装所需的适配器即可。基础软件包在离线基准测试中不需要任何提供方 SDK。发布到 PyPI 是单独的发布步骤;在 PyPI 发布得到验证之前,请从代码仓库安装。

在你自己的环境中设置 GEMINI_API_KEY 和/或 ANTHROPIC_API_KEY。.env.example 仅展示变量名;切勿提交 .env,也不要将密钥粘贴到命令、议题或聊天中。如果 Anthropic 是你的手动默认提供方,请设置 DEFAULT_PROVIDER=anthropic。运行 crossmodel serve,即可在 http://127.0.0.1:8000/mcp 开放可流式传输的 HTTP MCP 服务。由于该服务没有面向公众的客户端身份验证,因此会拒绝 MCP_HOST=0.0.0.0。

MCP 工具

工具用途
delegate_task委派一项范围明确的任务(TASK),可选提供上下文(CONTEXT)、提供方、策略和约束。
extract_findings提取结构化发现,然后在本地的上下文(CONTEXT)中定位引文。
gemini_delegate_task, gemini_extract_findings使用 Gemini 和手动路由的 V0.1 兼容别名。

通用工具默认采用 policy="manual"。provider 依次使用 DEFAULT_PROVIDER、已配置时的 Gemini,以及第一个已配置的提供方。可选择使用 policy="rules" 或 policy="benchmark_weighted"。如需在 MCP 中进行加权路由,服务运营者需将 CROSSMODEL_HISTORY_PATH 设为基准测试生成的本地或公开 history.json 路径;调用方不能指定文件路径。约束包括 allowed_providers、privacy_mode、approved_providers、max_cost、max_latency、require_structured_output、require_evidence、fallback_allowed 和显式的 allow_unknown_cost。严格的成本或延迟上限会拒绝未知值。privacy_mode="local_only" 会以 NO_ELIGIBLE_PROVIDER 错误拒绝所有已纳入的外部提供方。

这些工具只接受调用方提供的文本。它们不会读取文件、电子邮件、Drive 或应用,不会执行代码,也不会在其他服务中采取行动。由调用方决定哪些内容可以离开本机。TASK 和 CONTEXT 保持为不同的 JSON 字段;CONTEXT 中的指令不受信任。这是缓解措施,而非安全保证。安全模型详细说明了相关限制。

说明路由

crossmodel route explain --policy rules --constraints '{"privacy_mode":"external_allowed"}'
crossmodel route explain --provider gemini --policy manual
crossmodel route explain --policy benchmark_weighted --history results/<run-id>/history.json

这不会发起 API 调用。它会打印符合条件和被拒绝的提供方、原因代码、回退链和评分组成部分。评分只使用已测得的通用指标;缺失值仍为 null。

基准测试

默认运行仅使用 FakeProvider;绝不会调用付费 API。它测试的是软件行为,而非大模型研究假设。

crossmodel bench run benchmarks/datasets/basic.jsonl
crossmodel bench report results/<run-id>
crossmodel bench generate /tmp/long.jsonl --size medium --seed 42

每次运行都会写入 manifest.json、results.jsonl、summary.json 和 history.json。结果默认不包含 TASK、CONTEXT 和响应;其中包含所用确切上下文的 SHA-256。数据集包含小型、经人工审核的合成算术、提取、证据、提示词注入、错误检测和长上下文任务。生成的长上下文会记录字符数、种子、生成器版本,以及在测量前设为 null 的 tokens: null。

进行实时实验时,请使用 --live --provider gemini --orchestrator anthropic(或你配置的提供方)。CLI 会在执行前打印提供方、条件、任务数、重复次数和计划的 API 调用数。使用 --repetitions N --shuffle --seed 42 可重复运行并随机排列条件顺序。并发数为 1。若没有单独提供带日期的定价来源,成本将显示为 unavailable;不会硬编码价格。--save-responses 会写入原始答案和发现,因此只能用于可再分发的数据。四种条件分别是 orchestrator_only、fixed_delegation、structured_delegation 和 routed_delegation;V1 测量每种条件的一次模型调用,不实现第二次由编排器进行的综合调用。请参阅基准测试格式和方法。

开发与构建

uv sync --locked --extra all --extra test
uv run pytest -q
uv run ruff check gateway.py server.py contracts.py routing.py execution.py evidence.py cli.py providers benchmarks tests
uv build
docker build -t mcp-cross-model-delegation:1.0.0 .

Docker 镜像不包含 API 密钥。在 Linux 下,docker run --rm --network host --env-file .env mcp-cross-model-delegation:1.0.0 会将 MCP 监听器限制在主机环回接口上。Docker Desktop 的主机网络行为因环境而异;使用本地 Python 更简单。发布工作流会发布 ghcr.io/jostophe-021/mcp-cross-model-delegation:1.0.0,并附带 OCI 元数据和 SPDX SBOM。可选的 OpenAI Secure MCP Tunnel 可让兼容的远程客户端在无需开放入站端口的情况下进行连接;此代码库不包含隧道标识符或凭据。

MCP Registry

版本 1.0.0 已被官方 MCP Registry 发布者接纳,标识为 io.github.Jostophe-021/mcp-cross-model-delegation。其声明的程序包是公开的 GHCR 镜像。Registry 仍是预览服务;依赖发现功能前,请先查看其当前列表。

研究

本项目旨在测试委派何时有帮助、何时没有帮助,以及会带来哪些权衡。请先阅读方法、研究路线图、合成数据集和基准测试格式、结果架构以及首次实况实验指南。仅发布非敏感的原始结果、摘要和局限性;引用版本时请使用 CITATION.cff。

构建你自己的版本

Fork → Provider / Policy / Evaluator / Dataset → Your derivative project
                                                ↘ Optional upstream contribution

扩展指南介绍了 V1 接口及其当前限制。贡献指南说明了如何使分支保持与上游同步。

分支和衍生项目

我们明确欢迎分支和改编。在 GitHub 上,如果你希望保留与上游的关联,请使用 Fork。根据 Apache-2.0 许可及适用的署名要求,也允许创建独立的衍生项目。欢迎将通用改进贡献给上游;分支可以自由发展。请保留适用的 LICENSE 和 NOTICE,标明你的更改,并在相关情况下引用原项目。

相关工作与支持

通用的跨模型委派早于本项目。相关工作页面链接到了现有的桥接工具、多提供商系统、路由和评估工具。有关使用和研究的问题,请参阅 SUPPORT.md 和 Discussions;请通过私密报告渠道报告漏洞。

本项目并非

  • 声称多模型委派总是有帮助,或某一家提供商普遍优于其他提供商。
  • 一个自主 Agent 平台、独立的生产安全边界,或提示词注入防护保证。
  • OpenAI、Anthropic 或 Google 的官方产品。

本项目未启用自定义遥测。未知的令牌用量、成本和质量仍然未知。请参阅研究路线图、更新日志、贡献指南、Discussions和引用元数据。代码采用 Apache-2.0 许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。