MCP サーバー連携¶
概要¶
clinvk には MCP (Model Context Protocol) サーバーが組み込まれており、既存の機能を MCP ツールとして公開します。以下のトランスポートをサポートします。
- stdio: ローカル/デスクトップ用途
- HTTP + SSE: サーバー配信用途
ツールの schema は既存の REST モデルから生成されるため、MCP と REST の整合性が保たれます。
トランスポート¶
stdio (ローカル)¶
stdin/stdout 上の line-delimited JSON-RPC を使用します。
HTTP + SSE (サーバー)¶
/mcp へ JSON-RPC を POST し、Streaming 時は SSE を利用します。
ツール一覧¶
clinvk_promptclinvk_parallelclinvk_chainclinvk_compareclinvk_backendsclinvk_sessionsclinvk_session_getclinvk_session_deleteclinvk_health
各ツールは input/output schema を含みます。
Streaming ゲート¶
Streaming は明示的に指定します。
- stdio:
output_format=stream-jsonのときのみ Streaming - HTTP:
output_format=stream-jsonかつAccept: text/event-streamのときのみ Streaming
SSE の Accept がない場合は JSON-RPC エラーを返します。
設定¶
CLI フラグ¶
clinvk mcp --transport stdio|http
clinvk mcp --transport http --host 127.0.0.1 --port 8081 --path /mcp
clinvk mcp --expose-health
設定ファイル (~/.clinvk/config.yaml)¶
環境変数¶
優先順位: CLI フラグ > 環境変数 > 設定ファイル > 既定値
例¶
Claude Desktop (stdio)¶
{
"mcpServers": {
"clinvk": {
"command": "clinvk",
"args": ["mcp", "--transport", "stdio"],
"env": {
"CLINVK_BACKEND": "claude"
}
}
}
}
HTTP tools/list¶
curl -sS -X POST http://127.0.0.1:8081/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
HTTP Streaming prompt¶
curl -N -X POST http://127.0.0.1:8081/mcp \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"clinvk_prompt","arguments":{"backend":"claude","prompt":"hello","output_format":"stream-json"}}}'
認証/制限/CORS¶
HTTP モードは clinvk serve と同じ middleware stack を使用します。
- API key 認証 (設定時)
- Rate limiting
- Request size limits
- Timeouts
- CORS
API key を設定している場合は Authorization: Bearer <key> または X-API-Key を送信してください。