Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Generate and edit images and videos with imageat.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
IMAGEAT_API_KEYValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://mcp.imageat.com/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"imageat": {
"command": "npx",
"args": [
"-y",
"@imageat/mcp"
],
"env": {
"IMAGEAT_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http imageat https://mcp.imageat.com/mcpclaude mcp add imageat --env IMAGEAT_API_KEY=your-value -- npx -y @imageat/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"imageat": {
"url": "https://mcp.imageat.com/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"imageat": {
"command": "npx",
"args": [
"-y",
"@imageat/mcp"
],
"env": {
"IMAGEAT_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"imageat": {
"type": "http",
"url": "https://mcp.imageat.com/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"imageat": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@imageat/mcp"
],
"env": {
"IMAGEAT_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://mcp.imageat.com/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
The server asks you to sign in before it lists its tools.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account incendies, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 460 ms (HTTP 401)
Declares OAuth sign-in, so your AI app can take you to log in
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: IMAGEAT_API_KEY
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.9.1) reached the registry 10 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Claude Checkpoint MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
MCP server that checkpoints Claude Code session context to survive crashes and token limits
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Model Context Protocol (MCP) server for ImageAT. Gives any MCP client (Claude Desktop, Cursor, etc.) tools to generate images, generate video, and run ImageAT's image-edit features — billed against your ImageAT account.
Billing. If you have an active subscription, MCP requests spend your website credits at the
same rate you'd pay on imageat.com — the same generation costs the same either way. When those
credits run out (or if you have no subscription), requests bill your prepaid API balance at the
API tariff. Connecting a client requires one of the two.
| Tool | What it does |
|---|---|
imageat_generate_image | Text-to-image / image-to-image. Returns CDN image URL(s). |
imageat_generate_video | Text-to-video / image-to-video. Returns a CDN mp4 URL. |
imageat_generate_video_task | Experimental MCP Tasks version with tasks/get and tasks/result. |
imageat_check_video_status | Checks an asynchronous video generation until it completes. |
imageat_ask_gemini_argon | Ask Google's Gemini 4 Argon (optional image URLs, Google Search / Maps grounding). Returns the text answer. |
imageat_check_credits | Current prepaid API balance (USD). |
ai_visibility_check | Score how visible a website is to ChatGPT, Claude, Perplexity and AI agents (llms.txt, AI crawler rules, JSON-LD, sitemap, OpenGraph, MCP/agent files) with a fix list. Free. |
imageat_game_guide | Start here for a playable browser game: workflow, runtime rules and the kit API (Phaser 2D / three.js 3D). Free. |
imageat_search_game_models | Search 2,700+ game-ready 3D library models; returns library_keys with animations. Free. |
imageat_generate_game_asset | One game asset: sprite, background, texture, logo, or an AI-made 3D hero_model. Returns an asset_id. |
imageat_publish_game | Checks your game code, bundles it with the engine and assets, and returns a shareable play link. |
imageat_update_game | Publishes new code for one of your games as a new version (same link). Free. |
imageat_social_list_accounts | Social accounts connected in imageat Social Hub (Instagram, Facebook Pages, LinkedIn, X…), whether each can post now, and autopilot schedules. Free. |
imageat_social_create_post | Post an image or video (a generation_id or media_url) to connected accounts: draft (default), schedule, or publish now; per-account captions. No credits; needs an imageat plan. |
imageat_social_list_posts | Recent Social Hub posts with each account's status and published link. Free. |
imageat_social_cancel_post | Cancel a draft or scheduled post before it goes out. Free. |
imageat_social_queue_autopilot | Queue up to 30 images/videos on an autopilot; each lands in its next free weekly slot. Free. |
imageat_edit_ | One tool per edit feature, fetched live at startup — e.g. imageat_edit_remove-background, imageat_edit_object-eraser, imageat_edit_relight, imageat_edit_virtual-try-on, imageat_edit_city-teleport, imageat_edit_ai-edit-pro. New features appear automatically. |
If the feature catalog can't be reached at startup, a single generic imageat_edit_image tool (taking a feature id parameter) is registered instead, so the server still works.
Tool results include both readable text and typed structuredContent. Tool schemas, safety annotations, and output schemas let agent clients validate calls and distinguish read-only tools.
imageat://account/credits — live prepaid API balance (USD).imageat://edit/features — live edit-feature catalog.imageat://models/images and imageat://models/videos — media model catalogs.imageat://generations/recent — ten most recent account generations.create-product-visual — reusable product-image workflow prompt.animate-image — reusable image-to-video workflow prompt.create-social-campaign, generate-and-upscale, create-creative-variants — campaign workflows.iat_live_).{
"mcpServers": { "imageat": { "command": "npx", "args": ["-y", "@imageat/mcp"], "env": { "IMAGEAT_API_KEY": "iat_live_xxxxxxxxxxxx" } } } }
imageat_* tools will be available.| Var | Required | Default | Notes |
|---|---|---|---|
IMAGEAT_API_KEY | yes | — | Your iat_live_ key. |
IMAGEAT_BASE_URL | no | https://imageat.com | The web app that serves the /api/v1/* generation endpoints. Point at http://localhost:3000 for local dev. |
The npx setup above is stdio — it works in desktop apps that launch a local process (Claude Desktop, Cursor, Claude Code). Browser clients like claude.ai and chatgpt.com instead connect to a remote MCP endpoint over Streamable HTTP.
The same tools are served over HTTP by dist/http.js. Each MCP session carries the user's own API key via the Authorization: Bearer iat_live_... header (multi-user), so this is what you point a hosted connector at.
# Run the remote server locally against a local ImageAT instance:
IMAGEAT_BASE_URL=http://localhost:3000 PORT=8787 npm run start:http
Deploy it (e.g. on Dokploy as mcp.imageat.com) with the included Dockerfile, then add it as a custom connector:
https://mcp.imageat.com/mcp.https://mcp.imageat.com/mcp.Browser clients run the OAuth flow: after adding the connector they open a consent page served by this server where you paste your iat_live_ key, and the client receives a short-lived access token bound to it. Non-browser clients (mcp-remote, MCP Inspector, curl) can still send a raw iat_live_ key directly as Authorization: Bearer iat_live_....
The OAuth layer (src/oauth.ts) exposes the RFC 8414/9728 discovery docs, RFC 7591 dynamic client registration, and PKCE /authorize + /token. Expiring access and refresh tokens are encrypted with AES-256-GCM under MCP_OAUTH_SECRET; refresh tokens rotate after use and /revoke invalidates issued tokens. OAuth tokens are bound to their client ID and requested scope. Idle MCP sessions are reclaimed automatically.
| Var | Where | Default | Notes |
|---|---|---|---|
PORT | remote only | 8787 | HTTP listen port. |
IMAGEAT_BASE_URL | both | https://imageat.com | Upstream web app serving /api/v1/*. |
MCP_OAUTH_SECRET | remote only | *(random per boot)* | Long random string that encrypts issued OAuth tokens. Set this in production or tokens are invalidated on every restart. |
MCP_PUBLIC_URL | remote only | derived from request | Public origin, e.g. https://mcp.imageat.com. Only needed if proxy headers are wrong. |
MCP_ALLOWED_ORIGINS | remote only | ChatGPT, Claude, Cursor, VS Code, GitHub, imageat | Comma-separated browser Origin allowlist. Requests without an Origin (normal server-to-server clients) are unaffected. |
MCP_SESSION_IDLE_MS | remote only | 7200000 | Reclaim MCP sessions idle for this many milliseconds. |
MCP_MAX_SESSIONS | remote only | 500 | Reject new sessions with 503/Retry-After after this process reaches capacity. |
INTERNAL_SERVICE_KEY | remote only | — | Shared with the web app. Completes "Sign in with imageat" and signs the ChatGPT profile's calls so they bill website credits. |
OPENAI_APPS_CHALLENGE | remote only | — | Domain verification token from the OpenAI plugin submission, served raw at /.well-known/openai-apps-challenge. |
/chatgpt/mcp)The published ChatGPT app connects to https://mcp.imageat.com/chatgpt/mcp, not /mcp. It is a separate, curated profile (src/chatgpt.ts) because OpenAI's directory rules differ from other clients:
X-Imageat-Surface: chatgpt, and the web app applies the restricted-account filter to every request (lib/content-restriction.ts).X-Imageat-Surface-Auth (HMAC of INTERNAL_SERVICE_KEY) spend website credits (lib/api-credit-mode.ts).openai/fileParams as { download_url, file_id }.src/widget.ts, MCP Apps ui://imageat/media-v1.html). The widget also polls imageat_check_video_status itself while a video renders.The URL cannot be changed after the app is published without contacting OpenAI support. OAuth accepts ChatGPT's client ID metadata document (https://chatgpt.com/oauth/client.json), returns iss on authorization redirects (RFC 9207), and binds tokens to the requested resource.
npm install
npm run build
IMAGEAT_API_KEY=iat_live_... IMAGEAT_BASE_URL=http://localhost:3000 \ npx @modelcontextprotocol/inspector node dist/index.js
Set a stable, long random MCP_OAUTH_SECRET in production. Browser Origins are restricted by default; add any self-hosted web client to MCP_ALLOWED_ORIGINS. Direct server-to-server clients normally omit the Origin header and continue to work with an iat_live_ bearer key.