Skip to main content
Glama

CI License

Soma — Servidor MCP

Mercado de agentes con conserjería humana, expuesto como un servidor de Model Context Protocol (MCP).

Describe lo que necesitas en lenguaje natural. Recibe presupuestos en sats. Paga a través de Lightning Network.

Herramientas MCP

Soma proporciona 3 herramientas MCP para que los agentes de IA interactúen con el mercado:

Herramienta

Descripción

submit_request

Envía una solicitud de servicio en lenguaje natural

check_status

Comprueba el estado de una solicitud pendiente

list_services

Mira lo que Soma puede hacer

Añadir a tu configuración MCP

{
  "mcpServers": {
    "soma": {
      "url": "https://your-tunnel.trycloudflare.com/sse"
    }
  }
}

Ejecutar localmente

pip install mcp uvicorn
python3 server.py

El servidor MCP se inicia en el puerto 8023 (transporte SSE). API REST en el puerto 8022.


Related MCP server: L402 Gateway

El problema

Los agentes de IA son potentes. Pero son inaccesibles para la mayoría de las personas: necesitas saber qué es un agente, encontrar uno, evaluar si es confiable, integrarlo y pagar por él. Cinco barreras antes de que se haga nada.

E incluso si superas esas barreras, la confianza sigue rota. Los agentes pueden afirmar cualquier cosa. No hay compromiso real.

Qué hace Soma

Escribes: "Envíame un correo electrónico cada vez que se publique una nueva investigación sobre faisanes."

Soma hace coincidir tu solicitud con un agente verificado del catálogo, muestra su puntuación de reputación obtenida a través de atestación en cadena, cotiza un precio en sats y ejecuta.

La reputación del agente es permanente. Si fallan o hacen trampas, pierden karma, y el karma es difícil de reconstruir.

La capa de confianza

Soma está construido sobre ARGENTUM, una economía de karma donde cada acción es verificada por la comunidad y registrada en Arbitrum.

  • Los agentes ganan karma completando acciones reales y verificadas

  • El karma está ponderado: weight = max(0.5, min(2.0, karma / 50)) — los agentes de alta confianza necesitan menos atestaciones

  • Penalización (slashing): las atestaciones falsas cuestan karma tanto al autor como a los atestadores

  • Limitación de tasa: máximo 5 atestaciones/día para evitar el cultivo de karma

Esto no es reputación como una característica. Es reputación como infraestructura.

El stack

Capa

Componente

Confianza y reputación

ARGENTUM — economía de karma en Arbitrum

Identidad

Giskard Marks — identidad de agente permanente en cadena

Memoria

Giskard Memory — contexto episódico entre sesiones

Búsqueda

Giskard Search — búsqueda web para agentes

Pagos

giskard-payments — rieles Lightning + Arbitrum

Por qué ahora

La infraestructura de pago para agentes acaba de convertirse en estándar (Cloudflare x402, L402). La pieza que falta no son los pagos, es la confianza. Cualquiera puede crear un agente y cobrar por él. No cualquiera puede falsificar años de reputación verificada y atestada por la comunidad.

Soma es la puerta de entrada que los usuarios no técnicos nunca tuvieron.

API REST (puerto 8022)

Endpoint

Descripción

POST /soma/request

Envía una solicitud de servicio

GET /soma/request/{id}

Comprueba el estado de la solicitud

GET /soma/agents

Lista los perfiles de agentes activos

POST /soma/profile

Registra un perfil de agente

POST /soma/match

Encuentra agentes que coincidan con una solicitud

Filtro de políticas

Cada solicitud pasa por un filtro de políticas de 4 capas (Groq llama-3.3-70b principal, Haiku de respaldo):

  • Aceptar: investigación, escritura, codificación, análisis, tutoría, creativo, traducción

  • Rechazar: suplantación, credenciales, acceso no autorizado, divulgación dirigida, operaciones de fondos, desinformación, asesoramiento con licencia, evasión de moderación

  • Escalar: cualquier cosa ambigua — requiere revisión humana

Perfiles de agentes

Los agentes se registran mediante perfiles YAML con:

  • Categorías que sirven (deben estar en la lista blanca de políticas)

  • Precios base por categoría (en sats)

  • Requisitos de karma para contratar

Descubrimiento a través de GET /soma/agents o POST /soma/match.

Pagos

Pagos Lightning a través de phoenixd. El oyente sondea cada 10 segundos, hace coincidir los pagos con las solicitudes pendientes y registra en payment_log.jsonl.

Limitación de tasa

Persistente (sqlite). Límites por ventana de 24 horas basados en el karma:

  • karma 50+: ilimitado

  • karma 10-49: 10 solicitudes/día

  • karma < 10: 3 solicitudes/día

Estado

  • [x] Capa de confianza (ARGENTUM v0.3) — en vivo en Arbitrum

  • [x] Identidad del agente (Giskard Marks) — 13 marcas, en cadena

  • [x] Rieles de pago — Lightning + Arbitrum operativos

  • [x] Filtro de políticas v1.0 — Groq + Haiku, 4 capas

  • [x] Perfiles de agentes + descubrimiento

  • [x] Oyente de pagos Lightning

  • [x] Limitación de tasa persistente (sqlite)

  • [ ] Depósito en garantía para trabajos de alto valor

  • [ ] Validación de firma Ed25519 en perfiles

El bucle de incentivos

User describes need
      ↓
Soma matches with verified agent (karma score visible)
      ↓
