Venice MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP-mode listener port. | 3333 |
| VENICE_API_KEY | No | Your Venice API key. The simplest setup. | |
| VENICE_MCP_HOST | No | HTTP-mode bind address. Set to 0.0.0.0 for LAN/container exposure. | 127.0.0.1 |
| VENICE_SIWX_TOKEN | No | Base64 SIWE payload for x402 wallet-mode authentication. | |
| VENICE_DISABLE_NSFW | No | Set to '1' to remove NSFW capability notes from tool descriptions. | 0 |
| VENICE_MCP_AUTH_TOKEN | No | Bearer token required by /mcp whenever HTTP mode binds outside loopback. | |
| VENICE_HTTP_TIMEOUT_MS | No | HTTP timeout in milliseconds. | 60000 |
| VENICE_MCP_MAX_SESSIONS | No | Maximum active Streamable HTTP sessions. | 100 |
| VENICE_DEFAULT_ASR_MODEL | No | Default ASR model. | openai/whisper-large-v3 |
| VENICE_DEFAULT_TTS_MODEL | No | Default TTS model. | tts-kokoro |
| VENICE_DEFAULT_CHAT_MODEL | No | Default chat model. | venice-uncensored |
| VENICE_MCP_SESSION_TTL_MS | No | Idle Streamable HTTP session lifetime before cleanup. | 1800000 |
| VENICE_DEFAULT_IMAGE_MODEL | No | Default image model. | flux-2-pro |
| VENICE_MCP_ALLOW_UNAUTHENTICATED_HTTP | No | Emergency escape hatch for unauthenticated exposed HTTP mode. | 0 |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| venice_chatB | Run an OpenAI-compatible chat completion via Venice's text-model catalog. Calls are non-streaming plaintext. enable_e2ee is rejected: this server does not encrypt chat. Uncensored: NSFW prompts allowed where the model permits. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_responsesA | Alpha, stateless OpenAI-compatible Responses API for Venice text models. Supports text/image input and reasoning controls, but this MCP tool does not advertise tool calling because the endpoint does not reliably accept those fields. E2EE-capable models are not supported. Uncensored: NSFW prompts allowed where the model permits. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_embeddingsB | Compute embeddings for text input (OpenAI-compatible). Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_image_generateA | Generate an image. Supports Flux 2 Pro/Max, Lustify SDXL, Anime (WAI), Qwen Image, GPT Image, Nano Banana Pro and others. Uncensored: NSFW prompts allowed where the model permits. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_image_editB | Edit an image with a prompt. Returns base64 PNG. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_image_multi_editB | Edit multiple images together with a single prompt (multi-image composition / outpainting). Returns base64 PNG. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_image_upscaleA | Upscale an image (2-4× scale). Endpoint requires base64 image; this tool fetches the URL and uploads it. Returns base64 PNG. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_image_remove_bgB | Remove image background; returns a transparent PNG (base64). Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_video_generateA | Queue a video generation. Supports Sora 2, Veo 3.1, Kling, Wan, LTX 2, Seedance, Runway Gen-4, and others. Pick a specific id like "veo3.1-fast-text-to-video", "veo3.1-fast-image-to-video", "kling-2.6-pro-text-to-video", "wan-2.6-text-to-video", "seedance-2-0-r2v" etc. Uncensored: NSFW prompts allowed where the model permits. Supports x402 wallet auth (no Venice account needed) and API key. Returns { model, queue_id }; poll with venice_video_status. NOTE: 'duration' is a model-specific string enum like '4s' / '6s' / '8s'; inspect it with venice_model_details. Current public Seedance models may reject detectable persons outright. Consent flags are defensive compatibility support, not a policy bypass; set them only after showing a returned policy to the user and receiving explicit confirmation. |
| venice_video_statusA | Check status of a queued video job. Returns JSON progress while PROCESSING. Completed jobs are either an embedded base64 video/mp4 MCP resource or a download_url resource link. For VPS / Grok Imagine Private models, retrieve returns COMPLETED JSON without a URL: this process reuses the queue-time download_url when venice_video_generate ran here, or accepts a Venice-host download_url argument. POST endpoint with body {model, queue_id}. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_video_completeB | Mark a completed video as downloaded and delete server-side media. Reports removal only when Venice confirms success. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_ttsA | Convert text to speech. Supports cloned voices + emotion tags ([whispers], [sarcastically], etc.). When streaming=true, Venice streams upstream but this MCP tool buffers and returns one complete audio result; it does not emit incremental MCP chunks. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_asrA | Transcribe audio. Fetches the URL server-side and forwards as multipart/form-data file upload. Upstream transcription JSON larger than 1 MiB is rejected so word/character timestamps cannot exhaust memory. Timestamp arrays and transcripts longer than 8000 characters are paged in the MCP result: such a transcription returns result_handle alongside the first page, and every later page must be requested with that handle so the clip is transcribed — and charged — exactly once. Handles are held in memory, per MCP session, for 10 minutes and only the 16 most recent survive, after which paging fails and a fresh transcription is needed. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_voice_cloneA | Discover or clone TTS voices. Action 'list' reads live per-model voice metadata from auth-free GET /v1/models?type=tts. Action 'create' requires sample_url, then uploads the sample to POST /v1/audio/voices for the chosen cloning model. Cloned voices come back as a |
| venice_music_generateA | Queue music generation. Available models: ace-step-15, elevenlabs-music, minimax-music-v2/v25/v26, stable-audio-25, mmaudio-v2-text-to-audio, elevenlabs-sound-effects-v2. Uncensored: NSFW prompts allowed where the model permits. Supports x402 wallet auth (no Venice account needed) and API key. Returns { model, queue_id }; poll with venice_music_status. |
| venice_music_statusA | Check status of a queued music job. Returns JSON progress while PROCESSING. Completed jobs are either an embedded base64 audio MCP resource or a download_url resource link. POST endpoint with body {model, queue_id}. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_music_completeA | Mark a completed music job as downloaded and delete server-side media. Reports removal only when Venice confirms success. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_web_searchA | Search the web with Brave Search (default, Zero Data Retention) or Google Search (proxied and anonymized by Venice). Returns structured results with titles, URLs, snippets, and dates. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_web_scrapeB | Scrape one URL into markdown text. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_text_parserA | Extract text from a document URL. Fetches the URL server-side and uploads the file as multipart/form-data. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_crypto_networksA | List the live, authoritative network slugs accepted by venice_crypto_rpc. No authentication required. |
| venice_crypto_rpcA | Proxy one JSON-RPC request or a batch of up to 100 requests to a supported blockchain network. Use venice_crypto_networks for the live network list. For a simple call, pass rpc_method/rpc_params; for complete request IDs or batches, pass request. Relays (eth_sendRawTransaction, eth_sendUserOperation, Solana sendTransaction, and Starknet writes) must be sent as single requests (not batched) with idempotency_key; reuse the same key when retrying. Results are returned as compact JSON; responses larger than 64 KiB are rejected after Venice has billed them, so keep queries narrow. Supports x402 wallet auth (no Venice account needed) and API key. |
| venice_tee_attestationA | Fetch hardware-attestation evidence for a TEE-capable text model. The caller must supply a fresh 32-byte nonce and independently verify the echoed nonce, Intel TDX quote, optional NVIDIA evidence, debug-mode state, and signing-key binding before trusting the key. Fetching this evidence does not itself establish E2EE. No authentication required. |
| venice_tee_signatureA | Fetch the enclave signature for a completed TEE text-model chat request. The caller must cryptographically verify it against the signing identity bound by a separately verified attestation; this tool only returns the provider payload. No authentication required. |
| venice_list_modelsA | List the live model catalog, one page at a time. Omitting type lists every model type (sent upstream as type=all). Each entry is a compact summary (id, type, name, context length, enabled capabilities, traits, privacy, pricing); set verbose=true for the full upstream model objects. Returns total, next_offset, and every matching model id in ids; call again with offset=next_offset until next_offset is null. No authentication required. |
| venice_model_traitsB | Return the live trait-name to model-id mapping for a model type. The API defaults to text when type is omitted. No authentication required. |
| venice_model_compatibility_mappingA | Return the live compatible model-name to Venice model-id mapping for a model type. The API defaults to text when type is omitted. No authentication required. |
| venice_model_detailsA | Get one exact model's full catalog row, including model_spec constraints, capabilities, and pricing when available. Requires a concrete type to keep the upstream catalog response bounded. No authentication required. |
| venice_image_stylesA | List image style presets available for venice_image_generate. No authentication required. |
| venice_audio_quoteA | Get a price quote for a music generation BEFORE queuing. Useful for budgeting. No authentication required. |
| venice_video_quoteA | Get a price quote for a video generation BEFORE queuing. No authentication required. |
| venice_list_charactersC | List public Venice characters. API key required — this endpoint does not accept x402 wallet auth. |
| venice_get_characterA | Get one public Venice character by slug. API key required — this endpoint does not accept x402 wallet auth. |
| venice_character_reviewsA | List paginated public reviews for a Venice character. API key required — this endpoint does not accept x402 wallet auth. |
| venice_chat_with_characterB | Chat with a Venice character by slug. Note: the character lookup itself is API-key-only, but the chat completion supports x402 — so x402 users may need to fetch character info via API key first. Uncensored: NSFW prompts allowed where the model permits. |
| venice_billing_balanceA | Get current USD, DIEM, and bundled-credit availability for the authenticated Venice account. ADMIN API key required — inference keys cannot call this endpoint. This endpoint does not accept x402 wallet auth. |
| venice_billing_usage_analyticsA | Get beta aggregated usage by date, model, and API key. Data is cached for 10 minutes. Choose either lookback or a complete start/end date range. ADMIN API key required — inference keys cannot call this endpoint. This endpoint does not accept x402 wallet auth. |
| venice_billing_usage_historyA | Walk detailed billing usage in ascending timestamp order using cursor pagination. Supports complete JSON or upstream CSV pages, defaulting to 10 rows. Pages exceeding 64 KiB fail without returning partial rows or a next cursor. On continuation, send cursor without the original filters; CSV nextCursor values already encode format=csv so a cursor-only follow-up stays on text/csv. This uses /billing/usage-history, never deprecated /billing/usage. ADMIN API key required — inference keys cannot call this endpoint. This endpoint does not accept x402 wallet auth. |
| venice_list_api_keysA | List active API-key metadata, including only the documented last six characters—not full key secrets. ADMIN API key required — inference keys cannot call this endpoint. This endpoint does not accept x402 wallet auth. |
| venice_get_api_keyA | Get metadata, usage, balances, and rate-limit details for one API-key ID. The documented response does not reveal the full key secret. ADMIN API key required — inference keys cannot call this endpoint. This endpoint does not accept x402 wallet auth. |
| venice_api_key_rate_limitsA | Get the current key's balances, access status, tier, expiration, and model-specific rate limits. API key required — this endpoint does not accept x402 wallet auth. |
| venice_api_key_rate_limit_logsA | Get the last 50 exceeded rate-limit events for the account. This read-only endpoint is experimental. ADMIN API key required — inference keys cannot call this endpoint. This endpoint does not accept x402 wallet auth. |
| venice_x402_balanceA | Check the prepaid x402 credit balance for an EVM or Solana wallet address. SIWX-ONLY: this endpoint rejects API key auth and requires SIGN-IN-WITH-X (forwarded from VENICE_SIWX_TOKEN). The wallet in the path must match the SIWX-authenticated wallet. |
| venice_x402_top_up_infoA | Fetch the x402 top-up payment requirements: the accepted USDC payment options (currently Base and Solana), each with network, asset, receiver wallet (payTo), minimum amount in base units, and settlement timeout. Sends an empty POST with no payment header, so nothing is charged. Signing and PAYMENT-SIGNATURE submission happen OUTSIDE this MCP server. No authentication required. |
| venice_x402_transactionsA | List recent x402 top-up + debit transactions for an EVM or Solana wallet. SIWX-ONLY: rejects API key, requires SIGN-IN-WITH-X (VENICE_SIWX_TOKEN). The wallet in the path must match the SIWX-authenticated wallet. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| uncensored-research | Set up a research session free of nanny refusals (security, medical, legal, journalism). |
| nsfw-creative-writing | Adult fiction / mature creative writing scaffold. |
| image-style-explorer | Generate the same prompt across multiple styles for comparison. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| models | Live catalog of every model type (text, image, video, audio, embeddings, and more) with prices and capability flags. Auth-free. |
| styles | Available image style presets for venice_image_generate. |
| voices | Live model-scoped built-in voices, output formats, custom voice IDs, and cloning capabilities. |
TDQS
Scored across 45 tools
Most tools target clearly distinct resources and actions (image_edit vs image_multi_edit, video_status vs music_status, chat vs chat_with_character). A few boundaries are subtle: venice_model_traits vs venice_model_compatibility_mapping seem to return similar trait/name→id mappings, and venice_chat vs venice_responses (alpha) both do text completion, risking misselection.
Every tool uses the venice_ prefix with snake_case, and the resource_action pattern (venice_image_generate, venice_video_status, venice_music_generate) is applied predictably across all 45 tools. Deviations like venice_chat, venice_tts, venice_embeddings are accepted module-level names rather than inconsistency.
45 tools is heavy, though justified by a very broad API surface spanning chat, image, video, music, audio, web, models, crypto, TEE, characters, billing, and x402. Grouping is coherent but the set is near the upper bound of what an agent can select from reliably.
The surface is extensive: generate/status/complete lifecycles for video and music, full image ops, TTS/ASR/voice cloning, embeddings, model catalog, characters, billing, crypto RPC, and x402 flows. Minor gaps remain (characters are read-only, chat is explicitly non-streaming), but core workflows are covered.