Soma (public demo)
Server Details
Public demo node of Soma, an open protocol for agent-to-agent work: envelopes with a hard token budget, a mandate, a price and an Ed25519 signature, plus three-tier memory, reputation from signed receipts and a conformance suite any implementation can pass. Rate-limited, nothing private.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 17 tools
Most tools target clearly distinct operations: envelope lifecycle (send/inbox/claim/complete), facts (remember/recall/reflect), cold storage (put/get), and identity (register/nonce/verify). A few boundaries blur slightly — soma_inbox already checks signatures that soma_verify also checks, and soma_agents vs soma_route both surface agents — but the descriptions make the listing-vs-matching distinction clear enough.
All names use a uniform soma_ prefix with snake_case, so the set reads as one coherent namespace. Minor deviation: most names are verbs (claim, send, remember) but several are nouns (agents, inbox, stats, nonce), which slightly breaks the verb_noun expectation.
17 tools is on the heavier side but the domain (agent hub with envelopes, facts, cold artifacts, identity, reputation) genuinely justifies each one. No obvious redundant tools; cold_get/cold_put pairs are minimal rather than padded.
Envelope lifecycle (send -> inbox -> claim -> complete), fact lifecycle (remember -> recall -> reflect -> export), identity (nonce -> register -> verify), and routing/reputation are all covered. Minor gaps: no forget/delete for facts, no cold-delete or envelope cancel/reject, and no way to update or deregister an agent.
Available Tools
17 toolssoma_agentsBInspect
Реестр агентов: кто зарегистрирован, что умеет, сколько стоит. Публичная витрина доверия.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden. 'Публичная витрина доверия' usefully signals that the data is public and trust-oriented, implying a read-only, unauthenticated access pattern, but nothing is said about scope, result size, pagination, or freshness of the registry.
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?
Two terse fragments that front-load the resource and then the content, with no filler. It is perhaps slightly too terse to be self-sufficient, but nothing is wasted.
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?
With no inputs and an output schema present, the description only needs to convey what the tool is for and roughly what it yields — both are covered. The one omission is how it relates to the registration and reputation siblings.
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 tool takes zero parameters and the schema is empty, so there is nothing for the description to clarify at parameter level. Baseline 4 applies.
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 names a specific resource — a registry of agents — and enumerates what it exposes (who is registered, capabilities, price). That is clearly distinct from the write-side sibling soma_register, although the contrast is only implicit rather than stated.
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?
No indication of when to call this versus soma_register, soma_reputation, or soma_stats, all of which plausibly overlap with 'who is registered and what they can do'. The agent must infer the choice from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_claimCInspect
Забрать конверт из очереди (эксклюзивно) и получить контекст под бюджет. Если у работы назначена цена — нужна квитанция.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| agent | Yes | ||
| payment | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose two genuinely useful behavioral traits: the claim is exclusive ('эксклюзивно'), implying a lock/removal from the queue, and payment may be required for priced work. However it says nothing about permissions, failure modes, whether a claim can be released, or what happens on a duplicate claim.
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?
Two compact sentences with the core action front-loaded and no filler. It is efficient, though the phrase 'получить контекст под бюджет' is cryptic enough that brevity shades into under-specification.
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?
An output schema exists, so return values need not be described, but for a mutating, exclusive-claim tool with zero annotations and 0% parameter coverage the description is too thin. It omits the semantics of id/agent, error conditions, and the release/lock lifecycle an agent would need.
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 0%, so the description must compensate, and it only partially does: 'квитанция' maps loosely to the optional payment parameter and gives the condition under which it is needed. The required id and agent parameters are never explained, leaving half the contract undocumented.
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 states a specific verb and resource — 'Забрать конверт из очереди' (claim an envelope from the queue) — plus the exclusivity and context-retrieval outcome, so an agent can tell it apart from list-oriented siblings like soma_inbox. It does not explicitly name any sibling to sharpen the boundary, keeping it just short of a 5.
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?
There is no guidance on when to call this versus alternatives such as soma_inbox (peek) or soma_route. The only conditional ('if the work has a price, a receipt is required') is a parameter-level note about payment, not when/when-not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_cold_getBInspect
Достать артефакт по ссылке sha256; содержимое сверяется с хешем.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does deliver one real behavioral fact: the content is verified against the hash, so a corrupted or tampered artifact should fail. It omits what happens on mismatch (error vs. null), any auth or size constraints, and any rate limits, leaving meaningful gaps for a mutation-free but unannotated tool.
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?
A single compact sentence with the retrieval verb and the integrity-check behavior front-loaded; nothing is wasted. The extreme terseness is the source of the gaps scored elsewhere, but structurally it is efficient.
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?
An output schema exists, so return values need not be explained, but for a tool with zero annotations and an undocumented parameter the description is thin: it does not say what an 'artifact' is, how a hash mismatch surfaces, or what access is required.
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 coverage is 0% and the single 'ref' property has no description, so the phrase 'по ссылке sha256' is the only thing telling the agent that ref is a SHA-256 digest. That is genuine added value, but it never states the expected encoding (hex vs. prefixed) or validation behavior.
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 Russian sentence names a specific verb ('Достать' = fetch) and resource ('артефакт по ссылке sha256'), which clearly separates it from the write-side sibling soma_cold_put. It stops short of explicitly naming that sibling, so it is clear but not maximally differentiated.
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 only implies when the tool is used (when you hold a sha256 ref) and offers no explicit when-not conditions, prerequisites, or alternatives such as soma_cold_put. An agent must infer the pairing with the sibling on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_cold_putBInspect
Положить большой артефакт в холодный ярус. Возвращает ссылку sha256 — тело не жжёт контекст.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that a sha256 reference is returned and that the body is kept out of context, but says nothing about permissions, overwrite semantics, or failure modes for a write operation.
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?
Two short sentences, front-loaded with the action and followed by the key behavioral fact. Nothing is padded.
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?
An output schema exists, so return-value explanation is not required, and the description is adequate for a one-parameter write tool. However, with no annotations and an undocumented parameter, more context on side effects or constraints would help an agent call it safely.
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 single parameter 'text' has 0% schema description coverage, so the description must compensate. It only implies the argument holds a large artifact body; it adds no detail on format, size limits, or encoding.
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?
States a specific verb+resource: placing a large artifact into the cold tier. The contrast with soma_cold_get (store vs retrieve) is inferable from the name and the 'large artifact' framing, though the description never names the sibling explicitly.
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?
'Большой артефакт' implies when this tool is preferred over in-context storage like soma_remember, but there is no explicit when/when-not statement and no reference to any alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_completeCInspect
Закрыть конверт результатом работы.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| agent | No | ||
| result | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full behavioral burden. It implies a state-changing completion ('close') and that a result is supplied, but omits permissions, side effects, reversibility, or any rate limits.
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?
A single short sentence with no filler, but it is under-specified for a tool with three parameters and no schema descriptions. It is front-loaded yet too terse to earn its place as sufficient guidance.
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 a three-parameter mutation tool with no annotations and 0% schema coverage, the description is far too sparse. Although an output schema exists, the description still fails to cover parameter semantics, usage context, or behavioral traits.
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 0% for all three parameters (id, agent, result). The description only echoes 'result' without explaining its format or the roles of id and agent, adding no meaning beyond the schema.
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?
States a specific verb ('Закрыть' / close) and resource ('конверт' / envelope) plus the instrument ('результатом работы' / with the work result). It does not differentiate from siblings like soma_send or soma_route, but the action is clear enough for an agent in this ecosystem.
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 no when-to-use guidance, no prerequisites, and does not mention any alternative tools such as soma_send or soma_route. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_exportBInspect
Выгрузить все факты и конверты узла одним JSON — право выхода без замка и без удаления за вами.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose real behavioral traits: it is non-destructive ("без удаления за вами") and takes no lock ("без замка"), which matters on a shared node. It says nothing about permissions, rate limits, or what happens when the export exceeds the default limit, so the safety profile is only partly covered.
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?
One tightly packed sentence with the verb and scope front-loaded and no filler. The trailing clause is somewhat figurative ("право выхода без замка"), which costs a little clarity but still conveys concrete guarantees.
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?
An output schema exists, so the return shape needn't be described. However, for a one-parameter bulk-export tool with no annotations, the description should address truncation/limit behavior and completeness guarantees; those gaps keep it merely adequate.
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 single `limit` parameter has 0% schema description coverage and a default of 5000 that the description never mentions. For an "export ALL facts" tool, whether limit silently truncates the export is the most consequential semantic detail, and it is left entirely unexplained.
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?
"Выгрузить все факты и конверты узла одним JSON" gives a specific verb (export/dump) and a specific resource scope (all facts and envelopes of the node, as a single JSON document). That distinguishes it in spirit from point-lookup siblings like soma_recall or soma_cold_get, though no sibling is named explicitly.
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 phrase "право выхода" (right of exit) implies the backup/portability/migration scenario, so usage is inferable. But there is no explicit when-to-use, no when-not, and no pointer to alternatives such as soma_recall for targeted retrieval versus this bulk dump.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_inboxDInspect
Что ждёт агента: конверты, проверка подписи и контекст, собранный под бюджет токенов.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It hints that envelopes involve signature verification and that context is assembled under a token budget, which is useful behavioral color, but it does not state read-only vs. mutating semantics, auth requirements, pagination, or side effects.
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 single sentence is short, but it is under-specified rather than concise: it spends its words on an oblique framing instead of stating the tool's action or scope.
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?
An output schema exists, so return values need not be re-explained, but for a tool with two undocumented parameters and no annotations the description leaves the agent unable to determine purpose, usage, or parameter behavior. It is far short of complete.
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 0% for both parameters ('agent', 'limit'), and the description adds no information about what these parameters mean or how they shape the result. Nothing compensates for the undocumented schema.
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 describes what the agent will receive (envelopes, signature verification, token-budgeted context) rather than stating what the tool does or returns as an action on the 'inbox'. No clear verb+resource framing, and it does not distinguish soma_inbox from siblings like soma_route or soma_send.
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?
There is no indication of when to call this tool, when not to, or which sibling to use instead. The phrase 'what awaits the agent' implies a pull/inspect operation but never states the condition for using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_nonceBInspect
Одноразовый нонс для регистрации внешнего агента: доказательство владения ключом.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two real behavioral traits: the nonce is single-use ('одноразовый') and it functions as proof of key ownership. It does not state the nonce's lifetime, whether it is bound to the caller's identity, or what happens if it is reused or expires, which matters for a security-primitive tool.
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?
One compact sentence that front-loads the resource and then its purpose; there is no filler. The colon construction is slightly elliptical but readable.
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?
An output schema exists, so the returned nonce need not be explained, and the tool is simple with a single parameter. However, with no annotations and an undocumented parameter, the definition still leaves the agent without the lifecycle details (expiry, next step) needed to use the nonce correctly in the registration flow.
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 0%, so the description must compensate for the undocumented 'agent' parameter, and it does not. It never clarifies whether 'agent' is an identifier, a public key, or a name, leaving the sole input ambiguous.
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 names a specific resource (a one-time nonce) and its role (proof of key ownership during external-agent registration), which is far more than a restatement of the name. It does not explicitly distinguish itself from the closely related siblings soma_register, soma_claim, or soma_verify, so an agent must infer the sequencing.
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 phrase 'for registering an external agent' implies the context in which this tool is called, but there is no explicit when-to-use, no statement of prerequisites, and no mention of how the nonce relates to soma_register or soma_claim. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_recallBInspect
Найти факты: полнотекстовый поиск по смыслу, ранжирование по важности и свежести.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that results are ranked by importance and freshness and that search is semantic/full-text, but it does not state that the operation is read-only, how many results are returned by default (k), or any limits.
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?
A single front-loaded sentence with no filler. The purpose and ranking behavior are stated immediately, and every phrase earns its place.
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?
An output schema exists, so return values need not be described, and the tool is simple with only two parameters. However, the absence of annotations means the description should cover read-only semantics and parameter meaning, which it does not.
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 0% and neither parameter is explained in the description. "Поиск" loosely implies a query string, but the k parameter (result count, default 10) is completely undocumented, so the description fails to compensate for the empty schema.
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?
States a specific verb and resource ("Найти факты") plus the retrieval method ("полнотекстовый поиск по смыслу"), so an agent knows this is a semantic fact-search tool. It does not differentiate itself from siblings like soma_cold_get or soma_inbox, which keeps it from a 5.
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?
There is no guidance on when to use this tool versus alternatives such as soma_cold_get or soma_inbox, and no prerequisites or exclusions are given. The agent must infer the usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_reflectCInspect
Собрать наблюдение по запросу: связка фактов с источниками и рёбрами derived_from. Ответ указывает, из чего выведен.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | ||
| save | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. Critically, it does not reveal that the tool writes to the store by default (save defaults to true in the schema), nor does it describe permissions, side effects, or reversibility — significant omissions for what is apparently a mutating operation.
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?
A single compact sentence with the core action front-loaded and no filler. It is efficient, though brevity here borders on under-specification rather than genuine economy.
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?
An output schema exists, so return values need not be explained, but the description leaves major gaps for a 3-parameter tool with zero annotation coverage: the semantics of k and save, and the default write behavior, are all missing.
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 0%, so the description must compensate. It only maps to the 'query' parameter implicitly; the 'k' (result count, default 8) and 'save' (persistence, default true) parameters are entirely undocumented in both schema and description, leaving two of three parameters unexplained.
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 gives a specific verb+resource ('Собрать наблюдение по запросу') and adds the derived_from edge-linking detail, which hints at what the tool produces. However, it never distinguishes this from close siblings like soma_recall, soma_claim, or soma_verify, so an agent cannot confidently separate it from related memory tools.
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?
There is no guidance on when to use this versus soma_recall, soma_claim, or soma_remember — all plausible alternatives in the sibling list. The 'по запросу' phrasing implies a query-driven operation but no conditions, prerequisites, or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_registerBInspect
Зарегистрировать внешнего агента: имя, публичный ключ Ed25519, подпись нонса, способности и цена за вызов.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | Yes | ||
| proof | Yes | ||
| public_key | Yes | ||
| capabilities | No | ||
| cost_per_call | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden, and it does disclose the security scheme: an Ed25519 public key and a signature over a nonce, which explains what the opaque 'proof' parameter actually is. It says nothing about idempotency, whether a duplicate agent name is rejected, or what happens to existing registrations.
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?
A single front-loaded sentence with the action first and the field enumeration after it; there is no filler. It is essentially a parameter list, so it is efficient rather than richly structured.
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?
An output schema exists, so return values need not be described. However, for a registration mutation with no annotations, the missing prerequisite flow (nonce acquisition) and uniqueness/re-registration behavior leave real gaps an agent would need.
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 0%, but the description compensates well by mapping all five parameters to meanings: agent name, Ed25519 public key, nonce signature, capabilities, and cost per call. It does not clarify types, defaults (null capabilities, 0 cost), or the nonce/signature format, so it is slightly short of exhaustive.
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 opens with a specific verb+resource ("Зарегистрировать внешнего агента" — register an external agent) and enumerates the fields involved, so an agent can tell this is the onboarding/creation tool rather than a read tool like soma_agents or soma_verify. It stops short of explicitly contrasting itself with those siblings.
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?
There is no statement of when to call this versus alternatives, and no mention of prerequisites such as obtaining a nonce via soma_nonce before producing the signature. Usage is only inferable from the name and the field list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_rememberCInspect
Запомнить факт: переживает сессии и смену модели. Теги для поиска, importance 1–5.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | fact | |
| tags | No | ||
| text | Yes | ||
| source | No | ||
| session | No | ||
| importance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose a genuinely useful behavioral trait — the fact survives sessions and model changes — but says nothing about duplicate handling, idempotency, storage limits, or whether writes can be undone. The output schema covers return values, so that omission is fine.
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?
Two compact fragments with no filler, and the core purpose is front-loaded before the tag/importance hints. It is arguably terse to the point of under-specification, but nothing in it is wasted.
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?
This is a write path into a multi-store memory system with six parameters and no annotation coverage, yet the description explains only two of the fields and gives no guidance about which store or sibling to use. The output schema relieves it of return-value detail, but the input-side gaps remain significant.
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 coverage is 0% across 6 parameters, so the description must compensate and largely fails to. It adds real meaning for two fields (tags are for search; importance is a 1–5 range, which the schema leaves as a bare default of 3) but leaves kind, source, session, and text semantics undocumented anywhere.
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?
States a specific verb ("Запомнить" / remember) and resource ("факт" / fact), plus the persistence trait. It does not differentiate from obvious siblings like soma_recall or soma_cold_put, so the agent cannot tell from this text alone which memory store to write to.
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?
"Теги для поиска" hints that tags exist for later retrieval, but no tool is named and there is no when/when-not guidance. With siblings soma_recall, soma_cold_put, and soma_reflect in the namespace, the routing decision is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_reputationCInspect
Репутация агента по фактам: подписанные квитанции, нарушения и итоговый счёт.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only, fact-derived computation via 'по фактам' and 'подписанные квитанции', but never states that it is non-mutating, what happens for an unknown agent, whether the score is cached or live, or any permission requirement.
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?
A single short sentence with no filler, and the key content (what the reputation is composed of) is front-loaded after the colon. It is arguably under-specified rather than padded, which is penalized elsewhere.
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?
An output schema exists, so return shape need not be described, but with zero annotation coverage and an entirely undocumented parameter, the description leaves the agent guessing about the input format and the operational profile. For a lookup tool in a 17-sibling namespace, it does too little routing work.
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 single parameter 'agent' has 0% schema description coverage and the description adds nothing about its expected form (ID, name, public key, or DID). With one required param and no schema text, the description needed to explain the identifier, and it does not.
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 names the resource (agent reputation) and enumerates what the result contains: signed receipts, violations, and a final score. That is enough to distinguish it from a plain counters tool like soma_stats, though it never explicitly contrasts itself with siblings such as soma_verify or soma_agents, and it is a noun phrase with no verb.
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?
There is no statement of when to call this instead of soma_verify (verification), soma_agents (registry lookup), or soma_stats (aggregates). The agent must infer the choice purely from the description's phrase 'по фактам'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_routeCInspect
Подобрать исполнителя по capability, мандату и цене. Если кандидата нет — вернётся честная причина отказа.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose one useful behavioral trait: if no candidate exists, an 'honest refusal reason' is returned rather than an empty result. However, it says nothing about authorization/mandate requirements, determinism, or what the 'id' refers to, leaving significant behavioral gaps.
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?
Two short, front-loaded sentences with no filler; the core action leads and the failure behavior follows. Efficient and appropriately sized for the amount of information conveyed.
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?
An output schema exists, so return values need not be spelled out. But the single required 'id' parameter is undocumented in both schema and description, and the described selection criteria (capability/mandate/price) have no corresponding inputs, leaving an agent unable to know what to pass for a routing call.
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?
There is a single parameter ('id') with 0% schema description coverage, and the description never explains it. Worse, the criteria the description names (capability, mandate, price) do not correspond to any declared parameter, so the text implies inputs the schema does not expose, which is potentially misleading.
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?
States a specific verb and resource ('Подобрать исполнителя' – match/select an executor) with explicit selection criteria (capability, mandate, price). It is clear what the tool does, but it makes no attempt to distinguish itself from siblings like soma_claim or soma_verify, so it falls short of a 5.
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?
There is no statement of when to use this tool versus the alternatives (soma_claim, soma_send, etc.), nor any prerequisites. The only contextual sentence concerns the failure case (no candidate), which is behavioral rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_sendCInspect
Отправить конверт агенту: цель, задача, получатель, бюджет токенов, мандат и цена. Конверт подписывается и попадает в очередь.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | * | |
| goal | Yes | ||
| task | Yes | ||
| ttl_s | No | ||
| sender | No | mcp | |
| cost_usdc | No | ||
| capability | No | ||
| price_usdc | No | ||
| visibility | No | private | |
| max_cost_usd | No | ||
| token_budget | No | ||
| context_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It usefully discloses that the envelope is signed and placed into a queue, which implies asynchronous processing, but it omits permissions, idempotency, failure behavior, and what happens after queuing.
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 compact and front-loads the action, with no wasted sentences. However, the dense field list is not structured as a parameter guide, which limits readability for a 12-parameter tool.
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 12 parameters, no annotations, and 0% schema description coverage, the description is too thin. It mentions signing and queuing but does not cover required/optional distinctions, defaults, authorization, or operational constraints needed for confident invocation.
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 0% across 12 parameters, so the description must compensate. It maps conceptual terms to some fields such as goal, task, recipient, token budget, mandate, and price, but leaves sender, ttl_s, visibility, context_query, cost_usdc, max_cost_usd, and others unexplained.
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 states a specific verb and resource: "Отправить конверт агенту" (send an envelope to an agent), and names key payload concepts such as goal, task, recipient, token budget, mandate, and price. It is clear what the tool does, though it does not explicitly distinguish itself from siblings like soma_route or soma_claim.
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?
It does not say when this tool should be used instead of siblings such as soma_route, soma_claim, or soma_inbox. There is no when-to-use, when-not-to-use, or prerequisite guidance beyond the implied action of sending an envelope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_statsBInspect
Состояние хаба: конверты по статусам, факты, связи, холодные артефакты.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only state report but never states that it has no side effects, whether it requires auth, or how expensive/rate-limited it is — all left unspecified for a hub-inspection call.
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?
A single short sentence with no filler, and the leading phrase 'Состояние хаба' front-loads the core purpose. It is a fragment rather than a full clause, but nothing is wasted.
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?
For a zero-parameter stats tool with a full output schema, the description does not need to explain return values, and it does list the main content categories. However, it still omits any indication of when this inspection is appropriate versus the sibling tools, leaving a gap for an agent choosing between seven soma_* calls.
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 tool takes zero parameters, so the baseline is 4. The description correctly implies the call is unfiltered and global, which is consistent with an empty argument object.
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?
Although it uses a noun phrase rather than a verb, it enumerates exactly what the tool reports: hub state with envelopes by status, facts, links, and cold artifacts. This is specific enough to distinguish it from the action-oriented siblings (soma_claim, soma_send, soma_verify), though it never explicitly says it is a read-only report.
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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the six sibling tools. The agent must infer usage purely from the tool name and the returned-content list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soma_verifyAInspect
Проверить подпись конверта офлайн: Ed25519, публичный ключ едет вместе с подписью.
| Name | Required | Description | Default |
|---|---|---|---|
| envelope_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and discloses key traits: verification is offline, the algorithm is Ed25519, and the public key is embedded with the signature. It does not describe error behavior or explicitly confirm read-only safety, but the output schema likely covers return values and the core invocation behavior is clear.
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?
A single sentence, front-loaded with the action verb, with no redundant or filler content. It is appropriately sized for a simple one-parameter verification tool.
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?
The tool is simple and an output schema exists, so return values need not be explained. The description covers purpose and verification mechanism but leaves input format details undocumented, which is a clear gap given 0% schema description coverage for envelope_json.
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 0% for the single parameter, so the description must compensate. It implies the envelope contains a signature and public key, but provides no field names, JSON structure, or encoding details needed to construct a valid envelope_json.
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 states a specific verb ('Проверить подпись') and resource ('конверта'), plus scope ('офлайн') and algorithm ('Ed25519'). The action is clearly distinct from sibling operations like soma_send, soma_route, or soma_claim, so an agent can identify it without opening the schema.
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 gives no when-to-use guidance, no when-not-to-use conditions, and does not name any alternative sibling tool. 'Офлайн' is a capability note, not routing guidance for choosing this tool over others.
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.
10 tool updates
- Added
soma_agents - Added
soma_cold_get - Added
soma_cold_put - Added
soma_export - Added
soma_nonce - Added
soma_recall - Added
soma_reflect - Added
soma_register - Added
soma_remember - Added
soma_reputation
2 tool updates
- Changed
soma_claim1 field changed- added
Input schema / properties / paymentAdded value: +{ + "default": "", + "title": "Payment", + "type": "string" +}
- Changed
soma_send1 field changed- added
Input schema / properties / cost_usdcAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Cost Usdc" +}
7 tool updates
- First observed
soma_claim - First observed
soma_complete - First observed
soma_inbox - First observed
soma_route - First observed
soma_send - First observed
soma_stats - First observed
soma_verify
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm55 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1618 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.