kwjm-mcp
MCP server that provides unified access to text, image, and video generation models via the kwjm.com API, with model discovery, capability validation, and clear error explanations.
README
开物基模 MCP 服务(kwjm-mcp)
基于 开物基模 (kwjm.com) API 的 MCP 服务。让任何一种支持 MCP 的 Agent 工具只需配置一次平台 API Key,即可调用 文本 / 图像 / 视频 模型,且清楚看到每个模型的可用范围与能力边界。
平台本质:开物基模是 AI 模型聚合代理(API Provider)。你持有平台令牌后,即可通过本服务调用各模型族(OpenAI、Seed/Seedance、DeepSeek、Qwen、Gemini、Anthropic、快手可灵等)。
特性
- 一次配置,到处可用:设置
KWJM_API_KEY即可调用模型;再配置非密钥字段KWJM_API_KEY_ID,即可把默认日结查询精确绑定到当前成员 Key。 - 能力发现:
list_models/get_model_capabilities让 Agent 在调用前看到每个模型的 modality、家族、选择层级、别名、能力边界。 - 多模态调用:文本(OpenAI
/v1/chat/completions与 Anthropic/v1/messages)、图像(/v1/images/generations、/v1/images/edits)、视频(异步任务含/v1、/v2、/v3与 kling 专属端点)。 - 防误判规则(核心设计):
- 默认/备选/非指明不调用分级:
default同类任务优先、fallback备选、off-by-default仅显式指名,绝不默认触碰未知模型。 - 歧义问询:指明模型但存在版本/同名歧义(如
deepseek家族)时,返回候选清单,交用户或 Agent 依据准确上下文选定,不擅自猜测。 - 实时精确 ID 优先:
/v1/models返回的精确 ID 是最终请求值;别名仅作为辅助入口,不能覆盖同名实时 ID。例如kw-video-v2*必须原样传给平台。 - Seedance 语义锁定:用户说
Seedance 2.0时,对应kw-video-v2、kw-video-v2-fast、kw-video-v2-mini三档候选,最匹配kw-video-v2,但需确认后再调用;用户说Seedance 2.5时,对应kw-video-v2.5。 - 同类工作默认决策:同类任务由 Agent 依据上下文决定使用哪个 default 模型,不强制每次问询。
- 默认/备选/非指明不调用分级:
- 能力边界预检 + 主动拦截:
validate_request在调用前校验用户输入(参考图数量上限、尺寸/分辨率/比例/时长枚举、必现错误),越界时主动提醒并给修正建议;suggest_model按任务给出默认/备选/非指明分级。 - 错误码「说人话」:
401/403/429/500/503等错误码内化为「问题性质 + 原版含义 + 通俗解释 + 下一步引导」四段结构,Agent 不再只吐状态码,而是用普通人听得懂的话解释「发生了什么、为什么、该怎么办」。
快速开始
1. 安装
npm install -g kwjm-mcp
也可以不全局安装,直接让 MCP 客户端通过 npx 启动:
npx -y kwjm-mcp
2. 配置 API Key
在任何 MCP 客户端的 server 配置里,通过 env 传入令牌:
| 环境变量 | 必填 | 说明 |
|---|---|---|
KWJM_API_KEY |
是 | 开物基模平台令牌(控制台 → API令牌) |
KWJM_API_KEY_ID |
日结必填 | 当前令牌的数字 ID;仅用于 get_current_key_daily_cost 精确过滤,不是密钥 |
API Base URL 固定为官方 https://kwjm.com,不接受环境变量覆盖,避免 bearer token 被误发到其他来源。
3. 以 npx 作为 server 命令示例
npx -y kwjm-mcp
# 源码开发:npm install && npm run build && node dist/index.js
工具总览
| 工具 | 说明 | 端点 |
|---|---|---|
list_models |
列出全部模型与能力元数据(modality/层级/别名) | registry |
get_model_capabilities |
单模型能力深挖与别名解析 | registry |
refresh_models |
调 /v1/models 实时并入 registry,未知模型标为非指明不调用 |
GET /v1/models |
chat_completions |
OpenAI 兼容文本生成 | POST /v1/chat/completions |
messages |
Anthropic Messages 文本生成(claude 系) | POST /v1/messages |
generate_image |
文生图(端点随模型分派:/v1/images/generations、-gp 异步、DashScope、gemini) |
分派 |
edit_image |
图生图/编辑 | POST /v1/images/edits |
generate_video |
文/图/参考生视频,端点随模型族分派(/v1、/v3、/v2、DashScope、kling) | 分派 |
get_video_result |
轮询视频/图像任务结果(queryPath 随模型族) | 分派 |
get_current_key_daily_cost |
默认查询当前 KWJM_API_KEY_ID 的日结成本;日期缺省为平台定义的前一天 |
GET /api/v1/user/statistics/day/keys |
get_account_daily_costs |
仅在显式传入 all_keys=true 时查询同账户全部 Key 日结 |
GET /api/v1/user/statistics/day/keys |
get_wallet_balance |
查询当前账户钱包余额 | GET /api/v1/user/wallet |
能力原子化(内化真实文档)
模型能力表已基于平台 62 个 API 文档页逐条内化,覆盖真实端到端体系:
- 文本:
/v1/chat/completions、/v1/responses、/v1/messages(gpt-5.2/5.4、deepseek-v3.2、qwen3、doubao-seed、gemini、claude 系列) - 图像:
/v1/images/generations、/v1/images/edits、/v1/images/generations/tasks(异步,-gp后缀)、DashScope 等效、geminigenerateContent - 视频(多端点体系,异步任务轮询):
/v1/videos/generations(doubao-seedance、wan 系列)/v3/contents/generations/tasks(kw-video-v2*精确模型与 dreamina-seedance 兼容模型)/v1/videos/text2video|image2video|video2video|reference(kling 系列)/v1/videos/create(veo3.1、sora-2-sp)、/v1/videos(sora-2)/v2/video_generation(MiniMax-H3)、DashScope/api/v1/services/aigc/video-generation/video-synthesis(wan2.7)
- 精确 ID 规则:
kw-video-v2、kw-video-v2-fast、kw-video-v2-mini、kw-video-v2.5均为独立平台 ID,不映射为 dreamina ID。自然语言Seedance 2.0返回前三者候选并推荐kw-video-v2;自然语言Seedance 2.5映射到kw-video-v2.5。
关于选择规则(很重要)
- 默认模型:文本
gpt-5.2-pro-2025-12-11;图像gpt-image-2;视频kw-video-v2。同类任务不指名时由 Agent 默认采用。 - 歧义:入参命中多个候选(如
wan、kling等多版本家族)→ 工具返回候选清单,需确定后再调用。 - Seedance 2.0:视为
kw-video-v2、kw-video-v2-fast、kw-video-v2-mini三档候选;默认建议kw-video-v2,但调用前必须让用户确认具体档位。 - Seedance 2.5:视为
kw-video-v2.5。 - 非指明不调用:
claude-opus-4-8、gpt-image-2-gp(异步)、grok-imagine等已标记的模型,未显式指名(explicit: true)不会调用。
测试
npm test # 单元 + 端到端(无需平台 key;e2e 验证防误判规则在协议层生效)
npm run test:live # 只读实时模型校验;不会触发生成
npm run test:live:text
KWJM_LIVE_COST_ACK=image npm run test:live:image
KWJM_LIVE_COST_ACK=video npm run test:live:video
KWJM_LIVE_COST_ACK=video-reference npm run test:live:video-reference
日结接口只提供账户维度的 Key 列表;因此默认的当前成员查询必须用 KWJM_API_KEY_ID 做精确绑定。get_account_daily_costs 还要求显式传入 all_keys=true,避免普通成本查询意外扩展到同账户其他成员。
Agent 接入指南
设计文档
目录结构
src/
core/
types.ts 类型:能力/层级/别名
registry.ts 策展能力表 + 选择规则 + 别名映射 + refresh 合并
client.ts HTTP 封装(鉴权/错误归一化)
handlers/
result.ts MCP 结果/错误封装
guard.ts 防误判守卫(歧义/off-by-default)
discovery.ts list_models / get_model_capabilities / refresh_models
text.ts chat_completions / messages
image.ts generate_image / edit_image
video.ts generate_video / get_video_result
usage.ts 当前 Key / 全账户日结与钱包查询
index.ts MCP Server 引导
test/ 单元 / 端到端 / 实时集成测试
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。