Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Block an action a signed mandate does not permit: amount, payee, audience, currency, window, intent.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://drift.rta.lat/mcpターミナルでこれを実行します
claude mcp add --transport http drift https://drift.rta.lat/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"drift": {
"url": "https://drift.rta.lat/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"drift": {
"type": "http",
"url": "https://drift.rta.lat/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://drift.rta.lat/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント mrpkk で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは22 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Fomu MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ 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.
Kenya government form guides: checklists, draft letters, eCitizen, Huduma, timelines. Sample data.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Continuous mandate enforcement for AI agents. Every action is checked against the signed mandate *before* it happens, not once at signing.
Live: [https://drift.rta.lat](https://drift.rta.lat) · MCP endpoint: [https://drift.rta.lat/mcp](https://drift.rta.lat/mcp)
pip install drift # or: pip install -e .
python3 -m drift.http_server --http 8080
An agent is granted a mandate: who to pay, how much, in which currency, until when. AP2 verifies that mandate once, at signature time. After that the agent acts alone, and nothing holds it inside its authority.
Measured proof that this matters, from the AP2 Python SDK itself:
verify_chain documents:
"enforcing expected_aud / expected_nonce on the terminal hop when provided"
but kb_sd_jwt.verify calls verify_expected_claims only when typ in TYP_TERMINAL, and a kb+sd-jwt+kb token — which the SDK itself produces whenever the payload carries a cnf — falls into TYP_INTERMEDIATE:
hop type : kb+sd-jwt+kb aud in token : https://attacker.example/ap2 expected_aud : https://honest-merchant.example/ap2 ACCEPTED a token with the wrong audience.
The protocol an agent trusts with its spending authority does not check that the authority was not substituted. drift checks it.
| # | rule | catches |
|---|---|---|
| 1 | amount | over the limit — the most common form of drift |
| 2 | payee | wrong recipient |
| 3 | audience | payment redirected to someone else |
| 4 | currency | currency substituted |
| 5 | window | outside the validity period |
| 6 | intent | intent outside the allowlist |
Default is DENY. Rules run in fixed order, so a refusal names the most important reason rather than an incidental one.
| tool | purpose |
|---|---|
drift_check | check one action against a mandate |
drift_session | check a sequence, get a report with a chain fingerprint |
drift_explain | show the rules in the order they apply |
No SSE, no stateful sessions, no HTTP framework. Standard library only.
from drift import Mandate, Drift, Action
m = Mandate( payee_id="shop", audience="https://merchant.example/ap2", max_amount_minor=10_000, currency="USD", valid_from=1_700_000_000, valid_until=1_700_086_400, allowed_intents=("buy",), ) d = Drift(m) verdict, rule = d.submit(Action( intent="buy", payee_id="shop", audience="https://merchant.example/ap2", amount_minor=99_999, currency="USD", at=1_700_000_060, )) print(verdict, rule) # DENY amount
intent arrives from the agent and is untrusted input. drift bounds the damage; it does not certify the intent.If an agent controls both intent and amount, it can lie in both. Closing that gap is attest's job: attest proves afterwards, drift bounds beforehand. They are complements.
{
"mcpServers": { "drift": { "url": "https://drift.rta.lat/mcp" } } }
That block is how our own agents call this server. Tools: drift_check (one action), drift_session (a sequence), drift_explain (the six rules and why each exists). 100 free checks per day, then $0.005 per call over x402.
Apache-2.0.