pREST について
pREST MCP Adapterは、stdio接続が必要なMCPクライアントを、稼働中のpRESTのHTTP `/_mcp`エンドポイントにつなぐトランスポートブリッジです。プロトコルメッセージを転送し、ツールの実装やスキーマの調査は行いません。
主な機能
- 01stdioのMCP通信をHTTPへ中継
- 02pRESTの`/_mcp`エンドポイントに接続
- 03任意のBearerトークン認証
- 04HTTPタイムアウトの設定
- 05ログをstderrに出力
活用シーン
- 01stdio専用のMCPクライアントをpRESTに接続
- 02認証付きpRESTエンドポイントでBearerトークンを使用
- 03Dockerでアダプターを実行
MCP 対応
クライアントのstdioトランスポートとpRESTのHTTP MCPエンドポイントの間で、MCP JSON-RPCメッセージを中継します。MCPツールとスキーマ処理はpRESTが担い、アダプターは実装しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e PREST_MCP_URL -e PREST_MCP_TOKEN -e PREST_MCP_TIMEOUT_MS ghcr.io/prest/prest-mcp-adapter:0.1.3PREST_MCP_URLURL of your running pREST HTTP MCP endpoint, for example http://localhost:3000/_mcpPREST_MCP_TOKENシークレットOptional bearer token used to authenticate with the pREST MCP endpoint.PREST_MCP_TIMEOUT_MSOptional HTTP timeout in milliseconds. Defaults to 30000.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/prest/prest-mcp-adapter:0.1.3stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
pREST MCP アダプター
pREST の HTTP MCP エンドポイント用公式 stdio アダプターです。
このアダプターを使うと、stdio を必要とする MCP クライアントを、/_mcp で HTTP MCP エンドポイントを公開している起動中の pREST インスタンスに接続できます。
MCP client / AI IDE
↓ stdio (NDJSON JSON-RPC)
prest-mcp
↓ HTTP POST
http://localhost:3000/_mcp
↓
pREST
このアダプターは小さなトランスポートブリッジです。スキーマのイントロスペクション、SQL の生成、MCP ツールの実装は行いません。これらは pREST が担います。
要件
/_mcpルートが利用可能な、起動中の pREST インスタンス- Go 1.26 以降(ソースからビルドする場合)
環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
PREST_MCP_URL | はい | — | pREST HTTP MCP エンドポイントの URL。例:http://localhost:3000/_mcp |
PREST_MCP_TOKEN | いいえ | — | pREST の認証が有効な場合のベアラートークン |
PREST_MCP_TIMEOUT_MS | いいえ | 30000 | HTTP タイムアウト(ミリ秒) |
インストール
ソースから
go install github.com/prest/prest-mcp-adapter/cmd/prest-mcp@latest
Docker / OCI
docker pull ghcr.io/prest/prest-mcp-adapter:0.1.3
ローカルでの使用
PREST_MCP_URL=http://localhost:3000/_mcp prest-mcp
トークンを使用する場合
PREST_MCP_URL=https://api.example.com/_mcp \
PREST_MCP_TOKEN=secret \
prest-mcp
Docker での使用
docker run --rm -i \
-e PREST_MCP_URL=http://host.docker.internal:3000/_mcp \
ghcr.io/prest/prest-mcp-adapter:0.1.3
MCP クライアントの設定
Cursor
MCP の設定に追加します(例:.cursor/mcp.json)。
{
"mcpServers": {
"prest": {
"command": "prest-mcp",
"env": {
"PREST_MCP_URL": "http://localhost:3000/_mcp"
}
}
}
}
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"prest": {
"command": "prest-mcp",
"env": {
"PREST_MCP_URL": "http://localhost:3000/_mcp"
}
}
}
}
汎用 MCP クライアント
stdio MCP サーバーを起動できる任意のクライアントで使用できます。
PREST_MCP_URL=http://localhost:3000/_mcp prest-mcp
プロトコルメッセージは、stdin/stdout 上で改行区切りの JSON-RPC として送受信されます。ログは stderr にのみ出力されます。
セキュリティに関する推奨事項
書き込みアクセスが明示的に必要な場合を除き、AI/MCP ワークフローでは読み取り専用の PostgreSQL ユーザーを使用してください。
認証のない MCP エンドポイントを公開しないでください。
ローカルまたはプライベートネットワーク上の pREST MCP エンドポイントを優先してください。
pREST の認証が有効な場合は、有効な JWT を PREST_MCP_TOKEN に設定してください。
開発
make test # go test -race ./... and overall coverage >= 80%
make coverage # coverage gate only
make vet
make build # writes bin/prest-mcp
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。