Skip to main content
Glama
sjquant
by sjquant

LLM ブリッジ MCP

鍛冶屋のバッジ

LLM Bridge MCPは、AIエージェントが標準化されたインターフェースを介して複数の大規模言語モデルと対話することを可能にします。メッセージ制御プロトコル(MCP)を活用して、異なるLLMプロバイダーへのシームレスなアクセスを提供し、モデル間の切り替えや、同一アプリケーション内での複数のモデルの使用を容易にします。

特徴

  • 複数の LLM プロバイダーへの統合インターフェース:

    • OpenAI(GPTモデル)

    • 人類学的(クロードモデル)

    • Google(ジェミニモデル)

    • ディープシーク

    • ...

  • 型安全性と検証のためにPydantic AIを搭載

  • 温度や最大トークンなどのカスタマイズ可能なパラメータをサポート

  • 使用状況の追跡と指標を提供します

Related MCP server: MindBridge MCP Server

ツール

サーバーは次のツールを実装します。

run_llm(
    prompt: str,
    model_name: KnownModelName = "openai:gpt-4o-mini",
    temperature: float = 0.7,
    max_tokens: int = 8192,
    system_prompt: str = "",
) -> LLMResponse
  • prompt : LLMに送信するテキストプロンプト

  • model_name : 使用する特定のモデル(デフォルト: "openai:gpt-4o-mini")

  • temperature : ランダム性を制御します(0.0~1.0)

  • max_tokens : 生成するトークンの最大数

  • system_prompt : モデルの動作をガイドするオプションのシステムプロンプト

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop 用の llm-bridge-mcp を自動的にインストールするには:

npx -y @smithery/cli install @sjquant/llm-bridge-mcp --client claude

手動インストール

  1. リポジトリをクローンします。

git clone https://github.com/yourusername/llm-bridge-mcp.git
cd llm-bridge-mcp
  1. uvをインストールします (まだインストールされていない場合)。

# On macOS
brew install uv

# On Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

構成

API キーを使用してルート ディレクトリに.envファイルを作成します。

OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
GOOGLE_API_KEY=your_google_api_key
DEEPSEEK_API_KEY=your_deepseek_api_key

使用法

Claude DesktopまたはCursorと併用

Claude Desktop 構成ファイルまたは.cursor/mcp.jsonにサーバー エントリを追加します。

"mcpServers": {
  "llm-bridge": {
    "command": "uvx",
    "args": [
      "llm-bridge-mcp"
    ],
    "env": {
      "OPENAI_API_KEY": "your_openai_api_key",
      "ANTHROPIC_API_KEY": "your_anthropic_api_key",
      "GOOGLE_API_KEY": "your_google_api_key",
      "DEEPSEEK_API_KEY": "your_deepseek_api_key"
    }
  }
}

トラブルシューティング

よくある問題

1. 「spawn uvx ENOENT」エラー

このエラーは、システムがPATH内でuvx実行ファイルを見つけられない場合に発生します。解決するには、以下の手順に従ってください。

解決策: uvxへのフルパスを使用する

uvx 実行可能ファイルへの完全なパスを見つけます。

# On macOS/Linux
which uvx

# On Windows
where.exe uvx

次に、完全なパスを使用するように MCP サーバー構成を更新します。

"mcpServers": {
  "llm-bridge": {
    "command": "/full/path/to/uvx",  // Replace with your actual path
    "args": [
      "llm-bridge-mcp"
    ],
    "env": {
      // ... your environment variables
    }
  }
}

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

Available Tools

1 tool
run_llmB

