MCP
MCP Server
Connect Sukidata to an MCP-compatible client with your existing API key.
https://mcp.sukidata.com/mcpQUICK START
Connect your client
Add the remote server to your client's MCP settings:
- 1Get your API key
Use an existing key or create one in the console. Store it securely.
- 2Add the remote server
Set the MCP URL to
https://mcp.sukidata.com/mcpand send your key in the Authorization header. - 3Reload your client
Confirm that Sukidata appears in the client's tool list.
{
"mcpServers": {
"sukidata": {
"url": "https://mcp.sukidata.com/mcp",
"headers": {
"Authorization": "Bearer $SUKIDATA_API_KEY"
}
}
}
}Configuration filenames and environment-variable syntax vary by client. The endpoint and Bearer header above are the required connection values.
TOOLS
Web Data tools
Use get_result with the returned search ID to continue a pending search without creating another request.
google_searchGoogle Search
Returns one page of structured Google results for a query and market.
queryRequired search query.requiredlocationHuman-readable search location.optionalgoogle_domainGoogle domain, such as google.co.jp.google.comcountry_code language_codedevice search_typesafe_search freshstart wait_for_completiontwitter_user_timelineTwitter user timeline
Returns public posts from one Twitter account. Provide exactly one account identifier.
username Username with or without @.one requireduser_idNumeric Twitter user ID.one requiredmax_resultsMaximum posts per page, from 1 to 100.20cursorOpaque cursor returned by the preceding page.optionalwait_for_completionWait briefly for a completed result.trueget_resultGet an existing result
Set product to serp or twitter and search_id to the ID returned by the search tool.
IMAGES
Generate and edit images
Image generation usually takes 30 seconds to two minutes. Submit once, then use the returned task_id to retrieve the result.
generate_imageGenerate images
Requires model, prompt and idempotency_key. Generates one image by default. Optional images supplies reference images.
{
"model": "gpt-image-2.5",
"prompt": "A blue ceramic cup on a white background",
"idempotency_key": "cup-example-1",
"size": "1254x1254",
"quality": "high"
}edit_imageEdit images
Accepts the same parameters, plus required images: an array of 1–16 PNG, JPEG or WebP references. Each entry can be a public HTTPS URL or a Base64 data URL. You can reuse a URL from a previous generation.
Optional mask accepts a PNG URL or data URL, matching the first reference image's dimensions. Transparent areas indicate where to edit. Each image can be up to 20 MiB, with 32 MiB total including the mask; model-specific limits apply.
Upload local images
With a remote connection, your client reads the local file and sends a Base64 data URL. This example uses an already-connected MCP client; use image/jpeg or image/webp for those formats.
import { readFile } from "node:fs/promises";
const image = await readFile("./photo.png");
await client.callTool({
name: "edit_image",
arguments: {
model: "gpt-image-2.5",
prompt: "Replace the background with a snowy mountain",
idempotency_key: "upload-edit-example-1",
images: ["data:image/png;base64," + image.toString("base64")]
}
});For a mask, read a PNG file and pass its data URL in mask. Keep the file contents, arguments and idempotency_key unchanged when retrying the same submission.
Image parameters
modelgpt-image-2.5 or gpt-image-2. Both support the settings below.requiredidempotency_keyA unique key for each intended generation: 1–128 printable ASCII characters without spaces. Reuse the exact key and arguments when retrying an interrupted submission.requiredsizeauto or WIDTHxHEIGHT. See image sizes.model defaultqualityauto, low, medium or high.model defaultn1–4 output images per request, for generation and editing.1output_formatpng, jpeg or webp.pngbackgroundauto, opaque or transparent. Transparency requires PNG or WebP.optionaloutput_compression0–100 for JPEG and WebP; not applied to PNG.optionalmoderationauto or low.optionaluserYour end-user identifier, up to 256 characters.optionalget_image_taskRetrieve an image task
Requires task_id. Optional wait_seconds accepts 0–20 and defaults to 20. The tool returns sooner if the result is ready. Use 0 to check once without waiting for generation.
{
"task_id": "img_example",
"wait_seconds": 20
}It returns generating, completed or failed. If still generating, call this tool again with the same ID. Tasks created through the API or Playground can also be retrieved.
API tasks with status queued, processing or unknown return generating here.
Completed results include images with public URLs, dimensions, format, byte size and url_expires_at. Output settings and usage are included when available. Links are available for 31 days from publication and anyone with the URL can open the image; save files before expiry.
The tools/call result's content includes both URL resource links and ImageContent blocks (type: "image"). Each image block follows its link and contains the original image bytes as Base64, without resizing or changing metadata. Compatible clients can display or inspect the images directly. Remote HTTP and local stdio return the same format.
[
{ "type": "text", "text": "Image generation completed. 1 image(s)." },
{
"type": "resource_link",
"uri": "https://files.sukidata.com/ai/images/example-token/img_example_0.png",
"name": "image-1.png",
"mimeType": "image/png"
},
{
"type": "image",
"mimeType": "image/png",
"data": "<base64 image bytes>"
}
]Inline images are limited to 5 MiB each and 6 MiB total before Base64 encoding. Reading them may add up to 8 seconds after the task query. Larger images and images that could not be read retain their URLs, with a note in content. This does not change the task status or charge.
A timed-out wait does not cancel generation. If submission is interrupted, query the returned task ID; if no ID was returned, retry the original arguments with the same idempotency_key. A query error does not mean generation failed.
RESPONSES
Results and billing
Tools return a text summary in content and data in structuredContent. Web Data results include these fields; the search response is in data.
okWhether the tool call succeeded. The search may still be in progress.search_idID used to retrieve an in-progress result.statusSearch status: Queued, Processing, Success, or Error.credits_usedCredits charged once the search finishes.cache_hitWhether the workspace reused an available result.request_idReference ID for troubleshooting.Google Search and Twitter use Credits; check credits_used for the actual amount. Image tools use AI Balance in USD. Image results include billing.status and billing.charged_amount; an unconfirmed amount is null, not zero. Querying an existing task does not create a new charge.
TROUBLESHOOTING
Troubleshooting
When connecting, HTTP 401 means the Bearer key is missing or malformed; 429 means the request limit was reached. Check your configuration or wait before retrying.
Tool failures set isError: true. The code and message in structuredContent.error describe the cause.
auth_failedorscope_forbidden: check the key's status and product permissions.insufficient_creditsorinsufficient_ai_balance: add funds to the corresponding balance.rate_limited: wait before retrying the same operation.submission_unconfirmed: query the returned task ID, or retry the original arguments andidempotency_keyif no ID was returned.image_status_unavailableorservice_unavailable: if an ID was returned, query it again. Image generation may still be running.
Need help connecting? Email support@sukidata.com.