Skip to Content
MCP Server

MCP Server

@solidus-network/mcp, Solidus’u bir ajanın çağırabileceği çalışma zamanı araçları olarak sunan bir MCP (Model Context Protocol) sunucusudur — bir did:solidus DID’i çözümler, bir kimlik bilgisini doğrular ve kapsamlı bir harcama yetkilendirmesini kontrol eder, oluşturur veya onaylar. MCP uyumlu herhangi bir istemciyi (Claude Code, Cursor, Windsurf veya özel bir ajan döngüsü) stdio üzerinden buna yönlendirin, bunlar sıradan araç çağrılarına dönüşür.

Bu, ajan-yerel dağıtımın çalışma zamanı yarısıdır. CLI, kurulum zamanı yarısıdır — solidus init --with-mcp, bu sunucuyu tek adımda bir projenin .mcp.json dosyasına bağlar.

Kurulum

Bunu global olarak kurmazsınız — bir MCP istemcisi, npx ile talep üzerine başlatır:

npx @solidus-network/mcp

Claude Code (.mcp.json)

{ "mcpServers": { "solidus": { "command": "npx", "args": ["-y", "@solidus-network/mcp"], "env": { "SOLIDUS_API_KEY": "<your operator key, only needed for create_mandate>" } } } }

Diğer herhangi bir MCP istemcisi (Cursor, Windsurf, özel bir StdioClientTransport) aynı şekilde çalışır — bu standart bir stdio MCP sunucusudur, command: npx, args: ["-y", "@solidus-network/mcp"].

Araçlar

5 araç, 3 okuma (yan etkisi yok, kimlik doğrulama yok) ve 2 yazma (yan etkili; bir ajan çağırmadan önce bir insanın koşulları onaylaması gerekir):

ToolTypeWhat it does
resolve_didokumaSolidus zincirinden bir did:solidus DID belgesini çözümler.
verify_credentialokumaBir Solidus doğrulanabilir kimlik bilgisini kimliğine göre zincire karşı doğrular.
check_mandateokumaBir harcama-yetkilendirmesi zarfının verilen bir tutarı/para birimini/hattı yetkilendirip yetkilendirmediğini kontrol eder. Saf (pure) — kimlik doğrulama gerekmez, hiçbir şeyi hareket ettirmez. Bu, karşı taraf ret kontrolüdür.
create_mandateyazmaBir asıl (principal) DID adına bir ajan için kapsamlı bir spend_mandate kimlik bilgisi düzenler (maxAmount/currency/rail/expiresAt ile sınırlandırılmış). Kontrol edilebilir zarfı döndürür — asla özel anahtarı veya kimlik bilgisi paketini değil.
agent_payyazmaBir yetkilendirme kapsamında bir ödemeyi onaylar ve çağıranın kendi hattı için zarfı döndürür. Hiçbir şeyi ödemez (settle) — bir ret, işlemi kısa devre yapar ve başka bir işlem yapmaz.

check_mandate, Agents API sayfasında belgelenen aynı POST /v1/mandates/check rotasını çağırır — yetkilendirme-kontrol akışı — ve authorized/reason’ı olduğu gibi iletir.

Yapılandırma

Belirtilenler dışında hepsi isteğe bağlıdır; sunucu, kutudan çıktığı haliyle her okuma aracı için çalışan varsayılanlara sahiptir.

Env varDefaultUsed by
SOLIDUS_RPC_URLhttps://rpc.solidus.networkresolve_did, verify_credential (zincir SDK’sı)
SOLIDUS_AGENTS_URLhttps://agents.solidus.networkcheck_mandate, create_mandate, agent_pay (agents arka ucu)
SOLIDUS_API_KEYyalnızca create_mandate — bir operatör bearer token’ı. Diğer dört araç kimlik doğrulama gerektirmez.
SOLIDUS_SDK_MODEtestnetZincir SDK modu: testnet (herkese açık zincir, okuma için anahtar gerekmez), mainnet veya stub (geliştirme için yerel Postgres destekli simülasyon).

Hızlı başlangıç: çözümle, reddet, yükselt, onayla

Bir yetkilendirme, bir ajanın ne kadar harcayabileceğini sınırlar; check_mandate, bir karşı tarafın bir ödemeyi kabul etmeden önce çalıştırdığı ret kontrolüdür. Bu, bir DID’i çözümlemeyi, reddi almayı, ardından yetkilendirmeyi yükseltip onaylamayı adım adım gösterir:

// 1. Resolve the paying agent's DID resolve_did({ "did": "did:solidus:testnet:<addr>" }) // → { "did": "did:solidus:testnet:<addr>", "document": { ... }, "resolved": true } // 2. Issue a mandate capped at 500 TRY create_mandate({ "agentId": "<agent-id>", "principalDid": "did:solidus:testnet:<principal-addr>", "maxAmount": "500", "currency": "TRY", "rail": "moka", "expiresAt": "2026-08-01T00:00:00.000Z" }) // → { "mandateId": "...", "envelope": "<base64url envelope>", "expiresAt": "2026-08-01T00:00:00.000Z" } // 3. The counterparty checks a 750 TRY charge against it — over the cap, refused check_mandate({ "envelope": "<envelope from step 2>", "amount": 750, "currency": "TRY", "rail": "moka" }) // → { "authorized": false, "reason": "amount exceeds mandate limit" } // 4. Raise the mandate to 1000 TRY create_mandate({ /* same as step 2, "maxAmount": "1000" */ }) // → { "mandateId": "...", "envelope": "<new envelope>", "expiresAt": "..." } // 5. agent_pay authorizes the same 750 TRY charge under the raised mandate agent_pay({ "envelope": "<envelope from step 4>", "amount": 750, "currency": "TRY", "rail": "moka" }) // → { "authorized": true, "envelope": "<same envelope>", "header": "x-solidus-mandate" }
  1. adımın envelope ve header’ı, çağıranın kendi ödeme hattına gönderdiği şeylerdir — Solidus’un rolü onaylamada sona erer. agent_pay hiçbir şeyi ödemez; hiçbir aşamada bu paket veya Solidus üzerinden para hareket etmez.

Güven sınırı

Bu paket, @solidus-network/sdk (zincir okumaları) ve @solidus-network/agent-identity (yetkilendirmeler, kimlik bilgileri) üzerinde ince bir bağdaştırıcıdır. Hiçbir düzenleyici anahtarı tutmaz ve kendi başına hiçbir kriptografi yapmaz — kimlik bilgisi imzalama, Solidus arka ucunda gerçekleşir; bir kimlik bilgisine duyulan güven, bu koda değil, düzenleyici anahtarına duyulan güvendir.

Durum

  • İlk sürüm (0.1.0). Yeni paket, testnet kalitesinde.
  • Solidus L1 yalnızca testnet’tir — mainnet yoktur. DID’ler did:solidus:testnet:<addr> olarak çözümlenir. Bu araçlar aracılığıyla oluşturduğunuz her şeyi (DID’ler, kimlik bilgileri, yetkilendirmeler) kalıcı bir üretim kaydı değil, sandbox verisi olarak değerlendirin.
  • Kimlik bilgisi imzalamanın (BBS+) henüz bağımsız bir güvenlik denetimi yoktur. Bununla üretim kalitesinde bir değeri korumayın.

Sonraki adımlar

  • CLIsolidus init --with-mcp, bu sunucuyu sizin için .mcp.json’a bağlar
  • Agents APIcheck_mandate, create_mandate ve agent_pay’in altta çağırdığı HTTP yüzeyi
  • SDK Referansı — bu sunucunun sarmaladığı paketler
Last updated on