Soma

Drop-in RMCP runtime for provider-backed MCP tools, prompts, resources, and agent capabilities.

Soma is an MCP server published as the npm package soma-rmcp at version 0.4.7 by ai.dinglebear. It functions as a drop-in RMCP runtime, meaning it handles the runtime layer for MCP tools, prompts, resources, and agent capabilities that are backed by external providers rather than implemented inline.

The server runs over stdio transport and is configured entirely through environment variables. SOMA_BIN points to the Soma binary, SOMA_HOME sets the working home directory, SOMA_PROVIDER_DIR specifies where provider definitions are loaded from, SOMA_API_URL and SOMA_API_KEY configure the upstream provider API endpoint and authentication, and RUST_LOG controls logging verbosity — suggesting the runtime itself is implemented in Rust despite being distributed via npm.

Because no specific tools are registered in this record, the concrete capabilities an agent gains depend entirely on the providers configured at runtime via SOMA_PROVIDER_DIR and the connected API. Soma acts as the hosting shell rather than a fixed-function server: it loads and exposes whatever tools, prompts, and resources the configured providers define. This makes it suitable when you need a consistent runtime container for dynamically-defined MCP capabilities rather than a hard-coded set of integrations.

Soma is not the right choice when you need a server with a known, fixed set of tools out of the box, when your environment cannot support stdio transport, or when you have no provider configuration to supply.

Use cases

  • Host dynamically-defined MCP tools loaded from a provider directory
  • Connect an AI agent to a provider-backed API endpoint for runtime capability resolution
  • Deploy a consistent RMCP runtime shell across multiple provider configurations
  • Control MCP server logging verbosity via RUST_LOG for debugging provider integrations
  • Swap provider configurations without changing the runtime container

When to use it

  • When you need a generic RMCP runtime that loads capabilities from external provider definitions
  • When your MCP toolset is defined by a provider API rather than statically compiled in
  • When all communication happens over stdio and environment-variable-based configuration is acceptable

When not to use it

  • When you need a server that ships with a predefined, documented set of tools — Soma exposes no built-in tools
  • When your agent runtime does not support stdio transport
  • When you cannot provide SOMA_API_URL, SOMA_API_KEY, and a valid SOMA_PROVIDER_DIR at deploy time
  • When you need a server with a published open-source license — none is specified in this record