Risha.ai MCP Server
MCP server for the Risha.ai API enabling authentication, capability discovery, credit balance checks, and generation requests with automatic polling.
README
Risha.ai MCP Server
A Model Context Protocol (MCP) server for the Risha.ai API.
This server lets MCP clients such as Codex, Claude Code, and Claude Desktop discover Risha API operations, authenticate with email/password, inspect capabilities, check credit balance and create generation requests.
Features
- Email/password authentication using Risha
/auth/login/ - Automatic login at MCP startup
- Automatic startup context loading:
- current user
- active capabilities
- credit wallet / balance
- Generic Swagger-backed API caller for all Risha operations
- Convenience generation helpers:
risha_generate_imagerisha_create_generation
- Automatic polling for generation completion
Requirements
- Node.js 18+
- A valid Risha.ai account (www.risha.ai)
- An MCP-capable client, for example:
- Codex
- Claude Code
- Claude Desktop
Install
git clone https://github.com/aimedialab/risha-mcp-server.git
cd risha-mcp-server
npm install
Environment variables
Required for email/password login:
RISHA_EMAIL="you@example.com"
RISHA_PASSWORD="your-password"
Optional:
RISHA_API_BASE_URL="https://adminxcore-api.risha.ai/api"
Token-based auth is also supported, but email/password is the recommended flow:
RISHA_API_TOKEN="your-access-token"
RISHA_REFRESH_TOKEN="your-refresh-token"
Never commit real credentials. Put them in your MCP client config or a local
.envfile..envis ignored by git.
Run manually
RISHA_EMAIL="you@example.com" RISHA_PASSWORD="your-password" npm start
Expected startup log:
[risha-mcp] logged in, loaded 32 capabilities, credit balance: 72621
An MCP stdio server normally waits silently after startup. That is expected.
Available MCP tools
risha_api_info
Shows API metadata, authentication mode, startup status, capabilities count, credit balance, and Swagger tag list.
risha_startup_state
Shows the context loaded at startup:
- login state
- current user
- capabilities count
- credit balance
- startup errors, if any
risha_capabilities
Returns the active capabilities retrieved at startup.
Input example:
{
"filter": "image",
"limit": 20
}
risha_credit_balance
Returns credit balance, wallet, summary, and user wallet data.
risha_refresh_context
Logs in again and refreshes current user, capabilities, and credit data.
risha_login
Manually logs in with RISHA_EMAIL and RISHA_PASSWORD and caches the JWT for the current MCP session.
risha_list_operations
Searches all Swagger operations.
Input example:
{
"filter": "generation",
"limit": 20
}
risha_get_operation
Returns schema details for one operation.
Input example:
{
"operationId": "generation-requests_create"
}
risha_call
Generic caller for any Swagger operation.
Input example:
{
"operationId": "auth_me"
}
Generation request example:
{
"operationId": "generation-requests_create",
"body": {
"capability": 21,
"title": "MCP smoke test",
"prompt_data": {
"prompt": "a red apple on a white table",
"resolution": "0.5k",
"aspect_ratio": "1:1"
}
}
}
risha_create_generation
Creates any generation request and optionally polls until it reaches a terminal state.
Input example:
{
"capability": 21,
"title": "MCP image test",
"prompt_data": {
"prompt": "a red apple on a white table",
"resolution": "0.5k",
"aspect_ratio": "1:1"
},
"wait": true,
"timeoutSeconds": 300,
"pollSeconds": 5
}
risha_generate_image
Convenience text-to-image tool. Defaults to capability 21, 0.5k, 1:1.
Input example:
{
"prompt": "a cinematic photo of a red apple on a white table",
"resolution": "0.5k",
"aspect_ratio": "1:1",
"timeoutSeconds": 300,
"pollSeconds": 5
}
risha_resolve_media_url
Converts a private authenticated Risha media URL into a signed public CDN URL.
Input example:
{
"url": "https://adminxcore-api.risha.ai/api/media/asset/4c6cbe1c-7696-4c13-8790-6456e5d64698/?f=webp&h=600&q=85&w=600"
}
Use with Codex
Codex reads MCP servers from ~/.codex/config.toml.
Add this block:
[mcp_servers.risha]
command = "node"
args = ["/absolute/path/to/risha-mcp-server/src/index.js"]
startup_timeout_sec = 60
[mcp_servers.risha.env]
RISHA_EMAIL = "you@example.com"
RISHA_PASSWORD = "your-password"
For the local project path created by this agent:
[mcp_servers.risha]
command = "node"
args = ["/Users/amirhamdani/Documents/risha-mcp-server/src/index.js"]
startup_timeout_sec = 60
[mcp_servers.risha.env]
RISHA_EMAIL = "you@example.com"
RISHA_PASSWORD = "your-password"
Restart Codex after editing the config.
Codex test prompts
Use the Risha MCP server and run risha_api_info.
Use the Risha MCP server and show my Risha credit balance.
Use the Risha MCP server and list image capabilities.
Use Risha MCP to generate a small image of a red apple on a white table.
Use with Claude Code
Claude Code supports MCP servers over stdio. You can add the server using either the CLI or JSON configuration.
Option A: Claude Code CLI
From the project directory:
claude mcp add risha \
--env RISHA_EMAIL="you@example.com" \
--env RISHA_PASSWORD="your-password" \
-- node /absolute/path/to/risha-mcp-server/src/index.js
Then restart Claude Code or start a new session.
Test prompts:
Use the risha MCP server and run risha_api_info.
Use the risha MCP server to show my credit balance.
Use the risha MCP server to generate a small image of a robot holding a camera.
Option B: Claude MCP JSON config
If your Claude Code setup uses JSON MCP configuration, add:
{
"mcpServers": {
"risha": {
"command": "node",
"args": ["/absolute/path/to/risha-mcp-server/src/index.js"],
"env": {
"RISHA_EMAIL": "you@example.com",
"RISHA_PASSWORD": "your-password"
}
}
}
}
Use with Claude Desktop
Add this to your Claude Desktop MCP config:
{
"mcpServers": {
"risha": {
"command": "node",
"args": ["/absolute/path/to/risha-mcp-server/src/index.js"],
"env": {
"RISHA_EMAIL": "you@example.com",
"RISHA_PASSWORD": "your-password"
}
}
}
}
Restart Claude Desktop after editing the config.
Test with MCP Inspector
cd risha-mcp-server
npx @modelcontextprotocol/inspector \
env RISHA_EMAIL="you@example.com" RISHA_PASSWORD="your-password" \
node src/index.js
Open the Inspector URL printed in the terminal and try:
risha_api_inforisha_credit_balancerisha_capabilitiesrisha_generate_image
Typical workflow for agents
- Call
risha_api_infoto confirm authentication and startup state. - Call
risha_credit_balanceto check credits. - Call
risha_capabilitiesto pick a capability. - Use
risha_generate_imagefor simple image generation, orrisha_create_generationfor arbitrary capabilities. - Use returned public CDN URLs directly. Private media URLs are resolved automatically when possible.
Notes on generation time
Image/video generation is asynchronous. The MCP server can create a request immediately, but final completion depends on provider queue and model runtime. risha_generate_image and risha_create_generation poll until completion or timeout.
Default polling values:
timeoutSeconds:300pollSeconds:5
Development
npm install
node --check src/index.js
npm start
Project layout:
risha-mcp-server/
src/
index.js # MCP server implementation
swagger.json # Risha Swagger/OpenAPI document
package.json
README.md
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.