GitHub: veniceai/venice-mcp-server
Published as
@veniceai/mcp-server on npm. MIT licensed.45 Tools
Every Venice modality plus billing, API-key, and TEE tooling
Any MCP Host
Claude Desktop, Cursor, ChatGPT, LM Studio, Continue, and more
Wallet Auth (Optional)
Bring an API key, or pay per call with a SIWE-signed wallet via x402
Quick start
1
Get a Venice API key
Generate one from venice.ai/settings/api. See the API key guide for step-by-step instructions.
2
Add Venice to your MCP host config
Drop this into your MCP host’s config file:Common config paths:
3
Restart your MCP host
Your agent now has chat, image, video, music, TTS, ASR, and 39 more Venice tools available.
Most MCP hosts only pass environment variables that are explicitly listed in the
env block. System-level env vars are not inherited. If you see 402 errors with an API key set, double-check that VENICE_API_KEY is inside env in your config.What you get
45 tools spanning every Venice modality plus account operations, 3 resources (venice://models, venice://styles, venice://voices), and 3 prompt templates (uncensored research, NSFW creative writing, image style explorer).
Every tool declares explicit readOnlyHint, destructiveHint, idempotentHint, and openWorldHint annotations, so hosts can run lookups without prompting and ask for confirmation before anything destructive, such as media cleanup or a crypto relay.
Chat & embeddings
Image
Video
Audio (TTS / ASR)
Music
Web augment
Catalog & characters
TEE attestation
Crypto
Transaction broadcasts (
eth_sendRawTransaction, eth_sendUserOperation, Solana sendTransaction, Starknet writes) must be sent as single requests with an idempotency_key, and the same key must be reused on retry.
Billing (admin keys)
The billing tools require an ADMIN API key. Inference keys cannot call these endpoints, and the server fails locally instead of falling back to a wallet token.
API keys
x402 wallet helpers
Only relevant if you authenticate with a wallet via x402 instead of an API key.Configuration
The server is configured entirely through environment variables.Models and requests
If both
VENICE_API_KEY and VENICE_SIWX_TOKEN are set, the API key wins on most calls; see Auth-mode coverage for the exceptions.
Response size limits
Generated media is buffered and embedded in the MCP result as base64, so each modality has a byte ceiling.
An oversized image or TTS result is discarded with an error. An oversized video or music result stays queued, so you can call the status tool again with the same queue ID after raising the limit.
HTTP server
Only relevant in the Streamable HTTP deployment.Media generation behavior
- Completed media can be bytes or a URL. Video and music jobs return embedded MP4/audio resources, or JSON with a
download_urlthat comes back as a resource link. Download that link first, then callvenice_video_completeorvenice_music_complete; media cleanup is never applied to adownload_urlresult because the link stops working once the file is deleted. - Some models only return a URL at queue time. For VPS and Grok Imagine Private models, capture the
download_urlreturned byvenice_video_generateand pass it intovenice_video_status; aCOMPLETEDretrieve without an inline URL still yields a usable link. - Prompt enhancement is reported back. When
enhance_promptis applied, image generate, edit, and multi-edit results include the URL-decoded prompt Venice returned. - ASR paging is charged once. Transcripts longer than 8,000 characters, or with more timestamps than fit on one page (200 per array by default, up to 500 with
timestamp_limit), return aresult_handlewith the first page. Request later pages with that handle. Handles live in memory per MCP session for 10 minutes, and only the 16 most recent are kept. - Seedance consent is not a policy bypass. Current public Seedance models may reject media containing detectable persons outright. Where a
needs_consentresponse is returned, the threeconsents.seedanceflags are legal attestations: set them totrueonly after the user explicitly confirms each statement.
x402 wallet mode
Venice supports authenticating with a Sign-In-With-X wallet token backed by prepaid USDC credit on Base or Solana, in addition to the normal API key flow. No email, phone, or KYC required: your wallet is the only identity.VENICE_SIWX_TOKEN in the SIGN-IN-WITH-X header on every Venice API call. The server never sees your private key. Wallet signing and USDC top-up authorizations happen in your own wallet.
Minimum top-up is $5 USD. Minimum balance to call inference is $0.10. Once topped up, calls are sub-100ms because settlement happens off-chain on a fast credit account.
Venice does not accept payment headers on inference routes, so this server never sends one.
PAYMENT-SIGNATURE belongs only to /x402/top-up, and the top-up helper discovers requirements without submitting a payment.
Auth-mode coverage
Some endpoints accept only one auth mode:
When both credentials are set, the API key is used for every authenticated call except
venice_x402_balance and venice_x402_transactions, which always send the wallet token.
Self-hosting (Streamable HTTP)
For team or workspace deployments, run the MCP server over HTTP instead of stdio:http://localhost:3333/mcp. HTTP clients must send Authorization: Bearer <VENICE_MCP_AUTH_TOKEN> and should create new sessions without an mcp-session-id header, then reuse the server-issued session ID.
Resources
GitHub
Source code, issues, and releases
npm
@veniceai/mcp-serverVenice Skills
Companion skills that teach agents how to use these tools
MCP Spec
Learn more about the Model Context Protocol