CNAPS.ai MCP Server
Server Details
Connect CNAPS Studio to Claude or ChatGPT, then just say what you want. "Upscale this photo 4x" or "remove the background and make it a short video". It picks the models, builds the flow, runs it, and gives you the file back in the same chat.
80+ AI models and 80+ tools for image, video and audio. Sign in with your CNAPS account (OAuth), no API key needed. n8n and Zapier work too.
Setup guide: https://docs.cnaps.ai/ai-assistant
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 36 tools
Most tools are cleanly separated by resource and action (flow CRUD, batch, models, community, cards, templates, account). The densest overlap is around flow planning — suggest_flow, find_compatible_models, preview_flow, and create_flow all address 'which models and wiring should this flow use' — and get_model vs get_model_parameters could blur, though the descriptions draw usable distinctions. No two tools appear to do the same thing outright.
All names use snake_case with a leading verb (get_, list_, create_, update_, edit_, delete_, run_, cancel_, fork_, search_, mark_, report_, suggest_, diagnose_, find_, preview_, restore_, duplicate_, optimize_). The pattern holds across every tool including batch and notification operations. Minor verb variety (edit vs update) reflects real functional separation rather than naming inconsistency.
36 tools is heavy, though the server genuinely spans several domains (flow lifecycle, model catalog, community, cards, templates, files, account/notifications, batch). Some consolidation is plausible — get_model and get_model_parameters, get_me/get_workspace_info/get_usage, and the three fork_* tools could be tightened. It is borderline rather than absurd for the breadth of the platform.
Flow lifecycle coverage is strong: create, edit structure, update parameters, preview, run, cancel, duplicate, trash/restore, optimize, diagnose, plus batching with status polling. The main gaps are social/community lifecycle items — no update or delete for community posts, no comments — and batch runs cannot be cancelled or deleted. These are workaroundable but leave the surface slightly uneven.
Publisher details
- Operator
- CNAPS.AI, Inc. · Publisher source
- Operator website
- https://cnaps.ai · Publisher source
- Vendor relationship
- First-party
- Documentation
- https://docs.cnaps.ai/ai-assistant · Publisher source
- Trust center
- Not available
- Restrictions
- Requires a CNAPS account (free sign-up) and OAuth sign-in. Model runs use credits from your CNAPS plan.
Available Tools
36 toolscancel_flowADestructiveIdempotentInspect
Cancel a currently running flow. Sends a stop signal — the flow will stop after completing the current processing step. Use get_flow(view="status") to confirm it has stopped. A node whose wait.phase is "queued" is waiting its turn, not stuck: cancelling and running again only puts it at the back of the line.
Inputs: flow_id (required).
create_community_postAInspect
Publish one of your flows to the cnaps.ai community. Creates a community post with a snapshot of the flow. Others can then discover and fork your flow. Requires a source_flow_id (from list_flows) and a title. A fork copies an input node's value only when that node's include_in_fork is on (get_flow shows it per input node): text inputs are on by default, image, video, audio and file inputs are off, so forkers get those inputs empty. To let forkers run your example media straight away, set include_in_fork=true on those input nodes with update_flow before publishing — the post keeps the snapshot taken now, so a later change needs a new post.
Inputs: title (required), source_flow_id (required), tags, content, +1 more.
create_flowAInspect
Create a flow. Provide the models in order — input/output nodes and connections are generated automatically by matching output→input port types, and the original input is shared (fan-out) when several models need it. Set run=true to start it immediately in the same call.
Inputs: nodes (required), run, name, parameters, +3 more.
delete_flowADestructiveIdempotentInspect
Move a flow to trash. It can be restored from the trash within 30 days; after that it is permanently deleted.
Inputs: flow_id (required).
diagnose_errorARead-onlyIdempotentInspect
Analyze a failed flow run and suggest fixes. Provide the flow_id of a failed flow. Returns root cause analysis, the specific failing node, a concrete fix suggestion (e.g. insert a Resize node, change a parameter), and confidence level. Use this whenever get_flow(view="status") shows a failed node.
Inputs: flow_id (required), error_context.
duplicate_flowAInspect
Duplicate an existing flow. Creates a deep copy with fresh state (no results). Use this to copy a flow and then modify it with update_flow, instead of recreating from scratch.
Inputs: flow_id (required), name.
edit_flowADestructiveInspect
Change the STRUCTURE of an existing flow in place: add or remove nodes, swap the model on a node, and connect or disconnect ports. This is the tool for "add an upscaler to this flow", "use a different model here", "rewire this" — do NOT create a new flow to modify one that already exists (update_flow only changes name, tags and node parameters). All operations in one call are applied together: either every one lands or none does. Read the flow with get_flow first to get node IDs, and get_model for port layouts before wiring.
Inputs: flow_id (required), operations (required).
find_compatible_modelsARead-onlyIdempotentInspect
Find models that can connect to a given model in a flow. Use 'downstream' to find models whose inputs match this model's outputs (what can come AFTER). Use 'upstream' to find models whose outputs match this model's inputs (what can come BEFORE). Returns compatible models sorted by number of matching ports. Use this BEFORE creating a flow to ensure models can be wired together.
Inputs: model_id (required), direction.
fork_cardAInspect
Copy a home-page card into the user's workspace as a flow, ready to run. Returns flow_id, the inputs to fill (each with the node_id run_flow keys its inputs by) and the settings the card lets you change. Then upload_file → run_flow(flow_id, inputs) → get_flow(view="status", wait_seconds=20). The flow appears in the user's flow list, so it can also be opened and edited in Studio. Get card_id from search_cards.
Inputs: card_id (required), lang.
fork_community_flowAInspect
Fork (copy) a community flow into your workspace. After forking, the flow is yours — you can run it with run_flow, modify it, or use it as a starting point. Get post_id from search_community results.
Inputs: post_id (required).
fork_templateAInspect
Fork (copy) a flow template into your workspace. After forking, you can run it with run_flow.
Inputs: template_id (required).
get_batch_statusARead-onlyIdempotentInspect
Check the status of a batch run. Returns progress and output file URLs when completed.
Inputs: batch_run_id (required).
get_community_postARead-onlyIdempotentInspect
Get detailed information about a community post, including title, content, tags, input/output types, and engagement stats. Use this to preview a post before forking it.
Inputs: post_id (required).
get_flowARead-onlyIdempotentInspect
Read a flow. Pick the view that answers the question: 'detail' (default) for the raw nodes, connections and parameters — use this to discover node IDs; 'summary' for a plain-language description of what the flow does; 'status' for execution state and output file URLs — a running node's wait.phase tells queued (waiting for a GPU, with jobs ahead) from loading_model, starting, generating and finishing; 'validation' for pre-run problems (trashed, running, missing inputs, disconnected nodes). To follow a run, call view='status' with wait_seconds=20: the call returns as soon as the run ends, or after 20 seconds with the run still going — then call it again. No need to sleep between calls.
Inputs: flow_id (required), view, wait_seconds.
get_meARead-onlyIdempotentInspect
Get your user profile information (ID, email, name).
Inputs: no named parameters.
get_modelARead-onlyIdempotentInspect
Get detailed information about a specific AI model, including its inputs, outputs, parameters, and plan requirements.
Inputs: model_id (required).
get_model_parametersARead-onlyIdempotentInspect
Get the configurable parameters schema for a specific AI model. Use this to understand what settings can be adjusted when creating a flow with this model.
Inputs: model_id (required).
get_notificationsARead-onlyIdempotentInspect
Get your notifications (community activity, workspace, run results, billing and system notices), along with the unread count. Returns cursor-paginated results — use next_cursor from the response for subsequent pages.
Inputs: cursor.
get_usageARead-onlyIdempotentInspect
Get GPU usage for your workspace. Shows usage percentage, plan limits, and reset schedule. Timestamps are unix milliseconds. The credit window is a rolling one that starts when credits are spent, not a fixed clock schedule, so next_reset_at and last_reset_at are absent whenever no window is running — before the first spend and again after each window expires. In that case reset_hint explains the state; report it rather than inventing a reset time.
Inputs: no named parameters.
get_workspace_infoARead-onlyIdempotentInspect
Get information about your current workspace, including subscription plan, member count, and seats.
Inputs: no named parameters.
list_flowsARead-onlyIdempotentInspect
List AI flows in your workspace. Returns flow names, statuses, and metadata with pagination.
Inputs: page, state, search.
list_llm_providersARead-onlyIdempotentInspect
List available LLM providers and whether your workspace has configured API keys for them. Configured providers enable external model nodes in flows.
Inputs: no named parameters.
list_modelsARead-onlyIdempotentInspect
List available AI models on cnaps.ai with optional filters. Returns model names, types, input/output port types, and accessibility. Use filters to narrow results instead of browsing all models.
Inputs: tag, category, input_type, output_type, +1 more.
list_templatesARead-onlyIdempotentInspect
List curated flow templates on cnaps.ai. Templates are pre-built, tested flows for common tasks. Fork a template with fork_template to use it.
Inputs: no named parameters.
mark_notifications_readAIdempotentInspect
Mark notifications as read. Pass notification_id for one; omit it to mark them all.
Inputs: notification_id.
optimize_flowARead-onlyIdempotentInspect
Analyze a flow for performance and cost optimization opportunities. Returns rule-based suggestions such as moving upscale nodes to the end of the flow, avoiding resolution overflow, removing redundant processing, and choosing better-performing models. Each suggestion carries a structured patch (move_node, insert_node, replace_model) describing the change. Apply them with edit_flow on the same flow — replace_model maps to its replace_model op, insert_node to add_node plus the connect/disconnect that splice it in. move_node is layout only and needs no edit. Applying a suggestion never requires creating a new flow. update_flow changes node parameters only. Use this before running a flow or while iterating on its design. Set include_llm_analysis=true to also ask Haiku for complex-pattern refinements.
Inputs: flow_id (required), language, include_llm_analysis.
preview_flowARead-onlyIdempotentInspect
Check whether a flow can be wired together, and see what create_flow would produce — without creating anything. Returns compatibility, per-model wiring, required inputs and final outputs, plus the node structure and connections. Takes the same nodes and connections arguments as create_flow, so a hand-wired graph can be checked before it is created: a port-type mismatch comes back with the model's real port layout instead of a failed create.
Inputs: nodes (required), connections, include_optional.
report_issueAInspect
Report a tool failure or confusion to the cnaps.ai team. Use this when you encounter persistent errors, unclear documentation, or missing features. Reports are stored and analyzed to improve the platform.
Inputs: tool_name (required), error_message (required), category, severity, +8 more.
restore_flowAIdempotentInspect
Restore a flow from trash back to active state. Flows stay in the trash for 30 days, then are permanently deleted. Use list_flows with state='trashed' to find trashed flows.
Inputs: flow_id (required).
run_batchAInspect
Run a flow in batch mode with multiple input file sets. Each input node receives an array of file URLs (uploaded via upload_file). Returns a batch_run_id to track progress. Batch runs need the Starter plan or above, and the plan caps the input sets per batch. Every node runs for every input set, so result locks (update_flow locked) do not apply here.
Inputs: inputs (required), flow_id (required).
run_flowAInspect
Execute a flow. It runs asynchronously — call get_flow(view="status", wait_seconds=20), which answers when the run ends, until it completes. For flows with input nodes, provide file URLs (from upload_file) via the inputs parameter. This runs the flow ONCE; use run_batch for multiple input sets. On a re-run, nodes whose inputs and parameters are unchanged keep their results, except ones that come out different every time (LLM and API models, random seeds), which run again — unless locked: lock the finished results to keep with update_flow (locked=true) first, so only the rest are regenerated.
Inputs: flow_id (required), inputs.
search_cardsARead-onlyIdempotentInspect
Search the ready-made cards on the cnaps.ai home page — flows the cnaps.ai team built, tested and published for common tasks (remove a background, restore a photo, make an ad video…). Check here FIRST when the user describes a task: a card that fits is better than building a flow from models. Matches words in any language against every card's title and description, rarer words and title words counting more. cards holds the closest few matches in full; other_cards lists more by title only, closest first, and when the matches cover only some of your words it lists every other card too — read their titles. When nothing matches, cards is every card by title (matched=false) so you can pick one by meaning. Pass a card id as query to get that card's details. Run a card with fork_card.
Inputs: lang, query, input_type, output_type.
search_communityARead-onlyIdempotentInspect
Search community-shared AI flows on cnaps.ai. Find flows by keyword, input/output modality, or tags — or pass none of them to browse in sort order. Use this to discover existing flows before creating new ones. Returns post IDs that can be forked with fork_community_flow.
Inputs: sort, tags, query, cursor, +2 more.
suggest_flowARead-onlyIdempotentInspect
RECOMMENDED FIRST STEP for any image/video/text processing request. Ask it which model or models to use — it answers for a single step and a multi-step chain alike, since a one-model flow is just a flow. Understands natural language (English, Korean, and more) and returns models in order, with parameter recommendations and wiring. Use this BEFORE list_models — it handles parameter inference (e.g. '4K' → scale_factor=4) and model selection automatically. Pass the result straight to create_flow.
Inputs: task (required), input_type, output_type.
update_flowADestructiveIdempotentInspect
Change an existing flow: rename it, replace its tags, and/or update node parameters. Provide any combination — one call can do all three. Node parameters are merged with existing values, so specify only what changes; tags replace the existing set. Cannot update a flow that is currently running. This tool does NOT change the graph: to add or remove a node, swap a node's model, or rewire ports, use edit_flow — never create a new flow to restructure an existing one.
Inputs: flow_id (required), name, tags, node_updates.
upload_fileAInspect
Get a file into cnaps.ai so a flow can use it. Handles images, video, audio and text (png, jpg, webp, avif, RAW / mp4, mov, webm, mpeg, avi, flv, wmv, 3gp / wav, mp3, m4a, aac, ogg, flac / txt). TIFF is stored as PNG either way; HEIC (iPhone photos) only through the upload link, which stores it as JPG. Two ways in, chosen by what you pass: (1) The user gave a public HTTP/HTTPS URL → pass file_url and it is registered directly. (2) The files are on the user's machine → pass nothing, and you get back an upload link to show them; then call again with the returned token to wait for the upload and get the URLs. One link takes multiple files — up to 20 files per link, dropped together or a few at a time — so make ONE link for several files, not one per file. A link is used up once the user presses Upload. You CANNOT send bytes from the chat through MCP — even if you can see the image or video, use the link flow. Returns URLs usable in create_flow input_files or run_flow inputs.
Inputs: token, file_url, filename.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Image and video AI tools and your own pipelines, run from any AI assistant.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Turn Claude into a creative studio: DNA-locked characters, images, video, voiceover — 55 tools.
Your AI assistant's creative studio. Make images, video, music and speech with Kling 4.0, Seedance 2.5, Nano Banana Pro, GPT Image 2.5 and more, billed at real model cost. A second brain learns from every generation and 100+ tested workflows, so results get better the more you make
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceEnables generating AI videos, images, audio, and staged story episodes directly from Claude, ChatGPT, Cursor, Grok, or any MCP client, with 61 tools covering model catalogs, generation jobs, and media transforms such as upscaling, lipsync, motion control, and video editing. Hosted over Streamable HTTP with OAuth sign-in, so no API key or local installation is required.MIT- AlicenseAqualityBmaintenanceEnables Claude Code, Cursor, Codex and other MCP clients to generate and edit images and videos directly in a project using AI subscriptions the user already pays for, without API keys or extra billing. Also provides local media tools such as background removal, video editing for social formats, and automatic resizing and optimization of results.25Apache 2.0
- FlicenseBqualityDmaintenanceConnects AI assistants to ComfyUI for image, video, and audio generation, providing full control over ComfyUI through 40+ tools including quick generation, cloud API nodes, and custom workflow building.46-

Rendley MCPofficial
AlicenseNot gradedqualityFmaintenanceGives an AI assistant a full video editor: connect it once, then create and edit video by describing what you want.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.