Skip to main content
Glama

yorai-mcp

MCP server buat API Yorai. Fungsinya supaya Claude bisa cek saldo, lihat katalog model, quote, generate gambar/video/audio, upload referensi, dan download hasil.

Tools

Tool

Fungsi

Makan kredit

yorai_balance

Saldo available/held (+ konversi Rupiah)

–

yorai_list_models

Katalog model, filter category/type/provider

–

yorai_get_model

Nama input, opsi, batas, rules & harga satu model

–

yorai_quote

Hitung biaya tanpa bikin job

–

yorai_create_job

Generate. Quote dulu otomatis, ditolak kalau > max_credits

✅

yorai_get_job

Status + output, bisa nunggu (wait_seconds ≤ 55)

–

yorai_list_jobs / yorai_cancel_job

Riwayat / batalin job yang masih queued

–

yorai_upload_file

Upload dari URL publik atau path lokal → file ID

–

yorai_download_file

Simpan output ke disk (default ~/Downloads/yorai)

–

yorai_chat

Model teks (format OpenAI)

✅ kecil

yorai_upload_link

(mode remote) Bikin link upload sekali pakai (30 menit, maks 10 file) buat upload foto/video/audio dari HP

–

yorai_upload_status

(mode remote) Cek hasil link upload → file ID

–

Setiap job otomatis dapet Idempotency-Key. Jadi kalau retry pakai key yang sama, lu nggak bakal kena charge dua kali.

Related MCP server: topview-mcp-server

1. Build

Butuh Node.js 20 ke atas.

npm install
npm run build

API key bisa dibikin di https://yorai.id/app/api.

2a. Lokal: Claude Desktop

Edit claude_desktop_config.json (Windows: %APPDATA%\Claude\claude_desktop_config.json, macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "yorai": {
      "command": "node",
      "args": ["C:\\path\\ke\\yorai-mcp\\dist\\index.js"],
      "env": {
        "YORAI_API_KEY": "yk_xxx",
        "YORAI_DOWNLOAD_DIR": "D:\\AI\\yorai"
      }
    }
  }
}

Setelah itu restart Claude Desktop.

2b. Lokal: Claude Code

claude mcp add yorai --scope user -e YORAI_API_KEY=yk_xxx -- node C:/path/ke/yorai-mcp/dist/index.js

2c. Remote: custom connector di claude.ai (web + HP)

Server harus bisa diakses publik lewat HTTPS. Contoh di bawah pakai VPS Hostinger.

# di VPS
git clone <repo> yorai-mcp && cd yorai-mcp
npm install && npm run build
cp .env.example .env        # isi YORAI_API_KEY dan MCP_SECRET (openssl rand -hex 24)
set -a && . ./.env && set +a
npx pm2 start dist/http.js --name yorai-mcp && npx pm2 save

Server listen di 127.0.0.1:3333. Pasang reverse proxy dengan HTTPS di depannya, misalnya Caddy:

yorai-mcp.domainlu.com {
    reverse_proxy 127.0.0.1:3333
}

Lalu di claude.ai buka Settings → Connectors → Add custom connector, dan isi URL:

https://yorai-mcp.domainlu.com/mcp/<MCP_SECRET>

Secret-nya ada di path karena custom connector claude.ai nggak bisa ngirim header statis. Perlakukan URL itu kayak password.

Upload foto dari HP (mode remote)

