Back to Browse

Imageat MCP Server

Developer ToolsModerate6.6MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Generate and edit images and videos with imageat.

About

Generate and edit images and videos with imageat.

Remote endpoints: streamable-http: https://mcp.imageat.com/mcp

Security Report

6.6
Moderate6.6Moderate Risk

A well-architected MCP server for ImageAT with proper authentication, secure token handling, and appropriate permission scoping. The OAuth 2.1 implementation is carefully designed with stateless token encryption and PKCE support. Minor code quality findings around error handling do not materially impact security. Supply chain analysis found 2 known vulnerabilities in dependencies (0 critical, 1 high severity). Package verification found 1 issue.

7 files analyzed · 7 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

imageat API keyRequired

Environment variable: IMAGEAT_API_KEY

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

@imageat/mcp

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 credits.

Tools

ToolWhat it does
imageat_generate_imageText-to-image / image-to-image. Returns CDN image URL(s).
imageat_generate_videoText-to-video / image-to-video. Returns a CDN mp4 URL.
imageat_check_creditsCurrent credit balance.
imageat_edit_<feature>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.

Setup

  1. Create an API key on your ImageAT Projects page (starts with iat_live_).
  2. Add the server to your MCP client config:
{
  "mcpServers": {
    "imageat": {
      "command": "npx",
      "args": ["-y", "@imageat/mcp"],
      "env": {
        "IMAGEAT_API_KEY": "iat_live_xxxxxxxxxxxx"
      }
    }
  }
}
  1. Restart the client. The imageat_* tools will be available.

Environment variables

VarRequiredDefaultNotes
IMAGEAT_API_KEYyesYour iat_live_ key.
IMAGEAT_BASE_URLnohttps://imageat.comThe web app that serves the /api/v1/* generation endpoints. Point at http://localhost:3000 for local dev.

Remote server (claude.ai, ChatGPT, other web clients)

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
# MCP endpoint: http://localhost:8787/mcp   ·   health: /health

Deploy it (e.g. on Dokploy as mcp.imageat.com) with the included Dockerfile, then add it as a custom connector:

  • claude.ai — Settings → Connectors → Add custom connector → URL https://mcp.imageat.com/mcp.
  • ChatGPT — Connectors / Developer mode → add server URL 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) is a minimal, stateless authorization server: it exposes the RFC 8414/9728 discovery docs, RFC 7591 dynamic client registration, and PKCE /authorize + /token. Access/refresh tokens are the API key encrypted (AES-256-GCM) under MCP_OAUTH_SECRET, so there is no session store.

VarWhereDefaultNotes
PORTremote only8787HTTP listen port.
IMAGEAT_BASE_URLbothhttps://imageat.comUpstream web app serving /api/v1/*.
MCP_OAUTH_SECRETremote 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_URLremote onlyderived from requestPublic origin, e.g. https://mcp.imageat.com. Only needed if proxy headers are wrong.

Local development

npm install
npm run build

# Inspect the stdio server with the official MCP Inspector against a local ImageAT instance:
IMAGEAT_API_KEY=iat_live_... IMAGEAT_BASE_URL=http://localhost:3000 \
  npx @modelcontextprotocol/inspector node dist/index.js

Auth roadmap

Today the server authenticates with a static iat_live_ API key (the remote server reads it per-session from the Authorization header). Auth is isolated behind an AuthProvider interface (src/auth.ts), so a future "Sign in with ImageAT" OAuth provider can be dropped in without changing the tools, the HTTP client, or the backend /v1 routes.

Reviews

No reviews yet

Be the first to review this server!