🚀 アウトソースMCP
MCP(Model Context Protocol)サーバーで、AIアプリケーションが統一インターフェースを通じて様々なモデルプロバイダーにタスクをアウトソースできるようにします。
Model Context ProtocolをサポートするすべてのAIツールと互換性があり、Claude Desktop、Cline、およびその他のMCP対応アプリケーションが含まれます。
MCPサーバーの実装にはFastMCPを、AIエージェント機能にはAgnoを使用して構築されています。
✨ 主な機能
- 🤖 複数プロバイダー対応:単一のインターフェースで20以上のAIプロバイダーにアクセスできます。
- 📝 テキスト生成:OpenAI、Anthropic、Googleなどのモデルを使用してテキストを生成します。
- 🎨 画像生成:DALL - E 3およびDALL - E 2を使用して画像を作成します。
- 🔧 シンプルなAPI:プロバイダー、モデル、プロンプトの3つのパラメーターだけで一貫したインターフェースを提供します。
- 🔑 柔軟な認証:使用するプロバイダーのAPIキーのみを設定します。
📦 インストール
前提条件
- Python 3.11以上
- uvパッケージマネージャー
セットアップ
git clone https://github.com/gwbischof/outsource-mcp.git
cd outsource-mcp
uv sync
📚 設定
以下の設定をMCPクライアントに追加してください。具体的な設定詳細については、MCPクライアントのドキュメントを参照してください。
{
"mcpServers": {
"outsource-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/gwbischof/outsource-mcp.git", "outsource-mcp"],
"env": {
"OPENAI_API_KEY": "your-openai-key",
"ANTHROPIC_API_KEY": "your-anthropic-key",
"GOOGLE_API_KEY": "your-google-key",
"GROQ_API_KEY": "your-groq-key",
"DEEPSEEK_API_KEY": "your-deepseek-key",
"XAI_API_KEY": "your-xai-key",
"PERPLEXITY_API_KEY": "your-perplexity-key",
"COHERE_API_KEY": "your-cohere-key",
"FIREWORKS_API_KEY": "your-fireworks-key",
"HUGGINGFACE_API_KEY": "your-huggingface-key",
"MISTRAL_API_KEY": "your-mistral-key",
"NVIDIA_API_KEY": "your-nvidia-key",
"OLLAMA_HOST": "http://localhost:11434",
"OPENROUTER_API_KEY": "your-openrouter-key",
"TOGETHER_API_KEY": "your-together-key",
"CEREBRAS_API_KEY": "your-cerebras-key",
"DEEPINFRA_API_KEY": "your-deepinfra-key",
"SAMBANOVA_API_KEY": "your-sambanova-key"
}
}
}
}
注:環境変数はオプションです。使用するプロバイダーのAPIキーのみを設定してください。
💻 使用例
基本的な使用法
インストールと設定が完了したら、MCPクライアントのツールを使用できます。
テキスト生成
# OpenAIを使用する場合
provider: openai
model: gpt-4o-mini
prompt: Write a haiku about coding
# Anthropicを使用する場合
provider: anthropic
model: claude-3-5-sonnet-20241022
prompt: Explain quantum computing in simple terms
# Googleを使用する場合
provider: google
model: gemini-2.0-flash-exp
prompt: Create a recipe for chocolate chip cookies
画像生成
# DALL - E 3を使用する場合
provider: openai
model: dall-e-3
prompt: A serene Japanese garden with cherry blossoms
# DALL - E 2を使用する場合
provider: openai
model: dall-e-2
prompt: A futuristic cityscape at sunset
高度な使用法
MCPインスペクターでのテスト
MCPインスペクターを使用すると、サーバーを対話的にテストできます。
mcp dev server.py
テストの実行
テストスイートには、テキスト生成と画像生成の両方を検証する統合テストが含まれています。
uv run pytest
注:統合テストには、環境変数にAPIキーを設定する必要があります。
📚 詳細ドキュメント
ツール
outsource_text
指定されたプロバイダーとモデルを使用して、Agnoエージェントを作成し、テキスト応答を生成します。
引数:
provider:プロバイダー名(例:"openai"、"anthropic"、"google"、"groq"など)
model:モデル名(例:"gpt - 4o"、"claude - 3 - 5 - sonnet - 20241022"、"gemini - 2.0 - flash - exp")
prompt:モデルに送信するテキストプロンプト
outsource_image
AIモデルを使用して画像を生成します。
引数:
provider:プロバイダー名(現在は"openai"のみサポート)
model:モデル名("dall - e - 3"または"dall - e - 2")
prompt:画像生成用のプロンプト
生成された画像のURLを返します。
注:画像生成は現在、OpenAIのモデル(DALL - E 2およびDALL - E 3)のみでサポートされています。他のプロバイダーはテキスト生成のみをサポートします。
サポートされているプロバイダー
以下のプロバイダーがサポートされています。provider引数として、プロバイダー名(括弧内)を使用してください。
コアプロバイダー
- OpenAI (
openai) - GPT - 4、GPT - 3.5、DALL - Eなど | モデル
- Anthropic (
anthropic) - Claude 3.5、Claude 3など | モデル
- Google (
google) - Gemini Pro、Gemini Flashなど | モデル
- Groq (
groq) - Llama 3、Mixtralなど | モデル
- DeepSeek (
deepseek) - DeepSeek Chat & Coder | モデル
- xAI (
xai) - Grokモデル | モデル
- Perplexity (
perplexity) - Sonarモデル | モデル
追加プロバイダー
- Cohere (
cohere) - Commandモデル | モデル
- Mistral AI (
mistral) - Mistral Large、Medium、Small | モデル
- NVIDIA (
nvidia) - 様々なモデル | モデル
- HuggingFace (
huggingface) - オープンソースモデル | モデル
- Ollama (
ollama) - ローカルモデル | モデル
- Fireworks AI (
fireworks) - 高速推論 | モデル
- OpenRouter (
openrouter) - 複数プロバイダーへのアクセス | モデル
- Together AI (
together) - オープンソースモデル | モデル
- Cerebras (
cerebras) - 高速推論 | モデル
- DeepInfra (
deepinfra) - 最適化されたモデル | モデル
- SambaNova (
sambanova) - エンタープライズモデル | モデル
エンタープライズプロバイダー
- AWS Bedrock (
aws または bedrock) - AWSホストのモデル | モデル
- Azure AI (
azure) - Azureホストのモデル | モデル
- IBM WatsonX (
ibm または watsonx) - IBMモデル | モデル
- LiteLLM (
litellm) - 汎用インターフェース | モデル
- Vercel v0 (
vercel または v0) - Vercel AI | モデル
- Meta Llama (
meta) - Metaへの直接アクセス | モデル
環境変数
各プロバイダーには、対応するAPIキーが必要です。
| プロバイダー |
環境変数 |
例 |
| OpenAI |
OPENAI_API_KEY |
sk - ... |
| Anthropic |
ANTHROPIC_API_KEY |
sk - ant - ... |
| Google |
GOOGLE_API_KEY |
AIza... |
| Groq |
GROQ_API_KEY |
gsk_... |
| DeepSeek |
DEEPSEEK_API_KEY |
sk - ... |
| xAI |
XAI_API_KEY |
xai - ... |
| Perplexity |
PERPLEXITY_API_KEY |
pplx - ... |
| Cohere |
COHERE_API_KEY |
... |
| Fireworks |
FIREWORKS_API_KEY |
... |
| HuggingFace |
HUGGINGFACE_API_KEY |
hf_... |
| Mistral |
MISTRAL_API_KEY |
... |
| NVIDIA |
NVIDIA_API_KEY |
nvapi - ... |
| Ollama |
OLLAMA_HOST |
http://localhost:11434 |
| OpenRouter |
OPENROUTER_API_KEY |
... |
| Together |
TOGETHER_API_KEY |
... |
| Cerebras |
CEREBRAS_API_KEY |
... |
| DeepInfra |
DEEPINFRA_API_KEY |
... |
| SambaNova |
SAMBANOVA_API_KEY |
... |
| AWS Bedrock |
AWS認証情報 |
AWS CLI/SDK経由 |
| Azure AI |
Azure認証情報 |
Azure CLI/SDK経由 |
| IBM WatsonX |
IBM_WATSONX_API_KEY |
... |
| Meta Llama |
LLAMA_API_KEY |
... |
注:使用する予定のプロバイダーのAPIキーのみを設定してください。
🔧 トラブルシューティング
一般的な問題
- "Error: Unknown provider"
- 上記のリストからサポートされているプロバイダー名を使用していることを確認してください。
- プロバイダー名は大文字と小文字を区別しません。
- "Error: OpenAI API error"
- 環境変数にAPIキーが正しく設定されていることを確認してください。
- APIキーが要求されたモデルにアクセスできることを確認してください。
- 十分なクレジット/クォータがあることを確認してください。
- "Error: No image was generated"
- 画像生成リクエストが失敗した場合に発生することがあります。
- よりシンプルなプロンプトまたは異なるモデル(dall - e - 2とdall - e - 3)を試してみてください。
- 環境変数が機能しない場合
- 設定を更新した後、MCPクライアントを再起動することを確認してください。
- 特定のMCPクライアントの設定ファイルの場所を確認してください。
- 設定で環境変数が正しくフォーマットされていることを確認してください。
🤝 コントリビューション
コントリビューションは大歓迎です!ぜひプルリクエストを送信してください。