SJinn MCP
Connect SJinn to an AI client through MCP and create image, video, or audio generation tasks from chat.
SJinn MCP
SJinn MCP lets an AI client call SJinn tools from a conversation. Use it when you want the assistant to create image, video, or audio tasks, prepare input assets, check your account, or retrieve task results without leaving the chat.
The OpenAI plugin package for ChatGPT and Codex is being prepared for directory review; this guide does not announce a published listing. See the connector setup below for Claude, Grok, and Grok Bot. SJinn Skills remain a separate integration option.
OpenAI Plugin for ChatGPT and Codex
The OpenAI plugin connects to the same SJinn MCP service at https://mcp.sjinn.ai/mcp. Complete SJinn sign-in through the client's OAuth connection flow; do not paste passwords or access tokens into a conversation. Public directory installation will be documented here after publication.
In hosts that support MCP Apps, SJinn can show local-file upload and task-result cards. Text-only clients receive complete results and task IDs. For a local file, call upload_asset with file details, upload the file using the returned instructions, and pass the stable asset URL into generation. The temporary signed upload URL is not a generation input.
Generation is asynchronous. Text clients should query the returned task ID with get_task at the returned poll_interval_ms (currently 15 seconds for image/audio and 30 seconds for video). Apps result cards track their tasks automatically. Stopping the client does not cancel an already submitted task; do not repeat a creation request merely because the first is still pending.
Model discovery requires a connected account but no membership or generation credits. Upload and creation require an eligible account, and creation consumes existing credits. This plugin does not offer subscription purchases, upgrades or credit checkout.
See MCP support and MCP privacy information.
Connect SJinn in Seconds
Claude MCP Setup Demo
Watch the Claude MCP connection flow:
1. Go to Claude > Customize
In Claude desktop or claude.ai, open Customize > Connectors.
2. Add a custom connector
Name it SJinn and paste this remote MCP server URL:
https://mcp.sjinn.ai/mcp
3. Connect and sign in
Click Add > Connect, then sign in with your SJinn account. After the connector is enabled in a conversation, ask Claude to create an image, create a video, create audio, or check a previous task.
Grok MCP setup
- Open Grok Connectors.
- Choose New Connector > Custom. Use
SJinnas the name if prompted, and enterhttps://mcp.sjinn.ai/mcpas the server URL. - Start the connection and complete OAuth sign-in on
sjinn.ai. Review the requested permissions, then choose Allow to return to Grok. - Open a conversation with SJinn enabled and send the connection-check prompt below.
Grok discovers the OAuth configuration automatically; you do not need an SJinn API key or a client secret. On Grok Business or Enterprise, your team admin may need to add SJinn before it is available to members. See Grok's connector guide.
Use SJinn in Grok Bot
After you add and authorize SJinn on the Grok website, Grok Bot automatically connects to the same MCP server. You do not need to add the connector again or repeat OAuth setup in Grok Bot.
Open a conversation with Grok Bot and ask it to use SJinn. You can use the connection-check prompt below to confirm access. This shared connection flow has been verified in both Grok web and Grok Bot.
Check the connection
In either client, send:
Use SJinn's whoami tool to check my connection and account access. Do not create a generation task.
If the tool returns your SJinn account information, authenticated tool access is working. You can then ask SJinn to create images, videos, or audio using your existing account credits.
Current Capabilities
| Capability | MCP tool | What it does |
|---|---|---|
| Account check | whoami | Shows the authenticated SJinn account, membership, credits, and available capabilities. |
| Local file upload | upload_asset | Uploads local image, video, or audio files and returns SJinn asset URLs for generation inputs. |
| Model catalog | models_list | Lists all model summaries for one required type: video, image, or audio. |
| Model search | models_search | Semantically searches names, operations, parameters, and combined requirements in your language. Both type and query are required; there is no limit parameter. |
| Model details | models_get | Returns complete parameters, defaults, conditional rules, and asset constraints for an exact model ID. |
| Image generation | create_image_task | Creates an SJinn image generation or editing task. |
| Video generation | create_video_task | Creates an SJinn video generation task. |
| Audio transcription | speech_to_text | Transcribes one audio_url for 50 credits, returning text, timestamped text, and a transcript details URL. No model selection is needed. |
| Audio generation | create_audio_task | Creates an SJinn audio generation task. |
| Video composition | create_compose_task | Concatenates two or more videos in order; no model selection is needed. |
| Task lookup | get_task | Checks one existing task by task ID. |
| Recent history | list_recent | Lists recent MCP tasks for the authenticated account. |
Transcription tasks return a task ID immediately. In Apps UI clients, the creation widget polls get_task every 15 seconds and replaces its pending state with the result in the same card; the assistant does not need to poll. Text-only clients should poll get_task every 15 seconds until completion. The result card shows a copyable transcript, collapsible timestamp rows, and a Download JSON link. Completed transcriptions expose output_kind: "text" and a result object containing transcript_text, transcript_text_with_timestamp, and transcript_detail_with_timestamp_url; truncated: true indicates that the details URL contains the complete transcript. The asset arrays are empty. list_recent supports model: "speech-to-text" and task_kind: "audio" filters.
More MCP tools can be added over time. This page describes the currently documented SJinn MCP surface.
Discover a Model Before Creating
Image, video, and audio creation now require an explicit model ID. Calls that omit it are rejected rather than falling back to a default model. Other generation parameters keep their existing behavior.
- If the user's model name or alias is not yet a confirmed catalog ID, call
models_searchwith the intended outputtypeand a concisequery. If several versions remain plausible, clarify rather than automatically picking the first result. - Use
models_listwith a requiredtypeto browse all models in that category. Lists and search results contain summaries, not complete parameters, and are not silently truncated. Theis_defaultflag identifies the default selection for a type, not a fallback for missing creation arguments. - Before creating, obtain the selected model's complete
models_getresult. Reuse it when its full applicable details are already available in the current context. Search summaries, skills, remembered parameters, or a note that a lookup previously occurred are not substitutes. If a lookup fails, do not create from guessed parameters. - Follow those parameter and asset rules, then call the matching creation tool with the exact
modelexplicitly. Unsupported values are rejected, not automatically replaced. The lookup prerequisite guides the assistant; the server independently validates creation arguments and does not require a lookup receipt.
For example, resolve a video model name:
{"type":"video","query":"Kling"}
Pass the confirmed ID to models_get:
{"model":"kling3"}
Then call create_video_task with valid parameters from that result:
{"model":"kling3","prompt":"A slow camera move through a neon-lit street.","duration":5,"aspect_ratio":"16:9","resolution":"720p"}
You can also search combined requirements in your own language, for example:
{"type":"video","query":"支持 4K、参考图片和 8 秒时长的视频模型"}
Search compares the complete details of every model in that type, including its supported operations, parameter values, and conditional rules. Results contain catalog summaries plus match_reason and conditions; an empty models array means no match was found, while a tool error means the search failed. Search is AI-assisted, so confirm the selected model's full details before creation rather than treating its explanation as a parameter specification.
Model discovery uses the same authenticated MCP connection, but does not require membership, spend SJinn credits, or start generation. It works in both interactive and text-only clients. Semantic queries are processed by a server-side AI provider: do not include credentials, private media URLs, account information, or unrelated conversation text. Lists, details, and queries consisting only of an exact ID do not call the AI provider. If search is temporarily unavailable, wait rather than repeatedly retrying.
Supported Generation Models
Image Models
| Model | Best for |
|---|---|
gpt-image-2 | General image generation and editing (default). |
gpt-image-2.5-flare | GPT Image 2.5 Flare generation and editing with up to 16 reference images. |
gpt-image-2.5-sunburst | GPT Image 2.5 Sunburst generation and editing with the same parameter support as Flare. |
nano-banana-pro | Higher-quality image generation and editing. |
nano-banana-2 | Image generation and editing with current Nano Banana 2 support. |
Both GPT Image 2.5 variants use these parameters with create_image_task:
| Parameter | Required | Default | Supported values |
|---|---|---|---|
model | Yes | No implicit default | gpt-image-2.5-flare or gpt-image-2.5-sunburst; no gpt-image-2.5 alias. |
prompt | Yes | — | Non-empty image description or editing instructions. |
image_urls | No | [] | Up to 16 complete, stable public HTTP/HTTPS reference image URLs; no temporary/signed URLs or local paths. |
aspect_ratio | No | 1:1 | 1:1, 3:4, 9:16, 4:3, 16:9; auto is not supported. |
resolution | No | 1K | 1K, 2K, 4K. |
Omit reference images for text-to-image generation. With references, describe what to preserve and change. Use aspect_ratio, not the underlying API's image_size. Neither variant accepts mode, quality, seed, n, provider, or unlimited.
{
"model": "gpt-image-2.5-flare",
"prompt": "Create a minimalist coffee advertisement with warm morning light.",
"aspect_ratio": "16:9",
"resolution": "2K"
}
To use Sunburst, change only model to gpt-image-2.5-sunburst.
Video Models
| Model | Best for |
|---|---|
seedance2 | General text-to-video and image-to-video generation. |
seedance2.5 | New video generation with image, video, and audio references; integer duration of 4–30 seconds (default 5). Use seedance2.5-edit to modify an existing video and seedance2.5-extend to continue it. |
seedance2.5-edit | Prompt-guided editing of exactly one 4–30 second source video at 480p, 720p, or 1080p resolution (default 720p); duration and aspect ratio are detected server-side. |
seedance2.5-extend | Extends the first of 1–10 videos, using remaining videos as references, to append shots while maintaining character, environment, and narrative continuity; supports up to 30 images, 10 audios, integer duration of 4–30 seconds (default 5), and the SJinn-supported 480p, 720p, or 1080p resolutions (default 480p). Use seedance2.5-edit to change existing content, including the final shot. |
minimax-h3 | 2K reference-to-video generation with image, video, and audio references. |
kling4 | Kling 4 Omni: text-to-video with optional image and video references. |
kling4-frames | Kling 4: required first frame, optional last frame and ordered intermediate keyframes. |
kling3 | Video generation with Kling 3 support. |
gemini-omni-video | Video generation with up to 7 reference images and an optional reference video. |
gemini-omni-1.1-flash | Video generation with image/video references and selectable 360p, 720p, 1080p, or 4k output. |
veo3.1-fast | Text-to-video, first-frame, or first-and-last-frame video using dedicated frame URL fields. |
wan3 | Wan 3.0 full-modality generation with image, video, and audio references. |
For Seedance 2.5, select the operation before creating: new generation, editing existing content, or appending a continuation. If the provider identifies the request as editing or extension, obtain the corresponding model's complete details and adjust the call. Omitting duration or aspect ratio from seedance2.5 still applies generation defaults; it does not select edit mode. seedance2.5-edit accepts exactly one source video, preserves its duration and ratio, and does not accept additional video references. Do not silently discard a required reference video to fit it. Output durations for generation and extension must be integers from 4 to 30 seconds.
Audio Models
| Model | Best for |
|---|---|
seed-audio-1-0 | Text-to-audio generation with optional reference audios or one reference image. |
For seed-audio-1-0, provide a prompt. You may also provide either audio_urls with up to 3 reference audio URLs, cited as @Audio1, @Audio2, and @Audio3, or image_urls with one reference image URL. Do not provide both audio_urls and image_urls in the same audio task.
If no model preference is given, the assistant may use the catalog's default selection when it supports the requested operation. It must still obtain or reuse that model's complete details and pass its exact ID explicitly when creating.
Example Prompts
Create an image:
Use SJinn to create a square product image of a glass perfume bottle on black marble.
Create a video:
Use SJinn to create a 16:9 video of a slow camera move through a neon studio.
Create audio:
Use SJinn to create a short upbeat jingle for a product launch.
Check a task:
Check this SJinn task and show me the output URL: <task_id>
Troubleshooting
The connector does not add
Confirm the URL is exactly:
https://mcp.sjinn.ai/mcp
Do not add extra paths, query parameters, or a trailing slash unless SJinn documentation explicitly changes the URL.
Sign-in does not complete
Remove the connector and add it again, then click Connect and complete the SJinn sign-in flow in the browser.
SJinn is unavailable in Grok Bot
First check that SJinn is connected and OAuth authorization is complete on Grok Connectors. Grok Bot uses that connection automatically. Once authorization is complete, send the connection-check prompt to Grok Bot. If access still fails, contact MCP support with the client name, version, and displayed error.
A task cannot be created
Check that your SJinn account is signed in, has an active membership or other eligible access, and has enough credits. You can ask the assistant to run the account check before creating a task. Membership and credit errors are separate from OAuth sign-in errors; reconnecting does not change account entitlements.
Media input fails
Use stable public HTTPS media URLs when possible. If your file is only on your local computer, ask the assistant to use upload_asset; supported clients open an SJinn upload panel, while text-only clients return upload commands and asset URLs.
A task is still running
Ask the assistant to check the task again later with the task ID. Video generation can take longer than image generation.
Kling 4 video models
Call models_get with kling4 or kling4-frames before creating a task. Both
use create_video_task, support integer durations of 3–30 seconds (default 5),
and accept resolution: "720p" | "1080p" (default 720p). Pricing is 225 or
330 credits per output second respectively.
kling4 requires a prompt (up to 8,000 characters), accepts up to 10 reference
images and 5 reference videos, and supports 16:9 (default), 9:16, 1:1,
21:9, and auto aspect ratios. Each reference video must be 3–30 seconds;
the combined duration must be at most 30 seconds. Prompt references such as
@image_1 and @video_1 refer to the ordered URL arrays. These are reference
assets, not fixed first/last frames.
kling4-frames requires first_frame_url; last_frame_url, ordered
keyframe_urls, and prompt are optional. Total frames must not exceed
min(10, duration + 1). The aspect ratio follows the input image, so omit
aspect_ratio. Neither model accepts mode, audio references, or manual shot
controls.
{"model":"kling4-frames","first_frame_url":"https://example.com/start.png","keyframe_urls":["https://example.com/middle.png"],"last_frame_url":"https://example.com/end.png","duration":5,"resolution":"720p"}
