Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NO_PROXYNoHosts that should not use the proxy; optional.
HTTPS_PROXYNoSend API calls through this proxy.
SPICY_API_KEYYesYour API key. Required for everything except status and docs search.
SPICY_MCP_HOSTNoHost for `spicyapi-mcp-http`: `127.0.0.1` (default), `localhost` or `::1`; anything else is refused.127.0.0.1
SPICY_MCP_PORTNoPort for `spicyapi-mcp-http`, default `8765`.8765
NODE_USE_ENV_PROXYNoSet to `0` to always connect directly, or `1` to force Node.js to use proxy environment variables.
SPICY_MCP_HTTP_TOKENNoRequired bearer token for `spicyapi-mcp-http`, at least 32 bytes, different from `SPICY_API_KEY`.
SPICY_MCP_UPLOAD_ROOTSNoDirectories `spicyapi_upload_file` may read, separated by `:` (`;` on Windows). Default: home directory.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
spicyapi_service_statusA

Read public health and readiness endpoints for diagnostics or an explicit status request. Not a prerequisite for task creation. No API key is required. Report the operational field. On the public surface /readyz answers 404 by design — readiness exposes database and Redis state, so it is registered only on the admin process — and operational already accounts for that. Do not report a 404 there as an outage.

spicyapi_docs_searchA

Search the bundled index of verified first-party documentation URLs.

spicyapi_models_listA

Discover enabled models and account-specific prices. Fetch only the selected model for its schema, or set includeSchema to reuse complete records without another model_get call. Returned input schemas are plain JSON Schema; display-only and rate-card annotations are removed. Some input values change the price; task_create obtains the exact request quote for confirmation. Use pricing entries for comparisons rather than calculating the accepted charge yourself.

spicyapi_model_getA

Return one exact model, its live input schema, pricing, policy and availability. Reuse a complete record already obtained from models_list with includeSchema. The input schema is plain JSON Schema; display-only and rate-card annotations are removed. Some input values change the price; task_create obtains the exact request quote for confirmation. Use pricing entries for comparisons rather than calculating the accepted charge yourself.

spicyapi_balance_getA

Return available, held, and total balance as exact decimal USD strings when requested or diagnosing funds. Task creation already checks funds; this is not a prerequisite.

spicyapi_usage_getA

Read task counts and settled actual USD spend for the current API key, grouped by creation day and model. Only from/to dates are accepted: UTC [from,to), at most 92 days; defaults to seven days ending tomorrow UTC. Money is returned as exact decimal strings; pending holds are excluded and late settlement can change prior-day spend. This is not account balance or remaining key budget, and is not a generation prerequisite. Use for requested usage reports; respect Retry-After on rate limits.

spicyapi_tasks_listA

Discover current-key task history with metadata only, without fetching each result. Dates are UTC [from,to), default seven days, at most 92 days. Keep from/to fixed across pages and pass nextCursor unchanged. Limit defaults to 20, maximum 100. Cost is an exact USD string and is final only when settled. Use task_get only for selected results; use usage_get for settled spending including hidden tasks. This is not a polling endpoint or a prerequisite to generation.

spicyapi_task_getA

Read a task created by the current API key, including ready output.assets[].url links. Use those URLs directly without your API key; query again if assets are pending or URLs have expired. A verified complete v2 webhook already contains the result. Unknown and inaccessible IDs are both 404. Some models answer in words instead of a file: speech-to-text and other text results arrive in output.text with no assets, and a transcription may add output.transcript with word timings and the detected language. Layer decomposition returns one image asset per layer; stack them by ascending output.assets[].layer.zIndex.

spicyapi_task_waitA

