Medhā MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Medhā MCPCreate a futuristic cityscape image using flux-2-pro"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Medhā MCP
Operator-tuned fork of @veniceai/mcp-server. Same 31 Venice primitives; curated presets for chat/image/video/audio/music baked in via env defaults and surfaced in tool descriptions; one discoverable
medha://favoritesresource so any agent can fetch the operator's preferences before making a call. Use from any MCP host — Claude Desktop, Claude Code, Cursor, Codex CLI, Hermes, Jiva, Rati, LM Studio, Continue, LibreChat, Open WebUI, AnythingLLM, Jan, Le Chat.
What you get
Surface | Count | Notes |
Tools | 31 | Identical to upstream; descriptions augmented with |
Resources | 4 |
|
Prompts | 7 | 3 upstream ( |
Transports | stdio and Streamable HTTP ( | HTTP is the Railway-deployed mode; stdio stays for npx-style install |
The Medhā MCP server is thin by design: it forwards agent tool calls to api.venice.ai. The agent (Claude Code / Hermes / Codex / Jiva / Rati / Cursor / etc.) is the orchestrator — it plans the steps, picks models, calls tools in order, handles async polling, and stitches art + audio together.
Quickstart (5 min deploy on Railway)
1. Get a Venice API key
venice.ai → Settings → API Keys. Save it locally on the operator's Mac:
echo "export VENICE_API_KEY=*** ~/.config/railway/venice-rati-key.env
chmod 600 ~/.config/railway/venice-rati-key.env2. Clone + push
gh repo clone veniceai/venice-mcp-server ~/tmp/medha-deploy
cd ~/tmp/medha-deploy
# (already customized to Medhā on master if you cloned vivmuk/medha-mcp;
# upstream clone just needs the Phase 1 patches to branding files.)3. Railway project + service
# Create `medha` project in vivmuk's workspace
railway init --name "medha" --workspace "vivmuk's Projects"
gh repo create vivmuk/medha-mcp \
--public \
--description "Medhā — operator-tuned Venice AI MCP bridge." \
--default-branch master
cd ~/tmp/medha-deploy
git remote rename origin upstream
git remote add origin https://github.com/vivmuk/medha-mcp.git
git fetch upstream --unshallow
git push -u origin master# Create Railway service that pulls from GitHub
railway add --service medha --repo vivmuk/medha-mcp --branch master4. Set env vars
Generate a strong bearer token for the MCP HTTP layer:
BEARER=$(python3 -c "import secrets; print(secrets.token_hex(32))")
echo "$BEARER" > ~/.config/railway/medha-bearer.token
chmod 600 ~/.config/railway/medha-bearer.tokenPush secrets via --stdin (chat-safe; never argv):
unset RAILWAY_TOKEN RAILWAY_API_TOKEN
python3 - <<'PY'
import subprocess
from pathlib import Path
KEY = Path("/Users/vivgatesai/.config/railway/venice-rati-key.env").read_text()
KV = {l.split("=",1)[0].lstrip("export ").strip(): l.split("=",1)[1].strip().strip('"').strip("'") for l in KEY.splitlines() if l.startswith("export ")}
BEARER = Path("/Users/vivgatesai/.config/railway/medha-bearer.token").read_text().strip()
base = ["railway","variable","set","--service","medha","--skip-deploys"]
for label, value in [("VENICE_API_KEY", KV["VENICE_API_KEY"]), ("VENICE_MCP_AUTH_TOKEN", BEARER)]:
subprocess.run(base + [label, "--stdin"], input=value, capture_output=True, text=True, timeout=60)
PYPlain env (no secrets — argv-safe):
for K in \
"VENICE_MCP_HTTP=1" \
"VENICE_MCP_HOST=0.0.0.0" \
"VENICE_DISABLE_NSFW=0" \
"VENICE_DEFAULT_CHAT_MODEL=minimax-m3-preview" \
"VENICE_DEFAULT_IMAGE_MODEL=flux-2-pro" \
"VENICE_DEFAULT_TTS_MODEL=tts-kokoro" \
"VENICE_DEFAULT_ASR_MODEL=openai/whisper-large-v3" \
"VENICE_DEFAULT_VIDEO_MODEL=ltx-2" \
"VENICE_DEFAULT_MUSIC_MODEL=ace-step-15" \
"VENICE_HTTP_TIMEOUT_MS=120000" \
"VENICE_MCP_MAX_SESSIONS=100" \
"VENICE_MCP_SESSION_TTL_MS=1800000" \
"PORT=3333" \
"MEDHA_SERVER_NAME=@medha/mcp-server" \
"MEDHA_SERVER_VERSION=0.4.0-medha"
do
railway variable set --service medha --skip-deploys "$K"
done5. Deploy + attach domain
cd ~/tmp/medha-deploy
railway up --service medha --detach
railway domain --service medha
# → https://medha-production.up.railway.app/mcp6. Smoke
BEARER=$(cat ~/.config/railway/medha-bearer.token)
URL=https://medha-production.up.railway.app/mcp
curl -sS -i -X POST "$URL" \
-H "Authorization: Bearer *** \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"smoke","version":"0.0.1"}}}' \
| headHTTP 200 with a mcp-session-id UUID header → you're live.
7. Connect an agent
See presets.md for the canonical defaults table. For Claude Desktop / Claude Code CLI / Cursor / Codex CLI / Hermes / Jiva connector recipes, see CONNECTORS.md.
Configuration reference
Env | Default | Purpose |
| (none) | Operator's Venice API key. Forwarded as |
| (none) | Optional SIWE-signed wallet token (x402 mode). Used only when |
| (unset) | Set to |
|
| Bind address. |
| (none) | Bearer required for |
|
| Cap on concurrent Streamable HTTP sessions. |
|
| Idle session TTL (30 min). |
|
| Per-call upstream timeout. Default 120s for video/music latencies. |
|
| Set to |
|
| Medhā default: |
|
| (same as upstream) |
|
| (same as upstream) |
|
| (same as upstream) |
|
| Override the MCP |
|
| Override the MCP |
|
| Railway-respected; controls the listener. |
Operator preferences
The operator-curated defaults are baked into the tool descriptions so agents read them on every tools/list call. They are also a single canonical JSON document available via the medha://favorites resource:
# After defining BEARER + SID as in the smoke test:
curl -sS -X POST https://medha-production.up.railway.app/mcp \
-H "Authorization: Bearer *** \
-H "Content-Type: application/json" \
-H "mcp-session-id: $SID" \
-d '{"jsonrpc":"2.0","id":2,"method":"resources/read","params":{"uri":"medha://favorites"}}'See presets.md for the full table with rationale per domain (reasoning / coding / roleplay / vision / longctx / image / music / video / etc.).
The operator prefs are HINTS, not hard rules. Agents you connect can pass model="<any-venice-id>" on any call and the server will forward it. The presets exist to save the agent from re-discovering the operator's taste on every prompt.
Workflow prompts (Medhā-only)
Beyond the upstream 3 (uncensored-research, nsfw-creative-writing, image-style-explorer), Medhā ships 4 workflow prompts that guide the agent into known-good multi-tool sequences:
Prompt | Workflow | Default models |
| Quote → music gen → 4-12 image frames → video interpolation per frame → optional TTS. |
|
| Web search → scrape top URLs → script via chat → TTS. |
|
| Chat-compose prompt → flux-2-pro → optional bg-remove → optional 2× upscale. |
|
| Dossier + system prompt via roleplay chat → TTS sample → optional avatar image. |
|
When the agent invokes one of these prompts, MCP returns a single user-role message that lays out the recommended tool-call sequence with the operator's preferred models. The agent then orchestrates from there.
Provenance + license
Upstream: github.com/veniceai/venice-mcp-server @ v0.2.0 — MIT-licensed by Venice AI. Medhā is a fork: same code, operator-tuned UX. No warranty or SLA from Venice AI. Use at your own risk.
Maintainer: Vivek M (@vivmuk). Brand: Medhā — Sanskrit medhā (मेधा) = wisdom / intelligence / mental power.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vivmuk/medha-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server