pforge について
pforge は、YAML 設定から MCP サーバーを構築するフレームワークと CLI です。Rust コード生成や複数のハンドラー形式に対応し、Deno/TypeScript ブリッジも備えています。
主な機能
- 01YAML によるサーバー設定
- 02Rust コード生成
- 03ネイティブ、CLI、HTTP、パイプラインのハンドラー
- 04プロジェクトのひな形生成と CLI
- 05Deno/TypeScript ブリッジ
活用シーン
- 01少ない定型コードで MCP ツールを定義
- 02ひな形からサーバープロジェクトを作成
- 03シェルコマンドや HTTP エンドポイントをハンドラー化
MCP 対応
pforge は設定したツールを MCP クライアントに提供する MCP サーバーを構築します。`pforge serve` でサーバーを実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
pforge
YAML 設定を使用して Model Context Protocol(MCP)サーバーを構築するための宣言型フレームワークです。
MCP サーバー
レジストリ名: io.github.paiml/pforge
pforge は Model Context Protocol(MCP)レジストリで利用できます。次の手順でインストールしてください。
# Via Cargo (recommended)
cargo install pforge-cli
# Then run as MCP server
pforge serve
メンテナー向け: 公開手順については、MCP レジストリ公開ガイドを参照してください。
pforge とは?
pforge を使うと、定型コードを書く代わりに YAML で MCP サーバーを定義できます。pmcp(rust-mcp-sdk)を基盤とし、設定から最適化された Rust コードを生成します。
簡単な例:
forge:
name: my-server
version: 0.1.0
transport: stdio
tools:
- type: native
name: greet
description: "Greet someone"
handler:
path: handlers::greet_handler
params:
name: { type: string, required: true }
インストール
# From crates.io
cargo install pforge-cli
# From source
git clone https://github.com/paiml/pforge
cd pforge
cargo install --path crates/pforge-cli
クイックスタート
# Create new project
pforge new my-server
cd my-server
# Run the server
pforge serve
生成されたプロジェクトには、動作するハンドラーのサンプルが含まれています。pforge.yaml を編集してツールを追加し、src/handlers/ にハンドラーを実装してください。
ハンドラーの種類
pforge は次の 4 種類のハンドラーに対応しています。
- Native - 完全な型安全性を備えた Rust 関数
- CLI - シェルコマンドを実行します
- HTTP - HTTP エンドポイントをプロキシします
- Pipeline - 複数のツールを連結します
各種類の詳しい例については、ブックを参照してください。
言語ブリッジ
pforge は、好みの言語で MCP サーバーを構築するための言語ブリッジを提供します。
Deno/TypeScript ブリッジ
ネイティブなパフォーマンスを備えた、型安全な MCP サーバーを TypeScript と Deno で構築できます。
import { PforgeBridge } from "https://raw.githubusercontent.com/paiml/pforge/main/bridges/deno/bridge.ts";
const bridge = new PforgeBridge();
bridge.register({
name: "greet",
description: "Greet a user by name",
handler: (input: { name: string }) => ({
success: true,
data: { message: `Hello, ${input.name}!` },
}),
});
const result = await bridge.execute("greet", { name: "Alice" });
console.log(result.data);
機能:
- TypeScript ジェネリクスによる型安全なハンドラー定義
- 外部依存関係を使わないランタイムスキーマ検証
- O(1) のハンドラー検索パフォーマンス
- 同期および非同期の両方のハンドラーに対応
- 74 件以上のテストに合格し、すべての品質ゲートをクリア
ドキュメント: bridges/deno/README.md
今後対応予定
- Python ブリッジ(asyncio に対応した FFI ベース)
- Go ブリッジ(goroutine に対応した CGo ベース)
- Node.js ブリッジ(N-API を使用したネイティブアドオン)
ドキュメント
- ブック - 例や比較を含む完全なガイド
- アーキテクチャ - 技術設計の詳細
- ユーザーガイド - 使用ガイド
- 実装状況 - 現在のプロジェクト状況
- CLAUDE.md - コントリビューター向けの開発ワークフロー
例
- hello-world - 最小限のネイティブハンドラーの例
- calculator - テスト付きの数学演算
- rest-api-proxy - HTTP ハンドラーの例
プロジェクトの状況
バージョン: 0.1.2
公開済みのクレート:
pforge-config- 設定の解析pforge-macro- 手続きマクロpforge-runtime- コアランタイム(pmcp に依存)pforge-codegen- コード生成pforge-cli- CLI ツール
テスト結果: 120 件以上のテストに合格(ユニット/統合テスト 90 件以上、プロパティベーステスト 12 件、品質ゲート 8 件、doctest 5 件以上)
詳細な進捗については、IMPLEMENTATION_STATUS.mdを参照してください。
開発
# Run tests
cargo test --all
# Run quality gates
make quality-gate
# Watch mode
make watch
# Build release
make build-release
開発ワークフローの詳細については、CLAUDE.mdを参照してください。
アーキテクチャ
pforge は pmcp(rust-mcp-sdk)を基盤とするフレームワークとして構築されています。
┌─────────────────────────────────┐
│ pforge (Framework Layer) │
│ - YAML → Rust codegen │
│ - Handler registry │
│ - State management │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ pmcp (Protocol SDK) │
│ - MCP protocol implementation │
│ - Transport handling │
└─────────────────────────────────┘
pmcp を直接使う場合:MCP プロトコルの詳細をきめ細かく制御する必要がある場合や、コード生成を避けたい場合に適しています。
pforge を使う場合:宣言型の設定を使い、より少ないコードで MCP サーバーを迅速に開発したい場合に適しています。
コントリビューション
コントリビューションを歓迎します。以下をお願いします。
- 開発基準についてはCLAUDE.mdをお読みください
- 現在の優先事項についてはROADMAP.mdをご確認ください
- テストが成功することを確認してください:
cargo test --all - 品質ゲートが成功することを確認してください:
make quality-gate
すべてのコミットは、コードのフォーマット、リンティング、テスト、複雑度、カバレッジ、およびMarkdownリンクの有効性(pmat validate-docsを使用)をチェックするコミット前フックによって検証され、ドキュメント内のリンク切れを防ぎます。
ライセンス
MIT — LICENSEをご覧ください
謝辞
Pragmatic AI Labsによるpmcpを基盤として構築されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。