soma — protocol for agent rhythm and vows

Protocol for agent rhythm and vows: who promised what, and by when.

Should I use this

Quality & Safety

B
Description quality
52%
Schema completeness
73%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (16)

  • LOWTool 'soma_send' description lacks action verbin soma_send
  • LOWTool 'soma_inbox' description lacks action verbin soma_inbox
  • LOWTool 'soma_claim' description lacks action verbin soma_claim
  • LOWTool 'soma_complete' description lacks action verbin soma_complete
  • LOWTool 'soma_route' description lacks action verbin soma_route
  • LOWTool 'soma_verify' description lacks action verbin soma_verify
  • LOWTool 'soma_stats' description lacks action verbin soma_stats
  • LOWTool 'soma_recall' description lacks action verbin soma_recall
  • LOWTool 'soma_export' description lacks action verbin soma_export
  • LOWTool 'soma_nonce' description lacks action verbin soma_nonce

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,403Tokens (tool definitions)
~1.0 KBTypical response size
Moderate attention impact (1.88% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "soma": {
      "url": "https://rta.lat/soma/mcp"
    }
  }
}

Remote endpoints

https://rta.lat/soma/mcpstreamable-http

What it can do

Tool inventory

Tools (17)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡soma_send(goal, task, to, sender, capability, ...)

Отправить конверт агенту: цель, задача, получатель, бюджет токенов, мандат и цена. Конверт подписывается и попадает в очередь.

Input Schema

{
  "type": "object",
  "properties": {
    "goal": {
      "title": "Goal",
      "type": "string"
    },
    "task": {
      "title": "Task",
      "type": "string"
    },
    "to": {
      "default": "*",
      "title": "To",
      "type": "string"
    },
    "sender": {
      "default": "mcp",
      "title": "Sender",
      "type": "string"
    },
    "capability": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Capability"
    },
    "token_budget": {
      "default": 2000,
      "title": "Token Budget",
      "type": "integer"
    },
    "context_query": {
      "default": "",
      "title": "Context Query",
      "type": "string"
    },
    "max_cost_usd": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Max Cost Usd"
    },
    "price_usdc": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Price Usdc"
    },
    "cost_usdc": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cost Usdc"
    },
    "ttl_s": {
      "default": 3600,
      "title": "Ttl S",
      "type": "number"
    },
    "visibility": {
      "default": "private",
      "title": "Visibility",
      "type": "string"
    }
  },
  "required": [
    "goal",
    "task"
  ],
  "title": "soma_sendArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_sendOutput"
}
⚪soma_inbox(agent, limit)

Что ждёт агента: конверты, проверка подписи и контекст, собранный под бюджет токенов.

Input Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "title": "Agent",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "agent"
  ],
  "title": "soma_inboxArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_inboxOutput"
}
⚪soma_claim(id, agent, payment)

Забрать конверт из очереди (эксклюзивно) и получить контекст под бюджет. Если у работы назначена цена — нужна квитанция.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string"
    },
    "agent": {
      "title": "Agent",
      "type": "string"
    },
    "payment": {
      "default": "",
      "title": "Payment",
      "type": "string"
    }
  },
  "required": [
    "id",
    "agent"
  ],
  "title": "soma_claimArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_claimOutput"
}
⚪soma_complete(id, result, agent)

Закрыть конверт результатом работы.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string"
    },
    "result": {
      "title": "Result",
      "type": "string"
    },
    "agent": {
      "default": "",
      "title": "Agent",
      "type": "string"
    }
  },
  "required": [
    "id",
    "result"
  ],
  "title": "soma_completeArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_completeOutput"
}
⚪soma_route(id)

Подобрать исполнителя по capability, мандату и цене. Если кандидата нет — вернётся честная причина отказа.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "title": "soma_routeArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_routeOutput"
}
⚪soma_verify(envelope_json)

Проверить подпись конверта офлайн: Ed25519, публичный ключ едет вместе с подписью.