Wait for a task for up to 300 seconds and read ready output.assets[].url directly without a download-ticket call. By default, polling backs off from about 2 to at most 10 seconds; an explicit intervalSeconds stays fixed. Prefer signed webhooks for production; a complete verified v2 callback needs no extra task_get. A local wait timeout does not cancel the task. Some models answer in words instead of a file: speech-to-text and other text results arrive in output.text with no assets, and a transcription may add output.transcript with word timings and the detected language. Layer decomposition returns one image asset per layer; stack them by ascending output.assets[].layer.zIndex.

spicyapi_upload_fileA

Read a file from this computer, upload it, and return the spicy:// URI to put in a model input field. Use this whenever the user refers to a file on their machine. Images (JPEG, PNG, WebP, GIF) up to 10 MiB; MP4/WebM video and MP3/WAV audio up to 90 MiB; reference documents (PDF, Word, Excel, PowerPoint, Keynote, Pages, Numbers, TXT, Markdown) up to 90 MiB for fields such as reference_file_url. Public HTTPS media URLs need no upload at all — pass them straight to the model input when its schema accepts a URL.

spicyapi_download_url_createA

Create a short-lived signed URL for an output owned by the current task and API key, for legacy integrations or explicit link renewal. Prefer existing ready output.assets[].url from task_get, task_wait, or a verified v2 webhook; no ticket call is needed for those links.

spicyapi_task_quoteA

Compare an exact request price without creating a task or reserving funds. Returns a five-minute USD estimate and maximum charge. task_create already obtains its own quote and confirmation; do not call this tool as a routine prerequisite.

spicyapi_task_createA

Obtain the exact request quote, show its USD estimate and maximum charge for user confirmation, then reserve funds and create an asynchronous task. Do not call task_quote first unless independently comparing prices. The confirmation needs an MCP client that supports form elicitation; if the client does not, the call fails after the free quote and no task is created or charged.

spicyapi_task_retryA

Create a new task from a failed or expired source. Requires a user confirmation round.

spicyapi_task_purgeA

Permanently destroy one terminal task's stored content: generated media, result payload, prompt, and input text. This destroys content, not the record of what it cost — the ledger entry, charged amount, model, state, timestamps and request ID all stay queryable afterwards, so this never hides or reverses a charge and never refunds anything. It cannot be undone and there is no per-output granularity: the unit is one whole task. Download any result the user still wants before calling this. Only tasks in a terminal state are accepted. An accepted task cannot be canceled and there is no cancellation API, so for a queued or running task wait until it finishes (task_wait), then purge it. Repeating the call on an already destroyed task succeeds and changes nothing. Requires a user confirmation round.

Prompts

Interactive templates invoked by user choice

NameDescription
spicyapi_generation_workflowBuild a workflow using the live model schema, confirmed task creation, and directly usable results.

Resources

Contextual data attached and managed by the client

NameDescription
spicyapi-documentation-indexVerified first-party documentation topics and URLs.
spicyapi-openapi-contractThe package-pinned public API contract used to generate SDK types.

TDQS

A4.3/5.0

Scored across 15 tools

Disambiguation5/5

Each tool has a clearly distinct purpose within the API lifecycle (status, docs, models, balance, usage, tasks, upload, download, quote, create, retry, purge). Overlaps like task_get vs task_wait and task_quote vs task_create are explicitly differentiated in their descriptions, preventing misselection.

Naming Consistency4/5

Most tools follow a consistent spicyapi_<resource>_<action> pattern (e.g., model_get, tasks_list, task_create). Minor deviations exist: upload_file uses verb_noun order and download_url_create adds an extra noun, but the overall naming remains predictable and readable.

Tool Count5/5

With 15 tools, the set is well-scoped for an API covering model discovery, task lifecycle, file handling, and account queries. Each tool earns its place, and no tool feels redundant or missing from the core surface.

Completeness5/5

The surface covers the full task lifecycle: model inspection, quoting, creation with confirmation, waiting, retrieval, listing, retry, purge, plus file upload and download URL generation. No obvious gaps exist; the absence of a cancellation tool is intentional per the descriptions.