pmcp について
PMCP は Rust で実装された MCP エコシステムで、SDK、コマンドライン、設定駆動型サーバー、ドキュメントを含みます。本番向け MCP サーバーを開発する利用者を対象とし、Rust を書かずに config.toml から SQL や OpenAPI のサーバーを公開することもできます。
主な機能
- 01複数のトランスポートに対応した pmcp SDK
- 02スキャフォールド、テスト、デプロイを扱う cargo-pmcp
- 03config.toml で設定する SQL および OpenAPI サーバー
- 04Excel ワークブックの出力テーブルを MCP ツールとして提供
- 05プロンプトへのフォールバックを伴う Agent Skills の登録
活用シーン
- 01Rust を書かずに SQL データベースを MCP クライアントへ公開
- 02cargo-pmcp で MCP サーバーを作成しクラウドへデプロイ
- 03管理された Excel ワークブックを計算用 MCP ツールとして提供
MCP 対応
PMCP は MCP サーバーの実装であり、SDK と設定駆動型バイナリを通じてツール、リソース、プロンプトを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
PMCP - 実践的なModel Context Protocol
Model Context Protocol(MCP)の本番環境向けRust実装 — TypeScriptより16倍高速で、トヨタウェイの品質原則に基づいて構築
概要
PMCPは、Rust向けの完全なMCPエコシステムです。本番環境向けのMCPサーバーを構築、テスト、デプロイするために必要なすべてを提供します — Rustで、または設定だけで利用できます。
- 🧩 設定駆動型サーバー -
config.tomlからSQLおよびOpenAPI/HTTP MCPサーバーを構築するか、コンパイル済みバンドルから統制されたExcelワークブックを提供できます — すべてRustは不要です(pmcp-server-toolkit、pmcp-sql-server、pmcp-openapi-server、pmcp-workbook-server) - 🤝 エージェントとチーム - どこにでもデプロイできるエージェントや小規模チームを構築できます。エージェントループ(
pmcp-agent)、4つのリファレンスチームサーバー(pmcp-team-servers)、ポータブルなAI-Package形式(pmcp-package)を、cargo pmcp agent/team/packageのサブコマンドで操作します - 🦀 pmcp SDK - MCPプロトコルを完全にサポートする高性能なRustクレート
- ⚡ cargo-pmcp - スキャフォールディング、テスト、開発用のCLIツールキット
- 📚 pmcp-book - 27章からなる包括的なリファレンスガイド
- 🎓 pmcp-course - クイズや演習を含む実践的なコース
- 🤖 AIエージェント - AI支援開発のためのKiroおよびClaude Code設定
PMCPを選ぶ理由
- パフォーマンス:TypeScript SDKより16倍高速、メモリ使用量は50分の1
- 安全性:Rustの型システムと、本番コードでの
unwrap()ゼロを実現 - 品質:トヨタウェイの原則に基づき、技術的負債を一切許容しません
- 完全性:SDK、ツール、ドキュメント、AI支援を1つのエコシステムに集約
クイックスタート
経験や好みに合わせて、始め方を選択してください。
🧩 パス 1:設定のみで動作するサーバー — Rust 不要(SQL と OpenAPI)
v2.9 の新機能 — 組織のデータを MCP の背後に置く際の最大の障壁が取り除かれました。Rust プログラマーはもう必要ありません。 config.toml で、SQL データベースまたは任意の OpenAPI / HTTP バックエンド上に本番環境向け MCP サーバーを記述します。バックエンド、厳選したいくつかのツール、Code Mode ポリシーを宣言すれば、ビルド済みバイナリがサーバーを提供します。Rust も再コンパイルも不要です。厳選したツールで一般的な約 20% をカバーし、Code Mode は静的なデフォルト拒否ポリシーのもとでスキーマ/仕様に対するクエリを生成し、残りの約 80% に対応します。ビジネスアナリストが設定で API の範囲を厳選すれば、あとはツールキットが処理します。
SQL — SQLite / Postgres / MySQL / Athena(このリポジトリをチェックアウトすれば実行できます):
cargo install pmcp-sql-server
# Seed a tiny demo DB, then serve it from config alone — two curated tools
# (list_books, books_by_author) + Code Mode for the long tail.
sqlite3 /tmp/pmcp-sqlite-explorer.db < crates/pmcp-sql-server/examples/sqlite-explorer.sql
pmcp-sql-server \
--config crates/pmcp-sql-server/examples/sqlite-explorer.toml \
--schema crates/pmcp-sql-server/examples/sqlite-explorer.sql
OpenAPI / HTTP — 任意の REST バックエンド。送信認証モデルを 6 種類備え、OAuth の パススルーにも対応しています(サーバーは永続的な認証情報を保持せず、呼び出し元自身のトークンを転送するため、サインイン中のユーザーとしてのみ操作できます):
cargo install pmcp-openapi-server
# Curated configs ship with the crate — e.g. a London Tube (api_key) showcase and
# a Microsoft-Graph / Excel "Contoso" (oauth_passthrough) example. These talk to a
# live backend, so supply any required credential per the example's comments.
#
# `base_url` is a SLOT, not a baked literal, so the endpoint comes from the
# environment too — the same package moves between environments unchanged.
TFL_BASE_URL=https://api.tfl.gov.uk TFL_APP_KEY=<your-key> \
pmcp-openapi-server --config crates/pmcp-openapi-server/examples/london-tube.toml
Excel ワークブック — 出力テーブルごとに 1 つの MCP ツールとして提供される、ガバナンス管理されたスプレッドシート(config.toml もスキーマも不要です。入力はコンパイル済みの bundle@version ディレクトリ 1 つだけです)。名前付きの Excel テーブルとして入力と出力を作成すると、各出力テーブルが、DAG から導出された入力スキーマを備えた、名前と型が適切に設定された独自の MCP ツールになります:
cargo install pmcp-workbook-server
# Preview the exact tool surface an AI will see — BEFORE you compile or deploy:
cargo pmcp workbook explain pricing.xlsx # e.g. calculate_tax, estimate_refund
# Compile a governed workbook to a deterministic bundle (ingest → lint → compile →
# reconcile → fail-closed gate → write), then serve one calculation tool per output
# table — plus explain / get_manifest / diff_version / render_workbook — from the bundle alone.
cargo pmcp workbook compile pricing.xlsx --workflow quote --approver alice
pmcp-workbook-server --bundle-dir bundles/[email protected]
拡張してデプロイしますか? cargo pmcp new my-server --kind sql-server(または --kind openapi-server / --kind workbook-server)を実行すると、同じ設定駆動型サーバーが小規模なクレートとして生成され、AWS Lambda / Google Cloud Run / Cloudflare / pmcp.run への cargo pmcp deploy が可能になります。
詳細はこちら:pmcp-book の 設定駆動型 SQL サーバー、OpenAPI、設定駆動型ワークブックサーバー の各章 · pmcp-sql-server · pmcp-openapi-server · pmcp-workbook-server · pmcp-server-toolkit
🚀 パス 2:AI 支援(迅速なプロトタイピングにおすすめ)
AI の支援を活用して、本番環境に対応した MCP サーバーを数分で構築できます。
前提条件:
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update
# Install cargo-pmcp
cargo install cargo-pmcp
Claude Code AI エージェントをインストール:
# Install the mcp-developer subagent (user-level - works across all projects)
curl -fsSL https://raw.githubusercontent.com/paiml/rust-mcp-sdk/main/ai-agents/claude-code/mcp-developer.md \
-o ~/.claude/agents/mcp-developer.md
# Restart Claude Code
サーバーを構築:
You: "Create a weather forecast MCP server with tools for getting current conditions and 5-day forecasts"
Claude Code: [Invokes mcp-developer subagent]
I'll create a production-ready weather MCP server using cargo-pmcp.
$ cargo pmcp new weather-mcp-workspace
$ cd weather-mcp-workspace
$ cargo pmcp add server weather --template minimal
[Implements type-safe tools with validation]
[Adds comprehensive tests and observability]
[Validates quality gates]
✅ Production-ready server complete with 85% test coverage!
得られるもの:Toyota Way の原則に従った本番環境対応のコードに、包括的なテスト、構造化ログ、メトリクス収集が備わり、clippy の警告もゼロです。
詳細はこちら:AI 支援開発コース | AI エージェントの README
⚡ パス 3:cargo-pmcp ツールキット(手動開発におすすめ)
cargo-pmcp CLI を使ってサーバーを生成し、構築できます。
インストール:
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update
# Install cargo-pmcp
cargo install cargo-pmcp
サーバーを作成:
# Create workspace
cargo pmcp new my-mcp-workspace
cd my-mcp-workspace
# Add a server using a template
cargo pmcp add server myserver --template minimal
# Start development server with hot-reload
cargo pmcp dev --server myserver
# Generate and run tests
cargo pmcp test --server myserver --generate-scenarios
cargo pmcp test --server myserver
# Build for production
cargo build --release
利用可能なテンプレート(cargo pmcp add server <name> --template <t>):
minimal- カスタムサーバー向けの空の構成calculator- 算術演算(学習用)complete_calculator- 全機能を備えたリファレンス実装sqlite_explorer- Rust で記述されたデータベースブラウザー(代替手段)
設定駆動型の種類(cargo pmcp new <name> --kind <k> — TOML 駆動で、ツールごとの Rust コードは不要):
sql-server-config.tomlから SQLite / Postgres / MySQL / Athena 上で動作する SQL MCP サーバーopenapi-server-config.tomlから任意の OpenAPI / HTTP バックエンド上で動作する MCP サーバーworkbook-server- ガバナンス管理された Excel ワークブック上で動作し、コンパイル済みのbundle@versionディレクトリから提供される MCP サーバー
詳細はこちら:cargo-pmcp ガイド
🦀 パス 4:pmcp SDK を直接使用(きめ細かな制御向け)
最大限の制御を実現するには、pmcp クレートを直接使用します。
インストール:
[dependencies]
pmcp = "2.0"
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
schemars = "0.8" # For type-safe tools
型安全なサーバーの例:
use pmcp::{ServerBuilder, TypedTool, RequestHandlerExtra, Error};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
struct WeatherArgs {
#[schemars(description = "City name")]
city: String,
#[schemars(description = "Number of days (1-5)")]
days: Option<u8>,
}
#[derive(Debug, Serialize, JsonSchema)]
struct WeatherOutput {
temperature: f64,
conditions: String,
}
async fn get_weather(args: WeatherArgs, _extra: RequestHandlerExtra) -> pmcp::Result<WeatherOutput> {
// Validate
if args.city.is_empty() {
return Err(Error::validation("City cannot be empty"));
}
let days = args.days.unwrap_or(1);
if !(1..=5).contains(&days) {
return Err(Error::validation("Days must be 1-5"));
}
// Call weather API...
Ok(WeatherOutput {
temperature: 72.0,
conditions: "Sunny".to_string(),
})
}
#[tokio::main]
async fn main() -> pmcp::Result<()> {
let server = ServerBuilder::new()
.name("weather-server")
.version("1.0.0")
.tool("get-weather", TypedTool::new("get-weather", |args, extra| {
Box::pin(get_weather(args, extra))
}).with_description("Get weather forecast for a city"))
.build()?;
server.run_stdio().await?;
Ok(())
}
詳細はこちら:pmcp-book | pmcp-course | API ドキュメント
PMCP エコシステムのコンポーネント
🦀 pmcp SDK(クレート)
MCP プロトコルの高性能な Rust 実装です。
主な機能:
- 型安全なツール:Rust の型から JSON スキーマを自動生成します
- 複数のトランスポート:stdio、HTTP/SSE、WebSocket、WASM
- OAuth サポート:認証コンテキストの完全な引き継ぎ
- ワークフロー:配列インデックス指定をサポートする複数ステップのオーケストレーション
- MCP Apps:ライブプレビューとブラウザ DevTools を備えた、リッチな HTML UI ウィジェット
- MCP Tasks:タスクのライフサイクル管理に対応した、共有クライアント/サーバー状態 — 関連するタスクを参照する
CallToolResultの返し方については、タスク拡張ツール結果(SEP-1686)の章をご覧ください - エージェントスキル(SEP-2640):約 5 行でエージェントスキルを登録し、SEP-2640 のスキルサーフェスと、並行する MCP プロンプトのフォールバックの両方で提供します — 構造上、バイト単位で一致します(
skills機能、オプトイン) - Tower ミドルウェア:DNS リバインディング保護、CORS、セキュリティヘッダー
- 型付きクライアントヘルパー:
call_tool_typed、get_prompt_typed、および安全上限付きで自動ページネーションを行うlist_all_* - パフォーマンス:TypeScript より 16 倍高速で、SIMD による解析を実現
- 品質:
unwrap()を使用せず、包括的なエラー処理を実装
最新バージョン: pmcp = "2.9"
ドキュメント:
⚡ cargo-pmcp(CLI ツールキット)
ひな形の作成から本番環境へのデプロイまで、開発ライフサイクル全体を支援するツールキットです。
cargo install cargo-pmcp
cargo pmcp new my-workspace # Scaffold a new workspace
cargo pmcp add server my-server # Add a server with best-practice template
cargo pmcp dev --server my-server # Dev server with hot-reload
cargo pmcp test --server my-server # Auto-generated scenario tests
cargo pmcp loadtest run # Load test with latency percentiles
cargo pmcp pentest run # Security audit (32 checks, SARIF output)
cargo pmcp preview --open # Browser-based widget preview
cargo pmcp workbook explain wb.xlsx # Preview an Excel workbook's MCP tool surface
cargo pmcp deploy --target aws-lambda # Deploy to AWS Lambda, GCR, or Cloudflare
cargo pmcp deploy logs --tail # Stream production logs
ひな形の作成、開発モード、テスト、負荷テスト、セキュリティ侵入テスト、MCP Apps のプレビュー、スキーマ管理、複数ターゲットへのデプロイ、シークレット、OAuth のセットアップなど、開発ライフサイクル全体をカバーします。
コマンドの完全なリファレンス:cargo-pmcp ガイド
🧩 設定駆動型サーバー(Rust 不要)
config.toml だけで、SQL および HTTP バックエンド上に本番環境向けの MCP サーバーを構築できます。このツールキットは、厳選されたツールと Code Mode による拡張機能を合成するため、組織のデータを MCP 経由で公開するのに Rust プログラマーは不要です。
| クレート | 概要 |
|---|---|
pmcp-server-toolkit | バックエンドに依存しないライブラリです。設定型、[[tools]] シンセサイザー、Code Mode の接続機能、および以下のバイナリが利用するコネクター/認証の接続部分を提供します。 |
pmcp-sql-server | config.toml とスキーマファイルから SQL データベース(SQLite/Postgres/MySQL/Athena)を提供する Shape-A バイナリです。実行可能な sqlite-explorer の例が含まれています。 |
pmcp-openapi-server | 6 種類の送信認証モデル(OAuth パススルーを含む)に対応し、あらゆる OpenAPI/HTTP バックエンドを提供する Shape-A バイナリです。london-tube(api_key)と contoso-m365(oauth_passthrough、Microsoft Graph + Excel)の例が含まれています。 |
pmcp-workbook-server | ガバナンスされた Excel ワークブックを、出力テーブルごとの名前付き MCP ツール(例:calculate_tax、estimate_refund)として提供し、インフラストラクチャツール(explain/get_manifest/diff_version/render_workbook)も備える Shape-A バイナリです。コンパイル済みの bundle@version ディレクトリだけで動作し、config.toml もスキーマも不要です。Excel リーダーと JS Code Mode はコンパイル時のみ使用され、提供するバイナリには含まれません(純粋性ゲート)。 |
pmcp-toolkit-postgres / -mysql / -athena | ツールキット用のバックエンド別 SQL コネクターです。 |
これらのバイナリには、同じ設定駆動型サーバーを小規模でデプロイ可能なクレートとして生成する、cargo pmcp new --kind {sql-server,openapi-server,workbook-server} のスキャフォールド用兄弟クレートがあります。上記の Path 1 と、pmcp-book の Config-Driven SQL Servers/OpenAPI/Config-Driven Workbook Servers の各章をご覧ください。
📚 pmcp-book(リファレンスガイド)
pmcp を使った MCP サーバー構築を網羅する、全 27 章のリファレンスガイドです。
📖 オンラインで読む
収録内容:
- はじめに:インストール、最初のサーバー、クイックスタートチュートリアル
- コアコンセプト:ツール、リソース、プロンプト、エラー処理
- 高度な機能:認証、トランスポート、ミドルウェア、進捗状況の追跡
- 実環境での活用:本番環境向けサーバー、テスト、デプロイ、パフォーマンス
- 例とパターン:完全な例と設計パターン
- TypeScript からの移行:完全な互換性ガイド
- 高度なトピック:カスタムトランスポート、AI 支援開発
ローカル開発:
make book-serve # Serve at http://localhost:3000
make book-open # Build and open in browser
🎓 pmcp-course(実践学習)
クイズ、演習、実環境に即したプロジェクトを通じて、MCP 開発を習得できるインタラクティブなコースです。
🎓 コースを始める
コース構成:
- パート I:基礎 - MCP の概念、最初のサーバー、型付きツール
- パート II:コアコンセプト - ツール、リソース、プロンプト、検証
- パート III:デプロイ - AWS Lambda、Cloudflare Workers、Google Cloud Run
- パート IV:テスト - ローカルテスト、CI/CD、回帰テスト
- パート V:セキュリティ - OAuth 2.0、ID プロバイダー、マルチテナント
- パート VI:AI 支援開発 - Claude Code、フィードバックループ、コラボレーション
- パート VII:可観測性 - ミドルウェア、ログ、メトリクス
- パート VIII:応用 - サーバーの合成、MCP Apps(実験的)
特長:
- 各章の後に取り組むインタラクティブなクイズ
- 解答付きの実践演習
- 実環境に即したプロジェクト例
- 本番環境向けサーバーで培われたベストプラクティス
ローカル開発:
cd pmcp-course && mdbook serve # Serve at http://localhost:3000
🤖 ai-agents(AI 支援開発)
Kiro と Claude Code に MCP サーバーの構築方法を教える、AI エージェントの設定です。
対応する AI アシスタント:
Kiro(Steering ファイル) - MCP に関する永続的な専門知識を 10,876 行で提供
- すべての会話で常に有効なナレッジ
- 包括的なテストと可観測性に関するガイダンス
- インストールガイド
Claude Code(サブエージェント) - MCP に関する約 750 行の専門知識
- MCP タスクに応じて呼び出し
- 迅速なスキャフォールディングと実装
- インストールガイド
AI エージェントが把握していること:
- MCP プロトコルの概念とパターン
- cargo-pmcp のワークフロー(手作業でファイルを作成することはありません)
- 型安全なツールの実装
- テスト戦略(ユニット、統合、プロパティ、ファジング)
- 本番環境における可観測性(ロギング、メトリクス)
- トヨタウェイの品質基準
コミュニティによる実装も歓迎します:
- GitHub Copilot、Cursor、Cline など
- コントリビューションガイド
詳細はこちら:AI 支援開発コース | ai-agents/
🎨 MCP Apps(リッチ UI ウィジェット)
MCP サーバーから配信する、リッチな HTML UI ウィジェットを構築できます。ChatGPT、Claude、その他の MCP クライアントで動作します。
機能:
- プレビュー:プロキシ/WASM ブリッジの 2 つのモードに対応した、ウィジェットのライブプレビュー
- 作成:
widgets/ディレクトリ内にファイルベースのウィジェットを作成し、ホットリロードに対応 - スキャフォールディング:
cargo pmcp app newで完全な MCP Apps プロジェクトを生成 - 公開:ChatGPT 互換のマニフェストと、単独で動作するデモ用ランディングページ
- テスト:chromiumoxide CDP を使用した 20 件の E2E ブラウザーテスト
クイックスタート:
# Scaffold a new MCP Apps project
cargo pmcp app new my-widget-app
cd my-widget-app
# Run the server
cargo run
# Preview in browser (separate terminal)
cargo pmcp preview --url http://localhost:3000 --open
# Generate deployment artifacts
cargo pmcp app build --url https://my-server.example.com
サンプル:
- チェスアプリ — 着手の検証機能を備えたインタラクティブなチェス盤
- マップアプリ — Leaflet.js を使用した地理空間対応の都市探索アプリ
- データ可視化アプリ — SQL クエリに対応した Chart.js ダッシュボード
詳細はこちら:ウィジェットランタイム | プレビューサーバー | E2E テスト
エージェントとチーム
ここまで紹介したものは、すべて呼び出されるのを待つ MCP サーバーを構築します。エージェントはその反対側にあり、独自の意思決定ループを持つため、それ自体が MCP クライアントです。PMCP はそのループをクレートとして提供し、CLI からスキャフォールディングできるため、Rust を書く前にエージェントが意思決定する様子を確認できます。
# Scaffold a runnable agent package (AgentPackage manifest + crate)
cargo pmcp agent new research-agent
cd research-agent
# Run the loop offline first — no network, no API key
cargo pmcp agent dev --source fixed
# Then against a local model (defaults to Ollama at http://localhost:11434/v1)
cargo pmcp agent dev --source openai-compat --model llama3.2
# Run a two-member reference team in one process
cargo pmcp team dev
エージェントの ID(指示、モデルスロット、トークン数と反復回数の上限)は、コードではなく agent.package.json マニフェストに記述されます。そのため、同じパッケージを編集せずに、ノート PC からデプロイ環境へ移せます。補完の取得元を変更するときに変えるのは --source だけで、ループ自体は変わりません。
その基盤となるクレート:
- 🤖
pmcp-agent- 3 つの接点(補完ソース、ツール呼び出し元、ストア)を介したAgentEngineループと、呼び出し元からサンプリングされる MCP ツールとしてエージェントを公開するAgentServer - 👥
pmcp-team-servers- 4 つのリファレンスチームサーバーと、cargo pmcp team devが実行するインプロセス構成ランタイム - 📦
pmcp-package- エージェントをバイナリではなく記述として扱える、ポータブルな AI-Package 形式(AgentPackage、TeamPackage)
# One AgentEngine, run twice: standalone, then hosted-sampled — no network, no key
cargo run -p pmcp-agent --example s50_standalone_vs_sampled
詳細はこちら:第 12.15 章:MCP クライアントとしてのエージェント | pmcp-agent | pmcp-team-servers
プロトコルバージョン
PMCP は、1 つのバイナリで 2 つの MCP プロトコル世代(v1(2025-11-25)と v2
(2026-07-28))に対応します。世代はプロセス単位ではなく、リクエストごとにネゴシエーションされます。同じサーバーが、同じポートで、セッションを使用する v1 クライアントとセッションを使用しない v2 クライアントに同時に応答します。2 つのサーバー群を運用する必要はなく、ビルド時に世代を選ぶこともありません。
このプロジェクトでは、世代は日付文字列とともに v1/v2 と表記し、クレートは常に名前を付けて表記します(「pmcp 2.18」)。バージョン番号だけでプロトコル世代を示すことはありません。
役割ごとのオプトイン:
- サーバー —
ServerBuilder::with_supported_protocol_versions(...)を明示的に一度呼び出し、v1 のバージョンとPROTOCOL_VERSION_2026_07_28の両方を指定します。デフォルトの許可リストは意図的に v1 のみとなっているため、クレートをアップグレードしただけでは、サーバーは v1 のみに応答します。examples/s47_v2_stateless_mrtr.rsを参照してください。 - クライアント —
ClientBuilder::with_protocol_version(...)を明示的に一度呼び出します。呼び出さない場合、クライアントは従来どおり v1 を使用します。 - エージェント — すでに対応済みです。
pmcp-agentのインボーカーは v2 を優先し、対応していない場合は v1 にフォールバックするため、cargo pmcp agent newでスキャフォールドしたエージェントは、サーバーが対応している場合に v2 を使用します。
サーバー側には、逆方向の設定、つまり v1 を無効にする方法もあります。
cargo build -p pmcp --no-default-features --features full-v2
--no-default-features だけでは何も証明できません(HTTP トランスポートも削除されるため、v1 は何もコンパイルされていないだけなのに無効になったように見えます)。full-v2 は明示的な機能リストで、full に含まれるものから v1-compat だけを除いた構成です。
詳細:第 12.17 章:MCP 2026-07-28(v2)への移行 | v1 のサンセットポリシー
最新リリース:pmcp 2.18.0
公開日:2026-08-16。 開発中のバージョンは pmcp 2.19.0 で、まだリリースされていません。変更履歴の先頭にある項目が、次に追加される内容の正式な一覧です。
- 2 つのプロトコル世代、1 つのバイナリ:pmcp は MCP
2025-11-25(v1)と2026-07-28(v2)の両方を提供し、リクエストごとにネゴシエーションします。上記のプロトコルバージョンを参照してください。 - 認証情報ストレージ(2.18.0):1 台のマシンに 1 つの認証情報ストアを用意します。
pmcp::shared::credential_storeは(issuer, account, server)で指定し、cargo pmcp authが書き込むオンディスクのFileCredentialStoreを使用できます。 - エージェントとチーム:
pmcp-agentのループ、4 つのリファレンス用チームサーバー、ポータブルな AI-Package 形式を提供します。上記のエージェントとチームを参照してください。 - MCP Apps:MCP サーバーが提供する、リッチでインタラクティブな HTML UI ウィジェットです。ChatGPT、Claude Desktop、その他の MCP クライアントで動作します。ブラウザーの DevTools のようなライブプレビュー(サイズ変更可能なパネル、ネットワーク/イベント/プロトコル/ブリッジの各タブ)を利用できます。
- MCP Tasks:プラガブルなストア(インメモリおよび DynamoDB)とタスク変数を備えた、クライアント/サーバー間で共有されるタスクのライフサイクルです。v2 の形式は拡張機能であり、まだ暫定的です。
- 適合性テストスイート:5 つのドメインにまたがる 19 のシナリオを備えた適合性エンジンです。
cargo pmcp test conformanceとmcp-tester conformanceの CLI 統合を利用できます。 - Tower ミドルウェア:DNS リバインディング保護、オリジンをロックしたヘッダーを使用する CORS、設定可能なセキュリティヘッダーを備えた、本番環境対応の HTTP スタックです。
- PMCP サーバー:Streamable HTTP 経由で SDK 開発者向けツール(テスト、スキャフォールド、スキーマのエクスポート)を公開する MCP サーバーです。AWS Lambda にデプロイされています。
- 統一されたコンストラクター DX:すべてのプロトコル型にデフォルト実装、ビルダー、コンストラクターを用意し、使いやすさを大幅に向上させました。
examples/に 85 個のサンプル:SDK の機能を実行可能な形で網羅しています(ワークスペース全体では 119 個のサンプルターゲット)。
変更履歴の全文:CHANGELOG.md
主な機能
🚀 トランスポート層
- stdio:CLI 統合向けの標準入力/出力
- HTTP/SSE:Server-Sent Events を使用する Streamable HTTP
- WebSocket:自動再接続に対応した全二重通信
- WASM:ブラウザーと Cloudflare Workers に対応
🛠️ 型安全な開発
- スキーマの自動生成:
schemarsを使用して Rust の型から生成します - コンパイル時検証:ツール引数を型チェックします
- 実行時検証:生成された JSON スキーマに照らして検証します
- unwrap の排除:すべての箇所で明示的にエラーを処理します
🔐 セキュリティと認証
- OAuth 2.0:認証コンテキストを完全に引き継ぎます
- OIDC ディスカバリー:プロバイダー設定を自動化します
- Bearer トークン:標準的な認証方式です
- パス検証:ファイルシステムへの安全なアクセスを実現します
🧪 テストと品質
- mcp-tester:包括的なサーバーテストツールです
- シナリオ生成:テストケースを自動生成します
- プロパティテスト:不変条件を検証します
- 品質ゲート:fmt、clippy、カバレッジの適用を行います
⚡ パフォーマンス
- TypeScript SDK より 16 倍高速
- メモリ使用量を 50 分の 1 に削減
- SIMD 解析:AVX2/SSE4.2 により SSE を 10.3 倍高速化
- コネクションプーリング:スマートな負荷分散を実現します
🏭 トヨタウェイの品質
- 技術的負債ゼロ:TDG スコア 0.76
- Jidoka:不具合があればラインを止めます
- Genchi Genbutsu:現地現物で確認します(エビデンスに基づく)
- Kaizen:継続的に改善します
- unwrap の排除:明示的なエラー処理のみを使用します
ドキュメント
📖 主なリソース
- PMCP ドキュメントポータル - すべてのドキュメントへのランディングページ
- pmcp-book - 包括的なリファレンスガイド(27 章)
- pmcp-course - クイズと演習を含む実践的なコース
- API リファレンス - API ドキュメント一式
- cargo-pmcp ガイド - CLI ツールキットのドキュメント
📚 その他のリソース
- サンプル -
examples/に 85 個の動作するサンプルを収録(ワークスペース全体では 119 個のサンプルターゲット) - 変更履歴 - バージョン履歴
- 移行ガイド - アップグレード手順
- コントリビューション - 貢献方法
🎯 クイックリンク
サンプル
SDK には、SDK の全機能を網羅した、examples/ 内で実行可能な 85 個のサンプル(ワークスペース全体で 119 個のサンプルターゲット)が含まれています。
# Basic examples
cargo run --example c01_client_initialize # Client setup
cargo run --example s01_basic_server # Basic server
cargo run --example c02_client_tools # Tool usage
# Type-safe tools (v1.6.0+)
cargo run --example s16_typed_tools --features schema-generation
cargo run --example s17_advanced_typed_tools --features schema-generation
# Advanced features
cargo run --example s28_authentication # OAuth/Bearer
cargo run --example t01_websocket_transport # WebSocket
cargo run --example m01_basic_middleware # Middleware chain
# Agent Skills (SEP-2640) — dual-surface skill + prompt
cargo run --example s44_server_skills --features skills,full
cargo run --example c10_client_skills --features skills,full
# Agents & Teams — an agent loop, and four reference servers cooperating
cargo run --example s49_sampling_host
cargo run -p pmcp-agent --example s50_standalone_vs_sampled
cargo run -p pmcp-team-servers --example doc_review_team --features runtime
# MCP 2026-07-28 (v2) — start the SERVER first, in its own terminal; each client
# takes the server address as its argument and defaults to where the server binds
cargo run --example s47_v2_stateless_mrtr --features full # serves on 127.0.0.1:8147
cargo run --example s48_v2_mrtr_client --features full # then, in another terminal
cargo run --example s53_v2_agent_client --features full # the pmcp-agent connector, v2 with v1 fallback
# MCP 2026-07-28 (v2) Tasks — same rule: server first, then the agent
cargo run --example s50_v2_tasks_server --features full # serves on 127.0.0.1:8150
cargo run --example s51_v2_tasks_agent --features full
# Testing (mcp-tester is a standalone Cargo project in examples/26-server-tester)
cargo install mcp-tester && mcp-tester test http://localhost:8080
# AI-assisted development
# See ai-agents/README.md for Kiro and Claude Code setup
一覧については、examples/README.md をご覧ください。
MCP サーバーテスター
MCP サーバーの実装を検証するための包括的なテストツールです。
機能:
- プロトコル準拠の検証(JSON-RPC 2.0、MCP 仕様)
- 複数のトランスポートに対応(HTTP、HTTPS、WebSocket、stdio)
- ツールの検出とテスト
- CI/CD に対応し、JSON を出力
インストール:
cargo install mcp-server-tester
# Or download pre-built binaries from releases
使用方法:
# Test a server
mcp-tester test http://localhost:8080
# Protocol compliance check
mcp-tester compliance http://localhost:8080 --strict
# Connection diagnostics
mcp-tester diagnose http://localhost:8080
詳細はこちら:examples/26-server-tester/README.md
品質とパフォーマンス
トヨタウェイの原則
PMCP はトヨタ生産方式の原則に従って構築されています。
-
Jidoka(自働化):人の知恵を加えた自動化
- 品質ゲートが不具合を検出するとビルドを停止します
- 本番環境での
unwrap()の使用を一切許容しません - コンテキストを含めて包括的にエラーを処理します
-
Genchi Genbutsu(現地現物):現地現物で確認します
- メトリクスに基づいて判断します
- PMAT による品質分析(TDG スコア 0.76)
- 包括的なテスト(ユニット、プロパティ、ファズ)
-
Kaizen(改善):継続的に改善します
- 定期的にベンチマークを実施し、最適化します
- パフォーマンスのリグレッションを防止します
- コミュニティ主導で機能を強化します
品質指標
- TDG スコア:0.76(本番環境対応)
- 技術的負債:最小限(コードベース全体で436時間)
- 複雑度:すべての関数が複雑度25以下
- カバレッジ:行カバレッジ52%、関数カバレッジ100%
- Lint:本番コードで clippy の警告ゼロ
パフォーマンスベンチマーク
Metric PMCP (Rust) TypeScript SDK Improvement
────────────────────────────────────────────────────────────────────
Overall Speed 16x 1x 16x faster
Memory Usage <10 MB ~500 MB 50x lower
SSE Parsing 336,921 ev/s 32,691 ev/s 10.3x faster
JSON-RPC Parsing 195,181 docs/s N/A SIMD-optimized
Round-trip Latency <100 μs ~1-2 ms 10-20x faster
Base64 Operations 252+ MB/s N/A Optimized
ベンチマークの実行:
make bench # General benchmarks
cargo run --example t08_simd_parsing_performance # SIMD-specific
WebAssembly のサポート
ブラウザーおよびエッジ環境へのデプロイに対応した、完全な WASM サポート:
ターゲット:
- Cloudflare Workers(wasm32-unknown-unknown)
- WASI ランタイム(wasm32-wasi)
- ブラウザー(wasm-bindgen)
クイックスタート:
# Build for Cloudflare Workers
cargo build --target wasm32-unknown-unknown --no-default-features --features wasm
# Deploy
make cloudflare-sdk-deploy
開発
前提条件
- Rust 1.83.0 以降
- Git
セットアップ
git clone https://github.com/paiml/rust-mcp-sdk
cd rust-mcp-sdk
# Install development tools
make setup
# Run quality checks
make quality-gate
テスト
make test-all # All tests
make test-property # Property tests
make coverage # Coverage report
make mutants # Mutation tests
コントリビューション
コントリビューションを歓迎します!以下の手順でお願いします。
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 品質ゲートを通過することを確認します(
make quality-gate) - Conventional Commits に従ってコミットします
- プッシュしてプルリクエストを作成します
互換性
| 機能 | TypeScript SDK v2.0 | PMCP v2.0(Rust) |
|---|---|---|
| プロトコルバージョン | 2025-11-25 | 2025-11-25(+ 2024-11-05 互換) |
| トランスポート | stdio、SSE、WebSocket | stdio、SSE、WebSocket、WASM |
| 認証 | OAuth 2.0、Bearer | OAuth 2.0、Bearer、OIDC |
| ツール | ✓ | ✓(型安全 + outputSchema) |
| プロンプト | ✓ | ✓(ワークフロー) |
| リソース | ✓ | ✓(サブスクリプション) |
| サンプリング | ✓ | ✓ |
| MCP Apps | ✓ | ✓(プレビュー + DevTools) |
| エージェントスキル(SEP-2640) | ✓ | ✓(スキルとプロンプトの両面対応、バイト単位で一致) |
| Tower ミドルウェア | 該当なし | ✓(DNS リバインディング、CORS、セキュリティヘッダー) |
| パフォーマンス | 1x | 16倍高速 |
| メモリ | ベースライン | 50倍削減 |
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。
謝辞
- Model Context Protocol の仕様
- リファレンス実装としての TypeScript SDK
- 品質基準を提供する PAIML MCP Agent Toolkit
- コミュニティのコントリビューターとアーリーアダプター
リンク
- ドキュメントポータル:https://paiml.github.io/rust-mcp-sdk/
- リファレンスガイド:https://paiml.github.io/rust-mcp-sdk/book/
- コース:https://paiml.github.io/rust-mcp-sdk/course/
- Crates.io:https://crates.io/crates/pmcp
- API ドキュメント:https://docs.rs/pmcp
- 課題:https://github.com/paiml/rust-mcp-sdk/issues
- ディスカッション:https://github.com/paiml/rust-mcp-sdk/discussions
🦀 Rust と ❤️ を使い、トヨタウェイの原則に従って構築されています
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。