OpenRouter MCP サーバー


OpenRouter.aiの多様なモデルエコシステムとのシームレスな統合を実現するモデルコンテキストプロトコル(MCP)サーバー。キャッシュ、レート制限、エラー処理を内蔵した統合型セーフインターフェースを通じて、様々なAIモデルにアクセスできます。
特徴
Related MCP server: MindBridge MCP Server
インストール
pnpm install @mcpservers/openrouterai
構成
前提条件
OpenRouter KeysからOpenRouter APIキーを取得します。
デフォルトモデルを選択する(オプション)
環境変数
OPENROUTER_API_KEY=your-api-key-here
OPENROUTER_DEFAULT_MODEL=optional-default-model
設定
MCP 設定構成ファイル ( cline_mcp_settings.jsonまたはclaude_desktop_config.json ) に追加します。
{
"mcpServers": {
"openrouterai": {
"command": "npx",
"args": ["@mcpservers/openrouterai"],
"env": {
"OPENROUTER_API_KEY": "your-api-key-here",
"OPENROUTER_DEFAULT_MODEL": "optional-default-model"
}
}
}
}
応答フォーマット
すべてのツールは、標準化された構造で応答を返します。
interface ToolResult {
isError: boolean;
content: Array<{
type: "text";
text: string; // JSON string or error message
}>;
}
成功例:
{
"isError": false,
"content": [{
"type": "text",
"text": "{\"id\": \"gen-123\", ...}"
}]
}
エラー例:
{
"isError": true,
"content": [{
"type": "text",
"text": "Error: Model validation failed - 'invalid-model' not found"
}]
}
利用可能なツール
チャット完了
OpenRouter.ai モデルにメッセージを送信します。
interface ChatCompletionRequest {
model?: string;
messages: Array<{role: "user"|"system"|"assistant", content: string}>;
temperature?: number; // 0-2
}
// Response: ToolResult with chat completion data or error
検索モデル
利用可能なモデルを検索してフィルタリングします:
interface ModelSearchRequest {
query?: string;
provider?: string;
minContextLength?: number;
capabilities?: {
functions?: boolean;
vision?: boolean;
};
}
// Response: ToolResult with model list or error
モデル情報を取得する
特定のモデルに関する詳細情報を取得します。
{
model: string; // Model identifier
}
検証モデル
モデル ID が有効かどうかを確認します。
interface ModelValidationRequest {
model: string;
}
// Response:
// Success: { isError: false, valid: true }
// Error: { isError: true, error: "Model not found" }
エラー処理
サーバーは、コンテキスト情報を含む構造化されたエラーを提供します。
// Error response structure
{
isError: true,
content: [{
type: "text",
text: "Error: [Category] - Detailed message"
}]
}
一般的なエラー カテゴリ:
Validation Error : 入力パラメータが無効です
API Error : OpenRouter API通信の問題
Rate Limit : リクエストスロットリング検出
Internal Error : サーバー側の処理エラー
応答の処理:
async function handleResponse(result: ToolResult) {
if (result.isError) {
const errorMessage = result.content[0].text;
if (errorMessage.startsWith('Error: Rate Limit')) {
// Handle rate limiting
}
// Other error handling
} else {
const data = JSON.parse(result.content[0].text);
// Process successful response
}
}
発達
詳細については、 CONTRIBUTING.md を参照してください。
開発セットアップ
プロジェクト構造
機能実装
エラー処理ガイドライン
ツールの使用例
# Install dependencies
pnpm install
# Build project
pnpm run build
# Run tests
pnpm test
変更履歴
以下の内容を含む最近の更新については、 CHANGELOG.md を参照してください。
統一された応答形式の実装
強化されたエラー処理システム
型安全なインターフェースの改善
ライセンス
このプロジェクトは、Apache License 2.0 に基づいてライセンスされています。詳細については、 LICENSEファイルを参照してください。