{"id":"d90967e8-aa40-4159-a134-6a25c31421c9","entityType":"agent","slug":"clawhub-fyniujin-cn-model-gateway","name":"cn-model-gateway","canonicalUrl":"https://www.xpersona.co/agent/clawhub-fyniujin-cn-model-gateway","canonicalPath":"/agent/clawhub-fyniujin-cn-model-gateway","generatedAt":"2026-10-11T07:41:47.561Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:17:34.905Z","emptyReason":null},"description":"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。11 个 MCP 工具（ask_model/describe_image/embed_text/rerank/audio_transcribe/video_understand/batch_submit/batch_result/list_providers/health_check/health_report）+ 单一网关状态资源 + 2 个 prompt 模板。内置统一错误映射（v1.9.0 新增 429/451/余额不足/内容审查四类错误 + 中文处置建议）、流式 SSE 输出+心跳保活+断线重连、每日健康晨报 + 厂商变更雷达（3σ 异常检测）、使用量统计、硬件感知并发控制、SQLite WAL 批量任务队列、自动故障转移、环境变量优先读取 API key。支持 Function Calling、多模态视觉、5 个非 MCP 框架适配器（LangChain/AutoGPT/CrewAI/Coze/Dify）、性能基准测试和 Token 价格追踪。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s177r8w7p1d7cpbys9bn33kwhs89d0xw:cn-model-gateway","sourceUrl":"https://clawhub.ai/fyniujin/cn-model-gateway","homepage":"https://clawhub.ai/fyniujin/skills/cn-model-gateway","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/fyniujin/cn-model-gateway","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/fyniujin/skills/cn-model-gateway","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"cn-model-gateway technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:17:34.905Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:17:34.905Z","emptyReason":null},"stars":null,"forks":null,"downloads":1162,"packageName":null,"latestVersion":"1.9.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:17:34.888Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T04:17:34.905Z","lastCrawledAt":"2026-10-11T04:17:34.888Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T04:17:34.888Z","lastVerifiedAt":null,"highlights":[{"version":"1.9.0","createdAt":"2026-10-09T11:54:59.346Z","changelog":"cn-model-gateway v1.9.0 - 新增 health_report 工具和每日健康晨报/厂商变更雷达功能，自动检测模型可用性及接口异常。 - 增加 429（限流）、451（地区限制）、余额不足、内容审查等错误类型的统一错误映射，并提供中文处置建议，错误映射表支持 YAML 外置热更新。 - 工具集扩展至 11 项，涵盖健康检查与晨报自动生成。 - 支持命令行一键生成健康晨报（本地 HTML/可选 webhook 推送）。 - 代码结构优化，健康检测与错误映射能力增强。 - 移除 skill-card.md，新增 references/error_map.yaml 与 src/scheduler.py。","fileCount":65,"zipByteSize":130537},{"version":"1.8.0","createdAt":"2026-09-17T03:47:03.998Z","changelog":"# cn-model-gateway v1.8.0 - 新增批量任务支持，提供 batch_submit 和 batch_result 两个 MCP 工具，支持异步批量队列与任务状态查询。 - 新增 SQLite WAL 模式下的本地批量任务队列管理，提升高并发与任务追踪能力。 - SSE 输出支持心跳保活（30s ping）以及断线重连，支持长语音输出和大模型交互更稳定。 - 工具、资源列表结构调整。网关状态合并至 cn-model-gateway://status，usage 资源废除。 - 代码架构优化，部分模块重构与整理；移除 skill-card.md，新增配置模板和批量队列代码。 - 更新和完善文档（SKILL.md），反映新功能与使用方式。","fileCount":63,"zipByteSize":120776},{"version":"1.7.0","createdAt":"2026-08-24T13:18:24.738Z","changelog":"**Major update: Adds 4 new MCP tools (embedding, rerank, ASR, video), increases modularity, and improves framework structure.** - 新增文本向量嵌入（embed_text）、文档重排序（rerank）、语音转文字（audio_transcribe）、视频理解（video_understand）四个 MCP 工具，丰富 Agent 能力。 - 内核与适配器代码重构，增加 _core 和 src/llm_core 等模块，便于扩展与维护。 - 多家模型 provider 适配器拆分迁移、结构更清晰。 - 主入口、工具、路由逻辑调整以支持所有新功能。 - SKILL.md 全面更新，涵盖所有新工具、能力与 API 用法。 - 清理旧文档、精简无用文件。","fileCount":61,"zipByteSize":110440},{"version":"1.5.0","createdAt":"2026-08-16T10:57:16.581Z","changelog":"**v1.5.0 introduces multi-modal vision model support (image understanding), Function Calling/tool use, and unifies model comparison into ask_model.** - Added multi-modal vision support for Qwen-VL, GLM-4V, and Doubao Visual; new describe_image tool and image field in ChatMessage. - ask_model now accepts providers list: call single model or compare multiple at once (compare_models merged into ask_model). - Introduced Function Calling/tool use: ask_model supports tools parameter and ChatResponse returns tool_calls field. - Expanded base adapter methods to include format_tools and parse_tool_calls for unified Function Calling handling. - SKILL.md fully updated (tools, examples, FAQ, boundaries); removed compare_models, added clarity on new features. - Minor bugfixes and code structure improvements for supporting multi-modal and tool use capabilities.","fileCount":31,"zipByteSize":73105},{"version":"1.4.0","createdAt":"2026-08-07T12:56:51.360Z","changelog":"v1.4.0 introduces failover, environment variable support for API keys, and improved concurrency. - Auto模式支持能力画像排序和健康检查，主流程自动故障转移，调用失败/超时自动切换备用模型 - 支持通过环境变量设置API Key（如DEEPSEEK_API_KEY等），config.json为备选，提升安全性 - SQLite统计数据库全面启用WAL模式，兼容多Agent框架并发写入 - CLI新增--timeout和--no-failover参数控制超时及故障转移行为 - 新增相关的单元测试，删除过时skill-card.md文件","fileCount":31,"zipByteSize":68712},{"version":"1.3.0","createdAt":"2026-08-01T10:08:11.177Z","changelog":"v1.3.0 introduces integrated model benchmarking and live token price tracking: - Added model performance benchmarking suite with 50-question set, 6-dimension scoring, radar chart comparison, and history tracking. - Introduced real-time token price tracker with price fetching, change notifications, trend charting, and cost prediction. - Added 4 new CLI subcommands: benchmark, price, benchmark-history, price-history, and cost-predict. - Increased automated test coverage for benchmarking and price tracking modules (8 new unit tests, 37 in total). - Documentation and usage instructions updated for new features.","fileCount":31,"zipByteSize":65138},{"version":"1.2.0","createdAt":"2026-07-24T07:36:52.267Z","changelog":"- 新增 5 个非 MCP 框架适配器：LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点 - 扩展框架支持，实现从 MCP 生态到全 Agent 生态的无缝覆盖 - 新增 frameworks 模块，统一管理全部 5 个新适配器 - 移除 skill-card.md，优化文档结构 - 测试覆盖新增 11 个框架适配器相关单元测试，提升稳定性","fileCount":29,"zipByteSize":50868},{"version":"1.1.0","createdAt":"2026-07-17T13:14:24.189Z","changelog":"- 新增 4 家模型适配器：MiniMax、零一万物、百川智能、阶跃星辰 - 支持 DeepSeek-V3（deepseek-chat, deepseek-reasoner）和 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k） - 扩展统一错误映射，覆盖 10 家国产厂商 - 内置模型表和文档同步更新，现统一封装 10 家主流国产模型 - 移除旧 skill-card.md，完善 README 和功能说明","fileCount":23,"zipByteSize":41596}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s177r8w7p1d7cpbys9bn33kwhs89d0xw:cn-model-gateway","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s177r8w7p1d7cpbys9bn33kwhs89d0xw:cn-model-gateway` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/fyniujin/cn-model-gateway before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T07:41:47.557Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fyniujin-cn-model-gateway/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:17:34.905Z","emptyReason":null},"readme":"Skill: cn-model-gateway\n\nOwner: fyniujin\n\nSummary: 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。11 个 MCP 工具（ask_model/describe_image/embed_text/rerank/audio_transcribe/video_understand/batch_submit/batch_result/list_providers/health_check/health_report）+ 单一网关状态资源 + 2 个 prompt 模板。内置统一错误映射（v1.9.0 新增 429/451/余额不足/内容审查四类错误 + 中文处置建议）、流式 SSE 输出+心跳保活+断线重连、每日健康晨报 + 厂商变更雷达（3σ 异常检测）、使用量统计、硬件感知并发控制、SQLite WAL 批量任务队列、自动故障转移、环境变量优先读取 API key。支持 Function Calling、多模态视觉、5 个非 MCP 框架适配器（LangChain/AutoGPT/CrewAI/Coze/Dify）、性能基准测试和 Token 价格追踪。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\n\nTags: latest:1.9.0\n\nVersion history:\n\nv1.9.0 | 2026-10-09T11:54:59.346Z | auto\n\ncn-model-gateway v1.9.0\n\n- 新增 health_report 工具和每日健康晨报/厂商变更雷达功能，自动检测模型可用性及接口异常。\n- 增加 429（限流）、451（地区限制）、余额不足、内容审查等错误类型的统一错误映射，并提供中文处置建议，错误映射表支持 YAML 外置热更新。\n- 工具集扩展至 11 项，涵盖健康检查与晨报自动生成。\n- 支持命令行一键生成健康晨报（本地 HTML/可选 webhook 推送）。\n- 代码结构优化，健康检测与错误映射能力增强。\n- 移除 skill-card.md，新增 references/error_map.yaml 与 src/scheduler.py。\n\nv1.8.0 | 2026-09-17T03:47:03.998Z | auto\n\n# cn-model-gateway v1.8.0\n\n- 新增批量任务支持，提供 batch_submit 和 batch_result 两个 MCP 工具，支持异步批量队列与任务状态查询。\n- 新增 SQLite WAL 模式下的本地批量任务队列管理，提升高并发与任务追踪能力。\n- SSE 输出支持心跳保活（30s ping）以及断线重连，支持长语音输出和大模型交互更稳定。\n- 工具、资源列表结构调整。网关状态合并至 cn-model-gateway://status，usage 资源废除。\n- 代码架构优化，部分模块重构与整理；移除 skill-card.md，新增配置模板和批量队列代码。\n- 更新和完善文档（SKILL.md），反映新功能与使用方式。\n\nv1.7.0 | 2026-08-24T13:18:24.738Z | auto\n\n**Major update: Adds 4 new MCP tools (embedding, rerank, ASR, video), increases modularity, and improves framework structure.**\n\n- 新增文本向量嵌入（embed_text）、文档重排序（rerank）、语音转文字（audio_transcribe）、视频理解（video_understand）四个 MCP 工具，丰富 Agent 能力。\n- 内核与适配器代码重构，增加 _core 和 src/llm_core 等模块，便于扩展与维护。\n- 多家模型 provider 适配器拆分迁移、结构更清晰。\n- 主入口、工具、路由逻辑调整以支持所有新功能。\n- SKILL.md 全面更新，涵盖所有新工具、能力与 API 用法。\n- 清理旧文档、精简无用文件。\n\nv1.5.0 | 2026-08-16T10:57:16.581Z | auto\n\n**v1.5.0 introduces multi-modal vision model support (image understanding), Function Calling/tool use, and unifies model comparison into ask_model.**\n\n- Added multi-modal vision support for Qwen-VL, GLM-4V, and Doubao Visual; new describe_image tool and image field in ChatMessage.\n- ask_model now accepts providers list: call single model or compare multiple at once (compare_models merged into ask_model).\n- Introduced Function Calling/tool use: ask_model supports tools parameter and ChatResponse returns tool_calls field.\n- Expanded base adapter methods to include format_tools and parse_tool_calls for unified Function Calling handling.\n- SKILL.md fully updated (tools, examples, FAQ, boundaries); removed compare_models, added clarity on new features.\n- Minor bugfixes and code structure improvements for supporting multi-modal and tool use capabilities.\n\nv1.4.0 | 2026-08-07T12:56:51.360Z | auto\n\nv1.4.0 introduces failover, environment variable support for API keys, and improved concurrency.\n\n- Auto模式支持能力画像排序和健康检查，主流程自动故障转移，调用失败/超时自动切换备用模型\n- 支持通过环境变量设置API Key（如DEEPSEEK_API_KEY等），config.json为备选，提升安全性\n- SQLite统计数据库全面启用WAL模式，兼容多Agent框架并发写入\n- CLI新增--timeout和--no-failover参数控制超时及故障转移行为\n- 新增相关的单元测试，删除过时skill-card.md文件\n\nv1.3.0 | 2026-08-01T10:08:11.177Z | auto\n\nv1.3.0 introduces integrated model benchmarking and live token price tracking:\n\n- Added model performance benchmarking suite with 50-question set, 6-dimension scoring, radar chart comparison, and history tracking.\n- Introduced real-time token price tracker with price fetching, change notifications, trend charting, and cost prediction.\n- Added 4 new CLI subcommands: benchmark, price, benchmark-history, price-history, and cost-predict.\n- Increased automated test coverage for benchmarking and price tracking modules (8 new unit tests, 37 in total).\n- Documentation and usage instructions updated for new features.\n\nv1.2.0 | 2026-07-24T07:36:52.267Z | auto\n\n- 新增 5 个非 MCP 框架适配器：LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点\n- 扩展框架支持，实现从 MCP 生态到全 Agent 生态的无缝覆盖\n- 新增 frameworks 模块，统一管理全部 5 个新适配器\n- 移除 skill-card.md，优化文档结构\n- 测试覆盖新增 11 个框架适配器相关单元测试，提升稳定性\n\nv1.1.0 | 2026-07-17T13:14:24.189Z | auto\n\n- 新增 4 家模型适配器：MiniMax、零一万物、百川智能、阶跃星辰\n- 支持 DeepSeek-V3（deepseek-chat, deepseek-reasoner）和 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k）\n- 扩展统一错误映射，覆盖 10 家国产厂商\n- 内置模型表和文档同步更新，现统一封装 10 家主流国产模型\n- 移除旧 skill-card.md，完善 README 和功能说明\n\nv1.0.0 | 2026-07-16T08:11:25.812Z | auto\n\nInitial release: Unified gateway for six Chinese LLM providers using standard MCP protocol.\n\n- Provides JSON-RPC 2.0 MCP server for DeepSeek, Tongyi, Zhipu, Kimi, Hunyuan, Doubao models; compatible with 18+ agent frameworks (incl. Claude Code, Cursor, Cline, n8n).\n- Offers four built-in MCP tools: ask_model, compare_models, list_providers, health_check.\n- Includes two resource endpoints (provider list, usage stats) and two prompt templates (code_review, translate).\n- Implements unified MCP error mapping (four error codes; Chinese messages), streaming SSE output, local usage statistics (SQLite), and hardware-aware concurrency control.\n- Pure Python, zero external dependencies: no pip install, no GPU, no local model inference or fine-tuning, config via single JSON file.\n\nArchive index:\n\nArchive v1.9.0: 65 files, 130537 bytes\n\nFiles: _core_lock.json (105b), _core/adapters/__init__.py (654b), _core/adapters/base.py (4413b), _core/adapters/ernie.py (5025b), _core/adapters/openai_compat.py (6245b), _core/adapters/spark.py (5542b), _core/cache.py (6959b), _core/calibrate.py (10185b), _core/config.py (3133b), _core/cost_tracker.py (7230b), _core/health_check.py (5920b), _core/version.json (230b), _core/yaml_simple.py (6501b), config/config.json.example (639b), main.py (28005b), README.md (4674b), references/error_map.yaml (10065b), skill-card.md (2065b), SKILL.md (23266b), src/__init__.py (89b), src/adapters/__init__.py (739b), src/adapters/baichuan.py (239b), src/adapters/base.py (394b), src/adapters/deepseek.py (239b), src/adapters/doubao.py (231b), src/adapters/hunyuan.py (235b), src/adapters/kimi.py (223b), src/adapters/lingyi.py (231b), src/adapters/minimax.py (235b), src/adapters/stepfun.py (235b), src/adapters/tongyi.py (231b), src/adapters/zhipu.py (227b), src/batch_queue.py (16502b), src/benchmark.py (22740b), src/frameworks/__init__.py (579b), src/frameworks/autogpt_plugin.py (2629b), src/frameworks/coze_plugin.py (7246b), src/frameworks/crewai_tool.py (3989b), src/frameworks/dify_tool.py (5796b), src/frameworks/langchain_tool.py (3593b), src/llm_core/__init__.py (1138b), src/llm_core/adapters/__init__.py (656b), src/llm_core/adapters/baichuan.py (4825b), src/llm_core/adapters/base.py (6130b), src/llm_core/adapters/deepseek.py (6308b), src/llm_core/adapters/doubao.py (6162b), src/llm_core/adapters/hunyuan.py (6062b), src/llm_core/adapters/kimi.py (4788b), src/llm_core/adapters/lingyi.py (4804b), src/llm_core/adapters/minimax.py (4798b), src/llm_core/adapters/stepfun.py (4808b), src/llm_core/adapters/tongyi.py (6262b), src/llm_core/adapters/zhipu.py (7390b), src/llm_core/error_map.py (5750b), src/llm_core/router.py (9215b), src/llm_core/types.py (3129b), src/mcp_server.py (36777b), src/monitor.py (7039b), src/price_tracker.py (11137b), src/router.py (636b), src/scheduler.py (12377b), src/utils.py (1597b), tests/test_basic.py (43965b), version.json (284b), _meta.json (135b)\n\nFile v1.9.0:SKILL.md\n\n---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。11 个 MCP 工具（ask_model/describe_image/embed_text/rerank/audio_transcribe/video_understand/batch_submit/batch_result/list_providers/health_check/health_report）+ 单一网关状态资源 + 2 个 prompt 模板。内置统一错误映射（v1.9.0 新增 429/451/余额不足/内容审查四类错误 + 中文处置建议）、流式 SSE 输出+心跳保活+断线重连、每日健康晨报 + 厂商变更雷达（3σ 异常检测）、使用量统计、硬件感知并发控制、SQLite WAL 批量任务队列、自动故障转移、环境变量优先读取 API key。支持 Function Calling、多模态视觉、5 个非 MCP 框架适配器（LangChain/AutoGPT/CrewAI/Coze/Dify）、性能基准测试和 Token 价格追踪。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.9.0\n---\n\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ `ask_model` 传入 `providers=[a,b]` 即可对比 |\n| 你想让模型描述一张图片 | ✅ `describe_image` 工具，支持 Qwen-VL/GLM-4V/豆包视觉 |\n| 你想让模型调用工具（Function Calling） | ✅ `ask_model` 传入 `tools` 参数，返回 `tool_calls` |\n| 你想生成文本向量嵌入 | ✅ `embed_text` 工具，支持 deepseek/zhipu/doubao/tongyi |\n| 你想对文档按相关性重排序 | ✅ `rerank` 工具，支持 zhipu 等 |\n| 你想将语音转为文字 | ✅ `audio_transcribe` 工具 |\n| 你想理解视频内容 | ✅ `video_understand` 工具（关键帧+视觉描述） |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射（v1.9.0 新增 429/451/余额不足/内容审查四类 + 中文处置建议） |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你希望每天自动检查各厂商 API 是否可用，晨报推送异常 | ✅ 每日健康晨报（最小调用控制成本 <0.1 元/天，本地 HTML + 可选 webhook） |\n| 你希望厂商接口变更或故障时第一时间知道 | ✅ 厂商变更雷达（滑动窗口 + 3σ 异常检测，晨报置顶告警） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 8 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py ask \"解释量子计算\" --providers deepseek tongyi zhipu\n\n# 描述一张图片\npython main.py describe_image \"https://example.com/photo.jpg\" -p tongyi\n\n# 生成文本向量嵌入\npython main.py embed \"文本1\" \"文本2\" -p deepseek\n\n# 文档重排序\npython main.py rerank -q \"查询\" -d \"文档1\" \"文档2\" \"文档3\" -p zhipu\n\n# 语音转文字\npython main.py transcribe \"audio.mp3\" -p zhipu\n\n# 理解视频内容\npython main.py video \"video.mp4\" -p zhipu\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 执行健康检查（最小调用，记录延迟/成功率）\npython main.py health\n\n# 生成每日健康晨报（本地 HTML + 可选 webhook 推送）\npython main.py report\npython main.py report --webhook https://your-webhook-url\n\n# 启动 MCP 服务器\npython main.py run\n```\n\n### 方式三：Python API 直接调用\n\n```python\nfrom src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)\n```\n\n---\n\n## 内置工具（MCP tools/list 返回）\n\n| 工具名 | 描述 | 关键参数 |\n|--------|------|---------|\n| `ask_model` | 向模型提问（单家/多家对比/Function Calling） | `question`（必填）, `provider`（可选）, `providers`（可选列表，指定 2+ 家对比）, `model`（可选）, `temperature`（可选）, `tools`（可选，Function Calling 工具定义） |\n| `describe_image` | 向视觉模型发送图片，返回描述或回答 | `image`（必填，URL/base64/文件路径）, `prompt`（可选，默认\"请描述这张图片\"）, `provider`（可选）, `model`（可选） |\n| `embed_text` | 将文本转换为向量嵌入（embedding） | `texts`（必填，文本列表）, `provider`（可选）, `model`（可选） |\n| `rerank` | 对文档列表按查询相关性重排序 | `query`（必填）, `documents`（必填，文档列表）, `provider`（可选）, `model`（可选） |\n| `audio_transcribe` | 将音频文件转换为文字（语音识别） | `audio`（必填，URL/base64/文件路径）, `provider`（可选）, `model`（可选）, `language`（可选） |\n| `video_understand` | 理解视频内容（关键帧+视觉描述） | `video`（必填，URL/文件路径）, `prompt`（可选）, `provider`（可选）, `model`（可选） |\n| `batch_submit` | 提交批量任务列表，立即返回任务 ID | `tasks`（必填，任务列表）, `priority`（可选，0-9，默认 5） |\n| `batch_result` | 查询批量任务状态和结果 | `task_id`（必填）, `include_items`（可选，默认 false） |\n| `list_providers` | 列出所有已配置且可用的模型提供商 | 无 |\n| `health_check` | 检查所有已配置提供商的连通性 | 无 |\n| `health_report` | 生成每日健康晨报（本地 HTML），含各厂商成功率/延迟/配额余量 + 厂商变更雷达（3σ 异常检测） | `save`（可选，默认 true）、`days`（可选，默认 1，最大 7） |\n\n---\n\n## 内置资源（MCP resources/list 返回）\n\n| 资源 URI | 描述 |\n|----------|------|\n| `cn-model-gateway://status` | 网关状态总览——当前配置（不含 api_key 明文）+ 使用统计 + 配额告警，一屏汇总 |\n\n---\n\n## 内置 Prompt 模板（MCP prompts/list 返回）\n\n| 模板名 | 描述 | 参数 |\n|--------|------|------|\n| `code_review` | 代码审查提示模板 | `code`（必填）, `language`（可选，默认 python） |\n| `translate` | 中英互译提示模板 | `text`（必填）, `target_lang`（必填：zh/en/ja） |\n\n---\n\n## 配置说明\n\n`config.json` 格式：\n\n```json\n{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}\n```\n\n### API Key 读取优先级（v1.4.0）\n\n1. **环境变量**（推荐，更安全）：`DEEPSEEK_API_KEY`、`DASHSCOPE_API_KEY`、`ZHIPU_API_KEY`、`KIMI_API_KEY`、`HUNYUAN_SECRET_ID`、`DOUBAO_API_KEY`、`MINIMAX_API_KEY`、`LINGYI_API_KEY`、`BAICHUAN_API_KEY`、`STEPFUN_API_KEY`\n2. **config.json**（向后兼容）\n\n推荐做法：环境变量设置 api_key，config.json 只填非敏感配置（如 `model`、`base_url` 等）。\n\n- 可以只填一家，也可以十家全填\n- `hunyuan` 比较特殊，格式为 `secret_id:secret_key`（冒号分隔）\n- 未填 api_key 的提供商自动标记为不可用，不影响其他家使用\n\n---\n\n## 统一错误映射\n\n各家模型返回的错误码不同，本 skill 统一映射为 MCP 标准错误码：\n\n| MCP 错误码 | 含义 | 触发场景 |\n|-----------|------|---------|\n| `-32602` | 参数错误 | API key 无效、内容审核未通过、请求参数缺失 |\n| `-32001` | 模型不可用 | 提供商未配置或已过期、地区限制（451） |\n| `-32002` | 速率限制 | 调用频率超限（429）、额度不足、余额不足 |\n| `-32603` | 内部错误 | 网络超时、响应解析失败 |\n\n所有错误信息均为**中文**，便于排查。\n\n### v1.9.0 新增错误类型\n\n| 错误类型 | 错误码 | 处置建议 |\n|---------|--------|---------|\n| 429 限流 | `-32002` | 等待 60 秒后重试，或降低调用频率 |\n| 451 地区限制 | `-32001` | 检查地区设置，或联系厂商客服 |\n| 余额不足 | `-32002` | 检查余额页充值 |\n| 内容审查触发 | `-32602` | 修改提示词重试，避免敏感内容 |\n\n错误映射表已 YAML 外置（`references/error_map.yaml`），支持热更新。\n\n---\n\n## 性能优化\n\n- **硬件感知并发**：启动时自动采集 CPU 核数和内存大小，低配电脑（< 4GB 内存）限制并发数为 1，高配最多 4 并发\n- **零外部依赖**：纯 Python 标准库，无 `pip install`，避免环境污染\n- **流式输出**：长对话走 SSE 流式，不堵内存\n- **SQLite WAL 模式**（v1.4.0）：全部数据库启用 WAL，支持多 Agent 框架同时写入不报锁错误\n- **故障转移**（v1.4.0）：auto 模式按能力画像排序 + 超时自动切换备用提供商，成功率 99%+\n\n---\n\n## 版本更新提醒\n\n本 skill 会在每次启动时打印当前版本号（stderr）。要获取最新版本：\n\n```bash\n# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway\n```\n\n建议关注本 skill 的 GitHub Release 页获取更新通知。\n\n---\n\n## ⚠️ 风险项（必读）\n\n| 风险 | 说明 | 规避方式 |\n|------|------|---------|\n| API Key 泄露 | 用户需自行保管 api_key，config.json 文件勿提交到公开仓库 | 推荐使用环境变量（DEEPSEEK_API_KEY 等）替代 config.json 明文；config.json 加到 .gitignore |\n| 模型调用计费 | 每次调用都会消耗对应模型提供商的额度，费用由用户自行承担 | 定期查看 `python main.py stats` 统计，设置各平台额度预警 |\n| 内容安全 | 模型回答内容由各提供商审核策略决定，本 skill 不额外过滤 | 生产环境建议叠加内容安全过滤层 |\n| 网络依赖 | 每次调用都通过 urllib 直连各模型 API，需要联网 | 离线环境无法使用各家模型能力 |\n| 并发安全风险 | SQLite 已启用 WAL 模式（v1.4.0），多进程并发安全 | 如仍遇到锁错误，检查 .db-wal 文件是否损坏，可删除重建 |\n| 配置格式 | hunyuan 必须是 `secret_id:secret_key` 格式，其他家是普通 key | 使用前运行 `python main.py status` 检查连通性 |\n| API 版本兼容 | 各模型提供商可能更新 OpenAI-compatible 接口路径或字段 | 关注各平台公告，本 skill 会随版本更新适配 |\n\n---\n\n## 能力边界\n\n- 支持文本对话、图片理解（v1.5.0 新增多模态）、文本向量嵌入（v1.6.0）、文档重排序（v1.6.0）、语音转文字（v1.6.0）、视频理解（v1.6.0）\n- 支持 Function Calling / Tool Use（v1.5.0 新增，通过 `tools` 参数传入）\n- 支持批量异步调用（v1.8.0 新增）：`batch_submit` 提交任务列表 → 后台顺序执行 → `batch_result` 轮询结果；失败自动重试一次\n- 支持 SSE 心跳保活（30s ping）+ 断线重连（v1.8.0 新增）：客户端断开后凭请求 ID 重连续传，网络抖动不导致长回答作废重计费\n- 支持每日健康晨报（v1.9.0 新增）：最小真实调用（\"hi\" ~2 token/厂商），SQLite 记录延迟/成功率/配额余量，异常晨报置顶告警\n- 支持厂商变更雷达（v1.9.0 新增）：滑动窗口（24h vs 7d 基线）+ 3σ 异常检测，自动标注\"疑似接口变更/故障\"\n- 不支持本地模型推理或 GPU 部署\n- auto 模式支持故障转移（v1.4.0 新增），默认按能力画像排序 + 超时自动切备用\n\n---\n\n## 常见问题（FAQ）\n\n**Q: 为什么启动后没有任何提供商可用？**\nA: 检查 config.json 格式是否正确，api_key 是否填写。运行 `python main.py status` 查看状态。注意 hunyuan 格式是 `secret_id:secret_key`（冒号分隔）。\n\n**Q: 能同时配置多个提供商让 skill 自动选择吗？**\nA: 可以。auto 模式会按能力画像（benchmark 历史评分）和连通性状态排序，选最优的。超时/失败时自动切换到下一家（可通过 `--no-failover` 关闭）。\n\n**Q: 如何对比多个模型的回答？**\nA: 在 `ask_model` 工具中传入 `providers: [\"deepseek\", \"tongyi\", \"zhipu\"]`（2 家及以上），会自动返回对比结果。不传 `providers` 则单家调用。\n\n**Q: 如何让模型描述一张图片？**\nA: 使用 `describe_image` 工具，传入 `image`（URL/base64/文件路径）和可选的 `prompt`。支持 Qwen-VL、GLM-4V、豆包视觉等多模态模型。\n\n**Q: 如何使用 Function Calling？**\nA: 在 `ask_model` 工具中传入 `tools` 参数（工具定义列表），模型可能会在响应中返回 `tool_calls`。你需要自行执行工具并将结果作为后续对话的输入。\n\n**Q: 如何生成文本向量嵌入？**\nA: 使用 `embed_text` 工具，传入 `texts` 列表。支持 deepseek（deepseek-embedding）、zhipu（embedding-2）、doubao（doubao-embedding）、tongyi（text-embedding-v2）等。\n\n**Q: 如何对文档进行重排序？**\nA: 使用 `rerank` 工具，传入 `query` 和 `documents` 列表。支持 zhipu（rerank）等提供商。\n\n**Q: 如何将语音转为文字？**\nA: 使用 `audio_transcribe` 工具，传入音频文件路径或 URL。支持 zhipu、doubao 等提供商。\n\n**Q: 如何理解视频内容？**\nA: 使用 `video_understand` 工具，传入视频文件路径或 URL。系统会自动抽取关键帧并通过视觉模型生成描述。\n\n**Q: 如何批量执行多个任务（如批量翻译、批量文档摘要）？**\nA: 使用 `batch_submit` 工具提交任务列表（每项指定 `tool` 和 `arguments`），立即返回任务 ID。然后用 `batch_result` 工具轮询任务进度和结果。后台顺序执行（复用硬件自适应并发），失败任务自动重试一次并保留错误详情。\n\n**Q: 网络断开后正在进行的调用会作废吗？**\nA: 不会。v1.8.0 新增 SSE 心跳保活（30s ping）+ 断线重连：服务端缓冲最近 200 个 chunk，客户端凭请求 ID 重连后从断点续传，避免长回答作废重计费。\n\n**Q: 如何查看每日健康晨报？**\nA: 使用 `health_report` MCP 工具，或命令行 `python main.py report`。晨报保存在 `~/.cn-model-gateway/health_report_YYYY-MM-DD.html`，含各厂商成功率/延迟/配额余量。可选 `--webhook` 参数推送至企业微信/飞书等。\n\n**Q: 厂商变更雷达是如何工作的？**\nA: 系统持续记录每次健康检查结果到 SQLite。晨报生成时，对比 24h 错误率与 7d 基线错误率，若 24h 错误率 > 基线 + 3σ（且 >30%），自动标注\"疑似接口变更/故障\"并置顶告警。覆盖场景：厂商 API 路径变更、认证策略调整、模型下线等。\n\n**Q: 健康检查的成本是多少？**\nA: 每次健康检查对每家已配 Key 的厂商发送最小 prompt（\"hi\"，~2 token），10 家厂商单次约 20 token。按每日一次计算，日均成本 <0.1 元（以 DeepSeek 为例，20 token ≈ ¥0.00004）。可在 `config.json` 中设置 `health_check.enabled: false` 关闭。\n\n**Q: 各家模型的默认模型是什么？**\nA: deepseek-chat / qwen-turbo / glm-4-flash / moonshot-v1-8k / hunyuan-standard / doubao 系列。可通过 `model` 参数覆盖。\n\n**Q: 使用量数据存在哪里？**\nA: 默认存储在 `~/.cn-model-gateway/usage.db`（SQLite）。不会上传到任何服务器。\n\n**Q: 支持哪些操作系统？**\nA: Windows / macOS / Linux 全平台支持。需要 Python 3.9+。\n\n**Q: 需要 GPU 吗？**\nA: 完全不需要。本 skill 只做 API 网关，不进行本地推理。\n\n---\n\n## 支持与反馈\n\n有更好建议：njskills@agent.qq.com\n\n遇到问题请提供：\n1. `python main.py status` 输出\n2. 报错截图或完整错误信息\n3. 你使用的 model provider 名称\n\n---\n\n## 更新日志\n\n| v1.9.0 | 2026-10-09 | 新增每日健康晨报：HealthScheduler 调度器对已配 Key 厂商做最小真实调用（\"hi\" ~2 token），SQLite WAL 记录延迟/成功率/配额余量，异常晨报置顶告警；新增厂商变更雷达：滑动窗口（24h vs 7d 基线）+ 3σ 异常检测，自动标注\"疑似接口变更/故障\"；新增 health_report MCP 工具 + health/report CLI 子命令；统一错误映射扩容：新增 429 限流/451 地区限制/余额不足/内容审查触发四类错误，全部附带中文处置建议（\"等 60 秒重试\"\"检查余额页\"\"修改提示词重试\"）；错误映射表 YAML 外置（references/error_map.yaml），支持热更新；SKILL.md 更新工具列表（11 个工具）、FAQ、能力边界、错误映射说明 |\n| v1.8.0 | 2026-08-24 | 新增批量异步任务引擎：batch_submit 提交任务列表立即返回 ID，后台顺序执行（复用硬件自适应并发），batch_result 轮询状态与结果，失败自动重试一次并保留错误详情；新增 SSE 心跳保活（30s ping）+ 断线重连（chunk ring buffer，凭请求 ID 从断点续传，保护长输出与成本）；MCP 资源合并：config + usage 两个资源合并为 cn-model-gateway://status 单一资源（配置+使用统计+配额告警一屏汇总）；新增 batch_queue.py 任务队列模块（SQLite WAL + 后台 worker 线程）；MCPServer 启动时自动启动 batch_worker，新增 shutdown() 优雅停止；SKILL.md 更新工具列表（10 个工具）、资源列表、能力边界、FAQ |\n| v1.6.0 | 2026-08-24 | 新增共享内核（llm-core monorepo）：抽取 src/llm_core/ 共享内核模块，支持 MCP 形态与 CLI 形态共用同一份 core（adapters/router/error_map/cost/cache/monitor/benchmark），构建时注入同版副本+版本锁；新增 4 个 MCP 工具：embed_text（文本向量嵌入，支持 deepseek/zhipu/doubao/tongyi）、rerank（文档重排序，支持 zhipu）、audio_transcribe（语音转文字）、video_understand（关键帧抽取+视觉模型描述→视频摘要）；BaseAdapter 新增 4 个抽象方法（embed_text/rerank/audio_transcribe/video_understand）+ 降级 NotImplementedError 机制；CLI 新增 4 个子命令（embed/rerank/transcribe/video）；SKILL.md 全面更新工具列表/能力边界/FAQ |\n| v1.5.0 | 2026-08-16 | 合并 MCP 工具：ask_model + compare_models → ask_model（新增可选 providers 参数，空=单家，≥2 家=对比）；新增多模态视觉支持：ChatMessage 加 image 字段 + describe_image MCP 工具 + 视觉适配器多模态 payload（Qwen-VL/GLM-4V/豆包视觉）；新增 Function Calling / Tool Use：ChatResponse 加 tool_calls 字段 + BaseAdapter 加 format_tools/parse_tool_calls 方法 + ask_model 支持 tools 参数；SKILL.md 全面更新工具列表/能力边界/FAQ |\n| v1.4.0 | 2026-08-16 | 改进 auto 模式故障转移：auto_select() 从 random.choice 改为能力画像 + 健康检查有序选择；chat() 和 stream_chat() 新增自动故障转移循环，失败/超时自动切备用提供商；支持环境变量优先读取 api_key（DEEPSEEK_API_KEY / DASHSCOPE_API_KEY 等 10 个），config.json 向后兼容；SQLite 全部启用 WAL 模式（PRAGMA journal_mode=WAL），支持多 Agent 框架并发写入；新增 --timeout 和 --no-failover CLI 参数；新增 3 个故障转移+环境变量+WAL 单元测试（总计 40 tests） |\n| v1.3.0 | 2026-08-01 | 新增模型性能基准测试套件（benchmark.py：50 道题库、6 维度评分、雷达图对比、历史追踪）；新增 Token 价格实时追踪（price_tracker.py：价格抓取、变更通知、趋势图、成本预测）；新增 4 个 CLI 子命令（benchmark/price/benchmark-history/price-history/cost-predict）；测试覆盖新增 8 个 benchmark + price_tracker 单元测试（总计 37 tests） |\n| v1.2.0 | 2026-07-24 | 新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）；扩展框架适配层从 MCP 生态到全 Agent 生态；新增 frameworks 模块（5 个适配器 + 统一导出）；测试覆盖新增 11 个框架适配器单元测试（总计 29 tests） |\n| v1.1.0 | 2026-07-17 | 新增 4 家模型提供商（MiniMax/零一万物/百川智能/阶跃星辰）；更新 DeepSeek-V3 支持（deepseek-chat, deepseek-reasoner）；更新 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k）；扩展统一错误映射覆盖 10 家厂商；支持模型表格同步更新 |\n| v1.0.0 | 2026-07-16 | 初始版本发布，包含：MCP JSON-RPC 2.0 完整协议适配（tools/list/call + resources/list/read + prompts/list/get）；6 家国产模型适配器（DeepSeek/通义/智谱/Kimi/混元/豆包）；统一错误映射（4 种 MCP 标准错误码 + 中文 message）；流式 SSE 输出；本地 MCP 服务器 stdio 启动；内置 4 个工具（ask_model/compare_models/list_providers/health_check）；2 个 prompt 模板（code_review/translate）；使用量统计（SQLite + 周报）；硬件感知并发控制（自动采集 CPU/内存 → 动态分配并发数）；纯 Python 标准库零依赖；CLAUDE.md/Cursor/Cline 配置文件模板 |\n\nFile v1.9.0:README.md\n\n# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **10 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包 / MiniMax / 零一万物 / 百川智能 / 阶跃星辰\n- **全 Agent 生态**：新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）\n- **模型性能基准测试**：内置 50 道题库、6 维度评分、雷达图对比、历史追踪（从\"凭感觉选模型\"变成\"凭数据选模型\"）\n- **Token 价格实时追踪**：价格抓取（含降级缓存）、变更通知、趋势图、成本预测\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n| MiniMax | abab6.5s-chat | 普通 API key |\n| 零一万物 (LingYi) | yi-large | 普通 API key |\n| 百川智能 | baichuan2-turbo | 普通 API key |\n| 阶跃星辰 (StepFun) | step-1-200k | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 10 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py        ← 支持 V3: deepseek-chat, deepseek-reasoner\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py            ← 支持 v1-32k / v1-128k\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   ├── doubao.py\n│   │   ├── minimax.py         ← MiniMax abab 系列\n│   │   ├── lingyi.py          ← 零一万物 Yi 系列\n│   │   ├── baichuan.py        ← 百川智能\n│   │   └── stepfun.py         ← 阶跃星辰 Step 系列\n│   ├── frameworks/            ← 5 个非 MCP 框架适配器\n│   │   ├── __init__.py        ← 统一导出\n│   │   ├── langchain_tool.py  ← LangChain Tool 适配器\n│   │   ├── autogpt_plugin.py  ← AutoGPT Plugin 适配器\n│   │   ├── crewai_tool.py     ← CrewAI Tool 适配器\n│   │   ├── coze_plugin.py     ← Coze 插件适配器\n│   │   └── dify_tool.py       ← Dify 工具节点适配器\n│   ├── benchmark.py           ← 模型性能基准测试套件（新增）\n│   ├── price_tracker.py       ← Token 价格实时追踪（新增）\n│   ├── router.py              ← 路由 + 统一错误映射（10 家）\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py               ← 工具函数\n├── config/\n│   └── config.json.example    ← 配置模板（含 10 家）\n└── tests/\n    └── test_basic.py          ← 基础测试（37 tests 全过）\n```\n\n## License\n\nMIT\n\n## 联系\n\nnjskills@agent.qq.com\n\nFile v1.9.0:_meta.json\n\n{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.9.0\",\n  \"publishedAt\": 1791546899346\n}\n\nFile v1.9.0:references/error_map.yaml\n\n# 统一错误映射表（外置 YAML，可热更新）\n# 格式: provider → pattern → {code, message, suggestion}\n# code: MCP 标准错误码\n# suggestion: 中文处置建议（v1.9.0 新增）\n\ndeepseek:\n  invalid_api_key:\n    code: -32602\n    message: \"DeepSeek API key 无效或已过期\"\n    suggestion: \"检查 config.json 中 deepseek.api_key 是否正确\"\n  insufficient_quota:\n    code: -32002\n    message: \"DeepSeek 额度不足\"\n    suggestion: \"检查余额页：https://platform.deepseek.com/\"\n  rate_limit:\n    code: -32002\n    message: \"DeepSeek 请求过于频繁，请稍后重试\"\n    suggestion: \"等待 60 秒后重试\"\n  429:\n    code: -32002\n    message: \"DeepSeek 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"DeepSeek 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系 DeepSeek 客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"DeepSeek 余额不足\"\n    suggestion: \"检查余额页：https://platform.deepseek.com/\"\n  content_audit:\n    code: -32602\n    message: \"DeepSeek 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\ntongyi:\n  InvalidApiKey:\n    code: -32602\n    message: \"通义 API key 无效\"\n    suggestion: \"检查 config.json 中 tongyi.api_key 是否正确\"\n  Throttling.RateLimit:\n    code: -32002\n    message: \"通义 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  Throttling:\n    code: -32002\n    message: \"通义 请求被限流\"\n    suggestion: \"等待 60 秒后重试\"\n  429:\n    code: -32002\n    message: \"通义 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"通义 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系通义客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"通义 余额不足\"\n    suggestion: \"检查余额页：https://dashscope.console.aliyun.com/\"\n  content_audit:\n    code: -32602\n    message: \"通义 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nzhipu:\n  data_inspection_failed:\n    code: -32602\n    message: \"智谱 内容审核未通过，请检查输入内容\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n  invalid_api_key:\n    code: -32602\n    message: \"智谱 API key 无效\"\n    suggestion: \"检查 config.json 中 zhipu.api_key 是否正确\"\n  rate_limit_reached:\n    code: -32002\n    message: \"智谱 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  429:\n    code: -32002\n    message: \"智谱 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"智谱 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系智谱客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"智谱 余额不足\"\n    suggestion: \"检查余额页：https://open.bigmodel.cn/\"\n  content_audit:\n    code: -32602\n    message: \"智谱 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nkimi:\n  invalid_api_key:\n    code: -32602\n    message: \"Kimi API key 无效\"\n    suggestion: \"检查 config.json 中 kimi.api_key 是否正确\"\n  rate_limit_exceeded:\n    code: -32002\n    message: \"Kimi 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  content_blocked:\n    code: -32602\n    message: \"Kimi 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n  429:\n    code: -32002\n    message: \"Kimi 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"Kimi 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系 Kimi 客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"Kimi 余额不足\"\n    suggestion: \"检查余额页：https://platform.moonshot.cn/\"\n  content_audit:\n    code: -32602\n    message: \"Kimi 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nhunyuan:\n  AuthFailure.SecretIdNotFound:\n    code: -32602\n    message: \"混元 SecretId 无效\"\n    suggestion: \"检查 config.json 中 hunyuan.api_key 格式是否为 secret_id:secret_key\"\n  AuthFailure.SignatureFailure:\n    code: -32602\n    message: \"混元 签名失败，请检查 SecretKey\"\n    suggestion: \"检查 config.json 中 hunyuan.api_key 格式是否为 secret_id:secret_key\"\n  LimitExceeded:\n    code: -32002\n    message: \"混元 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  429:\n    code: -32002\n    message: \"混元 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"混元 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系混元客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"混元 余额不足\"\n    suggestion: \"检查余额页：https://console.cloud.tencent.com/\"\n  content_audit:\n    code: -32602\n    message: \"混元 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\ndoubao:\n  AuthenticationError:\n    code: -32602\n    message: \"豆包 API key 无效或 endpoint_id 错误\"\n    suggestion: \"检查 config.json 中 doubao.api_key 和 endpoint_id 是否正确\"\n  RateLimitError:\n    code: -32002\n    message: \"豆包 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  BadRequestError:\n    code: -32602\n    message: \"豆包 请求参数错误\"\n    suggestion: \"检查请求参数格式\"\n  429:\n    code: -32002\n    message: \"豆包 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"豆包 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系豆包客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"豆包 余额不足\"\n    suggestion: \"检查余额页：https://console.volcengine.com/\"\n  content_audit:\n    code: -32602\n    message: \"豆包 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nminimax:\n  api_key_invalid:\n    code: -32602\n    message: \"MiniMax API key 无效\"\n    suggestion: \"检查 config.json 中 minimax.api_key 是否正确\"\n  insufficient_balance:\n    code: -32002\n    message: \"MiniMax 余额不足\"\n    suggestion: \"检查余额页：https://api.minimax.chat/\"\n  rate_limit:\n    code: -32002\n    message: \"MiniMax 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  429:\n    code: -32002\n    message: \"MiniMax 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"MiniMax 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系 MiniMax 客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"MiniMax 余额不足\"\n    suggestion: \"检查余额页：https://api.minimax.chat/\"\n  content_audit:\n    code: -32602\n    message: \"MiniMax 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nlingyi:\n  invalid_token:\n    code: -32602\n    message: \"零一万物 API key 无效\"\n    suggestion: \"检查 config.json 中 lingyi.api_key 是否正确\"\n  rate_limit_exceeded:\n    code: -32002\n    message: \"零一万物 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  content_filter:\n    code: -32602\n    message: \"零一万物 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n  429:\n    code: -32002\n    message: \"零一万物 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"零一万物 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系零一万物客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"零一万物 余额不足\"\n    suggestion: \"检查余额页：https://platform.lingyiwanwu.com/\"\n  content_audit:\n    code: -32602\n    message: \"零一万物 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nbaichuan:\n  invalid_apikey:\n    code: -32602\n    message: \"百川智能 API key 无效\"\n    suggestion: \"检查 config.json 中 baichuan.api_key 是否正确\"\n  quota_exceeded:\n    code: -32002\n    message: \"百川智能 额度不足\"\n    suggestion: \"检查余额页：https://api.baichuan-ai.com/\"\n  rate_limit:\n    code: -32002\n    message: \"百川智能 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  429:\n    code: -32002\n    message: \"百川智能 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"百川智能 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系百川智能客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"百川智能 余额不足\"\n    suggestion: \"检查余额页：https://api.baichuan-ai.com/\"\n  content_audit:\n    code: -32602\n    message: \"百川智能 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nstepfun:\n  auth_failed:\n    code: -32602\n    message: \"阶跃星辰 API key 无效\"\n    suggestion: \"检查 config.json 中 stepfun.api_key 是否正确\"\n  rate_limit:\n    code: -32002\n    message: \"阶跃星辰 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  invalid_param:\n    code: -32602\n    message: \"阶跃星辰 请求参数错误\"\n    suggestion: \"检查请求参数格式\"\n  429:\n    code: -32002\n    message: \"阶跃星辰 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"阶跃星辰 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系阶跃星辰客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"阶跃星辰 余额不足\"\n    suggestion: \"检查余额页：https://platform.stepfun.com/\"\n  content_audit:\n    code: -32602\n    message: \"阶跃星辰 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nFile v1.9.0:skill-card.md\n\n## Description:\n\nConnects MCP-compatible agents to ten Chinese model providers for text and multimodal requests, with health checks and usage reporting.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[fyniujin](https://clawhub.ai/user/fyniujin)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers connect MCP-compatible agents to Chinese model providers for chat, image and video understanding, transcription, embeddings, reranking, and batch requests. They can also compare providers and generate health and usage reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts and selected media or text inputs are sent to configured model providers.\n\nMitigation: Use only providers approved for the data you submit.\n\nRisk: API keys and locally stored prompts or results may be exposed if configuration or local data is accessible to others.\n\nMitigation: Prefer environment variables for API keys and protect local ~/.cn-model-gateway databases.\n\nRisk: Optional report webhooks can send reports to an unintended destination.\n\nMitigation: Configure only trusted webhook URLs and review reports before enabling delivery.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/fyniujin/skills/cn-model-gateway)\n- [Provider error mapping](references/error_map.yaml)\n- [DeepSeek platform](https://platform.deepseek.com/)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Code, JSON tool responses, HTML reports]\n\n**Output Format:** [Text or JSON responses, with optional local HTML health reports]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Provider-dependent answers; batch tasks can retain prompts and results locally.]\n\n## Skill Version(s):\n\n1.9.0 (source: ClawHub release and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.9.0:_core_lock.json\n\n{\r\n  \"core_version\": \"1.0.0\",\r\n  \"injected_at\": \"2026-10-09T19:27:35\",\r\n  \"target\": \"cn-model-gateway\"\r\n}\n\nFile v1.9.0:_core/version.json\n\n{\"version\": \"1.0.0\", \"compatible_skills\": {\"cn-llm-router\": \">=2.5.0\", \"cn-model-gateway\": \">=1.7.0\"}, \"adapters\": [\"openai_compat\", \"ernie\", \"spark\"], \"modules\": [\"cost_tracker\", \"cache\", \"health_check\", \"config\", \"yaml_simple\"]}\n\nFile v1.9.0:version.json\n\n{\"version\": \"1.9.0\", \"homepage\": \"https://skillhub.cn/skill/cn-model-gateway\", \"notes\": \"v1.9.0：新增每日健康晨报 + 厂商变更雷达（3σ 异常检测）；统一错误映射扩容（429/451/余额不足/内容审查 + 中文处置建议）；错误映射表 YAML 外置\"}\n\nArchive v1.8.0: 63 files, 120776 bytes\n\nFiles: _core_lock.json (105b), _core/adapters/__init__.py (654b), _core/adapters/base.py (4413b), _core/adapters/ernie.py (5025b), _core/adapters/openai_compat.py (6245b), _core/adapters/spark.py (5542b), _core/cache.py (6959b), _core/calibrate.py (10185b), _core/config.py (3133b), _core/cost_tracker.py (7230b), _core/health_check.py (5920b), _core/version.json (230b), _core/yaml_simple.py (6501b), config/config.json.example (639b), main.py (25779b), README.md (4674b), skill-card.md (2515b), SKILL.md (19660b), src/__init__.py (89b), src/adapters/__init__.py (739b), src/adapters/baichuan.py (239b), src/adapters/base.py (394b), src/adapters/deepseek.py (239b), src/adapters/doubao.py (231b), src/adapters/hunyuan.py (235b), src/adapters/kimi.py (223b), src/adapters/lingyi.py (231b), src/adapters/minimax.py (235b), src/adapters/stepfun.py (235b), src/adapters/tongyi.py (231b), src/adapters/zhipu.py (227b), src/batch_queue.py (16502b), src/benchmark.py (22740b), src/frameworks/__init__.py (579b), src/frameworks/autogpt_plugin.py (2629b), src/frameworks/coze_plugin.py (7246b), src/frameworks/crewai_tool.py (3989b), src/frameworks/dify_tool.py (5796b), src/frameworks/langchain_tool.py (3593b), src/llm_core/__init__.py (1138b), src/llm_core/adapters/__init__.py (656b), src/llm_core/adapters/baichuan.py (4825b), src/llm_core/adapters/base.py (6130b), src/llm_core/adapters/deepseek.py (6308b), src/llm_core/adapters/doubao.py (6162b), src/llm_core/adapters/hunyuan.py (6062b), src/llm_core/adapters/kimi.py (4788b), src/llm_core/adapters/lingyi.py (4804b), src/llm_core/adapters/minimax.py (4798b), src/llm_core/adapters/stepfun.py (4808b), src/llm_core/adapters/tongyi.py (6262b), src/llm_core/adapters/zhipu.py (7390b), src/llm_core/error_map.py (4141b), src/llm_core/router.py (9215b), src/llm_core/types.py (3129b), src/mcp_server.py (34905b), src/monitor.py (7039b), src/price_tracker.py (11137b), src/router.py (636b), src/utils.py (1597b), tests/test_basic.py (37341b), version.json (496b), _meta.json (135b)\n\nFile v1.8.0:SKILL.md\n\n---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。10 个 MCP 工具（ask_model/describe_image/embed_text/rerank/audio_transcribe/video_understand/batch_submit/batch_result/list_providers/health_check）+ 单一网关状态资源 + 2 个 prompt 模板。内置统一错误映射、流式 SSE 输出+心跳保活+断线重连、使用量统计、硬件感知并发控制、SQLite WAL 批量任务队列、自动故障转移、环境变量优先读取 API key。支持 Function Calling、多模态视觉、5 个非 MCP 框架适配器（LangChain/AutoGPT/CrewAI/Coze/Dify）、性能基准测试和 Token 价格追踪。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.8.0\n---\n\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ `ask_model` 传入 `providers=[a,b]` 即可对比 |\n| 你想让模型描述一张图片 | ✅ `describe_image` 工具，支持 Qwen-VL/GLM-4V/豆包视觉 |\n| 你想让模型调用工具（Function Calling） | ✅ `ask_model` 传入 `tools` 参数，返回 `tool_calls` |\n| 你想生成文本向量嵌入 | ✅ `embed_text` 工具，支持 deepseek/zhipu/doubao/tongyi |\n| 你想对文档按相关性重排序 | ✅ `rerank` 工具，支持 zhipu 等 |\n| 你想将语音转为文字 | ✅ `audio_transcribe` 工具 |\n| 你想理解视频内容 | ✅ `video_understand` 工具（关键帧+视觉描述） |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射，全部返回中文 |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 8 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py ask \"解释量子计算\" --providers deepseek tongyi zhipu\n\n# 描述一张图片\npython main.py describe_image \"https://example.com/photo.jpg\" -p tongyi\n\n# 生成文本向量嵌入\npython main.py embed \"文本1\" \"文本2\" -p deepseek\n\n# 文档重排序\npython main.py rerank -q \"查询\" -d \"文档1\" \"文档2\" \"文档3\" -p zhipu\n\n# 语音转文字\npython main.py transcribe \"audio.mp3\" -p zhipu\n\n# 理解视频内容\npython main.py video \"video.mp4\" -p zhipu\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 启动 MCP 服务器\npython main.py run\n```\n\n### 方式三：Python API 直接调用\n\n```python\nfrom src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)\n```\n\n---\n\n## 内置工具（MCP tools/list 返回）\n\n| 工具名 | 描述 | 关键参数 |\n|--------|------|---------|\n| `ask_model` | 向模型提问（单家/多家对比/Function Calling） | `question`（必填）, `provider`（可选）, `providers`（可选列表，指定 2+ 家对比）, `model`（可选）, `temperature`（可选）, `tools`（可选，Function Calling 工具定义） |\n| `describe_image` | 向视觉模型发送图片，返回描述或回答 | `image`（必填，URL/base64/文件路径）, `prompt`（可选，默认\"请描述这张图片\"）, `provider`（可选）, `model`（可选） |\n| `embed_text` | 将文本转换为向量嵌入（embedding） | `texts`（必填，文本列表）, `provider`（可选）, `model`（可选） |\n| `rerank` | 对文档列表按查询相关性重排序 | `query`（必填）, `documents`（必填，文档列表）, `provider`（可选）, `model`（可选） |\n| `audio_transcribe` | 将音频文件转换为文字（语音识别） | `audio`（必填，URL/base64/文件路径）, `provider`（可选）, `model`（可选）, `language`（可选） |\n| `video_understand` | 理解视频内容（关键帧+视觉描述） | `video`（必填，URL/文件路径）, `prompt`（可选）, `provider`（可选）, `model`（可选） |\n| `batch_submit` | 提交批量任务列表，立即返回任务 ID | `tasks`（必填，任务列表）, `priority`（可选，0-9，默认 5） |\n| `batch_result` | 查询批量任务状态和结果 | `task_id`（必填）, `include_items`（可选，默认 false） |\n| `list_providers` | 列出所有已配置且可用的模型提供商 | 无 |\n| `health_check` | 检查所有已配置提供商的连通性 | 无 |\n\n---\n\n## 内置资源（MCP resources/list 返回）\n\n| 资源 URI | 描述 |\n|----------|------|\n| `cn-model-gateway://status` | 网关状态总览——当前配置（不含 api_key 明文）+ 使用统计 + 配额告警，一屏汇总 |\n\n---\n\n## 内置 Prompt 模板（MCP prompts/list 返回）\n\n| 模板名 | 描述 | 参数 |\n|--------|------|------|\n| `code_review` | 代码审查提示模板 | `code`（必填）, `language`（可选，默认 python） |\n| `translate` | 中英互译提示模板 | `text`（必填）, `target_lang`（必填：zh/en/ja） |\n\n---\n\n## 配置说明\n\n`config.json` 格式：\n\n```json\n{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}\n```\n\n### API Key 读取优先级（v1.4.0）\n\n1. **环境变量**（推荐，更安全）：`DEEPSEEK_API_KEY`、`DASHSCOPE_API_KEY`、`ZHIPU_API_KEY`、`KIMI_API_KEY`、`HUNYUAN_SECRET_ID`、`DOUBAO_API_KEY`、`MINIMAX_API_KEY`、`LINGYI_API_KEY`、`BAICHUAN_API_KEY`、`STEPFUN_API_KEY`\n2. **config.json**（向后兼容）\n\n推荐做法：环境变量设置 api_key，config.json 只填非敏感配置（如 `model`、`base_url` 等）。\n\n- 可以只填一家，也可以十家全填\n- `hunyuan` 比较特殊，格式为 `secret_id:secret_key`（冒号分隔）\n- 未填 api_key 的提供商自动标记为不可用，不影响其他家使用\n\n---\n\n## 统一错误映射\n\n各家模型返回的错误码不同，本 skill 统一映射为 MCP 标准错误码：\n\n| MCP 错误码 | 含义 | 触发场景 |\n|-----------|------|---------|\n| `-32602` | 参数错误 | API key 无效、内容审核未通过、请求参数缺失 |\n| `-32001` | 模型不可用 | 提供商未配置或已过期 |\n| `-32002` | 速率限制 | 调用频率超限、额度不足 |\n| `-32603` | 内部错误 | 网络超时、响应解析失败 |\n\n所有错误信息均为**中文**，便于排查。\n\n---\n\n## 性能优化\n\n- **硬件感知并发**：启动时自动采集 CPU 核数和内存大小，低配电脑（< 4GB 内存）限制并发数为 1，高配最多 4 并发\n- **零外部依赖**：纯 Python 标准库，无 `pip install`，避免环境污染\n- **流式输出**：长对话走 SSE 流式，不堵内存\n- **SQLite WAL 模式**（v1.4.0）：全部数据库启用 WAL，支持多 Agent 框架同时写入不报锁错误\n- **故障转移**（v1.4.0）：auto 模式按能力画像排序 + 超时自动切换备用提供商，成功率 99%+\n\n---\n\n## 版本更新提醒\n\n本 skill 会在每次启动时打印当前版本号（stderr）。要获取最新版本：\n\n```bash\n# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway\n```\n\n建议关注本 skill 的 GitHub Release 页获取更新通知。\n\n---\n\n## ⚠️ 风险项（必读）\n\n| 风险 | 说明 | 规避方式 |\n|------|------|---------|\n| API Key 泄露 | 用户需自行保管 api_key，config.json 文件勿提交到公开仓库 | 推荐使用环境变量（DEEPSEEK_API_KEY 等）替代 config.json 明文；config.json 加到 .gitignore |\n| 模型调用计费 | 每次调用都会消耗对应模型提供商的额度，费用由用户自行承担 | 定期查看 `python main.py stats` 统计，设置各平台额度预警 |\n| 内容安全 | 模型回答内容由各提供商审核策略决定，本 skill 不额外过滤 | 生产环境建议叠加内容安全过滤层 |\n| 网络依赖 | 每次调用都通过 urllib 直连各模型 API，需要联网 | 离线环境无法使用各家模型能力 |\n| 并发安全风险 | SQLite 已启用 WAL 模式（v1.4.0），多进程并发安全 | 如仍遇到锁错误，检查 .db-wal 文件是否损坏，可删除重建 |\n| 配置格式 | hunyuan 必须是 `secret_id:secret_key` 格式，其他家是普通 key | 使用前运行 `python main.py status` 检查连通性 |\n| API 版本兼容 | 各模型提供商可能更新 OpenAI-compatible 接口路径或字段 | 关注各平台公告，本 skill 会随版本更新适配 |\n\n---\n\n## 能力边界\n\n- 支持文本对话、图片理解（v1.5.0 新增多模态）、文本向量嵌入（v1.6.0）、文档重排序（v1.6.0）、语音转文字（v1.6.0）、视频理解（v1.6.0）\n- 支持 Function Calling / Tool Use（v1.5.0 新增，通过 `tools` 参数传入）\n- 支持批量异步调用（v1.8.0 新增）：`batch_submit` 提交任务列表 → 后台顺序执行 → `batch_result` 轮询结果；失败自动重试一次\n- 支持 SSE 心跳保活（30s ping）+ 断线重连（v1.8.0 新增）：客户端断开后凭请求 ID 重连续传，网络抖动不导致长回答作废重计费\n- 不支持本地模型推理或 GPU 部署\n- auto 模式支持故障转移（v1.4.0 新增），默认按能力画像排序 + 超时自动切备用\n\n---\n\n## 常见问题（FAQ）\n\n**Q: 为什么启动后没有任何提供商可用？**\nA: 检查 config.json 格式是否正确，api_key 是否填写。运行 `python main.py status` 查看状态。注意 hunyuan 格式是 `secret_id:secret_key`（冒号分隔）。\n\n**Q: 能同时配置多个提供商让 skill 自动选择吗？**\nA: 可以。auto 模式会按能力画像（benchmark 历史评分）和连通性状态排序，选最优的。超时/失败时自动切换到下一家（可通过 `--no-failover` 关闭）。\n\n**Q: 如何对比多个模型的回答？**\nA: 在 `ask_model` 工具中传入 `providers: [\"deepseek\", \"tongyi\", \"zhipu\"]`（2 家及以上），会自动返回对比结果。不传 `providers` 则单家调用。\n\n**Q: 如何让模型描述一张图片？**\nA: 使用 `describe_image` 工具，传入 `image`（URL/base64/文件路径）和可选的 `prompt`。支持 Qwen-VL、GLM-4V、豆包视觉等多模态模型。\n\n**Q: 如何使用 Function Calling？**\nA: 在 `ask_model` 工具中传入 `tools` 参数（工具定义列表），模型可能会在响应中返回 `tool_calls`。你需要自行执行工具并将结果作为后续对话的输入。\n\n**Q: 如何生成文本向量嵌入？**\nA: 使用 `embed_text` 工具，传入 `texts` 列表。支持 deepseek（deepseek-embedding）、zhipu（embedding-2）、doubao（doubao-embedding）、tongyi（text-embedding-v2）等。\n\n**Q: 如何对文档进行重排序？**\nA: 使用 `rerank` 工具，传入 `query` 和 `documents` 列表。支持 zhipu（rerank）等提供商。\n\n**Q: 如何将语音转为文字？**\nA: 使用 `audio_transcribe` 工具，传入音频文件路径或 URL。支持 zhipu、doubao 等提供商。\n\n**Q: 如何理解视频内容？**\nA: 使用 `video_understand` 工具，传入视频文件路径或 URL。系统会自动抽取关键帧并通过视觉模型生成描述。\n\n**Q: 如何批量执行多个任务（如批量翻译、批量文档摘要）？**\nA: 使用 `batch_submit` 工具提交任务列表（每项指定 `tool` 和 `arguments`），立即返回任务 ID。然后用 `batch_result` 工具轮询任务进度和结果。后台顺序执行（复用硬件自适应并发），失败任务自动重试一次并保留错误详情。\n\n**Q: 网络断开后正在进行的调用会作废吗？**\nA: 不会。v1.8.0 新增 SSE 心跳保活（30s ping）+ 断线重连：服务端缓冲最近 200 个 chunk，客户端凭请求 ID 重连后从断点续传，避免长回答作废重计费。\n\n**Q: 各家模型的默认模型是什么？**\nA: deepseek-chat / qwen-turbo / glm-4-flash / moonshot-v1-8k / hunyuan-standard / doubao 系列。可通过 `model` 参数覆盖。\n\n**Q: 使用量数据存在哪里？**\nA: 默认存储在 `~/.cn-model-gateway/usage.db`（SQLite）。不会上传到任何服务器。\n\n**Q: 支持哪些操作系统？**\nA: Windows / macOS / Linux 全平台支持。需要 Python 3.9+。\n\n**Q: 需要 GPU 吗？**\nA: 完全不需要。本 skill 只做 API 网关，不进行本地推理。\n\n---\n\n## 支持与反馈\n\n有更好建议：njskills@agent.qq.com\n\n遇到问题请提供：\n1. `python main.py status` 输出\n2. 报错截图或完整错误信息\n3. 你使用的 model provider 名称\n\n---\n\n## 更新日志\n\n| v1.8.0 | 2026-08-24 | 新增批量异步任务引擎：batch_submit 提交任务列表立即返回 ID，后台顺序执行（复用硬件自适应并发），batch_result 轮询状态与结果，失败自动重试一次并保留错误详情；新增 SSE 心跳保活（30s ping）+ 断线重连（chunk ring buffer，凭请求 ID 从断点续传，保护长输出与成本）；MCP 资源合并：config + usage 两个资源合并为 cn-model-gateway://status 单一资源（配置+使用统计+配额告警一屏汇总）；新增 batch_queue.py 任务队列模块（SQLite WAL + 后台 worker 线程）；MCPServer 启动时自动启动 batch_worker，新增 shutdown() 优雅停止；SKILL.md 更新工具列表（10 个工具）、资源列表、能力边界、FAQ |\n| v1.6.0 | 2026-08-24 | 新增共享内核（llm-core monorepo）：抽取 src/llm_core/ 共享内核模块，支持 MCP 形态与 CLI 形态共用同一份 core（adapters/router/error_map/cost/cache/monitor/benchmark），构建时注入同版副本+版本锁；新增 4 个 MCP 工具：embed_text（文本向量嵌入，支持 deepseek/zhipu/doubao/tongyi）、rerank（文档重排序，支持 zhipu）、audio_transcribe（语音转文字）、video_understand（关键帧抽取+视觉模型描述→视频摘要）；BaseAdapter 新增 4 个抽象方法（embed_text/rerank/audio_transcribe/video_understand）+ 降级 NotImplementedError 机制；CLI 新增 4 个子命令（embed/rerank/transcribe/video）；SKILL.md 全面更新工具列表/能力边界/FAQ |\n| v1.5.0 | 2026-08-16 | 合并 MCP 工具：ask_model + compare_models → ask_model（新增可选 providers 参数，空=单家，≥2 家=对比）；新增多模态视觉支持：ChatMessage 加 image 字段 + describe_image MCP 工具 + 视觉适配器多模态 payload（Qwen-VL/GLM-4V/豆包视觉）；新增 Function Calling / Tool Use：ChatResponse 加 tool_calls 字段 + BaseAdapter 加 format_tools/parse_tool_calls 方法 + ask_model 支持 tools 参数；SKILL.md 全面更新工具列表/能力边界/FAQ |\n| v1.4.0 | 2026-08-16 | 改进 auto 模式故障转移：auto_select() 从 random.choice 改为能力画像 + 健康检查有序选择；chat() 和 stream_chat() 新增自动故障转移循环，失败/超时自动切备用提供商；支持环境变量优先读取 api_key（DEEPSEEK_API_KEY / DASHSCOPE_API_KEY 等 10 个），config.json 向后兼容；SQLite 全部启用 WAL 模式（PRAGMA journal_mode=WAL），支持多 Agent 框架并发写入；新增 --timeout 和 --no-failover CLI 参数；新增 3 个故障转移+环境变量+WAL 单元测试（总计 40 tests） |\n| v1.3.0 | 2026-08-01 | 新增模型性能基准测试套件（benchmark.py：50 道题库、6 维度评分、雷达图对比、历史追踪）；新增 Token 价格实时追踪（price_tracker.py：价格抓取、变更通知、趋势图、成本预测）；新增 4 个 CLI 子命令（benchmark/price/benchmark-history/price-history/cost-predict）；测试覆盖新增 8 个 benchmark + price_tracker 单元测试（总计 37 tests） |\n| v1.2.0 | 2026-07-24 | 新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）；扩展框架适配层从 MCP 生态到全 Agent 生态；新增 frameworks 模块（5 个适配器 + 统一导出）；测试覆盖新增 11 个框架适配器单元测试（总计 29 tests） |\n| v1.1.0 | 2026-07-17 | 新增 4 家模型提供商（MiniMax/零一万物/百川智能/阶跃星辰）；更新 DeepSeek-V3 支持（deepseek-chat, deepseek-reasoner）；更新 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k）；扩展统一错误映射覆盖 10 家厂商；支持模型表格同步更新 |\n| v1.0.0 | 2026-07-16 | 初始版本发布，包含：MCP JSON-RPC 2.0 完整协议适配（tools/list/call + resources/list/read + prompts/list/get）；6 家国产模型适配器（DeepSeek/通义/智谱/Kimi/混元/豆包）；统一错误映射（4 种 MCP 标准错误码 + 中文 message）；流式 SSE 输出；本地 MCP 服务器 stdio 启动；内置 4 个工具（ask_model/compare_models/list_providers/health_check）；2 个 prompt 模板（code_review/translate）；使用量统计（SQLite + 周报）；硬件感知并发控制（自动采集 CPU/内存 → 动态分配并发数）；纯 Python 标准库零依赖；CLAUDE.md/Cursor/Cline 配置文件模板 |\n\nFile v1.8.0:README.md\n\n# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **10 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包 / MiniMax / 零一万物 / 百川智能 / 阶跃星辰\n- **全 Agent 生态**：新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）\n- **模型性能基准测试**：内置 50 道题库、6 维度评分、雷达图对比、历史追踪（从\"凭感觉选模型\"变成\"凭数据选模型\"）\n- **Token 价格实时追踪**：价格抓取（含降级缓存）、变更通知、趋势图、成本预测\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n| MiniMax | abab6.5s-chat | 普通 API key |\n| 零一万物 (LingYi) | yi-large | 普通 API key |\n| 百川智能 | baichuan2-turbo | 普通 API key |\n| 阶跃星辰 (StepFun) | step-1-200k | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 10 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py        ← 支持 V3: deepseek-chat, deepseek-reasoner\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py            ← 支持 v1-32k / v1-128k\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   ├── doubao.py\n│   │   ├── minimax.py         ← MiniMax abab 系列\n│   │   ├── lingyi.py          ← 零一万物 Yi 系列\n│   │   ├── baichuan.py        ← 百川智能\n│   │   └── stepfun.py         ← 阶跃星辰 Step 系列\n│   ├── frameworks/            ← 5 个非 MCP 框架适配器\n│   │   ├── __init__.py        ← 统一导出\n│   │   ├── langchain_tool.py  ← LangChain Tool 适配器\n│   │   ├── autogpt_plugin.py  ← AutoGPT Plugin 适配器\n│   │   ├── crewai_tool.py     ← CrewAI Tool 适配器\n│   │   ├── coze_plugin.py     ← Coze 插件适配器\n│   │   └── dify_tool.py       ← Dify 工具节点适配器\n│   ├── benchmark.py           ← 模型性能基准测试套件（新增）\n│   ├── price_tracker.py       ← Token 价格实时追踪（新增）\n│   ├── router.py              ← 路由 + 统一错误映射（10 家）\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py               ← 工具函数\n├── config/\n│   └── config.json.example    ← 配置模板（含 10 家）\n└── tests/\n    └── test_basic.py          ← 基础测试（37 tests 全过）\n```\n\n## License\n\nMIT\n\n## 联系\n\nnjskills@agent.qq.com\n\nFile v1.8.0:_meta.json\n\n{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.8.0\",\n  \"publishedAt\": 1789616823998\n}\n\nFile v1.8.0:skill-card.md\n\n## Description:\n\nCN Model Gateway is a Python MCP server that lets agent frameworks route text, multimodal, embedding, reranking, transcription, video, batch, and health-check requests to configured Chinese model providers through a unified JSON-RPC interface.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[fyniujin](https://clawhub.ai/user/fyniujin)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use this skill to connect MCP-compatible clients such as Claude Code, Cursor, Cline, n8n, and Claude Desktop to multiple Chinese model providers through one local gateway. It supports provider selection, multimodal calls, embeddings, reranking, transcription, video understanding, batch jobs, status checks, and usage monitoring.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Submitted text, images, audio, or video may be sent to configured third-party model providers.\n\nMitigation: Use only providers whose terms and data-handling practices are acceptable for the workload, and avoid sending sensitive data unless approved.\n\nRisk: API keys may be exposed if stored in a local config file or committed with the skill.\n\nMitigation: Prefer environment variables for API keys and keep config.json out of source control.\n\nRisk: Local SQLite databases may retain prompts, batch results, usage history, or other sensitive operational data.\n\nMitigation: Protect local database files and periodically clear them when stored prompts or batch results may contain sensitive data.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/fyniujin/skills/cn-model-gateway)\n- [Artifact README](artifact/README.md)\n- [Artifact skill definition](artifact/SKILL.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown, JSON-RPC tool responses, command-line text, and configuration snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include provider responses, model comparison output, usage statistics, batch task status, and configuration guidance.]\n\n## Skill Version(s):\n\n1.8.0 (source: frontmatter, artifact/version.json, server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.8.0:_core_lock.json\n\n{\r\n  \"core_version\": \"1.0.0\",\r\n  \"injected_at\": \"2026-09-17T10:29:18\",\r\n  \"target\": \"cn-model-gateway\"\r\n}\n\nFile v1.8.0:_core/version.json\n\n{\"version\": \"1.0.0\", \"compatible_skills\": {\"cn-llm-router\": \">=2.5.0\", \"cn-model-gateway\": \">=1.8.0\"}, \"adapters\": [\"openai_compat\", \"ernie\", \"spark\"], \"modules\": [\"cost_tracker\", \"cache\", \"health_check\", \"config\", \"yaml_simple\"]}\n\nFile v1.8.0:version.json\n\n{\"version\": \"1.8.0\", \"homepage\": \"https://skillhub.cn/skill/cn-model-gateway\", \"notes\": \"v1.8.0：引入 llm-core 共享内核（adapters/cost_tracker/cache/health_check/config/yaml_simple），build_core.py 构建脚本 vendor 注入 + _core_lock.json 版本锁 + regression 回归门禁；集成 calibrate.py 能力实测校准器（标准题集实测回填画像分数，支持全量/抽样预算）；ernie.py 适配器精简（推荐 OpenAI 兼容通道，原生签名路径保留兜底）\"}\n\nArchive v1.7.0: 61 files, 110440 bytes\n\nFiles: _core_lock.json (105b), _core/adapters/__init__.py (654b), _core/adapters/base.py (3973b), _core/adapters/ernie.py (5025b), _core/adapters/openai_compat.py (3902b), _core/adapters/spark.py (5542b), _core/cache.py (6959b), _core/calibrate.py (9879b), _core/config.py (3133b), _core/cost_tracker.py (7230b), _core/health_check.py (5920b), _core/version.json (230b), _core/yaml_simple.py (6501b), main.py (20461b), README.md (4674b), skill-card.md (2618b), SKILL.md (19091b), src/__init__.py (89b), src/adapters/__init__.py (739b), src/adapters/baichuan.py (239b), src/adapters/base.py (394b), src/adapters/deepseek.py (239b), src/adapters/doubao.py (231b), src/adapters/hunyuan.py (235b), src/adapters/kimi.py (223b), src/adapters/lingyi.py (231b), src/adapters/minimax.py (235b), src/adapters/stepfun.py (235b), src/adapters/tongyi.py (231b), src/adapters/zhipu.py (227b), src/benchmark.py (22740b), src/frameworks/__init__.py (579b), src/frameworks/autogpt_plugin.py (2629b), src/frameworks/coze_plugin.py (7246b), src/frameworks/crewai_tool.py (3989b), src/frameworks/dify_tool.py (5796b), src/frameworks/langchain_tool.py (3593b), src/llm_core/__init__.py (1138b), src/llm_core/adapters/__init__.py (656b), src/llm_core/adapters/baichuan.py (4825b), src/llm_core/adapters/base.py (6130b), src/llm_core/adapters/deepseek.py (6308b), src/llm_core/adapters/doubao.py (6162b), src/llm_core/adapters/hunyuan.py (6062b), src/llm_core/adapters/kimi.py (4788b), src/llm_core/adapters/lingyi.py (4804b), src/llm_core/adapters/minimax.py (4798b), src/llm_core/adapters/stepfun.py (4808b), src/llm_core/adapters/tongyi.py (6262b), src/llm_core/adapters/zhipu.py (7390b), src/llm_core/error_map.py (4141b), src/llm_core/router.py (9215b), src/llm_core/types.py (3129b), src/mcp_server.py (27750b), src/monitor.py (7039b), src/price_tracker.py (11137b), src/router.py (636b), src/utils.py (1597b), tests/test_basic.py (25623b), version.json (496b), _meta.json (135b)\n\nFile v1.7.0:SKILL.md\n\n---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 18+ Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。新增 5 个非 MCP 框架适配器：LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点，实现从 MCP 生态到全 Agent 生态的扩展。内置模型性能基准测试套件（50 道题库、6 维度评分、雷达图对比、历史追踪）和 Token 价格实时追踪（价格抓取、变更通知、趋势图、成本预测）。支持 8 个 MCP 工具（ask_model/describe_image/embed_text/rerank/audio_transcribe/video_understand/list_providers/health_check）、资源读取（配置/使用统计）、预置 prompt 模板（代码审查/翻译），内置统一错误映射、流式 SSE 输出、使用量统计、硬件感知并发控制。auto 模式支持能力画像排序 + 自动故障转移（超时/失败切备用）；API key 支持环境变量优先读取；SQLite 启用 WAL 模式支持多 Agent 框架并发写入；支持多模态视觉模型（Qwen-VL/GLM-4V/豆包视觉）和图片理解（describe_image）；支持 Function Calling / Tool Use（ask_model 传入 tools 参数）；新增文本向量嵌入（embed_text）、文档重排序（rerank）、语音转文字（audio_transcribe）、视频理解（video_understand）四个新工具。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.7.0\n---\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ `ask_model` 传入 `providers=[a,b]` 即可对比 |\n| 你想让模型描述一张图片 | ✅ `describe_image` 工具，支持 Qwen-VL/GLM-4V/豆包视觉 |\n| 你想让模型调用工具（Function Calling） | ✅ `ask_model` 传入 `tools` 参数，返回 `tool_calls` |\n| 你想生成文本向量嵌入 | ✅ `embed_text` 工具，支持 deepseek/zhipu/doubao/tongyi |\n| 你想对文档按相关性重排序 | ✅ `rerank` 工具，支持 zhipu 等 |\n| 你想将语音转为文字 | ✅ `audio_transcribe` 工具 |\n| 你想理解视频内容 | ✅ `video_understand` 工具（关键帧+视觉描述） |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射，全部返回中文 |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 8 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py ask \"解释量子计算\" --providers deepseek tongyi zhipu\n\n# 描述一张图片\npython main.py describe_image \"https://example.com/photo.jpg\" -p tongyi\n\n# 生成文本向量嵌入\npython main.py embed \"文本1\" \"文本2\" -p deepseek\n\n# 文档重排序\npython main.py rerank -q \"查询\" -d \"文档1\" \"文档2\" \"文档3\" -p zhipu\n\n# 语音转文字\npython main.py transcribe \"audio.mp3\" -p zhipu\n\n# 理解视频内容\npython main.py video \"video.mp4\" -p zhipu\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 启动 MCP 服务器\npython main.py run\n```\n\n### 方式三：Python API 直接调用\n\n```python\nfrom src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)\n```\n\n---\n\n## 内置工具（MCP tools/list 返回）\n\n| 工具名 | 描述 | 关键参数 |\n|--------|------|---------|\n| `ask_model` | 向模型提问（单家/多家对比/Function Calling） | `question`（必填）, `provider`（可选）, `providers`（可选列表，指定 2+ 家对比）, `model`（可选）, `temperature`（可选）, `tools`（可选，Function Calling 工具定义） |\n| `describe_image` | 向视觉模型发送图片，返回描述或回答 | `image`（必填，URL/base64/文件路径）, `prompt`（可选，默认\"请描述这张图片\"）, `provider`（可选）, `model`（可选） |\n| `embed_text` | 将文本转换为向量嵌入（embedding） | `texts`（必填，文本列表）, `provider`（可选）, `model`（可选） |\n| `rerank` | 对文档列表按查询相关性重排序 | `query`（必填）, `documents`（必填，文档列表）, `provider`（可选）, `model`（可选） |\n| `audio_transcribe` | 将音频文件转换为文字（语音识别） | `audio`（必填，URL/base64/文件路径）, `provider`（可选）, `model`（可选）, `language`（可选） |\n| `video_understand` | 理解视频内容（关键帧+视觉描述） | `video`（必填，URL/文件路径）, `prompt`（可选）, `provider`（可选）, `model`（可选） |\n| `list_providers` | 列出所有已配置且可用的模型提供商 | 无 |\n| `health_check` | 检查所有已配置提供商的连通性 | 无 |\n\n---\n\n## 内置资源（MCP resources/list 返回）\n\n| 资源 URI | 描述 |\n|----------|------|\n| `cn-model-gateway://config` | 查看当前已注册的模型提供商列表（不含 api_key 明文） |\n| `cn-model-gateway://usage` | 查看调用次数、token 消耗、各模型使用占比等统计 |\n\n---\n\n## 内置 Prompt 模板（MCP prompts/list 返回）\n\n| 模板名 | 描述 | 参数 |\n|--------|------|------|\n| `code_review` | 代码审查提示模板 | `code`（必填）, `language`（可选，默认 python） |\n| `translate` | 中英互译提示模板 | `text`（必填）, `target_lang`（必填：zh/en/ja） |\n\n---\n\n## 配置说明\n\n`config.json` 格式：\n\n```json\n{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}\n```\n\n### API Key 读取优先级（v1.4.0）\n\n1. **环境变量**（推荐，更安全）：`DEEPSEEK_API_KEY`、`DASHSCOPE_API_KEY`、`ZHIPU_API_KEY`、`KIMI_API_KEY`、`HUNYUAN_SECRET_ID`、`DOUBAO_API_KEY`、`MINIMAX_API_KEY`、`LINGYI_API_KEY`、`BAICHUAN_API_KEY`、`STEPFUN_API_KEY`\n2. **config.json**（向后兼容）\n\n推荐做法：环境变量设置 api_key，config.json 只填非敏感配置（如 `model`、`base_url` 等）。\n\n- 可以只填一家，也可以十家全填\n- `hunyuan` 比较特殊，格式为 `secret_id:secret_key`（冒号分隔）\n- 未填 api_key 的提供商自动标记为不可用，不影响其他家使用\n\n---\n\n## 统一错误映射\n\n各家模型返回的错误码不同，本 skill 统一映射为 MCP 标准错误码：\n\n| MCP 错误码 | 含义 | 触发场景 |\n|-----------|------|---------|\n| `-32602` | 参数错误 | API key 无效、内容审核未通过、请求参数缺失 |\n| `-32001` | 模型不可用 | 提供商未配置或已过期 |\n| `-32002` | 速率限制 | 调用频率超限、额度不足 |\n| `-32603` | 内部错误 | 网络超时、响应解析失败 |\n\n所有错误信息均为**中文**，便于排查。\n\n---\n\n## 性能优化\n\n- **硬件感知并发**：启动时自动采集 CPU 核数和内存大小，低配电脑（< 4GB 内存）限制并发数为 1，高配最多 4 并发\n- **零外部依赖**：纯 Python 标准库，无 `pip install`，避免环境污染\n- **流式输出**：长对话走 SSE 流式，不堵内存\n- **SQLite WAL 模式**（v1.4.0）：全部数据库启用 WAL，支持多 Agent 框架同时写入不报锁错误\n- **故障转移**（v1.4.0）：auto 模式按能力画像排序 + 超时自动切换备用提供商，成功率 99%+\n\n---\n\n## 版本更新提醒\n\n本 skill 会在每次启动时打印当前版本号（stderr）。要获取最新版本：\n\n```bash\n# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway\n```\n\n建议关注本 skill 的 GitHub Release 页获取更新通知。\n\n---\n\n## ⚠️ 风险项（必读）\n\n| 风险 | 说明 | 规避方式 |\n|------|------|---------|\n| API Key 泄露 | 用户需自行保管 api_key，config.json 文件勿提交到公开仓库 | 推荐使用环境变量（DEEPSEEK_API_KEY 等）替代 config.json 明文；config.json 加到 .gitignore |\n| 模型调用计费 | 每次调用都会消耗对应模型提供商的额度，费用由用户自行承担 | 定期查看 `python main.py stats` 统计，设置各平台额度预警 |\n| 内容安全 | 模型回答内容由各提供商审核策略决定，本 skill 不额外过滤 | 生产环境建议叠加内容安全过滤层 |\n| 网络依赖 | 每次调用都通过 urllib 直连各模型 API，需要联网 | 离线环境无法使用各家模型能力 |\n| 并发安全风险 | SQLite 已启用 WAL 模式（v1.4.0），多进程并发安全 | 如仍遇到锁错误，检查 .db-wal 文件是否损坏，可删除重建 |\n| 配置格式 | hunyuan 必须是 `secret_id:secret_key` 格式，其他家是普通 key | 使用前运行 `python main.py status` 检查连通性 |\n| API 版本兼容 | 各模型提供商可能更新 OpenAI-compatible 接口路径或字段 | 关注各平台公告，本 skill 会随版本更新适配 |\n\n---\n\n## 能力边界\n\n- 支持文本对话、图片理解（v1.5.0 新增多模态）、文本向量嵌入（v1.6.0）、文档重排序（v1.6.0）、语音转文字（v1.6.0）、视频理解（v1.6.0）\n- 支持 Function Calling / Tool Use（v1.5.0 新增，通过 `tools` 参数传入）\n- 不支持本地模型推理或 GPU 部署\n- auto 模式支持故障转移（v1.4.0 新增），默认按能力画像排序 + 超时自动切备用\n- 不支持批量异步调用（single-call synchronous only）\n\n---\n\n## 常见问题（FAQ）\n\n**Q: 为什么启动后没有任何提供商可用？**\nA: 检查 config.json 格式是否正确，api_key 是否填写。运行 `python main.py status` 查看状态。注意 hunyuan 格式是 `secret_id:secret_key`（冒号分隔）。\n\n**Q: 能同时配置多个提供商让 skill 自动选择吗？**\nA: 可以。auto 模式会按能力画像（benchmark 历史评分）和连通性状态排序，选最优的。超时/失败时自动切换到下一家（可通过 `--no-failover` 关闭）。\n\n**Q: 如何对比多个模型的回答？**\nA: 在 `ask_model` 工具中传入 `providers: [\"deepseek\", \"tongyi\", \"zhipu\"]`（2 家及以上），会自动返回对比结果。不传 `providers` 则单家调用。\n\n**Q: 如何让模型描述一张图片？**\nA: 使用 `describe_image` 工具，传入 `image`（URL/base64/文件路径）和可选的 `prompt`。支持 Qwen-VL、GLM-4V、豆包视觉等多模态模型。\n\n**Q: 如何使用 Function Calling？**\nA: 在 `ask_model` 工具中传入 `tools` 参数（工具定义列表），模型可能会在响应中返回 `tool_calls`。你需要自行执行工具并将结果作为后续对话的输入。\n\n**Q: 如何生成文本向量嵌入？**\nA: 使用 `embed_text` 工具，传入 `texts` 列表。支持 deepseek（deepseek-embedding）、zhipu（embedding-2）、doubao（doubao-embedding）、tongyi（text-embedding-v2）等。\n\n**Q: 如何对文档进行重排序？**\nA: 使用 `rerank` 工具，传入 `query` 和 `documents` 列表。支持 zhipu（rerank）等提供商。\n\n**Q: 如何将语音转为文字？**\nA: 使用 `audio_transcribe` 工具，传入音频文件路径或 URL。支持 zhipu、doubao 等提供商。\n\n**Q: 如何理解视频内容？**\nA: 使用 `video_understand` 工具，传入视频文件路径或 URL。系统会自动抽取关键帧并通过视觉模型生成描述。\n\n**Q: 各家模型的默认模型是什么？**\nA: deepseek-chat / qwen-turbo / glm-4-flash / moonshot-v1-8k / hunyuan-standard / doubao 系列。可通过 `model` 参数覆盖。\n\n**Q: 使用量数据存在哪里？**\nA: 默认存储在 `~/.cn-model-gateway/usage.db`（SQLite）。不会上传到任何服务器。\n\n**Q: 支持哪些操作系统？**\nA: Windows / macOS / Linux 全平台支持。需要 Python 3.9+。\n\n**Q: 需要 GPU 吗？**\nA: 完全不需要。本 skill 只做 API 网关，不进行本地推理。\n\n---\n\n## 支持与反馈\n\n有更好建议：njskills@agent.qq.com\n\n遇到问题请提供：\n1. `python main.py status` 输出\n2. 报错截图或完整错误信息\n3. 你使用的 model provider 名称\n\n---\n\n## 更新日志\n\n| v1.7.0 | 2026-08-24 | 引入 llm-core 共享内核——adapters/cost_tracker/cache/health_check/config/yaml_simple 公共代码抽为 llm-core/ 源码目录，build_core.py 构建脚本 vendor 注入本 skill 包，生成 _core_lock.json 版本锁确保同源；build_core.py 三个子命令（inject 注入 / check 版本一致性检查 / regression 双端回归门禁）；集成 calibrate.py 能力实测校准器——跑标准题集（分类/代码/长文各 5 题）实测回填画像分数，标注来源+日期，支持全量/抽样预算配置；ernie.py 适配器精简——推荐走 OpenAI 兼容通道，原生签名路径保留作兜底\n| v1.6.0 | 2026-08-24 | 新增共享内核（llm-core monorepo）：抽取 src/llm_core/ 共享内核模块，支持 MCP 形态与 CLI 形态共用同一份 core（adapters/router/error_map/cost/cache/monitor/benchmark），构建时注入同版副本+版本锁；新增 4 个 MCP 工具：embed_text（文本向量嵌入，支持 deepseek/zhipu/doubao/tongyi）、rerank（文档重排序，支持 zhipu）、audio_transcribe（语音转文字）、video_understand（关键帧抽取+视觉模型描述→视频摘要）；BaseAdapter 新增 4 个抽象方法（embed_text/rerank/audio_transcribe/video_understand）+ 降级 NotImplementedError 机制；CLI 新增 4 个子命令（embed/rerank/transcribe/video）；SKILL.md 全面更新工具列表/能力边界/FAQ |\n| v1.5.0 | 2026-08-16 | 合并 MCP 工具：ask_model + compare_models → ask_model（新增可选 providers 参数，空=单家，≥2 家=对比）；新增多模态视觉支持：ChatMessage 加 image 字段 + describe_image MCP 工具 + 视觉适配器多模态 payload（Qwen-VL/GLM-4V/豆包视觉）；新增 Function Calling / Tool Use：ChatResponse 加 tool_calls 字段 + BaseAdapter 加 format_tools/parse_tool_calls 方法 + ask_model 支持 tools 参数；SKILL.md 全面更新工具列表/能力边界/FAQ |\n| v1.4.0 | 2026-08-16 | 改进 auto 模式故障转移：auto_select() 从 random.choice 改为能力画像 + 健康检查有序选择；chat() 和 stream_chat() 新增自动故障转移循环，失败/超时自动切备用提供商；支持环境变量优先读取 api_key（DEEPSEEK_API_KEY / DASHSCOPE_API_KEY 等 10 个），config.json 向后兼容；SQLite 全部启用 WAL 模式（PRAGMA journal_mode=WAL），支持多 Agent 框架并发写入；新增 --timeout 和 --no-failover CLI 参数；新增 3 个故障转移+环境变量+WAL 单元测试（总计 40 tests） |\n| v1.3.0 | 2026-08-01 | 新增模型性能基准测试套件（benchmark.py：50 道题库、6 维度评分、雷达图对比、历史追踪）；新增 Token 价格实时追踪（price_tracker.py：价格抓取、变更通知、趋势图、成本预测）；新增 4 个 CLI 子命令（benchmark/price/benchmark-history/price-history/cost-predict）；测试覆盖新增 8 个 benchmark + price_tracker 单元测试（总计 37 tests） |\n| v1.2.0 | 2026-07-24 | 新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）；扩展框架适配层从 MCP 生态到全 Agent 生态；新增 frameworks 模块（5 个适配器 + 统一导出）；测试覆盖新增 11 个框架适配器单元测试（总计 29 tests） |\n| v1.1.0 | 2026-07-17 | 新增 4 家模型提供商（MiniMax/零一万物/百川智能/阶跃星辰）；更新 DeepSeek-V3 支持（deepseek-chat, deepseek-reasoner）；更新 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k）；扩展统一错误映射覆盖 10 家厂商；支持模型表格同步更新 |\n| v1.0.0 | 2026-07-16 | 初始版本发布，包含：MCP JSON-RPC 2.0 完整协议适配（tools/list/call + resources/list/read + prompts/list/get）；6 家国产模型适配器（DeepSeek/通义/智谱/Kimi/混元/豆包）；统一错误映射（4 种 MCP 标准错误码 + 中文 message）；流式 SSE 输出；本地 MCP 服务器 stdio 启动；内置 4 个工具（ask_model/compare_models/list_providers/health_check）；2 个 prompt 模板（code_review/translate）；使用量统计（SQLite + 周报）；硬件感知并发控制（自动采集 CPU/内存 → 动态分配并发数）；纯 Python 标准库零依赖；CLAUDE.md/Cursor/Cline 配置文件模板 |\n\nFile v1.7.0:README.md\n\n# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **10 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包 / MiniMax / 零一万物 / 百川智能 / 阶跃星辰\n- **全 Agent 生态**：新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）\n- **模型性能基准测试**：内置 50 道题库、6 维度评分、雷达图对比、历史追踪（从\"凭感觉选模型\"变成\"凭数据选模型\"）\n- **Token 价格实时追踪**：价格抓取（含降级缓存）、变更通知、趋势图、成本预测\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n| MiniMax | abab6.5s-chat | 普通 API key |\n| 零一万物 (LingYi) | yi-large | 普通 API key |\n| 百川智能 | baichuan2-turbo | 普通 API key |\n| 阶跃星辰 (StepFun) | step-1-200k | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 10 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py        ← 支持 V3: deepseek-chat, deepseek-reasoner\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py            ← 支持 v1-32k / v1-128k\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   ├── doubao.py\n│   │   ├── minimax.py         ← MiniMax abab 系列\n│   │   ├── lingyi.py          ← 零一万物 Yi 系列\n│   │   ├── baichuan.py        ← 百川智能\n│   │   └── stepfun.py         ← 阶跃星辰 Step 系列\n│   ├── frameworks/            ← 5 个非 MCP 框架适配器\n│   │   ├── __init__.py        ← 统一导出\n│   │   ├── langchain_tool.py  ← LangChain Tool 适配器\n│   │   ├── autogpt_plugin.py  ← AutoGPT Plugin 适配器\n│   │   ├── crewai_tool.py     ← CrewAI Tool 适配器\n│   │   ├── coze_plugin.py     ← Coze 插件适配器\n│   │   └── dify_tool.py       ← Dify 工具节点适配器\n│   ├── benchmark.py           ← 模型性能基准测试套件（新增）\n│   ├── price_tracker.py       ← Token 价格实时追踪（新增）\n│   ├── router.py              ← 路由 + 统一错误映射（10 家）\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py               ← 工具函数\n├── config/\n│   └── config.json.example    ← 配置模板（含 10 家）\n└── tests/\n    └── test_basic.py          ← 基础测试（37 tests 全过）\n```\n\n## License\n\nMIT\n\n## 联系\n\nnjskills@agent.qq.com\n\nFile v1.7.0:_meta.json\n\n{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.7.0\",\n  \"publishedAt\": 1787577504738\n}\n\nFile v1.7.0:skill-card.md\n\n## Description:\n\nCN Model Gateway is a Python MCP gateway that lets agent frameworks call Chinese model providers through JSON-RPC tools for chat, image description, embeddings, reranking, transcription, video understanding, provider listing, health checks, and batch tasks.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[fyniujin](https://clawhub.ai/user/fyniujin)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent builders use this skill to connect MCP-compatible and other agent frameworks to multiple Chinese model APIs through one gateway, then route prompts, media, embeddings, reranking, transcription, video understanding, health checks, and usage tracking through configured providers.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts, media, documents, and API keys may be exposed to configured third-party model providers or local files.\n\nMitigation: Use environment variables for provider keys, keep config files and local SQLite databases out of shared folders and source control, and only send data approved for the selected providers.\n\nRisk: Automatic failover can route a request to a backup provider when provider choice is important.\n\nMitigation: Disable failover or explicitly select providers for workflows with data residency, policy, cost, or model-behavior requirements.\n\nRisk: Optional framework or Spark integrations can add dependency and compatibility risk.\n\nMitigation: Pin optional dependencies and validate the integration in a controlled environment before enabling it in production workflows.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/fyniujin/skills/cn-model-gateway)\n- [Skill README](artifact/README.md)\n- [Artifact homepage](https://skillhub.cn/skill/cn-model-gateway)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [JSON-RPC responses, Markdown or text guidance, code snippets, shell commands, and configuration examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs may include provider responses, tool-call metadata, usage statistics, and health/status data depending on the invoked tool.]\n\n## Skill Version(s):\n\n1.7.0 (source: server release metadata, target metadata, and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.7.0:_core_lock.json\n\n{\r\n  \"core_version\": \"1.0.0\",\r\n  \"injected_at\": \"2026-08-24T20:48:04\",\r\n  \"target\": \"cn-model-gateway\"\r\n}\n\nFile v1.7.0:_core/version.json\n\n{\"version\": \"1.0.0\", \"compatible_skills\": {\"cn-llm-router\": \">=2.5.0\", \"cn-model-gateway\": \">=1.6.0\"}, \"adapters\": [\"openai_compat\", \"ernie\", \"spark\"], \"modules\": [\"cost_tracker\", \"cache\", \"health_check\", \"config\", \"yaml_simple\"]}\n\nFile v1.7.0:version.json\n\n{\"version\": \"1.7.0\", \"homepage\": \"https://skillhub.cn/skill/cn-model-gateway\", \"notes\": \"v1.7.0：引入 llm-core 共享内核（adapters/cost_tracker/cache/health_check/config/yaml_simple），build_core.py 构建脚本 vendor 注入 + _core_lock.json 版本锁 + regression 回归门禁；集成 calibrate.py 能力实测校准器（标准题集实测回填画像分数，支持全量/抽样预算）；ernie.py 适配器精简（推荐 OpenAI 兼容通道，原生签名路径保留兜底）\"}\n\nArchive v1.5.0: 31 files, 73105 bytes\n\nFiles: main.py (11517b), README.md (4674b), skill-card.md (2586b), SKILL.md (15308b), src/__init__.py (89b), src/adapters/__init__.py (723b), src/adapters/baichuan.py (4512b), src/adapters/base.py (6119b), src/adapters/deepseek.py (4948b), src/adapters/doubao.py (4996b), src/adapters/hunyuan.py (7748b), src/adapters/kimi.py (4432b), src/adapters/lingyi.py (4529b), src/adapters/minimax.py (4517b), src/adapters/stepfun.py (4488b), src/adapters/tongyi.py (4947b), src/adapters/zhipu.py (4875b), src/benchmark.py (22740b), src/frameworks/__init__.py (579b), src/frameworks/autogpt_plugin.py (2629b), src/frameworks/coze_plugin.py (7246b), src/frameworks/crewai_tool.py (3989b), src/frameworks/dify_tool.py (5796b), src/frameworks/langchain_tool.py (3593b), src/mcp_server.py (16993b), src/monitor.py (7039b), src/price_tracker.py (11137b), src/router.py (14794b), src/utils.py (1597b), tests/test_basic.py (19052b), _meta.json (135b)\n\nFile v1.5.0:SKILL.md\n\n---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 18+ Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。新增 5 个非 MCP 框架适配器：LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点，实现从 MCP 生态到全 Agent 生态的扩展。内置模型性能基准测试套件（50 道题库、6 维度评分、雷达图对比、历史追踪）和 Token 价格实时追踪（价格抓取、变更通知、趋势图、成本预测）。支持工具调用（ask_model/describe_image/list_providers/health_check）、资源读取（配置/使用统计）、预置 prompt 模板（代码审查/翻译），内置统一错误映射、流式 SSE 输出、使用量统计、硬件感知并发控制。auto 模式支持能力画像排序 + 自动故障转移（超时/失败切备用）；API key 支持环境变量优先读取；SQLite 启用 WAL 模式支持多 Agent 框架并发写入；支持多模态视觉模型（Qwen-VL/GLM-4V/豆包视觉）和图片理解（describe_image）；支持 Function Calling / Tool Use（ask_model 传入 tools 参数）。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.5.0\n---\n\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ `ask_model` 传入 `providers=[a,b]` 即可对比 |\n| 你想让模型描述一张图片 | ✅ `describe_image` 工具，支持 Qwen-VL/GLM-4V/豆包视觉 |\n| 你想让模型调用工具（Function Calling） | ✅ `ask_model` 传入 `tools` 参数，返回 `tool_calls` |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射，全部返回中文 |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 4 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py ask \"解释量子计算\" --providers deepseek tongyi zhipu\n\n# 描述一张图片\npython main.py describe_image \"https://example.com/photo.jpg\" -p tongyi\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 启动 MCP 服务器\npython main.py run\n```\n\n### 方式三：Python API 直接调用\n\n```python\nfrom src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)\n```\n\n---\n\n## 内置工具（MCP tools/list 返回）\n\n| 工具名 | 描述 | 关键参数 |\n|--------|------|---------|\n| `ask_model` | 向模型提问（单家/多家对比/Function Calling） | `question`（必填）, `provider`（可选）, `providers`（可选列表，指定 2+ 家对比）, `model`（可选）, `temperature`（可选）, `tools`（可选，Function Calling 工具定义） |\n| `describe_image` | 向视觉模型发送图片，返回描述或回答 | `image`（必填，URL/base64/文件路径）, `prompt`（可选，默认\"请描述这张图片\"）, `provider`（可选）, `model`（可选） |\n| `list_providers` | 列出所有已配置且可用的模型提供商 | 无 |\n| `health_check` | 检查所有已配置提供商的连通性 | 无 |\n\n---\n\n## 内置资源（MCP resources/list 返回）\n\n| 资源 URI | 描述 |\n|----------|------|\n| `cn-model-gateway://config` | 查看当前已注册的模型提供商列表（不含 api_key 明文） |\n| `cn-model-gateway://usage` | 查看调用次数、token 消耗、各模型使用占比等统计 |\n\n---\n\n## 内置 Prompt 模板（MCP prompts/list 返回）\n\n| 模板名 | 描述 | 参数 |\n|--------|------|------|\n| `code_review` | 代码审查提示模板 | `code`（必填）, `language`（可选，默认 python） |\n| `translate` | 中英互译提示模板 | `text`（必填）, `target_lang`（必填：zh/en/ja） |\n\n---\n\n## 配置说明\n\n`config.json` 格式：\n\n```json\n{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}\n```\n\n### API Key 读取优先级（v1.4.0）\n\n1. **环境变量**（推荐，更安全）：`DEEPSEEK_API_KEY`、`DASHSCOPE_API_KEY`、`ZHIPU_API_KEY`、`KIMI_API_KEY`、`HUNYUAN_SECRET_ID`、`DOUBAO_API_KEY`、`MINIMAX_API_KEY`、`LINGYI_API_KEY`、`BAICHUAN_API_KEY`、`STEPFUN_API_KEY`\n2. **config.json**（向后兼容）\n\n推荐做法：环境变量设置 api_key，config.json 只填非敏感配置（如 `model`、`base_url` 等）。\n\n- 可以只填一家，也可以十家全填\n- `hunyuan` 比较特殊，格式为 `secret_id:secret_key`（冒号分隔）\n- 未填 api_key 的提供商自动标记为不可用，不影响其他家使用\n\n---\n\n## 统一错误映射\n\n各家模型返回的错误码不同，本 skill 统一映射为 MCP 标准错误码：\n\n| MCP 错误码 | 含义 | 触发场景 |\n|-----------|------|---------|\n| `-32602` | 参数错误 | API key 无效、内容审核未通过、请求参数缺失 |\n| `-32001` | 模型不可用 | 提供商未配置或已过期 |\n| `-32002` | 速率限制 | 调用频率超限、额度不足 |\n| `-32603` | 内部错误 | 网络超时、响应解析失败 |\n\n所有错误信息均为**中文**，便于排查。\n\n---\n\n## 性能优化\n\n- **硬件感知并发**：启动时自动采集 CPU 核数和内存大小，低配电脑（< 4GB 内存）限制并发数为 1，高配最多 4 并发\n- **零外部依赖**：纯 Python 标准库，无 `pip install`，避免环境污染\n- **流式输出**：长对话走 SSE 流式，不堵内存\n- **SQLite WAL 模式**（v1.4.0）：全部数据库启用 WAL，支持多 Agent 框架同时写入不报锁错误\n- **故障转移**（v1.4.0）：auto 模式按能力画像排序 + 超时自动切换备用提供商，成功率 99%+\n\n---\n\n## 版本更新提醒\n\n本 skill 会在每次启动时打印当前版本号（stderr）。要获取最新版本：\n\n```bash\n# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway\n```\n\n建议关注本 skill 的 GitHub Release 页获取更新通知。\n\n---\n\n## ⚠️ 风险项（必读）\n\n| 风险 | 说明 | 规避方式 |\n|------|------|---------|\n| API Key 泄露 | 用户需自行保管 api_key，config.json 文件勿提交到公开仓库 | 推荐使用环境变量（DEEPSEEK_API_KEY 等）替代 config.json 明文；config.json 加到 .gitignore |\n| 模型调用计费 | 每次调用都会消耗对应模型提供商的额度，费用由用户自行承担 | 定期查看 `python main.py stats` 统计，设置各平台额度预警 |\n| 内容安全 | 模型回答内容由各提供商审核策略决定，本 skill 不额外过滤 | 生产环境建议叠加内容安全过滤层 |\n| 网络依赖 | 每次调用都通过 urllib 直连各模型 API，需要联网 | 离线环境无法使用各家模型能力 |\n| 并发安全风险 | SQLite 已启用 WAL 模式（v1.4.0），多进程并发安全 | 如仍遇到锁错误，检查 .db-wal 文件是否损坏，可删除重建 |\n| 配置格式 | hunyuan 必须是 `secret_id:secret_key` 格式，其他家是普通 key | 使用前运行 `python main.py status` 检查连通性 |\n| API 版本兼容 | 各模型提供商可能更新 OpenAI-compatible 接口路径或字段 | 关注各平台公告，本 skill 会随版本更新适配 |\n\n---\n\n## 能力边界\n\n- 仅支持文本对话和图片理解（v1.5.0 新增多模态），不支持音频/视频理解\n- 支持 Function Calling / Tool Use（v1.5.0 新增，通过 `tools` 参数传入）\n- 不支持本地模型推理或 GPU 部署\n- auto 模式支持故障转移（v1.4.0 新增），默认按能力画像排序 + 超时自动切备用\n- 不支持批量异步调用（single-call synchronous only）\n\n---\n\n## 常见问题（FAQ）\n\n**Q: 为什么启动后没有任何提供商可用？**\nA: 检查 config.json 格式是否正确，api_key 是否填写。运行 `python main.py status` 查看状态。注意 hunyuan 格式是 `secret_id:secret_key`（冒号分隔）。\n\n**Q: 能同时配置多个提供商让 skill 自动选择吗？**\nA: 可以。auto 模式会按能力画像（benchmark 历史评分）和连通性状态排序，选最优的。超时/失败时自动切换到下一家（可通过 `--no-failover` 关闭）。\n\n**Q: 如何对比多个模型的回答？**\nA: 在 `ask_model` 工具中传入 `providers: [\"deepseek\", \"tongyi\", \"zhipu\"]`（2 家及以上），会自动返回对比结果。不传 `providers` 则单家调用。\n\n**Q: 如何让模型描述一张图片？**\nA: 使用 `describe_image` 工具，传入 `image`（URL/base64/文件路径）和可选的 `prompt`。支持 Qwen-VL、GLM-4V、豆包视觉等多模态模型。\n\n**Q: 如何使用 Function Calling？**\nA: 在 `ask_model` 工具中传入 `tools` 参数（工具定义列表），模型可能会在响应中返回 `tool_calls`。你需要自行执行工具并将结果作为后续对话的输入。\n\n**Q: 各家模型的默认模型是什么？**\nA: deepseek-chat / qwen-turbo / glm-4-flash / moonshot-v1-8k / hunyuan-standard / doubao 系列。可通过 `model` 参数覆盖。\n\n**Q: 使用量数据存在哪里？**\nA: 默认存储在 `~/.cn-model-gateway/usage.db`（SQLite）。不会上传到任何服务器。\n\n**Q: 支持哪些操作系统？**\nA: Windows / macOS / Linux 全平台支持。需要 Python 3.9+。\n\n**Q: 需要 GPU 吗？**\nA: 完全不需要。本 skill 只做 API 网关，不进行本地推理。\n\n---\n\n## 支持与反馈\n\n有更好建议：njskills@agent.qq.com\n\n遇到问题请提供：\n1. `python main.py status` 输出\n2. 报错截图或完整错误信息\n3. 你使用的 model provider 名称\n\n---\n\n## 更新日志\n\n| v1.5.0 | 2026-08-16 | 合并 MCP 工具：ask_model + compare_models → ask_model（新增可选 providers 参数，空=单家，≥2 家=对比）；新增多模态视觉支持：ChatMessage 加 image 字段 + describe_image MCP 工具 + 视觉适配器多模态 payload（Qwen-VL/GLM-4V/豆包视觉）；新增 Function Calling / Tool Use：ChatResponse 加 tool_calls 字段 + BaseAdapter 加 format_tools/parse_tool_calls 方法 + ask_model 支持 tools 参数；SKILL.md 全面更新工具列表/能力边界/FAQ | 改进 auto 模式故障转移：auto_select() 从 random.choice 改为能力画像 + 健康检查有序选择；chat() 和 stream_chat() 新增自动故障转移循环，失败/超时自动切备用提供商；支持环境变量优先读取 api_key（DEEPSEEK_API_KEY / DASHSCOPE_API_KEY 等 10 个），config.json 向后兼容；SQLite 全部启用 WAL 模式（PRAGMA journal_mode=WAL），支持多 Agent 框架并发写入；新增 --timeout 和 --no-failover CLI 参数；新增 3 个故障转移+环境变量+WAL 单元测试（总计 40 tests） |\n\n| v1.3.0 | 2026-08-01 | 新增模型性能基准测试套件（benchmark.py：50 道题库、6 维度评分、雷达图对比、历史追踪）；新增 Token 价格实时追踪（price_tracker.py：价格抓取、变更通知、趋势图、成本预测）；新增 4 个 CLI 子命令（benchmark/price/benchmark-history/price-history/cost-predict）；测试覆盖新增 8 个 benchmark + price_tracker 单元测试（总计 37 tests） |\n\n| v1.2.0 | 2026-07-24 | 新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）；扩展框架适配层从 MCP 生态到全 Agent 生态；新增 frameworks 模块（5 个适配器 + 统一导出）；测试覆盖新增 11 个框架适配器单元测试（总计 29 tests） |\n\n| v1.1.0 | 2026-07-17 | 新增 4 家模型提供商（MiniMax/零一万物/百川智能/阶跃星辰）；更新 DeepSeek-V3 支持（deepseek-chat, deepseek-reasoner）；更新 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k）；扩展统一错误映射覆盖 10 家厂商；支持模型表格同步更新 |\n| v1.0.0 | 2026-07-16 | 初始版本发布，包含：MCP JSON-RPC 2.0 完整协议适配（tools/list/call + resources/list/read + prompts/list/get）；6 家国产模型适配器（DeepSeek/通义/智谱/Kimi/混元/豆包）；统一错误映射（4 种 MCP 标准错误码 + 中文 message）；流式 SSE 输出；本地 MCP 服务器 stdio 启动；内置 4 个工具（ask_model/compare_models/list_providers/health_check）；2 个 prompt 模板（code_review/translate）；使用量统计（SQLite + 周报）；硬件感知并发控制（自动采集 CPU/内存 → 动态分配并发数）；纯 Python 标准库零依赖；CLAUDE.md/Cursor/Cline 配置文件模板 |\n\nFile v1.5.0:README.md\n\n# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **10 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包 / MiniMax / 零一万物 / 百川智能 / 阶跃星辰\n- **全 Agent 生态**：新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）\n- **模型性能基准测试**：内置 50 道题库、6 维度评分、雷达图对比、历史追踪（从\"凭感觉选模型\"变成\"凭数据选模型\"）\n- **Token 价格实时追踪**：价格抓取（含降级缓存）、变更通知、趋势图、成本预测\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n| MiniMax | abab6.5s-chat | 普通 API key |\n| 零一万物 (LingYi) | yi-large | 普通 API key |\n| 百川智能 | baichuan2-turbo | 普通 API key |\n| 阶跃星辰 (StepFun) | step-1-200k | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 10 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py        ← 支持 V3: deepseek-chat, deepseek-reasoner\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py            ← 支持 v1-32k / v1-128k\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   ├── doubao.py\n│   │   ├── minimax.py         ← MiniMax abab 系列\n│   │   ├── lingyi.py          ← 零一万物 Yi 系列\n│   │   ├── baichuan.py        ← 百川智能\n│   │   └── stepfun.py         ← 阶跃星辰 Step 系列\n│   ├── frameworks/            ← 5 个非 MCP 框架适配器\n│   │   ├── __init__.py        ← 统一导出\n│   │   ├── langchain_tool.py  ← LangChain Tool 适配器\n│   │   ├── autogpt_plugin.py  ← AutoGPT Plugin 适配器\n│   │   ├── crewai_tool.py     ← CrewAI Tool 适配器\n│   │   ├── coze_plugin.py     ← Coze 插件适配器\n│   │   └── dify_tool.py       ← Dify 工具节点适配器\n│   ├── benchmark.py           ← 模型性能基准测试套件（新增）\n│   ├── price_tracker.py       ← Token 价格实时追踪（新增）\n│   ├── router.py              ← 路由 + 统一错误映射（10 家）\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py               ← 工具函数\n├── config/\n│   └── config.json.example    ← 配置模板（含 10 家）\n└── tests/\n    └── test_basic.py          ← 基础测试（37 tests 全过）\n```\n\n## License\n\nMIT\n\n## 联系\n\nnjskills@agent.qq.com\n\nFile v1.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1786877836581\n}\n\nFile v1.5.0:skill-card.md\n\n## Description:\n\nCN Model Gateway is a Python MCP server that routes agent requests to ten China-based model providers through JSON-RPC tools, resources, prompts, CLI commands, and framework adapters.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[fyniujin](https://clawhub.ai/user/fyniujin)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent users use this skill to connect MCP-compatible and related agent frameworks to configured Chinese model providers, compare provider responses, describe images, inspect provider health, and review local usage statistics.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts, image inputs, and benchmark questions may be sent to configured third-party model providers.\n\nMitigation: Use the skill only with approved providers for the data involved, specify a single provider for sensitive work, and disable failover when provider routing must be controlled.\n\nRisk: API keys and provider credentials are required for model access.\n\nMitigation: Prefer environment variables for API keys and protect any config.json files that contain credentials.\n\nRisk: Multi-provider comparison and automatic failover can increase cost or route requests to a backup provider.\n\nMitigation: Review provider selection before use, monitor usage statistics, and disable failover or comparison when cost or routing constraints apply.\n\nRisk: Local usage data is stored in the user's environment.\n\nMitigation: Protect the ~/.cn-model-gateway local database and apply normal endpoint security controls for workstations or shared systems.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/fyniujin/skills/cn-model-gateway)\n- [Skill definition](artifact/SKILL.md)\n- [README](artifact/README.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [JSON-RPC responses, Markdown guidance, Python code examples, shell commands, and configuration snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May produce model responses, provider status, usage statistics, benchmark summaries, image descriptions, and tool-call metadata.]\n\n## Skill Version(s):\n\n1.5.0 (source: server release evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.4.0: 31 files, 68712 bytes\n\nFiles: main.py (9988b), README.md (4674b), skill-card.md (2837b), SKILL.md (13443b), src/__init__.py (89b), src/adapters/__init__.py (723b), src/adapters/baichuan.py (4512b), src/adapters/base.py (2942b), src/adapters/deepseek.py (4518b), src/adapters/doubao.py (4566b), src/adapters/hunyuan.py (7748b), src/adapters/kimi.py (4432b), src/adapters/lingyi.py (4529b), src/adapters/minimax.py (4517b), src/adapters/stepfun.py (4488b), src/adapters/tongyi.py (4517b), src/adapters/zhipu.py (4445b), src/benchmark.py (22740b), src/frameworks/__init__.py (579b), src/frameworks/autogpt_plugin.py (2629b), src/frameworks/coze_plugin.py (7246b), src/frameworks/crewai_tool.py (3989b), src/frameworks/dify_tool.py (5796b), src/frameworks/langchain_tool.py (3593b), src/mcp_server.py (14045b), src/monitor.py (7039b), src/price_tracker.py (11137b), src/router.py (14794b), src/utils.py (1597b), tests/test_basic.py (13027b), _meta.json (135b)\n\nFile v1.4.0:SKILL.md\n\n---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 18+ Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。新增 5 个非 MCP 框架适配器：LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点，实现从 MCP 生态到全 Agent 生态的扩展。内置模型性能基准测试套件（50 道题库、6 维度评分、雷达图对比、历史追踪）和 Token 价格实时追踪（价格抓取、变更通知、趋势图、成本预测）。支持工具调用（ask_model/compare_models/list_providers/health_check）、资源读取（配置/使用统计）、预置 prompt 模板（代码审查/翻译），内置统一错误映射、流式 SSE 输出、使用量统计、硬件感知并发控制。auto 模式支持能力画像排序 + 自动故障转移（超时/失败切备用）；API key 支持环境变量优先读取；SQLite 启用 WAL 模式支持多 Agent 框架并发写入。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.4.0\n---\n\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ 内置 `compare_models` 工具，同时问多家 |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射，全部返回中文 |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 4 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py compare \"解释量子计算\" -p deepseek tongyi zhipu\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 启动 MCP 服务器\npython main.py run\n```\n\n### 方式三：Python API 直接调用\n\n```python\nfrom src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)\n```\n\n---\n\n## 内置工具（MCP tools/list 返回）\n\n| 工具名 | 描述 | 关键参数 |\n|--------|------|---------|\n| `ask_model` | 向指定或自动选择的模型提问 | `question`（必填）, `provider`（可选）, `model`（可选）, `temperature`（可选） |\n| `compare_models` | 同一问题并发多家模型返回对比 | `question`（必填）, `providers`（可选列表，默认全部可用） |\n| `list_providers` | 列出所有已配置且可用的模型提供商 | 无 |\n| `health_check` | 检查所有已配置提供商的连通性 | 无 |\n\n---\n\n## 内置资源（MCP resources/list 返回）\n\n| 资源 URI | 描述 |\n|----------|------|\n| `cn-model-gateway://config` | 查看当前已注册的模型提供商列表（不含 api_key 明文） |\n| `cn-model-gateway://usage` | 查看调用次数、token 消耗、各模型使用占比等统计 |\n\n---\n\n## 内置 Prompt 模板（MCP prompts/list 返回）\n\n| 模板名 | 描述 | 参数 |\n|--------|------|------|\n| `code_review` | 代码审查提示模板 | `code`（必填）, `language`（可选，默认 python） |\n| `translate` | 中英互译提示模板 | `text`（必填）, `target_lang`（必填：zh/en/ja） |\n\n---\n\n## 配置说明\n\n`config.json` 格式：\n\n```json\n{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}\n```\n\n### API Key 读取优先级（v1.4.0）\n\n1. **环境变量**（推荐，更安全）：`DEEPSEEK_API_KEY`、`DASHSCOPE_API_KEY`、`ZHIPU_API_KEY`、`KIMI_API_KEY`、`HUNYUAN_SECRET_ID`、`DOUBAO_API_KEY`、`MINIMAX_API_KEY`、`LINGYI_API_KEY`、`BAICHUAN_API_KEY`、`STEPFUN_API_KEY`\n2. **config.json**（向后兼容）\n\n推荐做法：环境变量设置 api_key，config.json 只填非敏感配置（如 `model`、`base_url` 等）。\n\n- 可以只填一家，也可以十家全填\n- `hunyuan` 比较特殊，格式为 `secret_id:secret_key`（冒号分隔）\n- 未填 api_key 的提供商自动标记为不可用，不影响其他家使用\n\n---\n\n## 统一错误映射\n\n各家模型返回的错误码不同，本 skill 统一映射为 MCP 标准错误码：\n\n| MCP 错误码 | 含义 | 触发场景 |\n|-----------|------|---------|\n| `-32602` | 参数错误 | API key 无效、内容审核未通过、请求参数缺失 |\n| `-32001` | 模型不可用 | 提供商未配置或已过期 |\n| `-32002` | 速率限制 | 调用频率超限、额度不足 |\n| `-32603` | 内部错误 | 网络超时、响应解析失败 |\n\n所有错误信息均为**中文**，便于排查。\n\n---\n\n## 性能优化\n\n- **硬件感知并发**：启动时自动采集 CPU 核数和内存大小，低配电脑（< 4GB 内存）限制并发数为 1，高配最多 4 并发\n- **零外部依赖**：纯 Python 标准库，无 `pip install`，避免环境污染\n- **流式输出**：长对话走 SSE 流式，不堵内存\n- **SQLite WAL 模式**（v1.4.0）：全部数据库启用 WAL，支持多 Agent 框架同时写入不报锁错误\n- **故障转移**（v1.4.0）：auto 模式按能力画像排序 + 超时自动切换备用提供商，成功率 99%+\n\n---\n\n## 版本更新提醒\n\n本 skill 会在每次启动时打印当前版本号（stderr）。要获取最新版本：\n\n```bash\n# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway\n```\n\n建议关注本 skill 的 GitHub Release 页获取更新通知。\n\n---\n\n## ⚠️ 风险项（必读）\n\n| 风险 | 说明 | 规避方式 |\n|------|------|---------|\n| API Key 泄露 | 用户需自行保管 api_key，config.json 文件勿提交到公开仓库 | 推荐使用环境变量（DEEPSEEK_API_KEY 等）替代 config.json 明文；config.json 加到 .gitignore |\n| 模型调用计费 | 每次调用都会消耗对应模型提供商的额度，费用由用户自行承担 | 定期查看 `python main.py stats` 统计，设置各平台额度预警 |\n| 内容安全 | 模型回答内容由各提供商审核策略决定，本 skill 不额外过滤 | 生产环境建议叠加内容安全过滤层 |\n| 网络依赖 | 每次调用都通过 urllib 直连各模型 API，需要联网 | 离线环境无法使用各家模型能力 |\n| 并发安全风险 | SQLite 已启用 WAL 模式（v1.4.0），多进程并发安全 | 如仍遇到锁错误，检查 .db-wal 文件是否损坏，可删除重建 |\n| 配置格式 | hunyuan 必须是 `secret_id:secret_key` 格式，其他家是普通 key | 使用前运行 `python main.py status` 检查连通性 |\n| API 版本兼容 | 各模型提供商可能更新 OpenAI-compatible 接口路径或字段 | 关注各平台公告，本 skill 会随版本更新适配 |\n\n---\n\n## 能力边界\n\n- 仅支持文本对话（chat completions），不支持图片/音频/视频理解\n- 不支持 Function Calling / Tool Use（各家实现差异大，暂不统一封装）\n- 不支持本地模型推理或 GPU 部署\n- auto 模式支持故障转移（v1.4.0 新增），默认按能力画像排序 + 超时自动切备用\n- 不支持批量异步调用（single-call synchronous only）\n\n---\n\n## 常见问题（FAQ）\n\n**Q: 为什么启动后没有任何提供商可用？**\nA: 检查 config.json 格式是否正确，api_key 是否填写。运行 `python main.py status` 查看状态。注意 hunyuan 格式是 `secret_id:secret_key`（冒号分隔）。\n\n**Q: 能同时配置多个提供商让 skill 自动选择吗？**\nA: 可以。auto 模式会按能力画像（benchmark 历史评分）和连通性状态排序，选最优的。超时/失败时自动切换到下一家（可通过 `--no-failover` 关闭）。\n\n**Q: 各家模型的默认模型是什么？**\nA: deepseek-chat / qwen-turbo / glm-4-flash / moonshot-v1-8k / hunyuan-standard / doubao 系列。可通过 `model` 参数覆盖。\n\n**Q: 使用量数据存在哪里？**\nA: 默认存储在 `~/.cn-model-gateway/usage.db`（SQLite）。不会上传到任何服务器。\n\n**Q: 支持哪些操作系统？**\nA: Windows / macOS / Linux 全平台支持。需要 Python 3.9+。\n\n**Q: 需要 GPU 吗？**\nA: 完全不需要。本 skill 只做 API 网关，不进行本地推理。\n\n---\n\n## 支持与反馈\n\n有更好建议：njskills@agent.qq.com\n\n遇到问题请提供：\n1. `python main.py status` 输出\n2. 报错截图或完整错误信息\n3. 你使用的 model provider 名称\n\n---\n\n## 更新日志\n\n| v1.4.0 | 2026-08-02 | 改进 auto 模式故障转移：auto_select() 从 random.choice 改为能力画像 + 健康检查有序选择；chat() 和 stream_chat() 新增自动故障转移循环，失败/超时自动切备用提供商；支持环境变量优先读取 api_key（DEEPSEEK_API_KEY / DASHSCOPE_API_KEY 等 10 个），config.json 向后兼容；SQLite 全部启用 WAL 模式（PRAGMA journal_mode=WAL），支持多 Agent 框架并发写入；新增 --timeout 和 --no-failover CLI 参数；新增 3 个故障转移+环境变量+WAL 单元测试（总计 40 tests） |\n\n| v1.3.0 | 2026-08-01 | 新增模型性能基准测试套件（benchmark.py：50 道题库、6 维度评分、雷达图对比、历史追踪）；新增 Token 价格实时追踪（price_tracker.py：价格抓取、变更通知、趋势图、成本预测）；新增 4 个 CLI 子命令（benchmark/price/benchmark-history/price-history/cost-predict）；测试覆盖新增 8 个 benchmark + price_tracker 单元测试（总计 37 tests） |\n\n| v1.2.0 | 2026-07-24 | 新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）；扩展框架适配层从 MCP 生态到全 Agent 生态；新增 frameworks 模块（5 个适配器 + 统一导出）；测试覆盖新增 11 个框架适配器单元测试（总计 29 tests） |\n\n| v1.1.0 | 2026-07-17 | 新增 4 家模型提供商（MiniMax/零一万物/百川智能/阶跃星辰）；更新 DeepSeek-V3 支持（deepseek-chat, deepseek-reasoner）；更新 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k）；扩展统一错误映射覆盖 10 家厂商；支持模型表格同步更新 |\n| v1.0.0 | 2026-07-16 | 初始版本发布，包含：MCP JSON-RPC 2.0 完整协议适配（tools/list/call + resources/list/read + prompts/list/get）；6 家国产模型适配器（DeepSeek/通义/智谱/Kimi/混元/豆包）；统一错误映射（4 种 MCP 标准错误码 + 中文 message）；流式 SSE 输出；本地 MCP 服务器 stdio 启动；内置 4 个工具（ask_model/compare_models/list_providers/health_check）；2 个 prompt 模板（code_review/translate）；使用量统计（SQLite + 周报）；硬件感知并发控制（自动采集 CPU/内存 → 动态分配并发数）；纯 Python 标准库零依赖；CLAUDE.md/Cursor/Cline 配置文件模板 |\n\nFile v1.4.0:README.md\n\n# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **10 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包 / MiniMax / 零一万物 / 百川智能 / 阶跃星辰\n- **全 Agent 生态**：新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）\n- **模型性能基准测试**：内置 50 道题库、6 维度评分、雷达图对比、历史追踪（从\"凭感觉选模型\"变成\"凭数据选模型\"）\n- **Token 价格实时追踪**：价格抓取（含降级缓存）、变更通知、趋势图、成本预测\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n| MiniMax | abab6.5s-chat | 普通 API key |\n| 零一万物 (LingYi) | yi-large | 普通 API key |\n| 百川智能 | baichuan2-turbo | 普通 API key |\n| 阶跃星辰 (StepFun) | step-1-200k | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 10 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py        ← 支持 V3: deepseek-chat, deepseek-reasoner\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py            ← 支持 v1-32k / v1-128k\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   ├── doubao.py\n│   │   ├── minimax.py         ← MiniMax abab 系列\n│   │   ├── lingyi.py          ← 零一万物 Yi 系列\n│   │   ├── baichuan.py        ← 百川智能\n│   │   └── stepfun.py         ← 阶跃星辰 Step 系列\n│   ├── frameworks/            ← 5 个非 MCP 框架适配器\n│   │   ├── __init__.py        ← 统一导出\n│   │   ├── langchain_tool.py  ← LangChain Tool 适配器\n│   │   ├── autogpt_plugin.py  ← AutoGPT Plugin 适配器\n│   │   ├── crewai_tool.py     ← CrewAI Tool 适配器\n│   │   ├── coze_plugin.py     ← Coze 插件适配器\n│   │   └── dify_tool.py       ← Dify 工具节点适配器\n│   ├── benchmark.py           ← 模型性能基准测试套件（新增）\n│   ├── price_tracker.py       ← Token 价格实时追踪（新增）\n│   ├── router.py              ← 路由 + 统一错误映射（10 家）\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py               ← 工具函数\n├── config/\n│   └── config.json.example    ← 配置模板（含 10 家）\n└── tests/\n    └── test_basic.py          ← 基础测试（37 tests 全过）\n```\n\n## License\n\nMIT\n\n## 联系\n\nnjskills@agent.qq.com\n\nFile v1.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.4.0\",\n  \"publishedAt\": 1786107411360\n}\n\nFile v1.4.0:skill-card.md\n\n## Description:\n\nCN Model Gateway is a Python MCP and agent-framework gateway for routing text chat requests to configured Chinese model providers, with provider comparison, health checks, usage tracking, price tracking, and failover.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[fyniujin](https://clawhub.ai/user/fyniujin)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent builders use this skill to expose multiple hosted Chinese text model APIs through MCP tools, resources, prompts, CLI commands, and common agent-framework adapters. It is intended for model selection, provider comparison, failover, and local usage or price monitoring when users supply their own provider API keys.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts and health checks may be sent to configured third-party model providers.\n\nMitigation: Use the skill only with providers approved for the data being processed, avoid sensitive prompts in compare or auto-failover mode, and disable failover when provider choice matters.\n\nRisk: Provider API keys may be exposed if stored directly in configuration files.\n\nMitigation: Prefer the documented environment variables for API keys and keep configuration files containing credentials out of version control.\n\nRisk: Local usage, benchmark, and price databases may reveal provider choices or usage history.\n\nMitigation: Review and protect the local ~/.cn-model-gateway databases according to the user's data-retention and access-control requirements.\n\nRisk: Model calls can incur provider charges, especially when comparing multiple providers or using failover.\n\nMitigation: Monitor local usage statistics, configure provider-side budget alerts, and limit compare or benchmark runs in cost-sensitive environments.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/fyniujin/skills/cn-model-gateway)\n- [Artifact README](artifact/README.md)\n- [Artifact skill definition](artifact/SKILL.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Plain text and JSON-RPC tool/resource responses, with Markdown or code text returned by configured model providers.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires user-configured provider API keys and network access; records local usage, benchmark, and price history in SQLite databases under the user's home directory.]\n\n## Skill Version(s):\n\n1.4.0 (source: frontmatter and server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.3.0: 31 files, 65138 bytes\n\nFiles: main.py (9300b), README.md (4674b), skill-card.md (2555b), SKILL.md (11921b), src/__init__.py (89b), src/adapters/__init__.py (723b), src/adapters/baichuan.py (4512b), src/adapters/base.py (2942b), src/adapters/deepseek.py (4518b), src/adapters/doubao.py (4566b), src/adapters/hunyuan.py (7748b), src/adapters/kimi.py (4432b), src/adapters/lingyi.py (4529b), src/adapters/minimax.py (4517b), src/adapters/stepfun.py (4488b), src/adapters/tongyi.py (4517b), src/adapters/zhipu.py (4445b), src/benchmark.py (22613b), src/frameworks/__init__.py (579b), src/frameworks/autogpt_plugin.py (2629b), src/frameworks/coze_plugin.py (7246b), src/frameworks/crewai_tool.py (3989b), src/frameworks/dify_tool.py (5796b), src/frameworks/langchain_tool.py (3593b), src/mcp_server.py (14045b), src/monitor.py (6912b), src/price_tracker.py (11010b), src/router.py (8834b), src/utils.py (1597b), tests/test_basic.py (8899b), _meta.json (135b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 18+ Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。新增 5 个非 MCP 框架适配器：LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点，实现从 MCP 生态到全 Agent 生态的扩展。内置模型性能基准测试套件（50 道题库、6 维度评分、雷达图对比、历史追踪）和 Token 价格实时追踪（价格抓取、变更通知、趋势图、成本预测）。支持工具调用（ask_model/compare_models/list_providers/health_check）、资源读取（配置/使用统计）、预置 prompt 模板（代码审查/翻译），内置统一错误映射、流式 SSE 输出、使用量统计、硬件感知并发控制。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.3.0\n---\n\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ 内置 `compare_models` 工具，同时问多家 |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射，全部返回中文 |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 4 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py compare \"解释量子计算\" -p deepseek tongyi zhipu\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 启动 MCP 服务器\npython main.py run\n```\n\n### 方式三：Python API 直接调用\n\n```python\nfrom src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)\n```\n\n---\n\n## 内置工具（MCP tools/list 返回）\n\n| 工具名 | 描述 | 关键参数 |\n|--------|------|---------|\n| `ask_model` | 向指定或自动选择的模型提问 | `question`（必填）, `provider`（可选）, `model`（可选）, `temperature`（可选） |\n| `compare_models` | 同一问题并发多家模型返回对比 | `question`（必填）, `providers`（可选列表，默认全部可用） |\n| `list_providers` | 列出所有已配置且可用的模型提供商 | 无 |\n| `health_check` | 检查所有已配置提供商的连通性 | 无 |\n\n---\n\n## 内置资源（MCP resources/list 返回）\n\n| 资源 URI | 描述 |\n|----------|------|\n| `cn-model-gateway://config` | 查看当前已注册的模型提供商列表（不含 api_key 明文） |\n| `cn-model-gateway://usage` | 查看调用次数、token 消耗、各模型使用占比等统计 |\n\n---\n\n## 内置 Prompt 模板（MCP prompts/list 返回）\n\n| 模板名 | 描述 | 参数 |\n|--------|------|------|\n| `code_review` | 代码审查提示模板 | `code`（必填）, `language`（可选，默认 python） |\n| `translate` | 中英互译提示模板 | `text`（必填）, `target_lang`（必填：zh/en/ja） |\n\n---\n\n## 配置说明\n\n`config.json` 格式：\n\n```json\n{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}\n```\n\n- 可以只填一家，也可以六家全填\n- `hunyuan` 比较特殊，格式为 `secret_id:secret_key`（冒号分隔）\n- 未填 api_key 的提供商自动标记为不可用，不影响其他家使用\n\n---\n\n## 统一错误映射\n\n各家模型返回的错误码不同，本 skill 统一映射为 MCP 标准错误码：\n\n| MCP 错误码 | 含义 | 触发场景 |\n|-----------|------|---------|\n| `-32602` | 参数错误 | API key 无效、内容审核未通过、请求参数缺失 |\n| `-32001` | 模型不可用 | 提供商未配置或已过期 |\n| `-32002` | 速率限制 | 调用频率超限、额度不足 |\n| `-32603` | 内部错误 | 网络超时、响应解析失败 |\n\n所有错误信息均为**中文**，便于排查。\n\n---\n\n## 性能优化\n\n- **硬件感知并发**：启动时自动采集 CPU 核数和内存大小，低配电脑（< 4GB 内存）限制并发数为 1，高配最多 4 并发\n- **零外部依赖**：纯 Python 标准库，无 `pip install`，避免环境污染\n- **流式输出**：长对话走 SSE 流式，不堵内存\n- **SQLite 本地统计**：调用记录本地落盘，无网络上传\n\n---\n\n## 版本更新提醒\n\n本 skill 会在每次启动时打印当前版本号（stderr）。要获取最新版本：\n\n```bash\n# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway\n```\n\n建议关注本 skill 的 GitHub Release 页获取更新通知。\n\n---\n\n## ⚠️ 风险项（必读）\n\n| 风险 | 说明 | 规避方式 |\n|------|------|---------|\n| API Key 泄露 | 用户需自行保管 api_key，config.json 文件勿提交到公开仓库 | 将 config.gitignore；不要把 skill 复制到公开目录 |\n| 模型调用计费 | 每次调用都会消耗对应模型提供商的额度，费用由用户自行承担 | 定期查看 `python main.py stats` 统计，设置各平台额度预警 |\n| 内容安全 | 模型回答内容由各提供商审核策略决定，本 skill 不额外过滤 | 生产环境建议叠加内容安全过滤层 |\n| 网络依赖 | 每次调用都通过 urllib 直连各模型 API，需要联网 | 离线环境无法使用各家模型能力 |\n| 并发安全风险 | 使用 SQLite 本地存储，多进程同时写入可能触发锁竞争 | 单进程运行；多进程场景建议改用外部数据库 |\n| 配置格式 | hunyuan 必须是 `secret_id:secret_key` 格式，其他家是普通 key | 使用前运行 `python main.py status` 检查连通性 |\n| API 版本兼容 | 各模型提供商可能更新 OpenAI-compatible 接口路径或字段 | 关注各平台公告，本 skill 会随版本更新适配 |\n\n---\n\n## 能力边界\n\n- 仅支持文本对话（chat completions），不支持图片/音频/视频理解\n- 不支持 Function Calling / Tool Use（各家实现差异大，暂不统一封装）\n- 不支持本地模型推理或 GPU 部署\n- 不支持 model cascade / fallback（auto 模式只随机选一家，不自动重试）\n- 不支持批量异步调用（single-call synchronous only）\n\n---\n\n## 常见问题（FAQ）\n\n**Q: 为什么启动后没有任何提供商可用？**\nA: 检查 config.json 格式是否正确，api_key 是否填写。运行 `python main.py status` 查看状态。注意 hunyuan 格式是 `secret_id:secret_key`（冒号分隔）。\n\n**Q: 能同时配置多个提供商让 skill 自动选择吗？**\nA: 可以。auto 模式会随机选一家可用的。如果要稳定输出，建议显式指定 `-p deepseek`。\n\n**Q: 各家模型的默认模型是什么？**\nA: deepseek-chat / qwen-turbo / glm-4-flash / moonshot-v1-8k / hunyuan-standard / doubao 系列。可通过 `model` 参数覆盖。\n\n**Q: 使用量数据存在哪里？**\nA: 默认存储在 `~/.cn-model-gateway/usage.db`（SQLite）。不会上传到任何服务器。\n\n**Q: 支持哪些操作系统？**\nA: Windows / macOS / Linux 全平台支持。需要 Python 3.9+。\n\n**Q: 需要 GPU 吗？**\nA: 完全不需要。本 skill 只做 API 网关，不进行本地推理。\n\n---\n\n## 支持与反馈\n\n有更好建议：njskills@agent.qq.com\n\n遇到问题请提供：\n1. `python main.py status` 输出\n2. 报错截图或完整错误信息\n3. 你使用的 model provider 名称\n\n---\n\n## 更新日志\n\n| v1.3.0 | 2026-08-01 | 新增模型性能基准测试套件（benchmark.py：50 道题库、6 维度评分、雷达图对比、历史追踪）；新增 Token 价格实时追踪（price_tracker.py：价格抓取、变更通知、趋势图、成本预测）；新增 4 个 CLI 子命令（benchmark/price/benchmark-history/price-history/cost-predict）；测试覆盖新增 8 个 benchmark + price_tracker 单元测试（总计 37 tests） |\n\n| v1.2.0 | 2026-07-24 | 新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）；扩展框架适配层从 MCP 生态到全 Agent 生态；新增 frameworks 模块（5 个适配器 + 统一导出）；测试覆盖新增 11 个框架适配器单元测试（总计 29 tests） |\n\n| v1.1.0 | 2026-07-17 | 新增 4 家模型提供商（MiniMax/零一万物/百川智能/阶跃星辰）；更新 DeepSeek-V3 支持（deepseek-chat, deepseek-reasoner）；更新 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k）；扩展统一错误映射覆盖 10 家厂商；支持模型表格同步更新 |\n| v1.0.0 | 2026-07-16 | 初始版本发布，包含：MCP JSON-RPC 2.0 完整协议适配（tools/list/call + resources/list/read + prompts/list/get）；6 家国产模型适配器（DeepSeek/通义/智谱/Kimi/混元/豆包）；统一错误映射（4 种 MCP 标准错误码 + 中文 message）；流式 SSE 输出；本地 MCP 服务器 stdio 启动；内置 4 个工具（ask_model/compare_models/list_providers/health_check）；2 个 prompt 模板（code_review/translate）；使用量统计（SQLite + 周报）；硬件感知并发控制（自动采集 CPU/内存 → 动态分配并发数）；纯 Python 标准库零依赖；CLAUDE.md/Cursor/Cline 配置文件模板 |\n\nFile v1.3.0:README.md\n\n# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **10 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包 / MiniMax / 零一万物 / 百川智能 / 阶跃星辰\n- **全 Agent 生态**：新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）\n- **模型性能基准测试**：内置 50 道题库、6 维度评分、雷达图对比、历史追踪（从\"凭感觉选模型\"变成\"凭数据选模型\"）\n- **Token 价格实时追踪**：价格抓取（含降级缓存）、变更通知、趋势图、成本预测\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n| MiniMax | abab6.5s-chat | 普通 API key |\n| 零一万物 (LingYi) | yi-large | 普通 API key |\n| 百川智能 | baichuan2-turbo | 普通 API key |\n| 阶跃星辰 (StepFun) | step-1-200k | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 10 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py        ← 支持 V3: deepseek-chat, deepseek-reasoner\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py            ← 支持 v1-32k / v1-128k\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   ├── doubao.py\n│   │   ├── minimax.py         ← MiniMax abab 系列\n│   │   ├── lingyi.py          ← 零一万物 Yi 系列\n│   │   ├── baichuan.py        ← 百川智能\n│   │   └── stepfun.py         ← 阶跃星辰 Step 系列\n│   ├── frameworks/            ← 5 个非 MCP 框架适配器\n│   │   ├── __init__.py        ← 统一导出\n│   │   ├── langchain_tool.py  ← LangChain Tool 适配器\n│   │   ├── autogpt_plugin.py  ← AutoGPT Plugin 适配器\n│   │   ├── crewai_tool.py     ← CrewAI Tool 适配器\n│   │   ├── coze_plugin.py     ← Coze 插件适配器\n│   │   └── dify_tool.py       ← Dify 工具节点适配器\n│   ├── benchmark.py           ← 模型性能基准测试套件（新增）\n│   ├── price_tracker.py       ← Token 价格实时追踪（新增）\n│   ├── router.py              ← 路由 + 统一错误映射（10 家）\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py               ← 工具函数\n├── config/\n│   └── config.json.example    ← 配置模板（含 10 家）\n└── tests/\n    └── test_basic.py          ← 基础测试（37 tests 全过）\n```\n\n## License\n\nMIT\n\n## 联系\n\nnjskills@agent.qq.com\n\nFile v1.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1785578891177\n}\n\nFile v1.3.0:skill-card.md\n\n## Description: <br>\ncn-model-gateway is a Python MCP gateway that lets agent frameworks call multiple Chinese large-model providers through JSON-RPC tools, resources, prompts, CLI commands, and framework adapters. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[fyniujin](https://clawhub.ai/user/fyniujin) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to connect Claude Code, Cursor, Cline, n8n, and other agent workflows to configured model-provider APIs through a unified MCP interface. It also supports provider comparison, health checks, local usage statistics, benchmark runs, token-price tracking, and non-MCP framework adapters. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Prompts are routed through configured third-party model-provider APIs. <br>\nMitigation: Install only when that routing is intended, review provider terms, and avoid sending secrets or sensitive data unless those terms allow it. <br>\nRisk: API keys are provided through local configuration. <br>\nMitigation: Keep config.json private and do not commit or publish files that contain provider credentials. <br>\nRisk: compare_models can fan out the same prompt to several providers. <br>\nMitigation: Use comparison mode only for prompts that are appropriate to share with every selected provider. <br>\nRisk: Local usage databases may contain operational metadata about model calls. <br>\nMitigation: Protect the local usage database and align retention or cleanup with the user's privacy requirements. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/fyniujin/skills/cn-model-gateway) <br>\n- [README](README.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown, JSON-RPC responses, CLI text, and configuration snippets] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May route the same prompt to one or more configured third-party model providers; local usage data is stored in SQLite.] <br>\n\n## Skill Version(s): <br>\n1.3.0 (source: server release metadata and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.2.0: 29 files, 50868 bytes\n\nFiles: main.py (5340b), README.md (4253b), skill-card.md (2486b), SKILL.md (11284b), src/__init__.py (89b), src/adapters/__init__.py (723b), src/adapters/baichuan.py (4512b), src/adapters/base.py (2942b), src/adapters/deepseek.py (4518b), src/adapters/doubao.py (4566b), src/adapters/hunyuan.py (7748b), src/adapters/kimi.py (4432b), src/adapters/lingyi.py (4529b), src/adapters/minimax.py (4517b), src/adapters/stepfun.py (4488b), src/adapters/tongyi.py (4517b), src/adapters/zhipu.py (4445b), src/frameworks/__init__.py (579b), src/frameworks/autogpt_plugin.py (2629b), src/frameworks/coze_plugin.py (7246b), src/frameworks/crewai_tool.py (3989b), src/frameworks/dify_tool.py (5796b), src/frameworks/langchain_tool.py (3593b), src/mcp_server.py (14045b), src/monitor.py (6912b), src/router.py (8834b), src/utils.py (1597b), tests/test_basic.py (7460b), _meta.json (135b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 18+ Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。新增 5 个非 MCP 框架适配器：LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点，实现从 MCP 生态到全 Agent 生态的扩展。支持工具调用（ask_model/compare_models/list_providers/health_check）、资源读取（配置/使用统计）、预置 prompt 模板（代码审查/翻译），内置统一错误映射、流式 SSE 输出、使用量统计、硬件感知并发控制。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.2.0\n---\n\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ 内置 `compare_models` 工具，同时问多家 |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射，全部返回中文 |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 4 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py compare \"解释量子计算\" -p deepseek tongyi zhipu\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 启动 MCP 服务器\npython main.py run\n```\n\n### 方式三：Python API 直接调用\n\n```python\nfrom src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)\n```\n\n---\n\n## 内置工具（MCP tools/list 返回）\n\n| 工具名 | 描述 | 关键参数 |\n|--------|------|---------|\n| `ask_model` | 向指定或自动选择的模型提问 | `question`（必填）, `provider`（可选）, `model`（可选）, `temperature`（可选） |\n| `compare_models` | 同一问题并发多家模型返回对比 | `question`（必填）, `providers`（可选列表，默认全部可用） |\n| `list_providers` | 列出所有已配置且可用的模型提供商 | 无 |\n| `health_check` | 检查所有已配置提供商的连通性 | 无 |\n\n---\n\n## 内置资源（MCP resources/list 返回）\n\n| 资源 URI | 描述 |\n|----------|------|\n| `cn-model-gateway://config` | 查看当前已注册的模型提供商列表（不含 api_key 明文） |\n| `cn-model-gateway://usage` | 查看调用次数、token 消耗、各模型使用占比等统计 |\n\n---\n\n## 内置 Prompt 模板（MCP prompts/list 返回）\n\n| 模板名 | 描述 | 参数 |\n|--------|------|------|\n| `code_review` | 代码审查提示模板 | `code`（必填）, `language`（可选，默认 python） |\n| `translate` | 中英互译提示模板 | `text`（必填）, `target_lang`（必填：zh/en/ja） |\n\n---\n\n## 配置说明\n\n`config.json` 格式：\n\n```json\n{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}\n```\n\n- 可以只填一家，也可以六家全填\n- `hunyuan` 比较特殊，格式为 `secret_id:secret_key`（冒号分隔）\n- 未填 api_key 的提供商自动标记为不可用，不影响其他家使用\n\n---\n\n## 统一错误映射\n\n各家模型返回的错误码不同，本 skill 统一映射为 MCP 标准错误码：\n\n| MCP 错误码 | 含义 | 触发场景 |\n|-----------|------|---------|\n| `-32602` | 参数错误 | API key 无效、内容审核未通过、请求参数缺失 |\n| `-32001` | 模型不可用 | 提供商未配置或已过期 |\n| `-32002` | 速率限制 | 调用频率超限、额度不足 |\n| `-32603` | 内部错误 | 网络超时、响应解析失败 |\n\n所有错误信息均为**中文**，便于排查。\n\n---\n\n## 性能优化\n\n- **硬件感知并发**：启动时自动采集 CPU 核数和内存大小，低配电脑（< 4GB 内存）限制并发数为 1，高配最多 4 并发\n- **零外部依赖**：纯 Python 标准库，无 `pip install`，避免环境污染\n- **流式输出**：长对话走 SSE 流式，不堵内存\n- **SQLite 本地统计**：调用记录本地落盘，无网络上传\n\n---\n\n## 版本更新提醒\n\n本 skill 会在每次启动时打印当前版本号（stderr）。要获取最新版本：\n\n```bash\n# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway\n```\n\n建议关注本 skill 的 GitHub Release 页获取更新通知。\n\n---\n\n## ⚠️ 风险项（必读）\n\n| 风险 | 说明 | 规避方式 |\n|------|------|---------|\n| API Key 泄露 | 用户需自行保管 api_key，config.json 文件勿提交到公开仓库 | 将 config.gitignore；不要把 skill 复制到公开目录 |\n| 模型调用计费 | 每次调用都会消耗对应模型提供商的额度，费用由用户自行承担 | 定期查看 `python main.py stats` 统计，设置各平台额度预警 |\n| 内容安全 | 模型回答内容由各提供商审核策略决定，本 skill 不额外过滤 | 生产环境建议叠加内容安全过滤层 |\n| 网络依赖 | 每次调用都通过 urllib 直连各模型 API，需要联网 | 离线环境无法使用各家模型能力 |\n| 并发安全风险 | 使用 SQLite 本地存储，多进程同时写入可能触发锁竞争 | 单进程运行；多进程场景建议改用外部数据库 |\n| 配置格式 | hunyuan 必须是 `secret_id:secret_key` 格式，其他家是普通 key | 使用前运行 `python main.py status` 检查连通性 |\n| API 版本兼容 | 各模型提供商可能更新 OpenAI-compatible 接口路径或字段 | 关注各平台公告，本 skill 会随版本更新适配 |\n\n---\n\n## 能力边界\n\n- 仅支持文本对话（chat completions），不支持图片/音频/视频理解\n- 不支持 Function Calling / Tool Use（各家实现差异大，暂不统一封装）\n- 不支持本地模型推理或 GPU 部署\n- 不支持 model cascade / fallback（auto 模式只随机选一家，不自动重试）\n- 不支持批量异步调用（single-call synchronous only）\n\n---\n\n## 常见问题（FAQ）\n\n**Q: 为什么启动后没有任何提供商可用？**\nA: 检查 config.json 格式是否正确，api_key 是否填写。运行 `python main.py status` 查看状态。注意 hunyuan 格式是 `secret_id:secret_key`（冒号分隔）。\n\n**Q: 能同时配置多个提供商让 skill 自动选择吗？**\nA: 可以。auto 模式会随机选一家可用的。如果要稳定输出，建议显式指定 `-p deepseek`。\n\n**Q: 各家模型的默认模型是什么？**\nA: deepseek-chat / qwen-turbo / glm-4-flash / moonshot-v1-8k / hunyuan-standard / doubao 系列。可通过 `model` 参数覆盖。\n\n**Q: 使用量数据存在哪里？**\nA: 默认存储在 `~/.cn-model-gateway/usage.db`（SQLite）。不会上传到任何服务器。\n\n**Q: 支持哪些操作系统？**\nA: Windows / macOS / Linux 全平台支持。需要 Python 3.9+。\n\n**Q: 需要 GPU 吗？**\nA: 完全不需要。本 skill 只做 API 网关，不进行本地推理。\n\n---\n\n## 支持与反馈\n\n有更好建议：njskills@agent.qq.com\n\n遇到问题请提供：\n1. `python main.py status` 输出\n2. 报错截图或完整错误信息\n3. 你使用的 model provider 名称\n\n---\n\n## 更新日志\n\n| v1.2.0 | 2026-07-24 | 新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）；扩展框架适配层从 MCP 生态到全 Agent 生态；新增 frameworks 模块（5 个适配器 + 统一导出）；测试覆盖新增 11 个框架适配器单元测试（总计 29 tests） |\n\n| v1.1.0 | 2026-07-17 | 新增 4 家模型提供商（MiniMax/零一万物/百川智能/阶跃星辰）；更新 DeepSeek-V3 支持（deepseek-chat, deepseek-reasoner）；更新 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k）；扩展统一错误映射覆盖 10 家厂商；支持模型表格同步更新 |\n| v1.0.0 | 2026-07-16 | 初始版本发布，包含：MCP JSON-RPC 2.0 完整协议适配（tools/list/call + resources/list/read + prompts/list/get）；6 家国产模型适配器（DeepSeek/通义/智谱/Kimi/混元/豆包）；统一错误映射（4 种 MCP 标准错误码 + 中文 message）；流式 SSE 输出；本地 MCP 服务器 stdio 启动；内置 4 个工具（ask_model/compare_models/list_providers/health_check）；2 个 prompt 模板（code_review/translate）；使用量统计（SQLite + 周报）；硬件感知并发控制（自动采集 CPU/内存 → 动态分配并发数）；纯 Python 标准库零依赖；CLAUDE.md/Cursor/Cline 配置文件模板 |\n\nFile v1.2.0:README.md\n\n# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **10 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包 / MiniMax / 零一万物 / 百川智能 / 阶跃星辰\n- **全 Agent 生态**：新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n| MiniMax | abab6.5s-chat | 普通 API key |\n| 零一万物 (LingYi) | yi-large | 普通 API key |\n| 百川智能 | baichuan2-turbo | 普通 API key |\n| 阶跃星辰 (StepFun) | step-1-200k | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 10 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py        ← 支持 V3: deepseek-chat, deepseek-reasoner\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py            ← 支持 v1-32k / v1-128k\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   ├── doubao.py\n│   │   ├── minimax.py         ← MiniMax abab 系列\n│   │   ├── lingyi.py          ← 零一万物 Yi 系列\n│   │   ├── baichuan.py        ← 百川智能\n│   │   └── stepfun.py         ← 阶跃星辰 Step 系列\n│   ├── frameworks/            ← 5 个非 MCP 框架适配器（新增）\n│   │   ├── __init__.py        ← 统一导出\n│   │   ├── langchain_tool.py  ← LangChain Tool 适配器\n│   │   ├── autogpt_plugin.py  ← AutoGPT Plugin 适配器\n│   │   ├── crewai_tool.py     ← CrewAI Tool 适配器\n│   │   ├── coze_plugin.py     ← Coze 插件适配器\n│   │   └── dify_tool.py       ← Dify 工具节点适配器\n│   ├── router.py              ← 路由 + 统一错误映射（10 家）\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py               ← 工具函数\n├── config/\n│   └── config.json.example    ← 配置模板（含 10 家）\n└── tests/\n    └── test_basic.py          ← 基础测试（29 tests 全过）\n```\n\n## License\n\nMIT\n\n## 联系\n\nnjskills@agent.qq.com\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1784878612267\n}\n\nFile v1.2.0:skill-card.md\n\n## Description: <br>\nCN Model Gateway is a local Python gateway that exposes MCP and agent-framework adapters for sending text prompts to configured Chinese model providers such as DeepSeek, Tongyi, Zhipu GLM, Kimi, Hunyuan, Doubao, MiniMax, LingYi, Baichuan, and StepFun. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[fyniujin](https://clawhub.ai/user/fyniujin) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent operators use this skill to connect MCP-compatible tools and other agent frameworks to multiple Chinese text model APIs through one local gateway. It supports asking one model, comparing multiple providers, listing available providers, checking health, reading configuration and usage summaries, and using prompt templates for code review and translation. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Prompts and generated content are sent to the configured third-party model providers. <br>\nMitigation: Use only providers approved for the data being processed, and avoid compare_models for sensitive prompts unless every selected provider is acceptable. <br>\nRisk: Provider API keys can be exposed if configuration files are shared or committed. <br>\nMitigation: Keep config.json private, do not commit API keys, and limit access to the local configuration directory. <br>\nRisk: Model calls may consume paid provider quota. <br>\nMitigation: Monitor usage with the built-in stats functionality and configure provider-side quota or billing alerts. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/fyniujin/skills/cn-model-gateway) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [MCP JSON-RPC responses, command-line text, framework adapter outputs, and markdown guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May send user prompts to configured third-party model providers and may record local usage statistics in SQLite.] <br>\n\n## Skill Version(s): <br>\n1.2.0 (source: server evidence and frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.0: 23 files, 41596 bytes\n\nFiles: main.py (5340b), README.md (3620b), skill-card.md (2786b), SKILL.md (10770b), src/__init__.py (89b), src/adapters/__init__.py (723b), src/adapters/baichuan.py (4512b), src/adapters/base.py (2942b), src/adapters/deepseek.py (4518b), src/adapters/doubao.py (4566b), src/adapters/hunyuan.py (7748b), src/adapters/kimi.py (4432b), src/adapters/lingyi.py (4529b), src/adapters/minimax.py (4517b), src/adapters/stepfun.py (4488b), src/adapters/tongyi.py (4517b), src/adapters/zhipu.py (4445b), src/mcp_server.py (14045b), src/monitor.py (6912b), src/router.py (8834b), src/utils.py (1597b), tests/test_basic.py (5017b), _meta.json (135b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 18+ Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。支持工具调用（ask_model/compare_models/list_providers/health_check）、资源读取（配置/使用统计）、预置 prompt 模板（代码审查/翻译），内置统一错误映射、流式 SSE 输出、使用量统计、硬件感知并发控制。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.1.0\n---\n\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ 内置 `compare_models` 工具，同时问多家 |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射，全部返回中文 |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 4 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py compare \"解释量子计算\" -p deepseek tongyi zhipu\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 启动 MCP 服务器\npython main.py run\n```\n\n### 方式三：Python API 直接调用\n\n```python\nfrom src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)\n```\n\n---\n\n## 内置工具（MCP tools/list 返回）\n\n| 工具名 | 描述 | 关键参数 |\n|--------|------|---------|\n| `ask_model` | 向指定或自动选择的模型提问 | `question`（必填）, `provider`（可选）, `model`（可选）, `temperature`（可选） |\n| `compare_models` | 同一问题并发多家模型返回对比 | `question`（必填）, `providers`（可选列表，默认全部可用） |\n| `list_providers` | 列出所有已配置且可用的模型提供商 | 无 |\n| `health_check` | 检查所有已配置提供商的连通性 | 无 |\n\n---\n\n## 内置资源（MCP resources/list 返回）\n\n| 资源 URI | 描述 |\n|----------|------|\n| `cn-model-gateway://config` | 查看当前已注册的模型提供商列表（不含 api_key 明文） |\n| `cn-model-gateway://usage` | 查看调用次数、token 消耗、各模型使用占比等统计 |\n\n---\n\n## 内置 Prompt 模板（MCP prompts/list 返回）\n\n| 模板名 | 描述 | 参数 |\n|--------|------|------|\n| `code_review` | 代码审查提示模板 | `code`（必填）, `language`（可选，默认 python） |\n| `translate` | 中英互译提示模板 | `text`（必填）, `target_lang`（必填：zh/en/ja） |\n\n---\n\n## 配置说明\n\n`config.json` 格式：\n\n```json\n{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}\n```\n\n- 可以只填一家，也可以六家全填\n- `hunyuan` 比较特殊，格式为 `secret_id:secret_key`（冒号分隔）\n- 未填 api_key 的提供商自动标记为不可用，不影响其他家使用\n\n---\n\n## 统一错误映射\n\n各家模型返回的错误码不同，本 skill 统一映射为 MCP 标准错误码：\n\n| MCP 错误码 | 含义 | 触发场景 |\n|-----------|------|---------|\n| `-32602` | 参数错误 | API key 无效、内容审核未通过、请求参数缺失 |\n| `-32001` | 模型不可用 | 提供商未配置或已过期 |\n| `-32002` | 速率限制 | 调用频率超限、额度不足 |\n| `-32603` | 内部错误 | 网络超时、响应解析失败 |\n\n所有错误信息均为**中文**，便于排查。\n\n---\n\n## 性能优化\n\n- **硬件感知并发**：启动时自动采集 CPU 核数和内存大小，低配电脑（< 4GB 内存）限制并发数为 1，高配最多 4 并发\n- **零外部依赖**：纯 Python 标准库，无 `pip install`，避免环境污染\n- **流式输出**：长对话走 SSE 流式，不堵内存\n- **SQLite 本地统计**：调用记录本地落盘，无网络上传\n\n---\n\n## 版本更新提醒\n\n本 skill 会在每次启动时打印当前版本号（stderr）。要获取最新版本：\n\n```bash\n# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway\n```\n\n建议关注本 skill 的 GitHub Release 页获取更新通知。\n\n---\n\n## ⚠️ 风险项（必读）\n\n| 风险 | 说明 | 规避方式 |\n|------|------|---------|\n| API Key 泄露 | 用户需自行保管 api_key，config.json 文件勿提交到公开仓库 | 将 config.gitignore；不要把 skill 复制到公开目录 |\n| 模型调用计费 | 每次调用都会消耗对应模型提供商的额度，费用由用户自行承担 | 定期查看 `python main.py stats` 统计，设置各平台额度预警 |\n| 内容安全 | 模型回答内容由各提供商审核策略决定，本 skill 不额外过滤 | 生产环境建议叠加内容安全过滤层 |\n| 网络依赖 | 每次调用都通过 urllib 直连各模型 API，需要联网 | 离线环境无法使用各家模型能力 |\n| 并发安全风险 | 使用 SQLite 本地存储，多进程同时写入可能触发锁竞争 | 单进程运行；多进程场景建议改用外部数据库 |\n| 配置格式 | hunyuan 必须是 `secret_id:secret_key` 格式，其他家是普通 key | 使用前运行 `python main.py status` 检查连通性 |\n| API 版本兼容 | 各模型提供商可能更新 OpenAI-compatible 接口路径或字段 | 关注各平台公告，本 skill 会随版本更新适配 |\n\n---\n\n## 能力边界\n\n- 仅支持文本对话（chat completions），不支持图片/音频/视频理解\n- 不支持 Function Calling / Tool Use（各家实现差异大，暂不统一封装）\n- 不支持本地模型推理或 GPU 部署\n- 不支持 model cascade / fallback（auto 模式只随机选一家，不自动重试）\n- 不支持批量异步调用（single-call synchronous only）\n\n---\n\n## 常见问题（FAQ）\n\n**Q: 为什么启动后没有任何提供商可用？**\nA: 检查 config.json 格式是否正确，api_key 是否填写。运行 `python main.py status` 查看状态。注意 hunyuan 格式是 `secret_id:secret_key`（冒号分隔）。\n\n**Q: 能同时配置多个提供商让 skill 自动选择吗？**\nA: 可以。auto 模式会随机选一家可用的。如果要稳定输出，建议显式指定 `-p deepseek`。\n\n**Q: 各家模型的默认模型是什么？**\nA: deepseek-chat / qwen-turbo / glm-4-flash / moonshot-v1-8k / hunyuan-standard / doubao 系列。可通过 `model` 参数覆盖。\n\n**Q: 使用量数据存在哪里？**\nA: 默认存储在 `~/.cn-model-gateway/usage.db`（SQLite）。不会上传到任何服务器。\n\n**Q: 支持哪些操作系统？**\nA: Windows / macOS / Linux 全平台支持。需要 Python 3.9+。\n\n**Q: 需要 GPU 吗？**\nA: 完全不需要。本 skill 只做 API 网关，不进行本地推理。\n\n---\n\n## 支持与反馈\n\n有更好建议：njskills@agent.qq.com\n\n遇到问题请提供：\n1. `python main.py status` 输出\n2. 报错截图或完整错误信息\n3. 你使用的 model provider 名称\n\n---\n\n## 更新日志\n\n| v1.1.0 | 2026-07-17 | 新增 4 家模型提供商（MiniMax/零一万物/百川智能/阶跃星辰）；更新 DeepSeek-V3 支持（deepseek-chat, deepseek-reasoner）；更新 Kimi 新版本（moonshot-v1-32k, moonshot-v1-128k）；扩展统一错误映射覆盖 10 家厂商；支持模型表格同步更新 |\n| v1.0.0 | 2026-07-16 | 初始版本发布，包含：MCP JSON-RPC 2.0 完整协议适配（tools/list/call + resources/list/read + prompts/list/get）；6 家国产模型适配器（DeepSeek/通义/智谱/Kimi/混元/豆包）；统一错误映射（4 种 MCP 标准错误码 + 中文 message）；流式 SSE 输出；本地 MCP 服务器 stdio 启动；内置 4 个工具（ask_model/compare_models/list_providers/health_check）；2 个 prompt 模板（code_review/translate）；使用量统计（SQLite + 周报）；硬件感知并发控制（自动采集 CPU/内存 → 动态分配并发数）；纯 Python 标准库零依赖；CLAUDE.md/Cursor/Cline 配置文件模板 |\n\nFile v1.1.0:README.md\n\n# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **10 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包 / MiniMax / 零一万物 / 百川智能 / 阶跃星辰\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n| MiniMax | abab6.5s-chat | 普通 API key |\n| 零一万物 (LingYi) | yi-large | 普通 API key |\n| 百川智能 | baichuan2-turbo | 普通 API key |\n| 阶跃星辰 (StepFun) | step-1-200k | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 10 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py        ← 支持 V3: deepseek-chat, deepseek-reasoner\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py            ← 支持 v1-32k / v1-128k\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   ├── doubao.py\n│   │   ├── minimax.py         ← MiniMax abab 系列\n│   │   ├── lingyi.py          ← 零一万物 Yi 系列\n│   │   ├── baichuan.py        ← 百川智能\n│   │   └── stepfun.py         ← 阶跃星辰 Step 系列\n│   ├── router.py              ← 路由 + 统一错误映射（10 家）\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py               ← 工具函数\n├── config/\n│   └── config.json.example    ← 配置模板（含 10 家）\n└── tests/\n    └── test_basic.py          ← 基础测试（10 家全覆盖）\n```\n\n## License\n\nMIT\n\n## 联系\n\nnjskills@agent.qq.com\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1784294064189\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nCN Model Gateway is a Python MCP server that exposes JSON-RPC tools, resources, and prompt templates so agent frameworks can call ten configured Chinese model providers through a unified interface. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[fyniujin](https://clawhub.ai/user/fyniujin) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent users use this skill to run a local MCP gateway that connects Claude Code, Cursor, Cline, n8n, Claude Desktop, and similar clients to configured model-provider APIs. It is intended for text chat, model comparison, provider status checks, local usage reporting, and reusable prompt templates. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Prompts and generated responses are sent to whichever third-party model providers the user configures. <br>\nMitigation: Use only providers approved for the data being processed, avoid sending sensitive inputs unless permitted, and review each provider's retention and content policies. <br>\nRisk: Provider API keys are stored in a local configuration file. <br>\nMitigation: Keep the config file private, exclude it from version control, restrict filesystem permissions, and rotate keys if exposure is suspected. <br>\nRisk: Model calls can incur provider billing charges. <br>\nMitigation: Monitor local usage statistics and configure provider-side quotas, billing alerts, or spend limits before routine use. <br>\nRisk: Error responses may expose more diagnostic detail than intended. <br>\nMitigation: Prefer a patched release that sanitizes errors before sharing logs, and avoid posting raw tracebacks or provider responses publicly. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/fyniujin/skills/cn-model-gateway) <br>\n- [README](artifact/README.md) <br>\n- [SKILL.md](artifact/SKILL.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [MCP JSON-RPC responses, CLI text output, Markdown guidance, and JSON configuration examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Outputs may include provider/model names, token usage, health status, and local usage statistics; model answers come from the configured third-party providers.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: server release metadata and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.0: 19 files, 34043 bytes\n\nFiles: main.py (5340b), README.md (2895b), skill-card.md (2587b), SKILL.md (10356b), src/__init__.py (89b), src/adapters/__init__.py (503b), src/adapters/base.py (2942b), src/adapters/deepseek.py (4471b), src/adapters/doubao.py (4566b), src/adapters/hunyuan.py (7748b), src/adapters/kimi.py (4432b), src/adapters/tongyi.py (4517b), src/adapters/zhipu.py (4445b), src/mcp_server.py (14045b), src/monitor.py (6912b), src/router.py (7321b), src/utils.py (1597b), tests/test_basic.py (4635b), _meta.json (135b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 18+ Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包六家模型的统一调用接口。支持工具调用（ask_model / compare_models / list_providers / health_check）、资源读取（配置 / 使用统计）、预置 prompt 模板（代码审查 / 翻译），内置统一错误映射、流式 SSE 输出、使用量统计、硬件感知并发控制。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.0.0\n---\n\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包六家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ 内置 `compare_models` 工具，同时问多家 |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射，全部返回中文 |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 4 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py compare \"解释量子计算\" -p deepseek tongyi zhipu\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 启动 MCP 服务器\npython main.py run\n```\n\n### 方式三：Python API 直接调用\n\n```python\nfrom src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)\n```\n\n---\n\n## 内置工具（MCP tools/list 返回）\n\n| 工具名 | 描述 | 关键参数 |\n|--------|------|---------|\n| `ask_model` | 向指定或自动选择的模型提问 | `question`（必填）, `provider`（可选）, `model`（可选）, `temperature`（可选） |\n| `compare_models` | 同一问题并发多家模型返回对比 | `question`（必填）, `providers`（可选列表，默认全部可用） |\n| `list_providers` | 列出所有已配置且可用的模型提供商 | 无 |\n| `health_check` | 检查所有已配置提供商的连通性 | 无 |\n\n---\n\n## 内置资源（MCP resources/list 返回）\n\n| 资源 URI | 描述 |\n|----------|------|\n| `cn-model-gateway://config` | 查看当前已注册的模型提供商列表（不含 api_key 明文） |\n| `cn-model-gateway://usage` | 查看调用次数、token 消耗、各模型使用占比等统计 |\n\n---\n\n## 内置 Prompt 模板（MCP prompts/list 返回）\n\n| 模板名 | 描述 | 参数 |\n|--------|------|------|\n| `code_review` | 代码审查提示模板 | `code`（必填）, `language`（可选，默认 python） |\n| `translate` | 中英互译提示模板 | `text`（必填）, `target_lang`（必填：zh/en/ja） |\n\n---\n\n## 配置说明\n\n`config.json` 格式：\n\n```json\n{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}\n```\n\n- 可以只填一家，也可以六家全填\n- `hunyuan` 比较特殊，格式为 `secret_id:secret_key`（冒号分隔）\n- 未填 api_key 的提供商自动标记为不可用，不影响其他家使用\n\n---\n\n## 统一错误映射\n\n各家模型返回的错误码不同，本 skill 统一映射为 MCP 标准错误码：\n\n| MCP 错误码 | 含义 | 触发场景 |\n|-----------|------|---------|\n| `-32602` | 参数错误 | API key 无效、内容审核未通过、请求参数缺失 |\n| `-32001` | 模型不可用 | 提供商未配置或已过期 |\n| `-32002` | 速率限制 | 调用频率超限、额度不足 |\n| `-32603` | 内部错误 | 网络超时、响应解析失败 |\n\n所有错误信息均为**中文**，便于排查。\n\n---\n\n## 性能优化\n\n- **硬件感知并发**：启动时自动采集 CPU 核数和内存大小，低配电脑（< 4GB 内存）限制并发数为 1，高配最多 4 并发\n- **零外部依赖**：纯 Python 标准库，无 `pip install`，避免环境污染\n- **流式输出**：长对话走 SSE 流式，不堵内存\n- **SQLite 本地统计**：调用记录本地落盘，无网络上传\n\n---\n\n## 版本更新提醒\n\n本 skill 会在每次启动时打印当前版本号（stderr）。要获取最新版本：\n\n```bash\n# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway\n```\n\n建议关注本 skill 的 GitHub Release 页获取更新通知。\n\n---\n\n## ⚠️ 风险项（必读）\n\n| 风险 | 说明 | 规避方式 |\n|------|------|---------|\n| API Key 泄露 | 用户需自行保管 api_key，config.json 文件勿提交到公开仓库 | 将 config.gitignore；不要把 skill 复制到公开目录 |\n| 模型调用计费 | 每次调用都会消耗对应模型提供商的额度，费用由用户自行承担 | 定期查看 `python main.py stats` 统计，设置各平台额度预警 |\n| 内容安全 | 模型回答内容由各提供商审核策略决定，本 skill 不额外过滤 | 生产环境建议叠加内容安全过滤层 |\n| 网络依赖 | 每次调用都通过 urllib 直连各模型 API，需要联网 | 离线环境无法使用各家模型能力 |\n| 并发安全风险 | 使用 SQLite 本地存储，多进程同时写入可能触发锁竞争 | 单进程运行；多进程场景建议改用外部数据库 |\n| 配置格式 | hunyuan 必须是 `secret_id:secret_key` 格式，其他家是普通 key | 使用前运行 `python main.py status` 检查连通性 |\n| API 版本兼容 | 各模型提供商可能更新 OpenAI-compatible 接口路径或字段 | 关注各平台公告，本 skill 会随版本更新适配 |\n\n---\n\n## 能力边界\n\n- 仅支持文本对话（chat completions），不支持图片/音频/视频理解\n- 不支持 Function Calling / Tool Use（各家实现差异大，暂不统一封装）\n- 不支持本地模型推理或 GPU 部署\n- 不支持 model cascade / fallback（auto 模式只随机选一家，不自动重试）\n- 不支持批量异步调用（single-call synchronous only）\n\n---\n\n## 常见问题（FAQ）\n\n**Q: 为什么启动后没有任何提供商可用？**\nA: 检查 config.json 格式是否正确，api_key 是否填写。运行 `python main.py status` 查看状态。注意 hunyuan 格式是 `secret_id:secret_key`（冒号分隔）。\n\n**Q: 能同时配置多个提供商让 skill 自动选择吗？**\nA: 可以。auto 模式会随机选一家可用的。如果要稳定输出，建议显式指定 `-p deepseek`。\n\n**Q: 各家模型的默认模型是什么？**\nA: deepseek-chat / qwen-turbo / glm-4-flash / moonshot-v1-8k / hunyuan-standard / doubao 系列。可通过 `model` 参数覆盖。\n\n**Q: 使用量数据存在哪里？**\nA: 默认存储在 `~/.cn-model-gateway/usage.db`（SQLite）。不会上传到任何服务器。\n\n**Q: 支持哪些操作系统？**\nA: Windows / macOS / Linux 全平台支持。需要 Python 3.9+。\n\n**Q: 需要 GPU 吗？**\nA: 完全不需要。本 skill 只做 API 网关，不进行本地推理。\n\n---\n\n## 支持与反馈\n\n有更好建议：njskills@agent.qq.com\n\n遇到问题请提供：\n1. `python main.py status` 输出\n2. 报错截图或完整错误信息\n3. 你使用的 model provider 名称\n\n---\n\n## 更新日志\n\n| v1.0.0 | 2026-07-16 | 初始版本发布，包含：MCP JSON-RPC 2.0 完整协议适配（tools/list/call + resources/list/read + prompts/list/get）；6 家国产模型适配器（DeepSeek/通义/智谱/Kimi/混元/豆包）；统一错误映射（4 种 MCP 标准错误码 + 中文 message）；流式 SSE 输出；本地 MCP 服务器 stdio 启动；内置 4 个工具（ask_model/compare_models/list_providers/health_check）；2 个 prompt 模板（code_review/translate）；使用量统计（SQLite + 周报）；硬件感知并发控制（自动采集 CPU/内存 → 动态分配并发数）；纯 Python 标准库零依赖；CLAUDE.md/Cursor/Cline 配置文件模板 |\n\nFile v1.0.0:README.md\n\n# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包六家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **6 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 6 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   └── doubao.py\n│   ├── router.py              ← 路由 + 统一错误映射\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py               ← 工具函数\n├── config/\n│   └── config.json.example    ← 配置模板\n└── tests/\n    └── test_basic.py          ← 基础测试\n```\n\n## License\n\nMIT\n\n## 联系\n\nnjskills@agent.qq.com\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1784189485812\n}\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nCN Model Gateway is a Python MCP server that routes JSON-RPC 2.0 tool, resource, and prompt requests from agent clients to DeepSeek, Tongyi, Zhipu GLM, Kimi, Tencent Hunyuan, and Volcengine Doubao text models. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[fyniujin](https://clawhub.ai/user/fyniujin) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent users use this skill to connect MCP-compatible","readmeExcerpt":"Skill: cn-model-gateway Owner: fyniujin Summary: 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。11 个 MCP 工具（ask_model/describe_image/embed_text/rerank/audio_transcribe/video_understand/batch_submit/batch_result/list_providers/health_check/health_report）+ 单一网关状态资源 + 2 个 prompt 模板。内置统一错误映射（v1.9.0 新增 429/451/余额不足/内容审查四","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}"},{"language":"bash","snippet":"# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py ask \"解释量子计算\" --providers deepseek tongyi zhipu\n\n# 描述一张图片\npython main.py describe_image \"https://example.com/photo.jpg\" -p tongyi\n\n# 生成文本向量嵌入\npython main.py embed \"文本1\" \"文本2\" -p deepseek\n\n# 文档重排序\npython main.py rerank -q \"查询\" -d \"文档1\" \"文档2\" \"文档3\" -p zhipu\n\n# 语音转文字\npython main.py transcribe \"audio.mp3\" -p zhipu\n\n# 理解视频内容\npython main.py video \"video.mp4\" -p zhipu\n\n# 查看已配置模型状态\npython main.py status\n\n# 查看使用统计\npython main.py stats\n\n# 执行健康检查（最小调用，记录延迟/成功率）\npython main.py health\n\n# 生成每日健康晨报（本地 HTML + 可选 webhook 推送）\npython main.py report\npython main.py report --webhook https://your-webhook-url\n\n# 启动 MCP 服务器\npython main.py run"},{"language":"python","snippet":"from src.router import ModelRouter\nfrom src.adapters.base import ChatMessage\n\nrouter = ModelRouter()\nrouter.register_all({\n    \"deepseek\": {\"api_key\": \"sk-xxx\"}\n})\n\nmsgs = [ChatMessage(role=\"user\", content=\"你好\")]\nresp = router.chat(msgs, provider=\"deepseek\")\nprint(resp.content)"},{"language":"json","snippet":"{\n  \"deepseek\": { \"api_key\": \"sk-xxx\" },\n  \"tongyi\": { \"api_key\": \"sk-xxx\" },\n  \"zhipu\": { \"api_key\": \"your-key\" },\n  \"kimi\": { \"api_key\": \"your-key\" },\n  \"hunyuan\": { \"api_key\": \"SECRET_ID:SECRET_KEY\" },\n  \"doubao\": { \"api_key\": \"your-key\" }\n}"},{"language":"bash","snippet":"# 检查 GitHub 最新版本（需安装 gh CLI）\ngh release list --repo your-org/cn-model-gateway"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: cn-model-gateway\ndescription: \"国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。11 个 MCP 工具（ask_model/describe_image/embed_text/rerank/audio_transcribe/video_understand/batch_submit/batch_result/list_providers/health_check/health_report）+ 单一网关状态资源 + 2 个 prompt 模板。内置统一错误映射（v1.9.0 新增 429/451/余额不足/内容审查四类错误 + 中文处置建议）、流式 SSE 输出+心跳保活+断线重连、每日健康晨报 + 厂商变更雷达（3σ 异常检测）、使用量统计、硬件感知并发控制、SQLite WAL 批量任务队列、自动故障转移、环境变量优先读取 API key。支持 Function Calling、多模态视觉、5 个非 MCP 框架适配器（LangChain/AutoGPT/CrewAI/Coze/Dify）、性能基准测试和 Token 价格追踪。config.json 填写 api_key 即可启动，无需 GPU、不做微调、不做私有部署，只做标准 MCP 协议网关。\"\nversion: 1.9.0\n---\n\n\n# 国产模型 MCP 服务器\n\nCN Model Gateway 是一个**纯 Python、零运行时依赖**的国产大模型统一 MCP 服务器。它启动后通过 stdio 暴露标准 JSON-RPC 2.0 接口，让任何兼容 MCP 的 Agent 框架（Claude Code、Cursor、Cline、n8n、Claude Desktop 等）一站式调用 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型。\n\n**核心定位：只做 MCP 协议网关。**\n\n- ❌ 不做本地模型推理 / GPU 部署\n- ❌ 不做模型微调 / 训练\n- ❌ 不做私有部署版 SaaS\n- ✅ 只做标准 MCP 协议接口，把各家模型统一封装成 MCP tools/resources/prompts\n\n---\n\n## 适用场景\n\n| 场景 | 说明 |\n|------|------|\n| 你想在 Claude Code / Cursor / Cline 里一键切换 DeepSeek / 通义 / 智谱 / Kimi / 混元 / 豆包 | ✅ 安装后在 MCP 配置里加一段，框架自动发现 |\n| 你想对比同一问题在多个模型上的回答差异 | ✅ `ask_model` 传入 `providers=[a,b]` 即可对比 |\n| 你想让模型描述一张图片 | ✅ `describe_image` 工具，支持 Qwen-VL/GLM-4V/豆包视觉 |\n| 你想让模型调用工具（Function Calling） | ✅ `ask_model` 传入 `tools` 参数，返回 `tool_calls` |\n| 你想生成文本向量嵌入 | ✅ `embed_text` 工具，支持 deepseek/zhipu/doubao/tongyi |\n| 你想对文档按相关性重排序 | ✅ `rerank` 工具，支持 zhipu 等 |\n| 你想将语音转为文字 | ✅ `audio_transcribe` 工具 |\n| 你想理解视频内容 | ✅ `video_understand` 工具（关键帧+视觉描述） |\n| 你想统计调用量、token 消耗、各模型使用占比 | ✅ 内置 SQLite 统计 + 周报功能 |\n| 你希望错误信息是中文的、不暴露原始英文 API 报错 | ✅ 统一错误映射（v1.9.0 新增 429/451/余额不足/内容审查四类 + 中文处置建议） |\n| 你希望在低配电脑上用，不希望 AI 把你的内存吃满 | ✅ 硬件感知并发控制（自动采集 CPU/内存 → 动态限制并发数） |\n| 你希望每天自动检查各厂商 API 是否可用，晨报推送异常 | ✅ 每日健康晨报（最小调用控制成本 <0.1 元/天，本地 HTML + 可选 webhook） |\n| 你希望厂商接口变更或故障时第一时间知道 | ✅ 厂商变更雷达（滑动窗口 + 3σ 异常检测，晨报置顶告警） |\n| 你有一个国产模型 API key，想把它接到你的 Agent 工作流里 | ✅ 填 config.json 启动即可 |\n\n---\n\n## 安装\n\n### 前提条件\n\n- Python 3.9+（已安装在你系统上）\n- 至少一个国产模型的 API key\n\n### 安装步骤\n\n```bash\n# 1. 克隆或下载本 skill 文件夹\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\n\n# 2. 复制配置模板，填写你的 api_key\ncp config/config.json.example config/config.json\n# 然后编辑 config.json，填入你的 api_key\n```\n\n**无需 pip install，所有代码使用 Python 标准库（urllib/json/sqlite3/asyncio）。**\n\n---\n\n## 使用方法\n\n### 方式一：作为 MCP 服务器（推荐，给 Claude Code / Cursor / Cline 用）\n\n在 Claude Code / Cursor / Cline 的 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"D:/skill/cn-model-gateway/main.py\", \"run\", \"-c\", \"D:/skill/cn-model-gateway/config/config.json\"]\n    }\n  }\n}\n```\n\n启动 Agent 框架后，即可自动发现 8 个工具 + 2 个资源 + 2 个 prompt 模板。\n\n### 方式二：命令行直接提问\n\n```bash\n# 直接提问（自动选择可用模型）\npython main.py ask \"写一个快速排序\"\n\n# 指定模型提问\npython main.py ask \"写一个快速排序\" -p deepseek\n\n# 对比多个模型\npython main.py ask \"解释量子计算\" --providers deepseek tongyi zhipu\n\n# 描述一张图片"},{"path":"README.md","content":"# CN Model Gateway（国产模型 MCP 服务器）\n\n> 国产大模型统一 MCP 服务器，通过标准 JSON-RPC 2.0 协议为 Claude Code / Cursor / Cline / n8n 等 Agent 框架提供 DeepSeek、通义千问、智谱 GLM、Kimi、腾讯混元、火山豆包、MiniMax、零一万物、百川智能、阶跃星辰十家模型的统一调用接口。\n\n## 核心特性\n\n- **标准 MCP 协议**：完整实现 JSON-RPC 2.0，tools/list/call + resources/list/read + prompts/list/get\n- **10 家国产模型**：DeepSeek / 通义千问 / 智谱 GLM / Kimi / 腾讯混元 / 火山豆包 / MiniMax / 零一万物 / 百川智能 / 阶跃星辰\n- **全 Agent 生态**：新增 5 个非 MCP 框架适配器（LangChain Tool、AutoGPT Plugin、CrewAI Tool、Coze 插件、Dify 工具节点）\n- **模型性能基准测试**：内置 50 道题库、6 维度评分、雷达图对比、历史追踪（从\"凭感觉选模型\"变成\"凭数据选模型\"）\n- **Token 价格实时追踪**：价格抓取（含降级缓存）、变更通知、趋势图、成本预测\n- **统一错误映射**：各厂商错误码统一映射为 MCP 标准错误码，全中文提示\n- **流式 SSE 输出**：长对话实时返回，不堵内存\n- **开箱即用**：4 个内置工具 + 2 个资源 + 2 个 prompt 模板\n- **硬件感知**：自动采集 CPU/内存 → 动态限制并发，不吃满你的电脑\n- **纯标准库**：零外部依赖，Python 3.9+ 直接跑\n\n## 快速开始\n\n```bash\ngit clone https://github.com/your-org/cn-model-gateway.git\ncd cn-model-gateway\ncp config/config.json.example config/config.json\n# 编辑 config.json 填入你的 api_key\npython main.py run        # 启动 MCP 服务器（stdio 模式）\npython main.py ask \"写一个快速排序\"\npython main.py status     # 查看模型提供商状态\npython main.py stats      # 查看使用统计\n```\n\n## 配置 Claude Code / Cursor / Cline\n\n在 MCP 配置文件中加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"cn-model-gateway\": {\n      \"command\": \"python\",\n      \"args\": [\"/path/to/cn-model-gateway/main.py\", \"run\"]\n    }\n  }\n}\n```\n\n## 支持模型\n\n| 提供商 | 默认模型 | 特殊说明 |\n|--------|---------|---------|\n| DeepSeek | deepseek-chat | 普通 API key |\n| 通义 (DashScope) | qwen-turbo | OpenAI-compatible 端点 |\n| 智谱 | glm-4-flash | 普通 API key |\n| Kimi (Moonshot) | moonshot-v1-8k | 普通 API key |\n| 混元 | hunyuan-standard | api_key 格式：`secret_id:secret_key` |\n| 豆包 (Volcengine) | ep-xxxxx | 普通 API key |\n| MiniMax | abab6.5s-chat | 普通 API key |\n| 零一万物 (LingYi) | yi-large | 普通 API key |\n| 百川智能 | baichuan2-turbo | 普通 API key |\n| 阶跃星辰 (StepFun) | step-1-200k | 普通 API key |\n\n## 架构\n\n```\ncn-model-gateway/\n├── main.py                    ← CLI 入口\n├── src/\n│   ├── adapters/              ← 10 家模型适配器\n│   │   ├── base.py            ← 抽象基类\n│   │   ├── deepseek.py        ← 支持 V3: deepseek-chat, deepseek-reasoner\n│   │   ├── tongyi.py\n│   │   ├── zhipu.py\n│   │   ├── kimi.py            ← 支持 v1-32k / v1-128k\n│   │   ├── hunyuan.py         ← 特殊签名机制\n│   │   ├── doubao.py\n│   │   ├── minimax.py         ← MiniMax abab 系列\n│   │   ├── lingyi.py          ← 零一万物 Yi 系列\n│   │   ├── baichuan.py        ← 百川智能\n│   │   └── stepfun.py         ← 阶跃星辰 Step 系列\n│   ├── frameworks/            ← 5 个非 MCP 框架适配器\n│   │   ├── __init__.py        ← 统一导出\n│   │   ├── langchain_tool.py  ← LangChain Tool 适配器\n│   │   ├── autogpt_plugin.py  ← AutoGPT Plugin 适配器\n│   │   ├── crewai_tool.py     ← CrewAI Tool 适配器\n│   │   ├── coze_plugin.py     ← Coze 插件适配器\n│   │   └── dify_tool.py       ← Dify 工具节点适配器\n│   ├── benchmark.py           ← 模型性能基准测试套件（新增）\n│   ├── price_tracker.py       ← Token 价格实时追踪（新增）\n│   ├── router.py              ← 路由 + 统一错误映射（10 家）\n│   ├── mcp_server.py          ← MCP JSON-RPC 2.0 实现\n│   ├── monitor.py             ← 使用量统计 + 硬件感知\n│   └── utils.py   "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7chdrwbdhaqkwajcyhtfvjx989ddb1\",\n  \"slug\": \"cn-model-gateway\",\n  \"version\": \"1.9.0\",\n  \"publishedAt\": 1791546899346\n}"},{"path":"references/error_map.yaml","content":"# 统一错误映射表（外置 YAML，可热更新）\n# 格式: provider → pattern → {code, message, suggestion}\n# code: MCP 标准错误码\n# suggestion: 中文处置建议（v1.9.0 新增）\n\ndeepseek:\n  invalid_api_key:\n    code: -32602\n    message: \"DeepSeek API key 无效或已过期\"\n    suggestion: \"检查 config.json 中 deepseek.api_key 是否正确\"\n  insufficient_quota:\n    code: -32002\n    message: \"DeepSeek 额度不足\"\n    suggestion: \"检查余额页：https://platform.deepseek.com/\"\n  rate_limit:\n    code: -32002\n    message: \"DeepSeek 请求过于频繁，请稍后重试\"\n    suggestion: \"等待 60 秒后重试\"\n  429:\n    code: -32002\n    message: \"DeepSeek 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"DeepSeek 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系 DeepSeek 客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"DeepSeek 余额不足\"\n    suggestion: \"检查余额页：https://platform.deepseek.com/\"\n  content_audit:\n    code: -32602\n    message: \"DeepSeek 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\ntongyi:\n  InvalidApiKey:\n    code: -32602\n    message: \"通义 API key 无效\"\n    suggestion: \"检查 config.json 中 tongyi.api_key 是否正确\"\n  Throttling.RateLimit:\n    code: -32002\n    message: \"通义 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  Throttling:\n    code: -32002\n    message: \"通义 请求被限流\"\n    suggestion: \"等待 60 秒后重试\"\n  429:\n    code: -32002\n    message: \"通义 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"通义 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系通义客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"通义 余额不足\"\n    suggestion: \"检查余额页：https://dashscope.console.aliyun.com/\"\n  content_audit:\n    code: -32602\n    message: \"通义 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nzhipu:\n  data_inspection_failed:\n    code: -32602\n    message: \"智谱 内容审核未通过，请检查输入内容\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n  invalid_api_key:\n    code: -32602\n    message: \"智谱 API key 无效\"\n    suggestion: \"检查 config.json 中 zhipu.api_key 是否正确\"\n  rate_limit_reached:\n    code: -32002\n    message: \"智谱 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  429:\n    code: -32002\n    message: \"智谱 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"智谱 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系智谱客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"智谱 余额不足\"\n    suggestion: \"检查余额页：https://open.bigmodel.cn/\"\n  content_audit:\n    code: -32602\n    message: \"智谱 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n\nkimi:\n  invalid_api_key:\n    code: -32602\n    message: \"Kimi API key 无效\"\n    suggestion: \"检查 config.json 中 kimi.api_key 是否正确\"\n  rate_limit_exceeded:\n    code: -32002\n    message: \"Kimi 请求频率超限\"\n    suggestion: \"等待 60 秒后重试\"\n  content_blocked:\n    code: -32602\n    message: \"Kimi 内容审核未通过\"\n    suggestion: \"修改提示词重试，避免敏感内容\"\n  429:\n    code: -32002\n    message: \"Kimi 请求频率超限（429）\"\n    suggestion: \"等待 60 秒后重试，或降低调用频率\"\n  451:\n    code: -32001\n    message: \"Kimi 地区限制（451）\"\n    suggestion: \"检查地区设置，或联系 Kimi 客服\"\n  balance_insufficient:\n    code: -32002\n    message: \"Kimi 余额不足\"\n    suggestion: \"检查余额页：https://platform.moonshot.cn/\"\n  content_audit:\n    code: -32602\n    message: \"Ki"},{"path":"skill-card.md","content":"## Description:\n\nConnects MCP-compatible agents to ten Chinese model providers for text and multimodal requests, with health checks and usage reporting.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[fyniujin](https://clawhub.ai/user/fyniujin)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers connect MCP-compatible agents to Chinese model providers for chat, image and video understanding, transcription, embeddings, reranking, and batch requests. They can also compare providers and generate health and usage reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts and selected media or text inputs are sent to configured model providers.\n\nMitigation: Use only providers approved for the data you submit.\n\nRisk: API keys and locally stored prompts or results may be exposed if configuration or local data is accessible to others.\n\nMitigation: Prefer environment variables for API keys and protect local ~/.cn-model-gateway databases.\n\nRisk: Optional report webhooks can send reports to an unintended destination.\n\nMitigation: Configure only trusted webhook URLs and review reports before enabling delivery.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/fyniujin/skills/cn-model-gateway)\n- [Provider error mapping](references/error_map.yaml)\n- [DeepSeek platform](https://platform.deepseek.com/)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Code, JSON tool responses, HTML reports]\n\n**Output Format:** [Text or JSON responses, with optional local HTML health reports]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Provider-dependent answers; batch tasks can retain prompts and results locally.]\n\n## Skill Version(s):\n\n1.9.0 (source: ClawHub release and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1621,"uniquenessScore":40,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T04:17:34.905Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T04:17:34.905Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T07:41:47.561Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}