PicX MCP Server
PicX MCP Server
一个基于 FastMCP 4 的服务器,通过无会话 Streamable HTTP 向任何 MCP 客户端提供 PicX Studio 的图像和视频生成能力。
托管端点: https://mcp.picxstudio.com/mcp
⚠️ 尚未部署。 该服务目前仅在本地运行;生产托管已在计划中(参见 PLAN-MCP Phase 6)。
为什么选择 FastMCP 4
FastMCP 4 的主题是*“无状态传输,但应用代码不必无状态”*。它所针对的协议修订版本——2026-07-28——完全移除了会话亲和性。普通负载均衡器后面的任何副本都可以处理任何请求。无需粘性会话,无需转发 cookie,请求之间不共享内存状态。
这对我们来说不是可选项:MCP 客户端(Cursor、Claude Code)在内部使用 fetch(),并且不转发 Set-Cookie 头,因此无论负载均衡器如何配置,粘性会话负载均衡都无法工作。FastMCP 4 的 stateless_http=True 模式是实现水平扩展的唯一可行途径。
FastMCP 4 还能通过单一部署同时协商两个协议时代(旧版 SSE 和现代 Streamable HTTP),因此旧客户端不会被遗弃。
Related MCP server: ChatATP Studio MCP Server
工具状态
# | 工具 | 状态 | 备注 |
1 |
| ✅ 可用 | 内联,5–20 秒 |
2 |
| ✅ 可用 | 需要先上传(API 拒绝 data URI) |
3 |
| ✅ 可用 | 后台任务( |
4 |
| ✅ 可用 | 按 ID 轮询生成结果 |
5 |
| ✅ 可用 | 返回编辑工具可用的 CDN URL |
6 |
| ✅ 可用 | |
7 |
| ✅ 可用 | |
8 |
| ✅ 可用 | 已缓存(5 分钟) |
9 |
| ✅ 可用 | 5 万+ 模板目录;已缓存 |
10 |
| ✅ 可用 | |
11 |
| ✅ 可用 | |
12 |
| ✅ 可用 | |
13 |
| 🔴 受阻 |
|
已知限制
视频模式: 仅暴露
text、image和reference模式。frames、extend、lipsync和edit模式需要一些字段,在没有专门验证的情况下,参数模式无法安全地序列化这些字段——暴露这些模式会导致 API 返回令人困惑的 422 错误。picx_list_generations: 已实现并随时可以启用,但受限于后端尚未提供GET /v1/generations。套餐限制: 在账户端点公开这些数据之前,按套餐划分的速率限制和每日上限可能无法查看。
OAuth: 尚未接入(Phase 5)。目前 API 密钥认证可用。
快速开始
# Clone and install
git clone https://github.com/Type-Think-AI/picx-mcp.git
cd picx-mcp
uv sync
# Configure
cp .env.example .env
# Edit .env — set PICX_API_KEY to your key from https://ai.picxstudio.com/api
# Run
python -m picx_mcp服务器启动于 http://localhost:8000。MCP 端点为 /mcp,健康检查端点为 /health。
客户端配置
Claude Desktop
{
"mcpServers": {
"picx": {
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer pxsk_your_api_key_here"
}
}
}
}Claude Code
{
"mcpServers": {
"picx": {
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer ${PICX_API_KEY}"
}
}
}
}Cursor
{
"mcpServers": {
"picx": {
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer ${PICX_API_KEY}"
}
}
}
}VS Code (Copilot)
{
"mcp": {
"servers": {
"picx": {
"type": "http",
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer ${PICX_API_KEY}"
}
}
}
}
}托管服务上线后,将 localhost:8000 替换为 mcp.picxstudio.com。
认证
两条认证通道,一个执行点:
API Key ( | OAuth(Phase 5,尚不可用) | |
对象 | 开发者、CI、脚本化代理、自托管用户 | 托管客户端上的普通用户 |
获取方式 | 一键同意授权界面 | |
工作原理 | 密钥按请求转发——服务器不存储任何凭据 | OAuth 解析为会话密钥 |
撤销机制 | 删除密钥 | 撤销授权——真实密钥不受影响 |
两条路径汇聚到同一个 /v1 执行机制:作用域、速率限制、每日积分上限、请求日志。不存在更弱的第二条路径。
MCP 服务器从不持有凭据。 它将调用者的 API 密钥(或解析后的会话密钥)转发给 /v1。一个从未被存储的密钥,自然也无法泄露。
架构
MCP Client ──▶ PicX MCP Server ──▶ api.picxstudio.com/v1 ──▶ Provider + Storage
(this repo) (owns everything below)该服务器是一个翻译层。它将 MCP 工具调用转换为 /v1 API 调用,并将结果翻译回资源链接。它刻意不做以下事情:
直接调用任何模型提供商。
/v1负责提供商集成。经手资金。
/v1负责积分扣除、定价、折扣、幂等性,以及提供商失败时的退款。存储媒体。 结果是永久的 CDN URL;不做任何缓存或代理。
维护会话状态。
stateless_http=True意味着每个请求都是自包含的。
为什么不直接调用提供商?/v1 已经执行了:认证 → 速率限制 → 每日上限 → 作用域检查 → 从配置中取价 → 应用折扣 → 幂等性检查 → 扣除积分 → 调用提供商 → 失败时退款 → 写入请求日志。在这里重新实现其中任何一步,最终都会产生偏差,而资金逻辑上的偏差就是计费缺陷——静默发生,并永久侵蚀信任。
多副本测试
选择 FastMCP 4 的核心论点在于,不需要会话亲和性。要在本地验证这一点:
docker compose up --scale app=2这会启动一个轮询代理后面的两个服务器副本,外加一个 Valkey 实例。验证该架构的测试如下:
在副本 A 上发起一个交互式工具调用(触发
InputRequiredResult)继续该交互——请求落在副本 B 上
调用成功,因为
REQUEST_STATE_KEY是共享的
如果未设置 REQUEST_STATE_KEY(或各副本之间不一致),交互轮次将因状态验证错误而失败。这是有意为之——它让配置错误以明显的方式暴露,而不是悄然出错。
环境变量
变量 | 是否必需 | 描述 |
| 否(默认: | PicX API 根地址。必须以 |
| 是(多副本) | ≥32 字节,所有副本之间逐字节相同。保护交互轮次状态。 |
| 是 | Valkey/Redis URL。支撑任务、响应缓存和 OAuth 存储。 |
| 否(默认:2000) | 单个 MCP 会话可消耗的最大积分,独立于账户的每日上限。 |
| 否(默认:200) | 超过此阈值时,工具返回 |
| Phase 5 | 显式 JWT 密钥。没有它,当 OAuth 客户端密钥轮换时,令牌将失效。 |
| Phase 5 | Fernet 密钥。没有它,上游 OAuth 令牌将以明文存储。 |
| Phase 5 | Google OAuth 客户端 ID。 |
| Phase 5 | Google OAuth 客户端密钥。 |
| Phase 5(默认: | 用于 OAuth 回调的公开 URL。 |
坦诚的限制
每次生成都消耗积分。 该服务器不会绕过定价——这正是重点所在。
每会话上限(默认 2000 积分) 限制了提示注入导致的积分流失。这与账户每日 13,000 积分上限相互独立。
确认提示:在消耗积分之前,若超过阈值(默认 200 积分),会要求确认。
不支持离线/本地生成。 所有生成都通过网络调用 PicX API。
视频是异步的。 即使
task=True隐藏了轮询,生成仍需要数分钟——代理必须等待。速率限制属于 API,而非该服务器:默认 60 次/分钟、10K 次/天。MCP 服务器不会增加额外限制。
该服务器处于测试阶段。 FastMCP 4 为
4.0.0b3。请对不完善之处有所预期。
许可证
This server cannot be deployed
Maintenance
Related MCP Connectors
Create and edit images, videos, and audio through Magic Hour's hosted Streamable HTTP MCP server.
MCP server for Pixapi: check live credit pricing and balance, then generate images and video.
Public Streamable HTTP MCP gateway for XGRChain, XDaLa sessions, Explorer data and XGR standards.
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceExposes BookClaw's author workflow to MCP clients over Streamable HTTP, providing tools for managing books, projects, pipelines, and more.MIT
- FlicenseNot gradedqualityCmaintenanceExposes ChatATP Studio's backend API as MCP tools over Streamable HTTP, enabling clients to manage agents, knowledge bases, MCP connections, HTTP APIs, LLM providers, messaging platforms, and teams with forwarded authorization.-
- AlicenseNot gradedqualityCmaintenanceEnables MCP-compatible clients to generate and upscale AI images, videos, music, and sound effects, manage generation jobs, access model catalogs, and track credits.3MIT

maginary-mcpofficial
AlicenseAqualityBmaintenanceEnables MCP-compatible clients to discover Maginary's image/video generation flags, submit generation requests, and poll for results, including support for API-key and OAuth authentication.131MIT