Server di VPS nggak bisa baca file di HP/PC atau attachment chat. Kalau PUBLIC_URL di-set (mis. https://yorai-mcp.domainlu.com), Claude bisa panggil yorai_upload_link, kasih link ke lu, lu upload dari browser HP, terus Claude ambil file ID-nya pakai yorai_upload_status. Link berlaku 30 menit dan cuma bisa dipakai sekali.

VPS pakai Docker Compose (tanpa build)

Lihat deploy/docker-compose.vps.yml. Container ambil kode terbaru dari repo ini tiap start, jadi update cukup git push terus restart container. Contoh di situ numpang Traefik bawaan template n8n Hostinger.

Kalau mau pakai Docker:

docker build -t yorai-mcp .
docker run -d --restart unless-stopped -p 127.0.0.1:3333:3333 --env-file .env yorai-mcp

Di mode remote, yorai_upload_file dengan path dan yorai_download_file jalan di disk VPS, bukan di PC lu. Buat referensi, pakai url.

Environment

Variabel

Wajib

Default

YORAI_API_KEY

ya

–

YORAI_BASE_URL

tidak

https://yorai.id/api/v1

YORAI_DOWNLOAD_DIR

tidak

~/Downloads/yorai

MCP_SECRET

mode HTTP

– (minimal 24 karakter)

PORT / HOST

tidak

3333 / 127.0.0.1

PUBLIC_URL

tidak (mode HTTP)

– (aktifin yorai_upload_link)

Contoh prompt ke Claude

  • "Cek saldo Yorai gue"

  • "Model video apa aja di Yorai yang paling murah per detik?"

  • "Bikin video Seedance 2.5 480p 5 detik: kucing oren lompat ke meja. Quote dulu ya"

  • "Upload foto ini terus jadiin first frame image-to-video"

Available Tools

11 tools
yorai_balanceYorai balanceA
Read-only

Check available and held Yorai credits (1 credit = IDR 1,000).

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint=true annotation is consistent with a 'Check' description. Beyond annotations, the description adds real domain context by naming the two balance categories (available vs. held) and the credit-to-IDR conversion rate, which no structured field provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the resource first and the unit definition second. Every clause earns its place, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only tool with no output schema, the description covers what is checked and the unit of measure. Minor remaining gap: what 'held' credits represent concretely (e.g., reserved by pending jobs), but nothing essential to invoking it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. There is nothing for the description to disambiguate, and it does not waste space inventing parameter discussion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check available and held Yorai credits') and even defines the credit unit. It is unambiguous and no sibling in the yorai_* family covers balances, though the description never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied — an agent can infer this is a pre-flight check before quoting or creating jobs, but the description never says when to call it or that it is the sole balance source. There are no explicit alternatives or exclusions to state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_cancel_jobCancel a Yorai jobA

Cancel a queued job and release its credit hold. Running jobs cannot be cancelled (409).

NameRequiredDescriptionDefault
idYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden; it discloses the state mutation, the credit-hold release side effect, and the 409 failure mode for running jobs. It omits idempotency behavior (what happens if the job is already cancelled or completed) and what the call returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler, and the primary action plus its side effect is front-loaded before the constraint. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no annotations and no output schema, the description covers purpose, constraint, and error code, but never says what a successful cancellation returns or how to interpret the result. The single parameter is also left unexplained, which is a meaningful gap given 0% schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% — the single `id` parameter has no description at all. The description implies the id identifies 'a queued job' but never states the identifier type, format, or where an agent obtains it, leaving the only parameter under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Cancel') and resource ('a queued job') plus the side effect ('release its credit hold'), which no sibling tool does. An agent can immediately distinguish it from yorai_create_job, yorai_get_job, and yorai_list_jobs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly bounds usage to queued jobs and names the when-not case ('Running jobs cannot be cancelled') with the resulting status code 409. It stops short of naming an alternative tool or describing prerequisites (auth/ownership), but there is no real sibling alternative for cancellation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_chatYorai chat completionB

Run a text chat model from the Yorai catalog (OpenAI chat.completion format, no streaming, text only). Spends a small amount of credits.

NameRequiredDescriptionDefault
modelNodeepseek-v4-1-flash
messagesYes
max_tokensNo
temperatureNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does add real behavioral facts: it consumes credits, does not stream, and returns OpenAI chat.completion format. It omits permissions/auth requirements, rate limits, and failure modes, so a calling agent still lacks several operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by the key constraints and cost note. Nothing is wasted and no filler precedes the substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter inference call with no annotations and no output schema, the description covers format, cost, and non-streaming behavior but leaves the parameter semantics undocumented and gives no sense of return shape beyond a format name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and largely does not. It hints that a model is selected from the Yorai catalog (implying the default-model behavior) but says nothing about messages structure, max_tokens, or temperature ranges.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: run a text chat model from the Yorai catalog. The parenthetical narrows the scope (no streaming, text only) and distinguishes it from job/file-oriented siblings, though it doesn't name an alternative for streaming or multimodal needs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the constraint list (chat completions, no streaming, text only), which tells an agent what this tool is not for. But there is no explicit guidance on when to use it versus siblings such as yorai_quote, yorai_create_job, or yorai_list_models for model discovery.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_create_jobCreate a Yorai jobA

Start an image/video/audio generation. SPENDS CREDITS. The server quotes first and refuses if the hold exceeds max_credits. Returns the job; then poll yorai_get_job. Pass the same idempotency_key when retrying an ambiguous failure so you are not charged twice.

NameRequiredDescriptionDefault
typeNoGeneration type, e.g. text-to-image, image-to-video. Optional only if the model has one type.
inputYesModel inputs. Use exact names/values from yorai_get_model. File inputs take file IDs from yorai_upload_file.
modelYesModel slug, e.g. bytedance-seedance-2-5, z-image, nano-banana-2-lite
max_creditsYesRefuse if the quoted hold (upTo) is above this. Use the amount the user approved.
webhook_urlNo
idempotency_keyNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses traits the annotations cannot express: the call spends credits, the server quotes a hold first and refuses if it exceeds max_credits, and the response is a job handle requiring polling. The idempotency_key retry instruction is consistent with (and explains) idempotentHint=false, since repeat calls do create new charges unless a key is reused.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the cost warning in caps, then the guardrail, return shape, and retry rule. No filler; each sentence changes agent behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description says it returns the job and points to yorai_get_job for results. The nested input object is correctly deferred to yorai_get_model and yorai_upload_file, covering everything needed to invoke it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%; the description adds the key semantic the schema lacks — purpose and retry behavior of idempotency_key — and clarifies the max_credits guardrail beyond its schema text. webhook_url remains unexplained in both places, leaving one gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Start an image/video/audio generation") and immediately signals the financial side effect with "SPENDS CREDITS." It is distinguishable from listing/reading siblings and names yorai_get_job as the follow-up step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear workflow context: call this to start generation, then poll yorai_get_job, and reuse idempotency_key on ambiguous retries. It stops short of explicitly contrasting with yorai_quote for cost pre-checking, so the alternative-path guidance is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_download_fileDownload a Yorai fileC

Save a Yorai file (e.g. a job output id) to disk on the machine running this MCP server. Yorai purges results after 14 days. Default folder: YORAI_DOWNLOAD_DIR or ~/Downloads/yorai.

NameRequiredDescriptionDefault
idYes
filenameNo
save_dirNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral load, and it does disclose two important traits: the file lands on the machine running the MCP server (not the caller's machine) and the destination defaults come from YORAI_DOWNLOAD_DIR or ~/Downloads/yorai. It omits overwrite behavior when filename collides, permission requirements, and whether the saved path is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, and each carries information (destination machine, retention limit, default directory). No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A no-annotation, no-output-schema tool with three undocumented parameters needs more than this: the description is silent on the return value (e.g. the written path), filename semantics, and collision handling, leaving the agent to guess on a filesystem-mutating operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so all three parameters are undocumented in the schema. The description only gestures at 'id' (ambiguously, as a job output id) and explains save_dir indirectly through the default folder sentence; 'filename' is never mentioned at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: saving a Yorai file to disk on the MCP server host, which implicitly contrasts with the sibling yorai_upload_file. The parenthetical '(e.g. a job output id)' muddies what 'id' refers to, but the core action is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions the 14-day purge of results, which hints at urgency but never states when to call this versus alternatives or what prerequisites exist (e.g. must the job have completed first?). No exclusions or routing guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_get_jobGet a Yorai jobA
Read-only

Get a job's status and outputs. Set wait_seconds (max 55) to poll until it finishes or the wait ends. Status: queued, running, succeeded, failed.

NameRequiredDescriptionDefault
idYes
wait_secondsNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is consistent with readOnlyHint=true and adds behavior the annotations cannot convey: the status state machine (queued, running, succeeded, failed) and the long-polling semantics of wait_seconds. It omits edge cases such as unknown or expired job ids and whether outputs are partial while running.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the purpose, then the polling control, then the status vocabulary. No filler, and each sentence adds information the agent actually needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description indicates the return carries status and outputs and enumerates the possible statuses, which is enough to interpret a response. The remaining gap is that 'outputs' is never characterized, so the agent cannot anticipate the payload shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry both parameters. It explains wait_seconds well, including the polling cutoff, but says nothing about id: where the agent obtains one (presumably from yorai_create_job or yorai_list_jobs) or whether it is a job identifier versus another resource type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: getting a single job's status and outputs. That singular retrieval is clearly distinct from yorai_list_jobs and yorai_create_job, though the description never names those siblings to make the routing explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use guidance for wait_seconds: poll until the job finishes or the wait ends, with the 55-second cap. It stops short of telling the agent when to prefer a get over yorai_list_jobs, and names no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_get_modelGet Yorai modelA
Read-only

Get one model's generation types, exact input names/options/limits, linkage rules and prices. Call before quoting or creating a job.

NameRequiredDescriptionDefault
slugYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already declares the safety profile, so the description's burden is lighter. It adds real value by disclosing the contents of the response (generation types, limits, linkage rules, prices), which tells the agent what it can rely on after the call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the payload description front-loaded and the call-ordering advice second. No filler; every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing the fields the model record contains, which is what the agent needs to decide to call it. The remaining gap is the unexplained slug parameter, which keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the sole parameter 'slug' is undocumented in both schema and description. The description only implies a model identifier via 'one model'; it never states what a slug looks like or where to obtain it (e.g., from yorai_list_models), leaving the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (one model) and enumerates exactly what comes back: generation types, input names/options/limits, linkage rules, and prices. The phrase 'one model' implicitly separates it from the sibling yorai_list_models, though the sibling is not named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to call it 'before quoting or creating a job,' which ties it to yorai_quote and yorai_create_job in the workflow. No when-not guidance, but the ordering rule is concrete and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_list_jobsList Yorai jobsB
Read-only

List recent jobs, newest first. Use next_cursor for more.

NameRequiredDescriptionDefault
limitNo
cursorNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already declares this a safe read, so the description only needs to add context, and it does add result ordering and a continuation mechanism. However, 'recent' is never bounded and no return shape is given. The bigger issue is that it references 'next_cursor' while the schema parameter is named 'cursor', which can send the agent looking for a token that doesn't exist by that name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler: purpose first, then pagination. It's efficiently sized, though the terseness is part of why key semantics are missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with annotations covering safety and no output schema, the description is nearly adequate. But the undefined 'recent' window and the cursor naming mismatch leave gaps an agent would need to guess around.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden for both parameters, yet it never explains 'limit' (default 20, max 100) and its only cursor guidance uses a name ('next_cursor') that does not match the schema property 'cursor'. An agent could pass a wrong key or miss the cap entirely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List recent jobs') plus ordering ('newest first'), which clearly separates it from yorai_get_job, yorai_create_job, and yorai_cancel_job. It doesn't name a sibling explicitly, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The pagination hint ('Use next_cursor for more') tells the agent how to continue a listing, implying this is the enumeration tool. But there is no explicit when-to-use/when-not guidance versus yorai_get_job or any statement of scope (e.g., which account or workspace's jobs are listed).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_list_modelsList Yorai modelsA
Read-only

List models in the Yorai catalog with their starting price. Filter by category (chat, image, video, audio), type or provider slug.

NameRequiredDescriptionDefault
typeNoe.g. text-to-video, image-to-video, text-to-image
searchNoClient-side filter on slug/name
categoryNo
providerNoMaker slug, e.g. bytedance, kling, google

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already cover read-only semantics, so the bar is lower. The description adds useful context that it returns the starting price, which is not stated in the schema and is not obvious from the name alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It uses two tight sentences with no filler, and the main capability is front-loaded before the filtering detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a filtered-list tool: it names the resource, the returned price, and the filters. However, it does not mention pagination or whether results are limited, which leaves a gap for an agent that expects a long list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds the allowed category values and supplies type examples that extend beyond the short property hints. Schema coverage is 75%, and the description usefully clarifies the two vaguely documented parameters (type and provider).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List models in the Yorai catalog with their starting price.' It is immediately distinguishable from siblings such as yorai_get_model (single model) and yorai_quote (pricing calculation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent to filter by category (chat, image, video, audio), type, or provider slug, which gives clear usage context. It does not name an explicit alternative, but does state that filtering is the intended path over fetching individual models.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_quoteQuote a Yorai jobA
Read-only

Price a request without starting a job or holding credits. Returns credits, upTo and line items. Free.

NameRequiredDescriptionDefault
typeNoGeneration type, e.g. text-to-image, image-to-video. Optional only if the model has one type.
inputYesModel inputs. Use exact names/values from yorai_get_model. File inputs take file IDs from yorai_upload_file.
modelYesModel slug, e.g. bytedance-seedance-2-5, z-image, nano-banana-2-lite

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true is consistent with the description, and the description adds real context beyond it: no credits are held, the call is free, and it returns credits/upTo/line items. It does not mention error behavior for invalid model/input or rate limits, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences: the first states what it does and its non-effects, the second names the return shape and the cost. Zero waste and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names the returned fields (credits, upTo, line items), and the nested input object is well documented in the schema. Minor gap: no note on how the optional `type` disambiguates or on failure modes for an invalid model/input combo.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with per-field guidance including cross-references to yorai_get_model and yorai_upload_file, so the baseline is 3. The description adds no parameter-level detail beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Price a request without starting a job or holding credits" gives a specific verb (price/quote) and resource, and explicitly delimits it against the create-job sibling. An agent can tell this apart from yorai_create_job without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "without starting a job or holding credits" makes the pre-flight dry-run use case clear and implicitly points to yorai_create_job as the alternative. It stops short of an explicit "use this before creating a job" instruction or exclusion of other siblings, but the context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yorai_upload_fileUpload a file to YoraiA

Upload an image (PNG/JPEG/WebP ≤30 MB), video (MP4/MOV/WebM ≤95 MB, 2–60 s) or audio (MP3/WAV/M4A/AAC/OGG ≤95 MB) and get a file ID for job inputs. Give either a public https URL (the server downloads it) or a local path on the machine running this MCP server.

NameRequiredDescriptionDefault
urlNo
pathNo
filenameNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description does real work: per-media size caps, video duration bounds, accepted MIME types, and the key behavioral fact that a URL is fetched server-side while a path resolves on the MCP host machine. It omits auth needs, dedup/overwrite behavior, and failure modes, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded with the decision-relevant information (what's accepted, then how to supply it). No filler and no restatement of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the return value (file ID) despite no output schema, plus all format and size gates an agent needs to avoid a failed call. The unexplained filename parameter and the absence of any error or auth behavior are the only real gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does for the two decision-critical parameters: url is a public https URL the server downloads, path is local to the MCP server host. The third parameter, filename, is never explained, so the agent must guess its purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (upload) and resource (file) and states exactly what comes back — a file ID usable as job input. The supported media classes and constraints make it unmistakable against siblings like yorai_download_file or yorai_create_job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"and get a file ID for job inputs" implicitly positions it as a precursor to create_job, and the second sentence tells the agent it must supply either a URL or a local path. There is no explicit when-not or named alternative, but with only one sibling in the opposite direction (download) the routing risk is low.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.0
    • First observedyorai_balance
    • First observedyorai_cancel_job
    • First observedyorai_chat
    • First observedyorai_create_job
    • First observedyorai_download_file
    • First observedyorai_get_job
    • First observedyorai_get_model
    • First observedyorai_list_jobs
    • First observedyorai_list_models
    • First observedyorai_quote
    • First observedyorai_upload_file

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a clearly distinct action/resource: catalog lookup, quoting, job lifecycle, file transfer, balance, and chat. The only potential overlap between quote and create_job is explicitly resolved by the descriptions.

Naming Consistency4/5

All tools use snake_case with a consistent yorai_ prefix and mostly follow verb_noun form. A few names like yorai_balance, yorai_quote, and yorai_chat are bare actions/nouns, but they remain predictable and readable.

Tool Count5/5

The 11 tools form a well-scoped surface covering the necessary operations without obvious redundancy. Each tool earns its place across catalog, billing, jobs, files, and chat.

Completeness5/5

The surface covers model discovery, pricing, job creation/polling/listing/cancellation, file upload/download, balance checking, and text chat. Core workflows have no obvious dead ends; minor extras like file listing or deletion are not essential for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude to generate videos and images via TopView.ai's API, including text-to-video, image-to-video, text-to-image, and image editing.
    -
  • A
    license
    B
    quality
    C
    maintenance
    Enables Claude Code to call local generative AI services on a LAN, letting users list and chat with Ollama models and list checkpoints, LoRAs, and samplers or generate and save images via Stable Diffusion WebUI Forge Neo. Requests can be made in natural language, with per-call options for model, image size, and Hires.fix settings.
    1
    MIT