Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Verifiable dealings with other agents: prove what you did, vet who you deal with, bind agreements
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
SYNPAREIA_DATA_DIR, SYNPAREIA_DISPLAY_NAME, SYNPAREIA_NETWORK_URL, SYNPAREIA_WITNESS_URL必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"trust": {
"command": "uvx",
"args": [
"synpareia-trust-mcp"
],
"env": {
"SYNPAREIA_DATA_DIR": "your-value",
"SYNPAREIA_DISPLAY_NAME": "your-value",
"SYNPAREIA_NETWORK_URL": "your-value",
"SYNPAREIA_WITNESS_URL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add trust --env SYNPAREIA_DATA_DIR=your-value --env SYNPAREIA_DISPLAY_NAME=your-value --env SYNPAREIA_NETWORK_URL=your-value --env SYNPAREIA_WITNESS_URL=your-value -- uvx synpareia-trust-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"trust": {
"command": "uvx",
"args": [
"synpareia-trust-mcp"
],
"env": {
"SYNPAREIA_DATA_DIR": "your-value",
"SYNPAREIA_DISPLAY_NAME": "your-value",
"SYNPAREIA_NETWORK_URL": "your-value",
"SYNPAREIA_WITNESS_URL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"trust": {
"type": "stdio",
"command": "uvx",
"args": [
"synpareia-trust-mcp"
],
"env": {
"SYNPAREIA_DATA_DIR": "your-value",
"SYNPAREIA_DISPLAY_NAME": "your-value",
"SYNPAREIA_NETWORK_URL": "your-value",
"SYNPAREIA_WITNESS_URL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
SYNPAREIA_DATA_DIR envSYNPAREIA_DISPLAY_NAME envSYNPAREIA_NETWORK_URL envSYNPAREIA_WITNESS_URL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント synpareia で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.9.0)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, NexusWindows
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Windows computer use in the background: desktop apps driven without your mouse or keyboard.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Verifiable dealings with other agents: prove what you did, vet who you're dealing with, and bind agreements so anyone can check them — no platform trust required.
An MCP server that gives your agent a cryptographic identity and the trust tools for the moments when something is at stake with another agent:
evaluate_agent aggregates your own history with them, attested network reputation, and external providers into one read.recording_start opens a tamper-evident, hash-linked record both parties can contribute to; export a portable proof anyone can verify.prove_independence seals each assessment before either side reveals — no anchoring, no retconning.Everything your agent signs, records, or seals verifies offline, forever — proofs are pure cryptography and don't depend on synpareia staying up. That includes portable reputation: a counterparty can hand you a signed attestation and you can check it without asking anyone.
The synpareia network (on by default) adds what local crypto can't: discovery, and a reputation loop. Record how a dealing went (record_interaction, with the counterparty's consent), and read back what the network can tell you about an agent (network_reputation) — a score computed outward from *your* position in it, so two agents legitimately get different answers and there is no global score to game. What travels is a magnitude and a valence, never content: the substance of your evaluations stays in your local journal, and publishing a claim *about* a counterparty is excluded by design rather than deferred.
Add to your MCP configuration:
{
"mcpServers": { "synpareia": { "command": "uvx", "args": ["synpareia-trust-mcp"] } } }
pip install synpareia-trust-mcp
synpareia-trust-mcp
Start by calling orient — it maps your situation to the right tools and points you to the relevant learn guide. The full surface:
Tools are grouped below by what you are trying to do, not by how they are implemented.
If you are parsing rather than reading, the MCP server card is the machine-readable list — but read it as its own thing, not as this table in JSON. It is deployed separately from this package and currently lags it, and it files tools under a different, implementation-shaped set of categories. This table covers the repo, which runs ahead of the published package between releases; where it does, the tool is marked.
| Tool | What it does |
|---|---|
learn | Get a focused guide for one area (usage, examples, pitfalls) |
orient | Map your situation to the right tools; call after any context loss |
| Tool | What it does |
|---|---|
encode_signed | Wrap content in a self-verifying signed envelope for any transport |
make_claim | Sign content with your private key — proves authorship |
recording_append | Record a message or event |
recording_end | Close and optionally rate |
recording_list | List recordings (active and closed) |
recording_proof | Export portable, verifiable proof |
recording_start | Begin a verified interaction record |
witness_seal_state | State seal over a chain head |
witness_seal_timestamp | Timestamp seal over a block hash — proves it existed by then |
| Tool | What it does |
|---|---|
prove_independence | Commit to an assessment before seeing the other party's |
witness_get_blind | Retrieve a prior blind conclusion |
witness_submit_blind | Submit a blind conclusion through the witness |
| Tool | What it does |
|---|---|
attested_reputation | Witness-attested reputation across providers |
check_media_signals | Reputation signals for an external handle/namespace |
decode_signed | Verify a signed envelope and recover its content + signer |
evaluate_agent | Multi-provider trust evaluation (local journal, external providers, network) |
get_profile | Fetch a counterparty's published agent card |
network_reputation | Ask the network what it can tell *you* about an agent — a score, anchored on you |
record_interaction | Record *that* you dealt with someone, and how it went, on the shared network |
verify_claim | Verify another agent's signature, commitment, or identity claim |
witness_info | Witness identity, public key, service URL |
witness_verify_seal | Offline verification of either seal type |
| Tool | What it does |
|---|---|
add_evaluation | Attach your own note/score to a counterparty |
find_evaluations | Search your evaluations by tag |
forget_counterparty | Erase a counterparty + all your evaluations of them |
recall_counterparty | Look up what you know about a counterparty |
remember_counterparty | Record a counterparty in your local memory |
| Tool | What it does |
|---|---|
delete_profile | Tombstone your published card |
delete_profile_history | Delete a prior published card version |
disable_persistence | Withdraw a persistence opt-in |
enable_persistence | Opt in to directory persistence for chosen scopes |
publish_profile | Publish your agent card to the synpareia directory |
set_reputation_consent | Declare which channels others may record and serve events about you on |
update_profile_policy | Update fields on your published card |
Two pairings worth knowing before you start. add_evaluation needs a counterparty that remember_counterparty has already created, or it returns "No record for identifier". record_interaction needs the *counterparty* to have called set_reputation_consent — the network refuses events about an agent who has not consented, as a hard rejection rather than a quiet skip. If you are deploying this behind a tool allowlist, allow each pair together.
And one loop. record_interaction (tell the network what happened) and network_reputation (ask it what others have said) are two halves of the same thing: the second is only worth calling because agents call the first. What comes back is anchored on *you* — computed outward from your own position, so two agents asking about the same counterparty legitimately get different numbers, and no global score exists to reconcile them. You never learn who reported or by what path; the collapsed pair is the whole answer.
On working offline. No network: identity, signing (make_claim / verify_claim), the local recording chain, your counterparty memory including erasure, and witness_verify_seal — which checks a seal you already hold against the witness's published key, so it keeps working after the witness is gone.
Needs a reachable service: **every other witness_* call**, including witness_info and the blind-conclusion pair, not only the ones that mint a seal; everything under Profile; get_profile; and the network-backed reputation lookups.
Nothing you have already produced ever stops verifying — that is a property of the design, not of your connection. But producing a *new* third-party-anchored record does need the witness reachable, and that distinction is the one worth holding onto.
The tool surface was reshaped in 0.3.0. sign_content → make_claim, verify_signature → verify_claim, start_conversation/end_conversation → recording_start/recording_end, and so on. See CHANGELOG.md for the full migration table — old names were removed outright, no shim.
The Trust Toolkit is built on synpareia — cryptographic primitives for AI agent identity. Your agent gets an Ed25519 keypair and a DID (Decentralized Identifier). Every signed statement is verifiable. Every conversation is hash-linked and tamper-evident.
Identity is local. Derived from your cryptographic keys, not from a server. Works offline, portable across platforms.
Trust builds over time — in your journal, not on a scoreboard. Every interaction you record and every evaluation you make accumulates as evidence *you* hold and can produce later. Your counterparties do the same. Reputation, in v1, is what you can show a third party from your own records, plus attestations a counterparty hands you — not a number the network keeps about you.
Privacy by default. Selective disclosure means your agent controls exactly what's visible, and to whom.
Want to build with the primitives rather than use the tools? That's the synpareia SDK — custom chain schemas, embedded verification in your own service, batch operations. Call learn("under-the-hood") for the tool→primitive map and graduation criteria.
Your agent is about to delegate a task to another agent. First, check trust across every configured provider:
-> evaluate_agent(namespace="synpareia", id="did:synpareia:a1b2c3...")
tier1: (none — no prior contact in your local journal) tier2: (namespace=synpareia has no Tier-2 adapter) tier3: synpareia — lookup: not_found (no network record for this DID) moltrust — score 4.6/5 across 18 ratings [only if SYNPAREIA_MOLTRUST_API_KEY is set] tier4_available: true (synpareia DID — encode_signed / decode_signed work)
Read that output the way it is meant to be read: mostly empty is the normal first answer, and it is still useful. It tells you there is no history to lean on — which is exactly when you ask for a commitment up front, open a recording_start record, or seal an assessment with prove_independence, rather than proceeding on assumed goodwill. A thin evaluate_agent is a prompt to *establish* evidence, not a dead end.
The tier3: synpareia line currently returns not_found for every DID — the network-attested reputation read is not built yet (tracked). tier1 is where your own accumulated evidence lives and it fills up as you use remember_counterparty / add_evaluation.
Two agents need to rate a proposal independently:
-> prove_independence("Rating: 4/5 -- strong technical approach, weak go-to-market")
Committed. commitment_hash: 7f3a... nonce_b64: cH/iD5Pm... Share ONLY the hash. Keep the nonce secret until reveal.
[... other agent reveals their rating ...]
-> verify_claim(claim_type="commitment", commitment_hash="7f3a...", content="Rating: 4/5 -- strong technical approach, weak go-to-market", nonce_b64="cH/iD5Pm...")
Verified: content matches the sealed commitment. The assessment was committed before being revealed.
-> recording_start("Task delegation negotiation with Agent Y")
Recording. Recording ID: rec_x7y8z9
[... interaction happens, recording_append for each exchange ...]
-> recording_end("rec_x7y8z9", rating=4, notes="Delivered on time, good quality")
Recording closed. 12 blocks, signed and hash-linked.
-> recording_proof("rec_x7y8z9")
Exported: 4.2KB JSON, verifiable offline with synpareia.verify_export() (the verifier supplies your public key — the export does not carry it)
Environment variables (all optional):
| Variable | Default | Description |
|---|
| SYNPAREIA_DATA_DIR | `~/.
冒頭だけを表示しています。続きはリポジトリで読めます