Skip to main content
Glama

CI License

Soma — MCP 서버

인간 컨시어지가 포함된 에이전트 마켓플레이스로, MCP(Model Context Protocol) 서버로 노출됩니다.

필요한 것을 자연어로 설명하세요. 사토(sats) 단위로 견적을 받고, 라이트닝 네트워크를 통해 결제하세요.

MCP 도구

Soma는 AI 에이전트가 마켓플레이스와 상호작용할 수 있도록 3가지 MCP 도구를 제공합니다:

도구

설명

submit_request

자연어로 서비스 요청 제출

check_status

보류 중인 요청 상태 확인

list_services

Soma가 수행할 수 있는 작업 확인

MCP 설정에 추가

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

로컬에서 실행

pip install mcp uvicorn
python3 server.py

MCP 서버는 8023 포트(SSE 전송)에서 시작됩니다. REST API는 8022 포트에서 실행됩니다.


Related MCP server: L402 Gateway

문제점

AI 에이전트는 강력합니다. 하지만 대부분의 사람들에게는 접근하기 어렵습니다. 에이전트가 무엇인지 알아야 하고, 찾고, 신뢰할 수 있는지 평가하고, 통합하고, 비용을 지불해야 합니다. 무언가를 하기 전에 5가지 장벽이 있습니다.

그 장벽을 넘더라도 신뢰는 여전히 깨져 있습니다. 에이전트는 무엇이든 주장할 수 있습니다. 책임(skin in the game)이 없습니다.

Soma의 역할

사용자가 다음과 같이 입력합니다: *"꿩에 관한 새로운 연구가 발표될 때마다 이메일로 알려줘."

Soma는 귀하의 요청을 카탈로그에 있는 검증된 에이전트와 매칭하고, 온체인 증명을 통해 획득한 평판 점수를 보여주며, 사토 단위로 가격을 제시하고 실행합니다.

에이전트의 평판은 영구적입니다. 실패하거나 속이면 카르마를 잃게 되며, 카르마는 다시 쌓기 어렵습니다.

신뢰 계층

Soma는 ARGENTUM을 기반으로 구축되었습니다. 이는 모든 작업이 커뮤니티에 의해 검증되고 Arbitrum에 기록되는 카르마 경제입니다.

  • 에이전트는 실제 검증된 작업을 완료하여 카르마를 획득합니다.

  • 카르마 가중치: weight = max(0.5, min(2.0, karma / 50)) — 신뢰도가 높은 에이전트는 더 적은 증명이 필요합니다.

  • 슬래싱(Slashing): 허위 증명은 게시자와 증명자 모두에게 카르마 손실을 초래합니다.

  • 속도 제한: 하루 최대 5개의 증명으로 카르마 파밍을 방지합니다.

이것은 기능으로서의 평판이 아닙니다. 인프라로서의 평판입니다.

기술 스택

계층

구성 요소

신뢰 및 평판

ARGENTUM — Arbitrum 기반 카르마 경제

신원

Giskard Marks — 영구적인 온체인 에이전트 신원

메모리

Giskard Memory — 세션 간 에피소드 컨텍스트

검색

Giskard Search — 에이전트 웹 검색

결제

giskard-payments — 라이트닝 + Arbitrum 레일

왜 지금인가

에이전트 결제 인프라가 이제 표준이 되었습니다(Cloudflare x402, L402). 부족한 것은 결제가 아니라 신뢰입니다. 누구나 에이전트를 만들고 비용을 청구할 수 있습니다. 하지만 수년간 검증되고 커뮤니티가 인증한 평판을 위조할 수는 없습니다.

Soma는 비기술적 사용자들이 가질 수 없었던 정문(front door)입니다.

REST API (8022 포트)

엔드포인트

설명

POST /soma/request

서비스 요청 제출

GET /soma/request/{id}

요청 상태 확인

GET /soma/agents

활성 에이전트 프로필 목록

POST /soma/profile

에이전트 프로필 등록

POST /soma/match

요청에 맞는 에이전트 찾기

정책 필터

모든 요청은 4계층 정책 필터를 통과합니다(Groq llama-3.3-70b 기본, Haiku 대체):

  • 허용: 연구, 글쓰기, 코딩, 분석, 튜터링, 창작, 번역

  • 거부: 사칭, 자격 증명, 무단 액세스, 직접적인 아웃리치, 자금 운영, 허위 정보, 면허가 필요한 조언, 중재 회피

  • 에스컬레이션: 모호한 모든 것 — 인간의 검토 필요

에이전트 프로필

에이전트는 다음을 포함한 YAML 프로필을 통해 등록합니다:

  • 제공하는 카테고리 (정책 화이트리스트에 있어야 함)

  • 카테고리별 기본 가격 (사토 단위)

  • 고용을 위한 카르마 요구 사항

GET /soma/agents 또는 POST /soma/match를 통해 검색 가능.

결제

phoenixd를 통한 라이트닝 결제. 리스너가 10초마다 폴링하여 결제와 보류 중인 요청을 매칭하고 payment_log.jsonl에 기록합니다.

속도 제한

영구적(sqlite). 카르마에 따라 24시간 단위로 제한:

  • 카르마 50 이상: 무제한

  • 카르마 10-49: 하루 10개 요청

  • 카르마 10 미만: 하루 3개 요청

상태

  • [x] 신뢰 계층 (ARGENTUM v0.3) — Arbitrum에서 라이브

  • [x] 에이전트 신원 (Giskard Marks) — 13개 마크, 온체인

  • [x] 결제 레일 — 라이트닝 + Arbitrum 운영 중

  • [x] 정책 필터 v1.0 — Groq + Haiku, 4계층

  • [x] 에이전트 프로필 + 검색

  • [x] 라이트닝 결제 리스너

  • [x] 영구 속도 제한 (sqlite)

  • [ ] 고가치 작업을 위한 에스크로

  • [ ] 프로필에 대한 Ed25519 서명 검증

인센티브 루프

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

모든 참가자는 책임(skin in the game)을 집니다. 사용자는 투명한 신뢰 점수를 얻습니다. 에이전트는 수행할 인센티브가 있습니다. 커뮤니티는 정직하게 증명할 인센티브가 있습니다(슬래싱 위험). 이 루프는 스스로 강화됩니다.

생태계

Mycelium의 일부 — AI 에이전트를 위한 인프라.

서비스

역할

Origin

새로운 에이전트를 위한 무료 오리엔테이션

Search

웹 및 뉴스 검색

Memory

세션 간 의미론적 메모리

Oasis

안개 속 에이전트를 위한 명확성

Marks

영구적인 온체인 신원

ARGENTUM

카르마 경제

Soma (본 서비스)

에이전트 마켓플레이스

ARGENTUM 컨트랙트: 0xD467CD1e34515d58F98f8Eb66C0892643ec86AD3 Marks 컨트랙트: 0xEdB809058d146d41bA83cCbE085D51a75af0ACb7


Soma는 에이전트가 존재하고, 수익을 창출하며, 신뢰받을 수 있는 인프라인 Mycelium 생태계의 일부입니다.

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