本文档详细描述了 MCP-X 平台的所有后端 API 接口。
https://www.mcp-x.com/prod-api
大部分接口需要在请求头中携带 Bearer Token:
Authorization: Bearer {token}
POST https://www.mcp-x.com/prod-api/ai/video/generate
{
"code": 200,
"msg": "操作成功",
"data": {}
}| 错误码 | 说明 |
|---|---|
| 200 | 成功 |
| 401 | 认证失败/Token 过期 |
| 403 | 权限不足 |
| 500 | 服务器错误 |
POST /auth/login
请求体
{
"username": "string", // 用户名/邮箱
"password": "string" // 密码
}响应
{
"code": 200,
"data": {
"access_token": "string",
"token": "string",
"userInfo": {
"userId": "string",
"username": "string",
"nickName": "string",
"avatar": "string"
}
}
}POST /auth/register
请求体
{
"username": "string", // 邮箱
"password": "string", // 密码
"code": "string" // 邮箱验证码
}POST /resource/email/code
请求体
{
"username": "string" // 邮箱地址
}POST /web/auth/github/login
请求体
{
"code": "string" // GitHub OAuth 授权码
}GET /system/model/modelList
获取平台支持的所有 AI 模型列表,包含对话、图像、视频等各类模型,可通过 category 字段区分类型。
响应
{
"code": 200,
"data": [
{
"id": "string",
"modelName": "gpt-4o",
"category": "text2text",
"modelDescribe": "string",
"modelPrice": 0,
"modelType": "string",
"modelShow": "string",
"systemPrompt": null,
"apiHost": "string",
"remark": "string"
}
]
}category 枚举值
| 值 | 说明 |
|---|---|
| text2text | 对话/文本模型 |
| text2image | 图像生成模型 |
| text2video | 视频生成模型 |
Session 是 AI 对话、图像生成、视频生成等功能的统一上下文容器。创建 Session 后,将 sessionId 传入各业务接口即可关联上下文、保存历史记录。
POST /web/session
请求体
{
"userId": "string",
"sessionContent": "",
"sessionTitle": "string",
"remark": "string",
"appId": "string"
}响应
{
"code": 200,
"data": "1773812492551"
}
data为新建的 sessionId(大整数字符串)。
GET /web/session/list
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| userId | string | 用户ID |
| appId | string | 应用ID(可选) |
| isDelete | number | 是否删除,默认 0 |
响应
{
"code": 200,
"rows": [
{
"id": "string",
"sessionTitle": "string",
"sessionContent": "string",
"remark": "string",
"userId": "string",
"createTime": "string",
"updateTime": "string"
}
]
}GET /web/message/list
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| sessionId | string | 会话ID |
| userId | string | 用户ID |
响应
{
"code": 200,
"rows": [
{
"id": "string",
"sessionId": "string",
"role": "user | assistant | system",
"content": "string",
"userId": "string",
"modelName": "gpt-4o",
"deductCost": "0.02",
"totalTokens": 512,
"createTime": "string",
"updateTime": "string",
"files": [
{ "uid": "string", "name": "file.pdf", "type": "application/pdf", "size": 102400, "url": "string" }
]
}
]
}PUT /web/session
请求体
{
"id": "string",
"sessionId": "string",
"sessionTitle": "string",
"remark": "string"
}
id与sessionId二选一传入即可。
PUT /web/session/content
用于保存会话内容(如视频项目 JSON),持久化工作区状态。
请求体
{
"id": "string",
"content": "string",
"sessionTitle": "string"
}GET /web/session/content/list/{sessionId}
获取会话内容的历史版本列表(如视频项目的历史快照)。
响应
{
"code": 200,
"rows": [
{
"id": "string",
"sessionId": "string",
"content": "string",
"sessionTitle": "string",
"createTime": "string"
}
]
}DELETE /web/session/{sessionId}
软删除指定会话。
响应
{
"code": 200,
"msg": "操作成功"
}POST /chat/send
请求体
{
"messages": [{ "role": "user", "content": "hello" }],
"model": "gpt-4o",
"stream": true,
"userId": "number",
"sessionId": "string",
"appId": "string",
"sysPrompt": "string",
"isMcp": false,
"mcpConfig": {},
"internet": false,
"deepResearch": false,
"kid": "string",
"agent": "string"
}SSE 响应格式
data: {"choices":[{"delta":{"content":"Hello!"}}]}
data: [DONE]
POST /chat/send-with-files
Content-Type: multipart/form-data
表单参数
| 参数 | 类型 | 说明 |
|---|---|---|
| file | File[] | 文件列表 |
| messages | string | JSON 格式的消息数组 |
| model | string | 模型名称 |
| stream | string | "true" |
| userId | string | 用户ID |
| sessionId | string | 会话ID |
POST /ai/image/generate
根据文字描述生成图像。无参考图时走文生图模型(默认 z-image-turbo)。
请求体
{
"prompt": "cinematic portrait of a young woman",
"model": "z-image-turbo",
"userId": "string",
"sessionId": "string",
"appId": "mcpx-text2image",
"size": "1024*1024",
"watermark": false,
"referenceMaterials": []
}响应
{
"code": 200,
"data": {
"imageUrl": "https://cdn.../result.png",
"imageBase64": "base64..."
}
}POST /ai/image/edit
传入一张或多张参考图时,自动切换为图生图模式(内部调用 /ai/image/edit),保持参考图的视觉风格和角色一致性。支持场景图 + 多张角色定妆照同时传入。
请求体
{
"prompt": "Generate a cinematic shot matching this prompt: \"...\"",
"model": "flux-dev",
"userId": "string",
"sessionId": "string",
"appId": "mcpx-text2image",
"size": "1280*720",
"images": [
{ "data": "base64...", "mimeType": "image/png" },
{ "data": "base64...", "mimeType": "image/png" }
]
}
mask字段不传时为全图重绘模式。
POST /ai/image/edit
传入原图 + 蒙版 + 提示词,对蒙版区域进行局部重绘,其余区域保持不变。
请求体
{
"prompt": "change hair color to red",
"model": "flux-dev",
"userId": "string",
"sessionId": "string",
"appId": "mcpx-text2image",
"size": "1024*1024",
"images": [
{ "data": "base64...", "mimeType": "image/png" }
],
"mask": {
"data": "base64...",
"mimeType": "image/png"
}
}蒙版规则:白色 = 重绘区域,黑色 = 保留区域。
响应
{
"code": 200,
"data": {
"imageUrl": "https://cdn.../edited.png"
}
}所有视频生成接口均使用 SSE 流式响应:
POST /ai/video/generate
Content-Type: application/json
Accept: text/event-stream
只传 prompt,不传任何图片参数,走文生视频模式。
请求体
{
"model": "kling-v1.6-standard",
"prompt": "a cat running in the park",
"duration": 5,
"ratio": "16:9",
"resolution": "720P",
"userId": "string",
"sessionId": "string",
"appId": "mcpx-video-studio",
"audio": false,
"seed": 12345
}SSE 响应格式
data: {"choices":[{"delta":{"content":"{\"progress\":10,\"message\":\"排队中\"}"}}]}
data: {"choices":[{"delta":{"content":"{\"progress\":60,\"message\":\"生成中\"}"}}]}
data: {"choices":[{"delta":{"content":"<video>https://cdn.../result.mp4</video>"}}]}
data: [DONE]
传入 imageUrl 作为视频起始帧,AI 根据 prompt 生成后续动态画面。可传 refImages 提供角色/场景参考图增强一致性。
请求体
{
"model": "kling-v1.6-standard",
"prompt": "the character walks forward slowly",
"imageUrl": "https://cdn.../start-frame.jpg",
"duration": 5,
"ratio": "16:9",
"resolution": "720P",
"userId": "string",
"sessionId": "string",
"appId": "mcpx-video-studio",
"refImages": [
"https://cdn.../character.jpg",
"https://cdn.../scene.jpg"
],
"audio": false,
"audioUrl": "https://cdn.../bg.mp3"
}同时传入 firstFrameUrl 和 lastFrameUrl,AI 在两帧之间插值生成流畅过渡视频。适合精确控制镜头起止画面。
请求体
{
"model": "kling-v1.6-standard",
"prompt": "smooth camera pan from left to right",
"firstFrameUrl": "https://cdn.../start.jpg",
"lastFrameUrl": "https://cdn.../end.jpg",
"duration": 5,
"ratio": "16:9",
"resolution": "720P",
"userId": "string",
"sessionId": "string",
"appId": "mcpx-video-studio",
"seed": 42
}SSE 响应(额外返回 lastFrameUrl,可用于下一镜头的起始帧)
data: {"choices":[{"delta":{"content":"{\"lastFrameUrl\":\"https://cdn.../last.jpg\"}"}}]}
data: {"choices":[{"delta":{"content":"<video>https://cdn.../result.mp4</video>"}}]}
data: [DONE]
| 参数 | 类型 | 说明 |
|---|---|---|
| audio | boolean | 是否生成同步音频 |
| audioUrl | string | 背景音频文件 URL |
| seed | number | 随机种子,用于复现结果 |
| refImages | string[] | 额外参考图(角色图、场景图等) |
| referenceMaterials | object[] | @功能引用的素材列表 |
| 模型名称 | 说明 |
|---|---|
| kling-v1.6-standard | 可灵标准版 |
| kling-v1.6-pro | 可灵专业版 |
| runway-gen3 | Runway Gen-3 |
| pika-v1 | Pika Labs |
分辨率:480P / 720P / 1080P
宽高比:16:9(横屏)/ 9:16(竖屏)/ 1:1(方形)
POST /app/webgen/add
请求体
{
"appName": "My App",
"message": "Create a landing page",
"initPrompt": "string",
"codeGenType": "REACT",
"userId": "string"
}
codeGenType可选值:HTML/REACT/VUE/STATIC
GET /app/webgen/{appId}
GET /app/webgen/list
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| pageNum | number | 页码 |
| pageSize | number | 每页数量 |
| appName | string | 应用名称(可选) |
| isDelete | number | 是否删除 |
GET /app/webgen/chat/gen/code
Accept: text/event-stream
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| appId | string | 应用ID |
| message | string | 用户指令 |
| stream | string | "true" |
SSE 响应格式
data: {"d": "生成的代码内容"}
data: [DONE]
GET /app/webgen/chat/history
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| appId | string | 应用ID |
| pageSize | number | 每页数量 |
| lastCreateTime | string | 最后创建时间 |
POST /app/webgen/deploy
请求体:直接传递应用ID字符串 "appId"
GET /app/webgen/download/{appId}
响应为 Blob 文件。
POST /app/webgen/delete
请求体
{ "id": "string" }POST /app/webgen/update
请求体
{
"id": "string",
"appName": "string",
"cover": "string",
"priority": 0
}GET /web/mcp/server/list
GET /web/mcp/server/detail/{id}
响应
{
"code": 200,
"data": {
"name": "google-search",
"chineseName": "string",
"handle": "string",
"descriptionEn": "string",
"descriptionCn": "string",
"category": "string",
"usageCount": 0,
"verified": false,
"tools": ["search", "get_page_content"],
"serverdetailVo": {
"toolList": [],
"envSchema": "string",
"serverConfig": "string",
"readme": "string",
"readmeCn": "string"
}
}
}GET /web/mcp/home/server
GET /web/mcp/home/category
GET /web/mcp/search
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| key | string | 搜索关键词 |
POST /web/mcp/member/addserver
请求体
{
"name": "string",
"handle": "string",
"description": "string",
"documentation": "string"
}POST /user/userMcpServer
PUT /user/userMcpServer
GET /user/userMcpServer/list
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| pageNum | number | 页码,默认 1 |
| pageSize | number | 每页数量,默认 20 |
DELETE /user/userMcpServer/{ids}
POST /user/userMcpServer/start/{ids}
GET /knowledge/list
获取用户的知识库列表。
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| pageNum | number | 页码 |
| pageSize | number | 每页数量 |
POST /knowledge/save
POST /knowledge/edit
POST /knowledge/remove/{id}
GET /knowledge/detail/{id}
POST /knowledge/attach/upload
Content-Type: multipart/form-data
上传文档到知识库。
表单参数
| 参数 | 类型 | 说明 |
|---|---|---|
| file | File | 文档文件 |
| kid | string | 知识库ID |
POST /knowledge/attach/remove/{kid}
GET /knowledge/fragment/list/{docId}
POST /knowledge/translationByFile
Content-Type: multipart/form-data
表单参数
| 参数 | 类型 | 说明 |
|---|---|---|
| file | File | 文件 |
| targetLanguage | string | 目标语言 |
GET /web/package/vip
获取所有可用的 VIP 订阅套餐。
POST /web/pay/wechat/create
请求体
{ "planId": 1 }POST /web/pay/wechat/continue
请求体
{ "orderNo": "string" }GET /web/pay/order/detail/{orderNo}
GET /web/pay/order/list
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| pageNum | number | 页码 |
| pageSize | number | 每页数量 |
GET /web/pay/me/balance-plan
POST /public/oss/upload
Content-Type: multipart/form-data
表单参数
| 参数 | 类型 | 说明 |
|---|---|---|
| file | File | 要上传的文件 |
响应
{
"code": 200,
"data": {
"url": "string",
"fileName": "string",
"ossId": "string"
}
}POST /web/feedback/submit
请求体
{
"contactInfo": "string",
"contributionDescription": "string",
"detailedDescription": "string",
"feedbackType": "number",
"githubForkUrl": "string",
"issueType": "string",
"releaseUrl": "string"
}GET /web/feedback/my
也可用于验证 Token 有效性。
POST /web/contact
请求体
{
"name": "string",
"email": "string",
"subject": "string",
"message": "string"
}GET /web/ai-query/results/{queryId}/page
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| pageNum | number | 页码 |
| pageSize | number | 每页数量 |
GET /web/agent/categories
GET /web/agent/list
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| pageNum | number | 页码 |
| pageSize | number | 每页数量 |
| categoryId | number | 分类ID(可选) |
| status | number | 状态,默认 1 |
GET /web/agent/detail/{id}
GET /web/agent/search
查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| key | string | 搜索关键词 |
| pageNum | number | 页码 |
| pageSize | number | 每页数量 |
GET /web/agent/featured
GET /web/agent/recent
GET /web/agent/category/{categoryId}
GET /web/agent/activity/{id}
文档版本:2.0.0
更新时间:2026-03-13