yodmcp について
YodMCPは、MCPを基盤とするPython製Agent Operating Systemカーネルです。メモリ、タスク追跡、スキル、監査機能を必要とするAgent開発チーム向けに、マルチグラフメモリ、MCPとA2Aのインターフェース、API、設定可能なアテステーションモードを備えています。
主な機能
- 01昇格を制御するマルチグラフメモリ
- 02永続タスクハンドルとステータス更新
- 03MCPリソースとして提供するAgent Skills
- 04A2A、REST API、SDKの各インターフェース
- 05監査イベントとアテステーション情報
- 06設定可能なメモリバックエンドとプラン
活用シーン
- 01タスクをまたいだAgentの事実の保存と取得
- 02永続タスクの追跡と進捗の更新
- 03スキルの読み込みとMCP機能の確認
- 04ツール判断と来歴情報の確認
MCP 対応
YodMCPは、ローカルおよびリモートのクライアント向けに、stdioまたはStreamable HTTPのMCPサーバーを提供します。メモリ、タスク、スキル、プランキャッシュ、機能検出、監査、アテステーションのツールを公開し、スキルはリソースとしても利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
YodMCP — エージェントオペレーティングシステム
YodMCP は、本番運用を想定した エージェントオペレーティングシステム の MCP カーネルです。複数グラフのメモリ、タスク、スキル、A2A、アテステーション(ソフトウェア/シミュレートされた TEE)、OpenTelemetry、プランベースの収益化を備えています。
この README は、このファイルとソースツリーだけを持つシニアエンジニアが、インストールし、あらゆるインターフェースをデプロイし、機能を試し、エンドツーエンドで検証できるように作成されています。
FOUNDRY の対応関係
FOUNDRY(長期稼働するエージェントスウォーム向けの、ホストが所有する信頼とメモリ)は、信頼されていない提案生成と、ホストが所有する検証および確立済み事実のレジストリを分離します。
YodMCP は、本番環境におけるそのレジストリです。エージェントは memory_write を呼び出し、セマンティックメモリへの昇格にはゲートが設けられ、評価器はホストが所有します。詳細なメモ:「docs/FOUNDRY.md」。
最初の売上
まず従量課金を計測します。ループが成り立てば、シート課金を導入します。
| 単位 | Stripe | x402 |
|---|---|---|
| OpenGOS 検索 $0.40 | 購入 | GET /v1/search |
| OpenGOS 下書き $2.50 | 購入 | GET /v1/draft |
| エージェント型 OS サイクル $0.75 | 購入 | GET /v1/cycle |
| YodMCP Pro $49/mo | 登録 | USDC |
x402 決済レール:x402-cloudflare-starter。デスク同期:https://anamized.grok.me
パッケージのインターフェース
| インターフェース | コマンド | デフォルト | 目的 |
|---|---|---|---|
| MCP | yodmcp | stdio | ローカルの MCP クライアント(Cursor、Claude Desktop など) |
| MCP HTTP | yodmcp --http --port 8000 | :8000/mcp | リモート/ストリーミング可能な HTTP MCP |
| API | yodmcp-api --port 8080 | :8080 | REST によるヘルスチェック、メモリ、監査、スキル、請求 |
| A2A | yodmcp-a2a --port 9000 | :9000 | エージェントカード、メッセージ、タスク |
| SDK | from yodmcp.sdk import YodClient | HTTP クライアント | API 用の軽量クライアント |
| スキル | skills:// + skills/*/SKILL.md | 自動読み込み | MCP リソースとしてのエージェントスキル |
| 検証 | pytest + scripts/verify_e2e.py | CI | 基盤、永続化、TEE モード |
要件
- Python 3.11 または 3.12(3.10 以上を宣言。CI では 3.11/3.12 を対象)
- 任意:複数サービスの compose には Docker
インストール
git clone https://github.com/ANAMIZED/YodMCP.git
cd YodMCP
python -m venv .venv && source .venv/bin/activate # recommended
pip install -e ".[dev]"
環境変数のデフォルト値をコピーします:
cp .env.example .env
| 変数 | デフォルト | 意味 |
|---|---|---|
YODMCP_MEMORY_BACKEND | memory | memory | sqlite | durable |
YODMCP_MEMORY_DB | ./data/yodmcp_memory.db | durable の場合の SQLite パス |
YODMCP_ATTEST_MODE | software | software | simulated_tee | nitro | sgx |
YODMCP_PLAN | free | free | pro | enterprise |
YODMCP_TENANT_ID | default | ソフトクォータのテナントキー |
YODMCP_SKILLS_DIR | (自動) | スキルのルートを上書き |
STRIPE_SECRET_KEY | 未設定 | ライブ Checkout Sessions を有効化 |
TEE に関する注意:
nitro/sgxはプロバイダーフックです。実際の TEE ライブラリがない場合は、シミュレートされたクレームにフォールバックします。ローカルでの検証にはsoftwareまたはsimulated_teeを推奨します。
クイックスタート(ローカル)
# 1) MCP over stdio (attach from an MCP client)
yodmcp
# 2) REST API
yodmcp-api --port 8080
# curl http://127.0.0.1:8080/health
# 3) A2A
yodmcp-a2a --port 9000
# curl http://127.0.0.1:9000/a2a/card
MCP クライアントの設定(stdio)
Cursor — プロジェクトの .cursor/mcp.json またはグローバル MCP 設定:
{
"mcpServers": {
"yodmcp": {
"command": "yodmcp",
"args": [],
"env": {
"YODMCP_MEMORY_BACKEND": "memory",
"YODMCP_PLAN": "free",
"YODMCP_ATTEST_MODE": "software"
}
}
}
}
yodmcp が PATH にない場合は、モジュール形式を使用します:
{
"mcpServers": {
"yodmcp": {
"command": "python",
"args": ["-m", "yodmcp"],
"cwd": "/absolute/path/to/YodMCP",
"env": {
"PYTHONPATH": "src",
"YODMCP_MEMORY_BACKEND": "memory"
}
}
}
}
Claude Desktop — claude_desktop_config.json の mcpServers 内に同じ形式で設定します。
Streamable HTTP MCP(URL トランスポートに対応するリモートクライアント):
yodmcp --http --host 0.0.0.0 --port 8000
# endpoint: http://127.0.0.1:8000/mcp
Docker
docker compose up --build
# API :8080 A2A :9000 MCP HTTP :8000
単一の API コンテナー:
docker build -t yodmcp .
docker run --rm -p 8080:8080 -e YODMCP_PLAN=free yodmcp
エンドツーエンドの検証(外部アカウントは不要)
# Unit + integration
YODMCP_MEMORY_BACKEND=memory YODMCP_ATTEST_MODE=software \
PYTHONPATH=src pytest tests/ -v
# Durable SQLite + simulated TEE
YODMCP_MEMORY_BACKEND=sqlite YODMCP_MEMORY_DB=/tmp/yodmcp.db \
YODMCP_ATTEST_MODE=simulated_tee \
PYTHONPATH=src pytest tests/ -v
# Exhaustive substrate script
PYTHONPATH=src python scripts/verify_e2e.py
期待される結果:すべてのテストが成功し、スクリプトに ALL E2E CHECKS PASSED と表示されます。
API のスモークテスト(yodmcp-api の実行中に実施):
curl -s http://127.0.0.1:8080/health
curl -s http://127.0.0.1:8080/api/skills
curl -s http://127.0.0.1:8080/api/billing/plans
curl -s http://127.0.0.1:8080/api/billing/status
SDK:
python examples/sdk_quickstart.py # requires API on :8080
MCP ツール(カタログ)
| ツール | 説明 |
|---|---|
memory_write | メモリノード(事実/決定事項)を 1 つ挿入します。計画には使用しません(plan_cache_put)。 |
memory_read | 類似度または item_id によってノードを取得します。計画には使用しません(plan_cache_get)。 |
memory_delete | ノード 1 つと接続するエッジを完全に削除します。対象が存在しない場合も安全に実行できます。 |
memory_consolidate | 重要度が 0.8 以上の項目を意味的な要約に昇格します。元の項目は削除しません。 |
memory_stats | ノード/エッジ/エンティティの数を取得します。内容は取得しません(memory_read)。 |
tasks_create | 永続的な保留中タスクのハンドルを作成します。 |
tasks_get | ID でハンドルを 1 つ取得します。 |
tasks_list | 最近のハンドルを一覧表示します。ステータスによる絞り込みは任意です。 |
tasks_update | ステータス/進捗/結果を更新します。キャンセルには使用しません(tasks_cancel)。 |
tasks_cancel | ハンドルをキャンセル済みに設定します(カーネルの状態のみ)。 |
tasks_stats | ステータスごとの件数を取得します。一覧表示は行いません(tasks_list)。 |
skills_list | Agent Skills と skills:// URI を一覧表示します(本文はリソースです)。 |
a2a_card | A2A Agent Card の JSON を返します。MCP カタログではありません(discover_capabilities)。 |
plan_cache_get / plan_cache_put / plan_cache_delete | 意味的な計画テンプレートを扱います。メモリの事実は対象外です。 |
cache_stats | プロセス内キャッシュのエントリー数とヒット数を取得します。 |
attestation_recent | TRACE 形式の来歴に関する主張を取得します。監査記録ではありません(audit_recent)。 |
audit_recent | ポリシー/ツール Decision-System-of-Record イベントを取得します。 |
discover_capabilities | MCP ツールと読み込まれたスキルを一覧表示します。 |
echo | 稼働確認プローブ(message をエコーし、バージョンを返します)。 |
リソース:
skills://{name}— スキルの Markdown 本文yodmcp://agent-card— エージェントカードの JSON
スキル
組み込みスキルは常に登録されています。skills/*/SKILL.md にあるディスク上のスキルは自動的に読み込まれます(YODMCP_SKILLS_DIR で変更できます)。リポジトリには次のものが含まれます:
memory-hygiene、safe-tool-use、funding-usdc、repo-bootstrap- さらに、組み込みの
long-horizon-planning
収益化
| プラン | $/月 | ツール呼び出し数/日 | 永続性 | TEE |
|---|---|---|---|---|
| Free | 0 | 500 | — | — |
| Pro | 49 | 50k | はい | シミュレーション |
| Enterprise | 499 | 無制限 | はい | Nitro/SGX フック |
- ツールゲートでソフトクォータを適用し、上限に達するとアップグレードを案内します
STRIPE_SECRET_KEYが設定されている場合は Stripe Checkout が有効になります。設定されていない場合、チェックアウトはstatus: payment_linkを返します
| オプション | リンク |
|---|---|
| YodMCP Pro | https://buy.stripe.com/bJe3cw0kCaLrbVz1AY43S09 |
| YodMCP Enterprise | https://buy.stripe.com/9B68wQ1oGcTz9NrfrO43S0a |
| Agentic OS Kernel Support($99) | https://buy.stripe.com/bJecN63wObPv6Bf7Zm43S02 |
| Public Goods Support($25) | https://donate.stripe.com/00w5kE3wOg5L8Jn2F243S00 |
| Agentic Systems Consulting Hour($199) | https://buy.stripe.com/dRmaEYgjA9Hnf7LdjG43S0b |
非カストディアル USDC(エージェント向け推奨)
| ネットワーク | アドレス |
|---|---|
| Base | 0xD3d0E9eDAe3Ac7bb199a8EAA761BdA423b878438 |
| Ethereum | 0xD3d0E9eDAe3Ac7bb199a8EAA761BdA423b878438 |
| Solana | ETQwWf19axArsY493UfC6bxe2BmEzmzvCb58PPnC38A |
正式な一覧:funding/addresses.json
プロジェクトの構成
src/yodmcp/ # package (src-layout)
core/ # server, substrate, context
memory/ # in-memory + durable SQLite multi-graph
tools/ # MCP tool registration + gate
tasks/ skills/ cache/ security/ observability/ monetization/
api/ a2a/ sdk/
skills/*/SKILL.md # portable Agent Skills (loaded at runtime)
scripts/verify_e2e.py
tests/
docs/ARCHITECTURE.md
docs/FOUNDRY.md
docs/TDQS.md
既知の制限事項(本番環境で利用する前にお読みください)
- プランキャッシュでは軽量な埋め込みを使用します。デフォルトの類似度しきい値は 0.68 です(本番環境向けのベクトル検索ではありません)。
- TEE の Nitro/SGX は、実際のプロバイダーを接続しない限り、シミュレーションによるフォールバックを備えたフックです。
- フロントエンドの
src/yodmcp/frontend/dashboard.pyは引き続きレガシーのcore.runtimeを使用しており、主要なコントロールプレーンではありません。yodmcp-apiと MCP ツールを使用してください。 - クォータはソフト制限です(プロセス内メーター)。分散型の課金台帳ではありません。
- プロセス間でメモリー内の状態は共有されません。複数プロセスで永続性を確保するには、
sqliteバックエンドと共有ボリュームを使用してください。
ライセンス
Apache-2.0 · コントリビューション · 変更履歴 · アーキテクチャ · ファウンドリー · TDQS · AGENTS.md
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。