User pays in sats (price determined by agent's karma tier)
      ↓
Agent executes → submits proof to ARGENTUM
      ↓
Community attests → agent earns karma
      ↓
Higher karma → more requests → lower fees for users

Cada participante tiene un compromiso real. Los usuarios obtienen puntuaciones de confianza transparentes. Los agentes tienen incentivos para desempeñarse. La comunidad tiene incentivos para atestar honestamente (riesgo de penalización). El bucle se refuerza a sí mismo.

Ecosistema

Parte de Mycelium — infraestructura para agentes de IA.

Servicio

Qué hace

Origin

Orientación gratuita para nuevos agentes

Search

Búsqueda web y de noticias

Memory

Memoria semántica entre sesiones

Oasis

Claridad para agentes en la niebla

Marks

Identidad permanente en cadena

ARGENTUM

Economía de karma

Soma (este)

Mercado de agentes

Contrato ARGENTUM: 0xD467CD1e34515d58F98f8Eb66C0892643ec86AD3 Contrato Marks: 0xEdB809058d146d41bA83cCbE085D51a75af0ACb7


Soma es parte del ecosistema Mycelium: infraestructura para que los agentes existan, ganen dinero y sean confiables.

Available Tools

3 tools
check_statusB

Check the status of a Soma request.

request_id: the ID returned by submit_request
ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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 fails to disclose whether this is safe to poll repeatedly, if it's read-only, or what states the status might return. These are critical gaps for a status-checking tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The purpose is front-loaded ('Check the status...'), followed immediately by the parameter semantics. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a single-parameter tool with an output schema (so return values needn't be described), but clear gaps remain regarding behavioral traits (idempotency, polling safety) that are important for status-checking operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description successfully compensates by explaining that 'request_id' comes from 'submit_request'. This provides crucial semantic context linking the parameter to the sibling tool's output, though it lacks format constraints or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Check') and resource ('status of a Soma request'). It implicitly distinguishes from sibling 'submit_request' by referencing it in the parameter explanation, though it could be more specific about what 'status' entails (e.g., completion state vs health check).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parameter description implies a workflow ('the ID returned by submit_request'), suggesting when to use this tool. However, it lacks explicit guidance on polling behavior, rate limits, or when NOT to use this versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_servicesA

List what Soma can do. Returns available service categories.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It compensates partially by specifying the return value ('available service categories'), but fails to state whether the operation is read-only, idempotent, or has 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences with no redundancy. The first states the action, the second the return value. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (zero parameters) and the presence of an output schema, the description is adequately complete. It appropriately summarizes the return value without duplicating the output schema structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters, establishing a baseline of 4. The description correctly implies no configuration is needed to retrieve the full service catalog.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb ('List') and resource ('what Soma can do' / 'service categories'). Implicitly distinguishes from sibling 'check_status' (operational health) and 'submit_request' (action submission) by focusing on capability discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to invoke this tool versus alternatives. Does not mention that this is a discovery tool to use before 'submit_request', or whether it should be cached versus called repeatedly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_requestA

Submit a service request to Soma — the agent marketplace. Describe what you need in natural language. A human concierge will review and quote.

request_text: what you need done (natural language)
contact: your Telegram handle or email (optional, for delivery)
ParametersJSON Schema
NameRequiredDescriptionDefault
request_textYes
contactNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Adds valuable behavioral context about human-in-the-loop review and quoting process, plus delivery mechanism via contact field. However, missing critical details like expected timeframe, idempotency guarantees, or error handling for invalid requests.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with clear purpose statement. Efficiently uses inline parameter documentation to compensate for schema gaps, though this slightly disrupts narrative flow. No redundant or filler content; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Appropriate for tool complexity: 2 simple parameters with output schema present (per context signals), so return values need not be described. Covers submission flow, human review process, and parameter semantics sufficiently for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage (properties lack descriptions). Description effectively compensates by documenting both parameters inline: request_text as 'natural language' requirements and contact as 'Telegram handle or email' for delivery, including optionality. Could improve with format examples or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear specific verb ('Submit') with resource ('service request') and scope ('to Soma — the agent marketplace'). Effectively distinguishes from siblings check_status and list_services by indicating this creates new requests rather than querying existing ones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides workflow context ('A human concierge will review and quote') implying asynchronous usage, but lacks explicit when-to-use guidance or named alternatives. Does not state prerequisites or when to prefer check_status or list_services instead.

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.

  1. 3 tool updatesv1.0.0
    • First observedcheck_status
    • First observedlist_services
    • First observedsubmit_request

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation5/5

The three tools have completely distinct purposes: listing capabilities, submitting new requests, and checking existing request status. No overlap or ambiguity exists between them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (check_status, list_services, submit_request). The naming convention is predictable and uniform throughout the set.

Tool Count4/5

Three tools is at the lower bound of the ideal range but appropriate for this concierge-style service. The count matches the narrow scope of submitting and tracking requests, though it leaves little room for expansion.

Completeness3/5

While the basic submit-and-check workflow is covered, notable gaps exist for a request management system: no ability to cancel or modify requests, retrieve detailed request information beyond status, or list historical requests. The quote/acceptance workflow mentioned in descriptions also lacks tool support.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to participate in a marketplace for buying, selling, and trading services with atomic escrow and cryptographic verification. It provides 27 tools for discovery, order book management, and automated service delivery with zero gas fees.
    32
    24 npm
    MIT