MCP Tools — API Reference
Package: dodil.ignite.v1 · Service: ComputeService
An app can be published as an MCP tool so AI agents can discover and call it. Opt in by setting mcp_enabled = true on the app (via CreateApp or UpdateAppConfig, or dodil ignite app create --mcp-enabled) — together with a clear description and an input_schema, which become the tool’s description and parameter schema. After the next publish, the app surfaces as a tool named `ignite_{org}_{name}` (typically within ~30 seconds).
These RPCs read those tool definitions. They are API-only — there is no ignite mcp CLI command.
gRPC reaches every method at dodil.ignite.v1.ComputeService/<Method> on $IGNITE_GRPC; the HTTP gateway mirrors each one. See Conventions → Using gRPC for setup.
| RPC | HTTP |
|---|---|
GetMcpToolDefinition | GET /v1/ignite/app/{organization_name}/{app_name}/mcp |
ListMcpTools | GET /v1/ignite/app/{organization_name}/mcp/tools |
McpToolDefinition
message McpToolDefinition {
string name = 1; // "ignite_{org}_{name}"
string description = 2; // from the app's description
string input_schema = 3; // JSON Schema for input (the tool's parameters)
string output_schema = 4; // JSON Schema for output
string app_id = 5; // "org/name"
uint32 version = 6; // active version
string runtime = 7; // "python" | "rust-native" | ...
}GetMcpToolDefinition
The MCP tool definition for one app — name, description, and input/output schemas as an agent sees them.
Request
HTTP
curl -sS "https://api.dev.dodil.io/v1/ignite/app/acme-corp/search-knowledge-base/mcp" \
-H "Authorization: Bearer $DODIL_TOKEN"Response
HTTP
{
"tool": {
"name": "ignite_acme-corp_search-knowledge-base",
"description": "Searches the knowledge base and returns relevant results",
"inputSchema": "{\"type\":\"object\",\"properties\":{\"query\":{\"type\":\"string\"}},\"required\":[\"query\"]}",
"outputSchema": "{\"type\":\"object\",\"properties\":{\"results\":{\"type\":\"array\"}}}",
"appId": "acme-corp/search-knowledge-base",
"version": 3,
"runtime": "python"
}
}A
404here usually means the app isn’tmcp_enabled, or it has no published version yet. Setmcp_enabled+ adescription+input_schema, then publish.
ListMcpTools
All MCP-enabled apps in an org, as tool definitions.
Request
HTTP
curl -sS "https://api.dev.dodil.io/v1/ignite/app/acme-corp/mcp/tools" \
-H "Authorization: Bearer $DODIL_TOKEN"Response
ListMcpToolsResponse { repeated McpToolDefinition tools = 1; } — one McpToolDefinition per MCP-enabled app.
See also
- Catalog — browse apps + models
- Apps → CreateApp — set
mcp_enabled+ schemas - Recipes → Expose an app as an MCP tool — end-to-end
grpcurlreference — flags + reflection fallbacks