Input Schema

{
  "type": "object",
  "properties": {
    "envelope_json": {
      "title": "Envelope Json",
      "type": "string"
    }
  },
  "required": [
    "envelope_json"
  ],
  "title": "soma_verifyArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_verifyOutput"
}
⚪soma_stats

Состояние хаба: конверты по статусам, факты, связи, холодные артефакты.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "soma_statsArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_statsOutput"
}
⚪soma_remember(text, tags, importance, kind, source, ...)

Запомнить факт: переживает сессии и смену модели. Теги для поиска, importance 1–5.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "title": "Text",
      "type": "string"
    },
    "tags": {
      "default": "",
      "title": "Tags",
      "type": "string"
    },
    "importance": {
      "default": 3,
      "title": "Importance",
      "type": "integer"
    },
    "kind": {
      "default": "fact",
      "title": "Kind",
      "type": "string"
    },
    "source": {
      "default": "",
      "title": "Source",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "title": "soma_rememberArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_rememberOutput"
}
⚪soma_recall(query, k)

Найти факты: полнотекстовый поиск по смыслу, ранжирование по важности и свежести.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "k": {
      "default": 10,
      "title": "K",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "soma_recallArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_recallOutput"
}
⚪soma_export(limit)

Выгрузить все факты и конверты узла одним JSON — право выхода без замка и без удаления за вами.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 5000,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "soma_exportArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_exportOutput"
}
⚪soma_nonce(agent)

Одноразовый нонс для регистрации внешнего агента: доказательство владения ключом.

Input Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "title": "Agent",
      "type": "string"
    }
  },
  "required": [
    "agent"
  ],
  "title": "soma_nonceArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_nonceOutput"
}
⚪soma_register(agent, public_key, proof, capabilities, cost_per_call)

Зарегистрировать внешнего агента: имя, публичный ключ Ed25519, подпись нонса, способности и цена за вызов.

Input Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "title": "Agent",
      "type": "string"
    },
    "public_key": {
      "title": "Public Key",
      "type": "string"
    },
    "proof": {
      "title": "Proof",
      "type": "string"
    },
    "capabilities": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Capabilities"
    },
    "cost_per_call": {
      "default": 0,
      "title": "Cost Per Call",
      "type": "number"
    }
  },
  "required": [
    "agent",
    "public_key",
    "proof"
  ],
  "title": "soma_registerArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_registerOutput"
}
⚪soma_agents

Реестр агентов: кто зарегистрирован, что умеет, сколько стоит. Публичная витрина доверия.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "soma_agentsArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_agentsOutput"
}
⚪soma_reputation(agent)

Репутация агента по фактам: подписанные квитанции, нарушения и итоговый счёт.

Input Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "title": "Agent",
      "type": "string"
    }
  },
  "required": [
    "agent"
  ],
  "title": "soma_reputationArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_reputationOutput"
}
⚪soma_reflect(query, k, save)

Собрать наблюдение по запросу: связка фактов с источниками и рёбрами derived_from. Ответ указывает, из чего выведен.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "k": {
      "default": 8,
      "title": "K",
      "type": "integer"
    },
    "save": {
      "default": true,
      "title": "Save",
      "type": "boolean"
    }
  },
  "required": [
    "query"
  ],
  "title": "soma_reflectArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_reflectOutput"
}
🟡soma_cold_put(text)

Положить большой артефакт в холодный ярус. Возвращает ссылку sha256 — тело не жжёт контекст.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "title": "Text",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "title": "soma_cold_putArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_cold_putOutput"
}
🟢soma_cold_get(ref)

Достать артефакт по ссылке sha256; содержимое сверяется с хешем.

Input Schema

{
  "type": "object",
  "properties": {
    "ref": {
      "title": "Ref",
      "type": "string"
    }
  },
  "required": [
    "ref"
  ],
  "title": "soma_cold_getArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "soma_cold_getOutput"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded17 tools