PicX MCP Server
PicX MCP Server
Сервер на базе FastMCP 4, предоставляющий генерацию изображений и видео PicX Studio любому MCP-клиенту через Streamable HTTP без сессий.
Размещённый endpoint: https://mcp.picxstudio.com/mcp
⚠️ Ещё не развёрнут. Сейчас сервис работает локально; продакшен-хостинг запланирован (см. PLAN-MCP Phase 6).
Почему FastMCP 4
Тема FastMCP 4 — «stateless-транспорт без stateless-кода приложения». Целевая ревизия протокола — 2026-07-28 — полностью устраняет привязку к сессии. Любая реплика за обычным балансировщиком нагрузки может обслужить любой запрос. Никаких sticky-сессий, пересылки cookie или общего состояния в памяти между запросами.
Для нас это не опционально: MCP-клиенты (Cursor, Claude Code) внутри используют fetch() и не пересылают заголовки Set-Cookie, поэтому балансировка со sticky-сессиями не заработает независимо от конфигурации LB. Режим stateless_http=True в FastMCP 4 — единственный жизнеспособный путь к горизонтальному масштабированию.
FastMCP 4 также согласует обе эпохи протокола (устаревший SSE и современный Streamable HTTP) из одного развёртывания, так что старые клиенты не остаются за бортом.
Related MCP server: LLM Wiki Streamable HTTP MCP Server
Статус инструментов
# | Инструмент | Статус | Примечания |
1 |
| ✅ Работает | Инлайн, 5–20 с |
2 |
| ✅ Работает | Требуется предварительная загрузка (API отклоняет data URIs) |
3 |
| ✅ Работает | Фоновая задача ( |
4 |
| ✅ Работает | Опрашивает генерацию по ID |
5 |
| ✅ Работает | Возвращает CDN-URL, который можно использовать в инструментах редактирования |
6 |
| ✅ Работает | |
7 |
| ✅ Работает | |
8 |
| ✅ Работает | Кэшируется (5 мин) |
9 |
| ✅ Работает | Каталог 50K+; кэшируется |
10 |
| ✅ Работает | |
11 |
| ✅ Работает | |
12 |
| ✅ Работает | |
13 |
| 🔴 Заблокирован |
|
Известные ограничения
Режимы видео: Доступны только режимы
text,imageиreference. Режимыframes,extend,lipsyncиeditтребуют полей, которые схема параметров не может безопасно сериализовать без отдельной валидации — их открытие вызывало бы непонятные ошибки 422 от API.picx_list_generations: Реализован и готов к активации, но заблокирован до выходаGET /v1/generationsна бэкенде.Лимиты тарифов: Видимость rate limit и дневного лимита для каждого тарифа может быть недоступна, пока их не начнёт отдавать endpoint аккаунта.
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 endpoint находится на /mcp, health — на /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-ключ ( | OAuth (Phase 5, пока недоступен) | |
Кто | Разработчики, CI, скриптовые агенты, self-hosted-пользователи | Обычные пользователи hosted-клиентов |
Где получить | Экран согласия в один клик | |
Как работает | Ключ пересылается с каждым запросом — сервер не хранит учётных данных | OAuth преобразуется в ключ сессии |
Отзыв | Удалить ключ | Отозвать разрешение — настоящие ключи не затрагиваются |
Оба пути сходятся в одной точке применения политик /v1: скоупы, rate limits, дневной лимит кредитов, логирование запросов. Второго, более слабого пути не существует.
MCP-сервер никогда не хранит учётные данные. Он пересылает API-ключ вызывающей стороны (или полученный ключ сессии) в /v1. Ключ, который он никогда не хранит, невозможно утечь.
Архитектура
MCP Client ──▶ PicX MCP Server ──▶ api.picxstudio.com/v1 ──▶ Provider + Storage
(this repo) (owns everything below)Этот сервер — трансляционный слой. Он преобразует вызовы инструментов MCP в API-вызовы /v1 и переводит результаты обратно в ссылки на ресурсы. Он намеренно НЕ:
Обращается к провайдерам моделей напрямую. Интеграция с провайдерами — зона ответственности
/v1.Касается денег.
/v1отвечает за списание кредитов, ценообразование, скидки, идемпотентность и возврат при сбое провайдера.Хранит медиа. Результаты — это постоянные CDN-URL; ничего не кэшируется и не проксируется.
Поддерживает состояние сессии.
stateless_http=Trueозначает, что каждый запрос самодостаточен.
Почему не обращаться к провайдерам напрямую? /v1 уже выполняет: аутентификацию → rate limit → дневной лимит → проверку скоупов → цену из конфигурации → применение скидки → проверку идемпотентности → списание кредитов → вызов провайдера → возврат при сбое → запись в журнал запросов. Повторная реализация любого из этих шагов здесь со временем разойдётся, а расхождение в денежной логике — это баг биллинга: тихий, навсегда подрывающий доверие.
Тестирование с несколькими репликами
Вся суть выбора FastMCP 4 в том, что привязка к сессии не требуется. Чтобы доказать это локально:
docker compose up --scale app=2Это запускает две реплики сервера за round-robin прокси, а также экземпляр Valkey. Тест, подтверждающий архитектуру:
Запустите интерактивный вызов инструмента на реплике A (вызывает
InputRequiredResult)Возобновите взаимодействие — запрос попадает на реплику B
Запрос успешен, потому что
REQUEST_STATE_KEYобщий
Если REQUEST_STATE_KEY не задан (или различается между репликами), интерактивные раунды будут завершаться ошибкой валидации состояния. Это намеренно — неверная конфигурация становится явной, а не тихо неверной.
Переменные окружения
Переменная | Обязательность | Описание |
| Нет (по умолчанию: | Корневой URL PicX API. Обязан заканчиваться на |
| Да (несколько реплик) | ≥32 байт, побайтово идентичен на всех репликах. Защищает состояние интерактивных раундов. |
| Да | URL Valkey/Redis. Служит основой для задач, кэша ответов и OAuth-хранилища. |
| Нет (по умолчанию: 2000) | Максимум кредитов, которые может потратить одна MCP-сессия, независимо от дневного лимита аккаунта. |
| Нет (по умолчанию: 200) | Выше этого порога инструмент возвращает |
| Phase 5 | Явный JWT-ключ. Без него токены перестают действовать при ротации секрета OAuth-клиента. |
| Phase 5 | Ключ Fernet. Без него вышестоящие OAuth-токены хранятся в открытом виде. |
| Phase 5 | Идентификатор Google OAuth-клиента. |
| Phase 5 | Секрет Google OAuth-клиента. |
| Phase 5 (по умолчанию: | Публичный URL для OAuth-колбэков. |
Честные лимиты
Каждая генерация стоит кредитов. Этот сервер не обходит тарификацию — в этом суть.
Потолок на сессию (по умолчанию 2000 кредитов) ограничивает слив кредитов через prompt-инъекции. Это отдельно от дневного лимита аккаунта (13 000/день).
Подтверждающий запрос выше порога (по умолчанию 200 кредитов) перед тратой.
Нет офлайн/локальной генерации. Вся генерация обращается к PicX API по сети.
Видео асинхронно. Даже если
task=Trueскрывает опрос, генерация занимает минуты — агенту придётся ждать.Rate limits принадлежат API, а не этому серверу: 60 запросов/мин, 10K запросов/день по умолчанию. MCP-сервер не добавляет дополнительных лимитов.
Сервер находится в бете. FastMCP 4 — это
4.0.0b3. Возможны шероховатости.
Лицензия
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