PicX MCP Server
PicX MCP Server
Un servidor FastMCP 4 que expone la generación de imágenes y vídeos de PicX Studio a cualquier cliente MCP a través de Streamable HTTP sin sesiones.
Endpoint alojado: https://mcp.picxstudio.com/mcp
⚠️ Aún no está desplegado. El servicio se ejecuta localmente hoy; el alojamiento de producción está previsto (ver PLAN-MCP Phase 6).
Por qué FastMCP 4
El tema de FastMCP 4 es "transporte sin estado sin código de aplicación sin estado." La revisión de protocolo a la que apunta — 2026-07-28 — elimina por completo la afinidad de sesión. Cualquier réplica detrás de un balanceador de carga ordinario puede atender cualquier solicitud. Sin sticky sessions, sin reenvío de cookies, sin estado compartido en memoria entre solicitudes.
Esto no es opcional para nosotros: los clientes MCP (Cursor, Claude Code) usan fetch() internamente y no reenvían las cabeceras Set-Cookie, por lo que el balanceo de carga con sticky sessions no puede funcionar independientemente de la configuración del LB. El modo stateless_http=True de FastMCP 4 es la única vía viable para el escalado horizontal.
FastMCP 4 también negocia ambas eras de protocolo (SSE legacy y Streamable HTTP moderno) desde un único despliegue, por lo que los clientes antiguos no quedan abandonados.
Related MCP server: LLM Wiki Streamable HTTP MCP Server
Estado de las herramientas
# | Herramienta | Estado | Notas |
1 |
| ✅ Funciona | Síncrono, 5–20s |
2 |
| ✅ Funciona | Requiere subir primero (la API rechaza las data URIs) |
3 |
| ✅ Funciona | Tarea en segundo plano ( |
4 |
| ✅ Funciona | Consulta una generación por ID |
5 |
| ✅ Funciona | Devuelve una URL de CDN utilizable por las herramientas de edición |
6 |
| ✅ Funciona | |
7 |
| ✅ Funciona | |
8 |
| ✅ Funciona | En caché (5 min) |
9 |
| ✅ Funciona | Catálogo de 50K+; en caché |
10 |
| ✅ Funciona | |
11 |
| ✅ Funciona | |
12 |
| ✅ Funciona | |
13 |
| 🔴 Bloqueado |
|
Limitaciones conocidas
Modos de vídeo: Solo se exponen los modos
text,imageyreference. Los modosframes,extend,lipsyncyeditrequieren campos que el esquema de parámetros no puede serializar de forma segura sin una validación dedicada — exponerlos produciría errores 422 confusos de la API.picx_list_generations: Implementada y lista para activarse, pero bloqueada a la espera de que el backend publiqueGET /v1/generations.Límites por nivel: Es posible que el límite de tasa por nivel y el tope diario no estén disponibles hasta que el endpoint de cuenta los exponga.
OAuth: Aún no integrado (Fase 5). La autenticación con clave de API funciona hoy.
Inicio rápido
# 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_mcpEl servidor arranca en http://localhost:8000. El endpoint de MCP está en /mcp, y el de salud en /health.
Configuración del cliente
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}"
}
}
}
}
}Reemplace localhost:8000 por mcp.picxstudio.com cuando el servicio alojado esté operativo.
Autenticación
Dos planos de autenticación, un único punto de aplicación:
Clave de API ( | OAuth (Fase 5, aún no disponible) | |
Quién | Desarrolladores, CI, agentes con scripts, usuarios que se autoalojan | Usuarios comunes en clientes alojados |
Dónde se obtiene | Pantalla de consentimiento de un clic | |
Cómo funciona | Clave reenviada en cada solicitud — el servidor no almacena credencial alguna | OAuth se resuelve en una clave de sesión |
Revocación | Eliminar la clave | Revocar la concesión — las claves reales quedan intactas |
Ambos caminos convergen en el mismo punto de aplicación /v1: scopes, límites de tasa, tope de crédito diario, registro de solicitudes. No existe un segundo camino más débil.
El servidor MCP nunca posee una credencial. Reenvía la clave de API del llamante (o la clave de sesión resuelta) a /v1. Una clave que nunca almacena es una clave que no puede filtrar.
Arquitectura
MCP Client ──▶ PicX MCP Server ──▶ api.picxstudio.com/v1 ──▶ Provider + Storage
(this repo) (owns everything below)Este servidor es una capa de traducción. Convierte las llamadas a herramientas MCP en llamadas a la API /v1 y traduce los resultados a enlaces de recursos. Intencionadamente, NO:
Llamar directamente a cualquier proveedor de modelos.
/v1es el propietario de la integración con el proveedor.Tocar el dinero.
/v1es el responsable de la deducción de créditos, los precios, los descuentos, la idempotencia y el reembolso en caso de fallo del proveedor.Almacenar multimedia. Los resultados son URLs CDN permanentes; nada se guarda en caché ni se sirve a través de un proxy.
Mantener estado de sesión.
stateless_http=Truesignifica que cada solicitud es autocontenida.
¿Por qué no llamar a los proveedores directamente? /v1 ya realiza: autenticación → límite de tasa → tope diario → verificación de alcance → precio desde configuración → aplicar descuento → comprobación de idempotencia → deducir créditos → llamar al proveedor → reembolsar en caso de fallo → escribir el registro de solicitudes. Reimplementar cualquiera de eso aquí acabaría divergiendo, y una divergencia en la lógica del dinero es un bug de facturación — silencioso y que erosiona la confianza de forma permanente.
Pruebas con múltiples réplicas
La tesis principal de elegir FastMCP 4 es que no se requiere afinidad de sesión. Para demostrarlo localmente:
docker compose up --scale app=2Esto inicia dos réplicas del servidor detrás de un proxy round-robin y una instancia de Valkey. La prueba que valida la arquitectura:
Inicie una llamada de herramienta interactiva en la réplica A (dispara
InputRequiredResult)Reanude la interacción — la solicitud llega a la réplica B
Tiene éxito, porque
REQUEST_STATE_KEYes compartida
Si REQUEST_STATE_KEY no está definida (o difiere entre réplicas), las rondas interactivas fallarán con un error de validación de estado. Esto es intencional — hace que una configuración incorrecta sea evidente en lugar de fallar de forma sutil.
Variables de entorno
Variable | Requerida | Descripción |
| No (por defecto: | Raíz de la API de PicX. Debe terminar en |
| Sí | ≥32 bytes, idénticos byte a byte en todas las réplicas. Protege el estado de las rondas interactivas. |
| Sí | URL de Valkey/Redis. Da soporte a tareas, caché de respuestas y almacenamiento OAuth. |
| No (por defecto: 2000) | Máximo de créditos que una sesión MCP puede gastar, independiente del tope diario de la cuenta. |
| No (por defecto: 200) | Por encima de este valor, la herramienta devuelve |
| Fase 5 | Clave JWT explícita. Sin ella, los tokens quedan invalidados cuando el secreto del cliente OAuth rota. |
| Fase 5 | Clave Fernet. Sin ella, los tokens OAuth del proveedor externo se almacenan en texto plano. |
| Fase 5 | ID de cliente OAuth de Google. |
| Fase 5 | Secreto de cliente OAuth de Google. |
| Fase 5 (por defecto: | URL pública para los callbacks de OAuth. |
Límites honestos
Cada generación cuesta créditos. Este servidor no elude los precios — ese es el punto.
El tope por sesión (por defecto 2000 créditos) acota el drenaje de créditos inducido por inyección de prompt. Esto es independiente del tope de 13 000/día de la cuenta.
Solicitud de confirmación por encima del umbral (por defecto 200 créditos) antes de gastar.
No hay generación local ni sin conexión. Toda generación se realiza mediante la API de PicX a través de la red.
El vídeo es asíncrono. Incluso con
task=Trueocultando el polling, la generación tarda minutos — un agente debe esperar.Los límites de tasa son de la API, no de este servidor: 60 req/min, 10K req/día por defecto. El servidor MCP no añade ningún límite adicional.
El servidor está en beta. FastMCP 4 es
4.0.0b3. Espere asperezas.
Licencia
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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
- AlicenseNot gradedqualityBmaintenanceExposes LLM Wiki desktop capabilities via Streamable HTTP transport for MCP clients, enabling project listing, file reading, search, and knowledge graph queries through a secure API.MIT
- AlicenseAqualityBmaintenanceMCP server for Pixmax API enabling generation of images, video, text, audio, and 3D across dozens of models like Midjourney, Kling, and ElevenLabs.10MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for Revspot's image generation, exposing DTC-ads tools such as generate_image, show_marketing_studio, and media upload to generate and manage marketing creatives.
Related MCP Connectors
Generate images with any major model — one API key, one prepaid balance, one MCP.
MCP server for the FFmpeg Micro video transcoding API — create, monitor, download transcodes.
A paid remote MCP for HyperFrames, built to return verdicts, receipts, usage logs, and audit-ready J
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Type-Think-AI/picx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server