Soma MCP server
{
"mcpServers": {
"dinglebear-soma": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/dinglebear-ai/soma:0.10.0"
],
"env": {
"SOMA_MCP_TOKEN": "<soma_mcp_token>",
"SOMA_API_URL": "https://...",
"SOMA_API_KEY": "<soma_api_key>",
"SOMA_MCP_PUBLIC_URL": "https://...",
"SOMA_MCP_GOOGLE_CLIENT_ID": "<soma_mcp_google_client_id>",
"SOMA_MCP_GOOGLE_CLIENT_SECRET": "<soma_mcp_google_client_secret>"
}
}
}
}{
"mcpServers": {
"dinglebear-soma": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/dinglebear-ai/soma:0.10.0"
],
"env": {
"SOMA_MCP_TOKEN": "<soma_mcp_token>",
"SOMA_API_URL": "https://...",
"SOMA_API_KEY": "<soma_api_key>",
"SOMA_MCP_PUBLIC_URL": "https://...",
"SOMA_MCP_GOOGLE_CLIENT_ID": "<soma_mcp_google_client_id>",
"SOMA_MCP_GOOGLE_CLIENT_SECRET": "<soma_mcp_google_client_secret>"
}
}
}
}{
"mcpServers": {
"dinglebear-soma": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/dinglebear-ai/soma:0.10.0"
],
"env": {
"SOMA_MCP_TOKEN": "<soma_mcp_token>",
"SOMA_API_URL": "https://...",
"SOMA_API_KEY": "<soma_api_key>",
"SOMA_MCP_PUBLIC_URL": "https://...",
"SOMA_MCP_GOOGLE_CLIENT_ID": "<soma_mcp_google_client_id>",
"SOMA_MCP_GOOGLE_CLIENT_SECRET": "<soma_mcp_google_client_secret>"
}
}
}
}{
"servers": {
"dinglebear-soma": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/dinglebear-ai/soma:0.10.0"
],
"env": {
"SOMA_MCP_TOKEN": "${input:soma_mcp_token}",
"SOMA_API_URL": "${input:soma_api_url}",
"SOMA_API_KEY": "${input:soma_api_key}",
"SOMA_MCP_PUBLIC_URL": "${input:soma_mcp_public_url}",
"SOMA_MCP_GOOGLE_CLIENT_ID": "${input:soma_mcp_google_client_id}",
"SOMA_MCP_GOOGLE_CLIENT_SECRET": "${input:soma_mcp_google_client_secret}"
}
}
},
"inputs": [
{
"id": "soma_mcp_token",
"type": "promptString",
"description": "Soma mcp token",
"password": true
},
{
"id": "soma_api_url",
"type": "promptString",
"description": "Soma api url",
"password": true
},
{
"id": "soma_api_key",
"type": "promptString",
"description": "Soma api key",
"password": true
},
{
"id": "soma_mcp_public_url",
"type": "promptString",
"description": "Soma mcp public url",
"password": true
},
{
"id": "soma_mcp_google_client_id",
"type": "promptString",
"description": "Soma mcp google client id",
"password": true
},
{
"id": "soma_mcp_google_client_secret",
"type": "promptString",
"description": "Soma mcp google client secret",
"password": true
}
]
}{
"mcpServers": {
"dinglebear-soma": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/dinglebear-ai/soma:0.10.0"
],
"env": {
"SOMA_MCP_TOKEN": "<soma_mcp_token>",
"SOMA_API_URL": "https://...",
"SOMA_API_KEY": "<soma_api_key>",
"SOMA_MCP_PUBLIC_URL": "https://...",
"SOMA_MCP_GOOGLE_CLIENT_ID": "<soma_mcp_google_client_id>",
"SOMA_MCP_GOOGLE_CLIENT_SECRET": "<soma_mcp_google_client_secret>"
}
}
}
}file .mcp.json (in your project root)file claude_desktop_config.jsonfile ~/.cursor/mcp.jsonfile .vscode/mcp.jsonfile ~/.codeium/windsurf/mcp_config.jsonversion 0.10.0
What it does
Soma is an RMCP runtime that serves agent capabilities through MCP, CLI, REST, and HTTP interfaces. It loads provider definitions from files or Rust code and exposes them across multiple transport layers with built-in auth, validation, and observability.
- Load provider capabilities from JSON, TypeScript, Python, WebAssembly, or Markdown files and expose them as MCP tools, CLI commands, and REST routes.
- Run a single MCP tool that dispatches to multiple providers, keeping tool lists compact while maintaining full capability discovery.
- Deploy a pre-built agent runtime with authentication, destructive-action confirmation, logging, and metrics without writing custom Rust code.
Tools this server exposes
| Tool | Does |
|---|---|
| soma | Single MCP tool that dispatches actions to loaded providers using action payloads. |
Before you enable it
An MCP server runs with whatever access you give it. Start with a development account rather than production, and check which tools the server exposes before you let an agent call them unattended.