Back to Browse

Apimodels MCP Server

by StimQQ
Developer ToolsModerate5.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

Image, video, chat and speech models with one API key. The model can review its own images.

About

Image, video, chat and speech models with one API key. The model can review its own images.

Security Report

5.2
Moderate5.2Moderate Risk

This is a well-structured MCP server for the apimodels.app API with proper authentication, input validation, and error handling. The server requires an API key for all operations and implements reasonable permission scoping. Minor findings include broad exception handling in some places and the helper scripts in the skills directory that could benefit from additional validation, but these do not represent security vulnerabilities. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.

5 files analyzed · 10 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.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

env_vars

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

What You'll Need

Set these up before or after installing:

Your sk_… API key from https://apimodels.app/console/api-keysRequired

Environment variable: APIMODELS_API_KEY

API base URL. Default https://api.apimodels.app/v1Optional

Environment variable: APIMODELS_BASE_URL

Default wait_seconds for generate_image / generate_video / text_to_speech / get_task before they hand back a task id. Default 50 (Codex aborts tool calls at 60 s).Optional

Environment variable: APIMODELS_WAIT_SECONDS

Deprecated: same wait in milliseconds, honoured for old configs.Optional

Environment variable: APIMODELS_TIMEOUT_MS

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-stimqq-apimodels-mcp": {
      "env": {
        "APIMODELS_API_KEY": "your-apimodels-api-key-here",
        "APIMODELS_BASE_URL": "your-apimodels-base-url-here",
        "APIMODELS_TIMEOUT_MS": "your-apimodels-timeout-ms-here",
        "APIMODELS_WAIT_SECONDS": "your-apimodels-wait-seconds-here"
      },
      "args": [
        "-y",
        "apimodels-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

apimodels-mcp

MCP server for apimodels.app — call image, video, LLM chat and text-to-speech models with one API key, from Claude Desktop, Cursor, or any MCP client.

One key unlocks GPT-5.5, Claude, Gemini, GLM, DeepSeek, Qwen, Seedance, Veo, Kling, gpt-image-2, Gemini Image, MiniMax speech and more — billed in USD, you only pay for successful generations.

Tools

ToolWhat it does
list_modelsList available model ids (chat / image / video / audio).
chatChat / text completion with any LLM (gpt-5-5, claude-opus-4-8, gemini-3-pro-preview, …).
generate_imageText-to-image or image edit; returns the image URL(s) plus a downscaled preview the model can look at.
review_imageA vision model critiques an image against your brief and proposes a revised prompt.
generate_videoText-to-video (optional reference image); returns the video URL(s), or a task id if it is not done within wait_seconds.
get_taskWait for / check on a task that generate_image, generate_video or text_to_speech handed back as still running.
text_to_speechText-to-speech (MiniMax voices); returns the audio URL. ElevenLabs TTS is not exposed here — it streams raw bytes from POST /v1/tts/stream rather than returning a URL.

Long generations do not get lost

Every generation is asynchronous on apimodels, and video is slow: a median of about 2.5 minutes, 9 in 10 within 8 minutes (production, week to 2026-09-22). Images take about 50 seconds. Meanwhile Codex aborts an MCP tool call after 60 seconds by default, and the MCP SDK's own client timeout is 60 seconds too. A tool that blocks until the video is ready therefore gets killed mid-wait — the task keeps running, the account is billed when it finishes, and the assistant never sees the URL. Versions up to 0.2.x did exactly that.

Since 0.3.0 the generation tools wait at most wait_seconds (default 50) and then return the task id with a "still running" note; the assistant calls get_task, which waits up to another wait_seconds and returns the URL(s) — with the image preview for image tasks — or "still running" again. Nothing is resubmitted and nothing is billed twice. The assistant does this on its own; you just ask for the video.

  • Codex: keep the default. Or raise tool_timeout_sec for this server in config.toml and pass a larger wait_seconds.
  • Claude Code / Claude Desktop / Cursor: no 60-second limit, so wait_seconds: 600 on generate_video gets the URL in one call. APIMODELS_WAIT_SECONDS=600 in the server's env makes that the default.

The model can check its own work

Ask for an image and let the assistant iterate until it is right — "make a 16:9 banner that says SAVE 10%, check the spelling, fix it if needed":

  1. generate_image returns the URL and a preview of the image itself (max 1024px JPEG). Clients that pass tool-result images to the model — Claude Desktop, Claude Code, Cursor — let it see what it made. Pass return_image: false to skip the preview.
  2. review_image works everywhere, including clients that show tool-result images to you but not to the model (Cherry Studio is one). It sends the image and your brief to a vision model and returns what matches, what is wrong (garbled text, composition, aspect ratio, artifacts) and a revised prompt. One review costs well under $0.01 on the default gpt-5.6-luna.

The assistant picks aspect_ratio and resolution itself from what you ask for, so "make it 16:9" in plain words is enough.

Local images just work

image_url on generate_image and generate_video takes any of these:

  • a public https://… URL — passed through untouched
  • a local file path — /Users/me/photo.png, ./ref.jpg, ~/Pictures/x.webp
  • a URL on your own machine — http://127.0.0.1:8000/photo.png, http://localhost:3000/…
  • a data:image/png;base64,… URI

The last three are uploaded for you first, and the resulting public URL is what gets generated from. This has to happen here rather than server-side: the file exists only on your machine, and 127.0.0.1 means our server when our server resolves it — which is why passing one to the REST API directly fails with private/reserved IP addresses not allowed. This MCP server runs next to your files, so it can do what our servers cannot.

Uploads land in your account's R2 space and are auto-deleted after 7 days.

Setup

  1. Get an API key at https://apimodels.app/console/api-keys (it looks like sk_…).
  2. Add the server to your MCP client.

Claude Desktop

Edit claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "apimodels": {
      "command": "npx",
      "args": ["-y", "apimodels-mcp"],
      "env": {
        "APIMODELS_API_KEY": "sk_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. You can now ask it to "generate an image of …" or "make a 5-second video of …".

Cursor

Settings → MCP → Add new MCP server, or add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "apimodels": {
      "command": "npx",
      "args": ["-y", "apimodels-mcp"],
      "env": { "APIMODELS_API_KEY": "sk_your_key_here" }
    }
  }
}

Codex CLI

Add to ~/.codex/config.toml:

[mcp_servers.apimodels]
command = "npx"
args = ["-y", "apimodels-mcp"]
env = { APIMODELS_API_KEY = "sk_your_key_here" }
# Optional. Codex aborts a tool call after 60 s by default; the tools stay under that
# on their own (see "Long generations do not get lost"), so this is only needed if you
# want generate_video to return the URL in one call — then also pass wait_seconds: 600.
# tool_timeout_sec = 660

Cherry Studio

In Settings → MCP Servers, add a new server of type stdio:

  • Command: npx
  • Arguments: -y apimodels-mcp
  • Environment variables: APIMODELS_API_KEY=sk_your_key_here

Enable the server, then select it for your conversation from the MCP control under the chat box. Use a chat model that supports tool calls (Claude, GPT, Gemini …) as the conversation model — it calls the image model for you. Cherry Studio needs Node.js installed for npx; on Windows install it from https://nodejs.org.

Any other MCP client works the same way — run npx -y apimodels-mcp over stdio with APIMODELS_API_KEY in the environment.

Models, docs and pricing

Everything the tools call is documented on apimodels.app:

Configuration

Env varDefaultDescription
APIMODELS_API_KEY— (required)Your sk_… key.
APIMODELS_BASE_URLhttps://api.apimodels.app/v1API base URL.
APIMODELS_WAIT_SECONDS50Default wait_seconds for generate_image, generate_video, text_to_speech and get_task: how long a call waits before handing back a task id. Max 900.
APIMODELS_TIMEOUT_MS—Deprecated (0.2.x): the same wait in milliseconds. Still honoured if set.

Local development

pnpm install
pnpm build
APIMODELS_API_KEY=sk_... node dist/index.js   # runs over stdio

License

MIT

Reviews

No reviews yet

Be the first to review this server!