
MCP Cross-Model Delegation
io.github.Jostophe-021由 GitHub 账号 Jostophe-021 发布v1.0.0更新于 Oct 24, 2026
Local MCP framework for bounded cross-model delegation, routing and evidence verification.
发布方自己的服务:Delegation School
概览
本地 MCP 服务器,让助手把受限文本任务委派给 Gemini 或 Anthropic,按约束在提供方之间路由,并在本地核验引文。
- 可以做什么
- 通过统一接口把带可选上下文的受限文本任务委派给 Gemini 或 Anthropic,支持手动、规则或基准加权路由。
- 提取结构化发现,并在本地对照所给上下文核验引文是否真实存在。
- 应用调用方约束,例如允许或已批准的提供方、隐私模式、成本与延迟上限、结构化输出与证据要求。
- 解释路由决策,列出可用与被拒的提供方、原因代码与回退链,且不发起 API 调用。
- 用确定性的假提供方运行离线基准测试,或选择性地进行跨提供方的在线基准实验。
- 适用场景
- 适合需要把受限文本工作交给第二个模型、在明确的隐私、成本与延迟限制下比较或路由 Gemini 与 Anthropic,或核验抽取引文是否确实出现在原文中的场景。它面向实验与度量,而非自主多步智能体。
- 运行要求
- 以本地进程运行:需要 Python 3.12 或 3.13 与 uv,或使用已发布的 Docker 镜像。真实调用至少需要一个提供方密钥:GEMINI_API_KEY 和/或 ANTHROPIC_API_KEY,需自行在环境中设置;离线基准无需密钥。可选设置 DEFAULT_PROVIDER 与 CROSSMODEL_HISTORY_PATH。HTTP 监听仅限本机回环地址。
安装
在 SourceWeft 中
- 打开 控制台中的 MCP Cross-Model Delegation,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
MCP Cross-Model Delegation
English | Français
[Tests] [Security] [Python 3.12 and 3.13] [License: Apache-2.0]
An open, reproducible and security-conscious framework for measuring, comparing, routing and verifying bounded work across heterogeneous language models.
One Python core powers an MCP server and a benchmark CLI: measure → compare → route → verify → improve. V1 supports Gemini, Anthropic, and a deterministic fake provider for offline tests. Routing is explicit, quotation evidence is checked locally, and no improvement in quality, cost, or latency is claimed without measurement.
What you can do today
- Delegate bounded text work to Gemini or Anthropic through one interface.
- Apply privacy, capability, cost, and latency constraints before provider selection; inspect routing reasons.
- Verify extracted quotations against the supplied context.
- Run deterministic offline benchmarks without API keys, or opt in to live cross-provider experiments.
Why this is different
The same loop measures, routes, executes, verifies evidence, and evaluates results. The default policy is manual; rules and benchmark_weighted require explicit opt-in. Historical scores do not promise future quality or latency. See the architecture, methodology, and use cases.
Try it in 5 minutes
Python 3.12 or 3.13 and uv are supported. A Gemini API key and an Anthropic API key are independent; configure either or both. A Claude subscription does not provide Anthropic API credits.
The benchmark above uses FakeProvider and needs no API key. Software validation only — not an LLM performance result. See the four offline examples.
Try a real provider
Set GEMINI_API_KEY or ANTHROPIC_API_KEY only when you intend to call a real provider. Live API usage may incur provider charges. Start with synthetic or redistributable text, and inspect the planned call count before a live benchmark.
From this repository, install only the needed adapter with uv sync --locked --extra gemini or uv sync --locked --extra anthropic. The base package needs neither provider SDK for offline benchmarks. PyPI publication is a separate release step; install from the repository until a PyPI release is verified.
Set GEMINI_API_KEY and/or ANTHROPIC_API_KEY in your own environment. .env.example shows names only; never commit .env or paste a key into a command, issue, or chat. Set DEFAULT_PROVIDER=anthropic if Anthropic is your manual default. Run crossmodel serve to expose streamable HTTP MCP at http://127.0.0.1:8000/mcp. MCP_HOST=0.0.0.0 is refused because the server has no public client authentication.
MCP tools
Generic tools default to policy="manual". provider follows DEFAULT_PROVIDER, then Gemini if configured, then the first configured provider. Opt in to policy="rules" or policy="benchmark_weighted". For weighted routing in MCP, the server operator sets CROSSMODEL_HISTORY_PATH to a local/public history.json produced by a benchmark; callers cannot choose a file path. Constraints include allowed_providers, privacy_mode, approved_providers, max_cost, max_latency, require_structured_output, require_evidence, fallback_allowed, and explicit allow_unknown_cost. A strict cost or latency cap rejects unknown values. privacy_mode="local_only" rejects both included external providers with NO_ELIGIBLE_PROVIDER.
The tools accept only caller-supplied text. They do not read files, email, Drive, or apps, execute code, or take actions in other services. The caller decides what may leave the machine. TASK and CONTEXT remain distinct JSON fields; instructions in CONTEXT are untrusted. This is a mitigation, not a security guarantee. The security model details the limits.
Explain a route
This makes no API call. It prints eligible and rejected providers, reason codes, fallback chain, and score components. Only measured common metrics are scored; missing values remain null.
Benchmark
The default run uses only FakeProvider; it never calls a paid API. It tests software behavior, not LLM research hypotheses.
Each run writes manifest.json, results.jsonl, summary.json, and history.json. Results omit TASK, CONTEXT, and responses by default; they include a SHA-256 of the exact context used. The dataset contains small, manually audited synthetic arithmetic, extraction, evidence, prompt-injection, error-detection, and long-context tasks. Generated long contexts record characters, seed, generator version, and tokens: null until measured.
For live experiments, use --live --provider gemini --orchestrator anthropic (or your configured providers). The CLI prints providers, conditions, task count, repetitions, and planned API calls before execution. Use --repetitions N --shuffle --seed 42 to repeat and randomize condition order. Concurrency is one. Cost is unavailable without a separate dated pricing source; no price is hardcoded. --save-responses writes raw answers and findings, so use it only with redistributable data. The four conditions are orchestrator_only, fixed_delegation, structured_delegation, and routed_delegation; V1 measures one model call per condition and does not implement a second orchestrator synthesis call. See benchmark format and methodology.
Develop and build
The Docker image contains no API keys. Under Linux, docker run --rm --network host --env-file .env mcp-cross-model-delegation:1.0.0 keeps the MCP listener on host loopback. Docker Desktop host networking varies; local Python is the simpler option. The release workflow publishes ghcr.io/jostophe-021/mcp-cross-model-delegation:1.0.0 with OCI metadata and an SPDX SBOM. The optional OpenAI Secure MCP Tunnel can connect a compatible remote client without opening an inbound port; this repository includes no tunnel identifier or credential.
MCP Registry
Version 1.0.0 was accepted by the official MCP Registry publisher as io.github.Jostophe-021/mcp-cross-model-delegation. Its declared package is the public GHCR image. The Registry remains a preview service; check its current listing before relying on discovery.
Research
This project is designed to test when delegation helps, when it does not, and which trade-offs it introduces. Start with the methodology, research roadmap, synthetic dataset and benchmark format, result schema, and first live experiment guide. Publish only non-sensitive raw results, a summary, and limitations; cite the version using CITATION.cff.
Build your own version
The extending guide shows the V1 interfaces and their current limits. The contributing guide explains how to keep a fork current with upstream.
Forks and derivative projects
Forking and adaptation are explicitly welcome. On GitHub, use Fork when you want the upstream relationship to remain visible. Independent derivative projects are also permitted under Apache-2.0, subject to the applicable license and attribution requirements. Generic improvements are welcome upstream; forks are free to diverge. Preserve the applicable LICENSE and NOTICE, identify your changes, and cite the original project when relevant.
Related work and support
Generic cross-model delegation predates this project. The related work page links to existing bridges, multi-provider systems, routing, and evaluation tools. For usage and research questions, see SUPPORT.md and Discussions; report vulnerabilities through private reporting.
This is not
- A claim that multi-model delegation always helps or one provider is universally superior.
- An autonomous agent platform, a production security boundary by itself, or a prompt-injection guarantee.
- An official OpenAI, Anthropic, or Google product.
No custom telemetry is enabled. Unknown token usage, cost, and quality remain unknown. See the research roadmap, changelog, contributing guide, Discussions, and citation metadata. The code is under Apache-2.0.
来源:README.md,提交 e0cf7c9
工具
0版本历史
2- v1.0.0最新Sep 25, 2026
- v0.1.0Sep 25, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
