OmicVerse MCP Reference¶
This page is the compact technical reference for server flags, tool counts, return envelopes, and common error patterns.
CLI Flags¶
Flag |
Default |
Description |
|---|---|---|
|
|
Rollout phase(s) to expose |
|
|
|
|
|
Session identifier |
|
tempdir |
Persistence directory for |
|
|
Max AnnData handles |
|
|
Max artifact handles |
|
|
HTTP bind host |
|
|
HTTP bind port |
|
|
HTTP route path |
|
— |
Show version |
Current Tool Counts¶
Actual counts from the current server:
Phase Selection |
Total Tools |
|---|---|
|
40 |
|
53 |
|
58 |
Breakdown:
P0: 15 analysis toolsP0.5: 13 additional analysis toolsP2: 5 advanced analysis toolsMeta tools: 25
Response Envelope¶
Most tool calls return a structure shaped like:
{
"ok": true,
"tool_name": "ov.utils.read",
"summary": "Loaded AnnData",
"outputs": [],
"state_updates": {},
"warnings": []
}
Failures use:
{
"ok": false,
"error_code": "missing_data_requirements",
"message": "Missing required data",
"details": {},
"suggested_next_tools": []
}
JSON-RPC Examples¶
tools/list¶
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}
tools/call¶
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "ov.utils.read",
"arguments": {
"path": "pbmc3k.h5ad"
}
}
}
You do not need to send raw JSON-RPC manually when using Claude Code or Claude Desktop.
Common Output Types¶
object_ref: usuallyadata_idorinstance_idjson: structured table or metadataimage: plotting result
Typical Error Codes¶
Error Code |
Meaning |
|---|---|
|
|
|
prerequisite data such as |
|
tool exists but its dependencies or rollout state block execution |
|
the underlying tool raised an error |
Generic stdio Client Example¶
import subprocess
import json
proc = subprocess.Popen(
["python", "-m", "omicverse.mcp"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
)
request = {"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}
proc.stdin.write(json.dumps(request) + "\n")
proc.stdin.flush()
response = json.loads(proc.stdout.readline())
print(f"Available tools: {len(response['result']['tools'])}")
call_request = {
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "ov.utils.read",
"arguments": {"path": "pbmc3k.h5ad"},
},
}
proc.stdin.write(json.dumps(call_request) + "\n")
proc.stdin.flush()
print(json.loads(proc.stdout.readline()))
Useful Meta Tools¶
ov.list_toolsov.describe_toolov.get_sessionov.list_handlesov.get_traceov.list_tracesov.get_health