Run a prompt through an LLM and return the response.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
model_nameNoSpecific model name. Available models: anthropic:claude-3-7-sonnet-latest, anthropic:claude-3-5-haiku-latest, anthropic:claude-3-5-sonnet-latest, anthropic:claude-3-opus-latest, claude-3-7-sonnet-latest, claude-3-5-haiku-latest, bedrock:amazon.titan-tg1-large, bedrock:amazon.titan-text-lite-v1, bedrock:amazon.titan-text-express-v1, bedrock:us.amazon.nova-pro-v1:0, bedrock:us.amazon.nova-lite-v1:0, bedrock:us.amazon.nova-micro-v1:0, bedrock:anthropic.claude-3-5-sonnet-20241022-v2:0, bedrock:us.anthropic.claude-3-5-sonnet-20241022-v2:0, bedrock:anthropic.claude-3-5-haiku-20241022-v1:0, bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0, bedrock:anthropic.claude-instant-v1, bedrock:anthropic.claude-v2:1, bedrock:anthropic.claude-v2, bedrock:anthropic.claude-3-sonnet-20240229-v1:0, bedrock:us.anthropic.claude-3-sonnet-20240229-v1:0, bedrock:anthropic.claude-3-haiku-20240307-v1:0, bedrock:us.anthropic.claude-3-haiku-20240307-v1:0, bedrock:anthropic.claude-3-opus-20240229-v1:0, bedrock:us.anthropic.claude-3-opus-20240229-v1:0, bedrock:anthropic.claude-3-5-sonnet-20240620-v1:0, bedrock:us.anthropic.claude-3-5-sonnet-20240620-v1:0, bedrock:anthropic.claude-3-7-sonnet-20250219-v1:0, bedrock:us.anthropic.claude-3-7-sonnet-20250219-v1:0, bedrock:cohere.command-text-v14, bedrock:cohere.command-r-v1:0, bedrock:cohere.command-r-plus-v1:0, bedrock:cohere.command-light-text-v14, bedrock:meta.llama3-8b-instruct-v1:0, bedrock:meta.llama3-70b-instruct-v1:0, bedrock:meta.llama3-1-8b-instruct-v1:0, bedrock:us.meta.llama3-1-8b-instruct-v1:0, bedrock:meta.llama3-1-70b-instruct-v1:0, bedrock:us.meta.llama3-1-70b-instruct-v1:0, bedrock:meta.llama3-1-405b-instruct-v1:0, bedrock:us.meta.llama3-2-11b-instruct-v1:0, bedrock:us.meta.llama3-2-90b-instruct-v1:0, bedrock:us.meta.llama3-2-1b-instruct-v1:0, bedrock:us.meta.llama3-2-3b-instruct-v1:0, bedrock:us.meta.llama3-3-70b-instruct-v1:0, bedrock:mistral.mistral-7b-instruct-v0:2, bedrock:mistral.mixtral-8x7b-instruct-v0:1, bedrock:mistral.mistral-large-2402-v1:0, bedrock:mistral.mistral-large-2407-v1:0, claude-3-5-sonnet-latest, claude-3-opus-latest, cohere:c4ai-aya-expanse-32b, cohere:c4ai-aya-expanse-8b, cohere:command, cohere:command-light, cohere:command-light-nightly, cohere:command-nightly, cohere:command-r, cohere:command-r-03-2024, cohere:command-r-08-2024, cohere:command-r-plus, cohere:command-r-plus-04-2024, cohere:command-r-plus-08-2024, cohere:command-r7b-12-2024, deepseek:deepseek-chat, deepseek:deepseek-reasoner, google-gla:gemini-1.0-pro, google-gla:gemini-1.5-flash, google-gla:gemini-1.5-flash-8b, google-gla:gemini-1.5-pro, google-gla:gemini-2.0-flash-exp, google-gla:gemini-2.0-flash-thinking-exp-01-21, google-gla:gemini-exp-1206, google-gla:gemini-2.0-flash, google-gla:gemini-2.0-flash-lite-preview-02-05, google-gla:gemini-2.0-pro-exp-02-05, google-vertex:gemini-1.0-pro, google-vertex:gemini-1.5-flash, google-vertex:gemini-1.5-flash-8b, google-vertex:gemini-1.5-pro, google-vertex:gemini-2.0-flash-exp, google-vertex:gemini-2.0-flash-thinking-exp-01-21, google-vertex:gemini-exp-1206, google-vertex:gemini-2.0-flash, google-vertex:gemini-2.0-flash-lite-preview-02-05, google-vertex:gemini-2.0-pro-exp-02-05, gpt-3.5-turbo, gpt-3.5-turbo-0125, gpt-3.5-turbo-0301, gpt-3.5-turbo-0613, gpt-3.5-turbo-1106, gpt-3.5-turbo-16k, gpt-3.5-turbo-16k-0613, gpt-4, gpt-4-0125-preview, gpt-4-0314, gpt-4-0613, gpt-4-1106-preview, gpt-4-32k, gpt-4-32k-0314, gpt-4-32k-0613, gpt-4-turbo, gpt-4-turbo-2024-04-09, gpt-4-turbo-preview, gpt-4-vision-preview, gpt-4.5-preview, gpt-4.5-preview-2025-02-27, gpt-4o, gpt-4o-2024-05-13, gpt-4o-2024-08-06, gpt-4o-2024-11-20, gpt-4o-audio-preview, gpt-4o-audio-preview-2024-10-01, gpt-4o-audio-preview-2024-12-17, gpt-4o-mini, gpt-4o-mini-2024-07-18, gpt-4o-mini-audio-preview, gpt-4o-mini-audio-preview-2024-12-17, groq:gemma2-9b-it, groq:llama-3.1-8b-instant, groq:llama-3.2-11b-vision-preview, groq:llama-3.2-1b-preview, groq:llama-3.2-3b-preview, groq:llama-3.2-90b-vision-preview, groq:llama-3.3-70b-specdec, groq:llama-3.3-70b-versatile, groq:llama3-70b-8192, groq:llama3-8b-8192, groq:mixtral-8x7b-32768, mistral:codestral-latest, mistral:mistral-large-latest, mistral:mistral-moderation-latest, mistral:mistral-small-latest, o1, o1-2024-12-17, o1-mini, o1-mini-2024-09-12, o1-preview, o1-preview-2024-09-12, o3-mini, o3-mini-2025-01-31, openai:chatgpt-4o-latest, openai:gpt-3.5-turbo, openai:gpt-3.5-turbo-0125, openai:gpt-3.5-turbo-0301, openai:gpt-3.5-turbo-0613, openai:gpt-3.5-turbo-1106, openai:gpt-3.5-turbo-16k, openai:gpt-3.5-turbo-16k-0613, openai:gpt-4, openai:gpt-4-0125-preview, openai:gpt-4-0314, openai:gpt-4-0613, openai:gpt-4-1106-preview, openai:gpt-4-32k, openai:gpt-4-32k-0314, openai:gpt-4-32k-0613, openai:gpt-4-turbo, openai:gpt-4-turbo-2024-04-09, openai:gpt-4-turbo-preview, openai:gpt-4-vision-preview, openai:gpt-4.5-preview, openai:gpt-4.5-preview-2025-02-27, openai:gpt-4o, openai:gpt-4o-2024-05-13, openai:gpt-4o-2024-08-06, openai:gpt-4o-2024-11-20, openai:gpt-4o-audio-preview, openai:gpt-4o-audio-preview-2024-10-01, openai:gpt-4o-audio-preview-2024-12-17, openai:gpt-4o-mini, openai:gpt-4o-mini-2024-07-18, openai:gpt-4o-mini-audio-preview, openai:gpt-4o-mini-audio-preview-2024-12-17, openai:o1, openai:o1-2024-12-17, openai:o1-mini, openai:o1-mini-2024-09-12, openai:o1-preview, openai:o1-preview-2024-09-12, openai:o3-mini, openai:o3-mini-2025-01-31, testopenai:gpt-4o-mini
temperatureNoControls randomness (0.0 to 1.0)
max_tokensNoMaximum number of tokens to generate
system_promptNoOptional system prompt to guide the model's behavior

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral transparency. It fails to mention important traits like streaming, cost, latency, or error handling, leaving the agent uninformed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence, front-loading the action. It is not verbose, but it omits critical details, so it is not a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no output schema, and no annotations, the description is incomplete. It does not describe return values, optional parameters, or implications of choices like model or temperature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so the burden on the description is lower. However, the description adds no value beyond the schema—it does not explain any parameter semantics, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('run a prompt') and the resource ('LLM'), with the purpose of getting a response. It is specific and not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. Since there are no sibling tools, the lack is less critical, but the description still offers no usage context or preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedrun_llm

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity. The tool's purpose is clear and distinct.

Naming Consistency5/5

A single tool means naming is trivially consistent. 'run_llm' is descriptive and follows a clear verb_noun pattern.

Tool Count2/5

One tool for an LLM bridge is far too few. Typical servers in this domain include multiple tools for model selection, streaming, or context management.

Completeness2/5

The server offers only a basic 'run' operation with no supporting tools for model listing, configuration, or advanced features, leaving significant gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers