Soma MCP Server
Provides C++ code verification by executing tests in a sandbox and issuing signed certificates, and can generate verified C++ code.
Supports verifying JavaScript code by running it against tests in a sandbox with signed verdicts, and generating certified JavaScript code for tasks.
Supports PHP code verification via sandboxed test execution with signed verdicts, and generation of certified PHP code.
Allows execution-verified testing for Python: run Python code against tests in an isolated sandbox, get PASS/FAIL verdicts with signed certificates, and generate verified Python code from prompts.
Enables Ruby code verification through sandboxed test execution with signed certificates, and can generate verified Ruby code from task descriptions.
Allows Rust code to be verified by running it against tests in an isolated sandbox, outputting signed certificates, and supports generating verified Rust code.
Provides test-execution verification for TypeScript code, including sandboxed execution and signed certificates, as well as generation of verified TypeScript code.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Soma MCP ServerGenerate verified Python code for a function that returns the larger of two numbers."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Soma MCP Server
Give your AI agent the one thing it can't do for itself: actually run code against tests and prove it passed.
Soma is an execution-verified code service. This MCP server exposes two tools:
soma_verify_code— run candidate code against tests inside an isolated sandbox; get a PASS/FAIL verdict plus a signed, offline-checkable certificate (Ed25519). Use it to independently confirm code works before trusting it.soma_generate_verified_code— ask Soma to write code for a task; when the task is verifiable, the returned code has already been executed against derived tests, with a certificate attached.
15+ languages are supported for verification (Python, JavaScript/TypeScript, Go, C/C++, Java, Rust, Ruby, PHP, Bash, and more).
Install
Requires Node.js 18+. Runs over stdio.
Add to your MCP client config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"soma": {
"command": "npx",
"args": ["-y", "soma-verify-mcp"],
"env": {
"SOMA_API_KEY": "YOUR_SOMA_KEY"
}
}
}
}Claude Desktop:
Settings → Developer → Edit Config, add the block above, restart.Cursor:
Settings → MCP → Add, or drop the same block in~/.cursor/mcp.json.
Related MCP server: AI Workbench MCP
Configuration
Env var | Required | Default | Purpose |
| yes | — | Your Soma API key. |
| no |
| Soma API base URL. |
| no |
| Per-request timeout. |
Get a free preview key: contact centrum.arvind@gmail.com (free tier during the preview).
Tools
soma_verify_code
Run code against tests and return a signed verdict.
language(string) — e.g.python,javascript,go,rust.code(string) — the complete source to verify.tests(array) — one of:function mode (default):
[{ "input": [arg1, arg2], "expected": value }]plusentrypoint(the function name).stdio mode: set
mode: "stdio"and[{ "stdin": "...", "expected_stdout": "..." }]; no entrypoint.
entrypoint(string, optional) — function name for function mode.mode("function"|"stdio", optional).
Returns: verdict, tests_passed, tests_total, and a signature / public_key / sig_alg you can check offline.
soma_generate_verified_code
Get code for a task, executed against derived tests before it's returned.
prompt(string) — the coding task. Include concrete input/output examples (e.g.>>> f(2) == 4) so the result is verifiable rather than best-effort.max_tokens(int, optional, default 1500).
Returns: the code, certified (bool), and a certificate (verdict, tests_passed, tests_total) when verification passed. If a task isn't verifiable, output is returned uncertified and clearly labeled — never a false "verified".
What the certificate means
A certificate attests that the listed tests passed inside an isolated sandbox at generation time. It is signed (Ed25519) and checkable offline against the returned public key. It is not a warranty of fitness for any purpose — review output before production use.
Privacy
No training on your prompts. See the Soma Privacy & Data Policy at ${SOMA_BASE_URL}/privacy.
License
MIT.
Available Tools
2 toolssoma_generate_verified_codeGenerate execution-verified codeARead-only
Ask Soma to write code for a task. When the task is verifiable, the returned code has been executed against derived tests in an isolated sandbox before it is returned, and a certificate (verdict + tests passed) is attached. Include concrete examples in the prompt (e.g. doctest-style '>>> f(2) == 4') to make the result verifiable rather than best-effort.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The coding task. Include example input/output pairs to enable verification. | |
| max_tokens | No | Maximum output tokens (default 1500). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe, non-destructive operation. The description adds valuable behavioral context: the code is executed in an isolated sandbox, a certificate with verdict and tests passed is attached, and the verification is conditional on task verifiability. This goes beyond the annotations and provides important expectations about the output and process.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It front-loads the core purpose, then explains the verification process and provides actionable advice on prompt construction. Every sentence adds value, and there is no fluff or repetition. The structure is logical: what it does, how it works, and how to use it effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (verification, sandbox, certificate) and the absence of an output schema, the description covers the essential aspects: what the tool does, how verification works, and how to improve results. It does not detail the certificate format or the exact conditions for verifiability, but these are not critical for an agent to invoke the tool correctly. The description is complete enough for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (prompt and max_tokens) are already documented in the schema. The description adds guidance on how to use the prompt parameter (include concrete examples) and mentions the default for max_tokens, but this is largely redundant with the schema. The description does not add significant new meaning beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Ask Soma to write code for a task.' It specifies the key differentiator—execution-verified code with a certificate—and distinguishes it from a best-effort generation. The verb 'write code' and resource 'task' are specific, and the mention of verification sets it apart from the sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use this tool: when the task is verifiable, and it advises including concrete examples in the prompt to enable verification. It implies that for non-verifiable tasks, this tool may not be ideal, but it does not explicitly name the sibling tool or state when to use soma_verify_code instead. The guidance is strong but lacks an explicit exclusion or alternative mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_verify_codeVerify code against tests (signed certificate)ARead-onlyIdempotent
Run candidate code against tests inside an isolated sandbox and return a PASS/FAIL verdict with a signed, offline-checkable certificate (Ed25519). Use this to independently confirm that code actually works before trusting it.
Two test shapes:
function mode (default): tests = [{"input": [arg1, arg2], "expected": value}] and provide 'entrypoint' (the function name).
stdio mode: set mode='stdio' and tests = [{"stdin": "...", "expected_stdout": "..."}]; no entrypoint needed.
Supported languages include python, javascript, typescript, go, c, cpp, java, rust, ruby, php, bash and more.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The complete source code to verify. | |
| mode | No | 'function' (default) or 'stdio'. | |
| tests | Yes | function mode: [{input:[args], expected: value}]. stdio mode: [{stdin:'...', expected_stdout:'...'}]. | |
| language | Yes | Programming language, e.g. 'python', 'javascript', 'go', 'rust'. | |
| entrypoint | No | Function name to call (required for function mode; omit for stdio mode). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals the isolated sandbox behavior and the signed certificate output, adding value beyond the annotations. It does not specify sandbox limits, timeouts, or what happens on ambiguous test results, but the key isolation and non-destructive nature are explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-organized with clear separation of modes, languages, and purpose. Slightly verbose but every line adds value. Could be tightened, but readability is strong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers when to use (independent confirmation), the two modes, supported languages, and the output certificate nature. Missing: no example usage, no details on error handling or timeouts, and output format isn't specified, but the description is otherwise informative enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents all five parameters with types and required status, and the description adds concrete examples for tests structures in both modes. Entry point requirement is clarified. Coverage is 100% and the semantics are unambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool verifies code against tests in a sandbox and returns a signed certificateat. Uses specific verbs (verify, return PASS/FAIL) and names two precise modes. Though siblings weren't supplied for comparison, it self-defines scope well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: 'Use this to independently confirm that code actually works before trusting it.' Describes two modes (function and stdio) with examples. Does not explicitly list when-not-to-use or alternatives, but the context is enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
soma_generate_verified_code - First observed
soma_verify_code
TDQS
The two tools have clearly distinct purposes: one verifies provided code, the other generates code with verification. There is no overlap or confusion between them.
Both tools follow the identical pattern of 'soma_' prefix plus a verb_noun structure: verify_code and generate_verified_code. Naming is uniform and predictable.
With only 2 tools, the server is minimal but focused on a narrow purpose. While the count feels thin for a general toolkit, it is reasonable for a specialized verification service. It sits at the borderline.
The server covers the core workflows of code verification and generation with verification. Minor gaps exist, such as no ability to fetch or check certificate details after generation, but the primary lifecycle is covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Execute code in 8 languages (Python, JS, TS, Go, Java, C++, C, Bash) in gVisor sandboxes.
Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.
Build Apps and run code in 30 languages — sandboxed, with persistent sessions for agent loops.
Hand off AI work with a signed Verification Receipt — an independent verifier proves it runs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables secure cloud-based execution of code across 14+ programming languages within a sandboxed environment. It supports file management, standard input/output handling, and automatic generation of visual artifacts like plots and charts.MIT
- AlicenseCqualityCmaintenanceEnables acceptance gates for AI coding-agent runs by recording evidence, running deterministic validation, applying a quality gate, and rendering auditable outcomes.7Apache 2.0
- AlicenseNot gradedqualityCmaintenanceProvides isolated sandbox environments for AI agents to execute code securely, generating signed receipts for every execution to ensure auditability and trust.204MIT
- FlicenseNot gradedqualityDmaintenanceEnables spec-driven development acceptance gate with structured receipts, audit logs, and reviewer-ready evidence.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/medianemi-beep/soma-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server