mcpField
T
Together.ai Mcp

Together.ai Mcp

ローカル
github.comAI・エージェント029 週間前に更新

Together.ai Mcp について

Together.ai Mcpは、Together AIのチャット、画像生成、画像分析、埋め込み機能をツールとして公開するNode.js製MCPサーバーです。Claude Desktop、Cursor、VS Codeなどで利用でき、推論モデルの異なる応答フィールドに対応し、デフォルトのトークン予算を引き上げています。

主な機能

  1. 01チャット・推論モデルの呼び出し
  2. 02画像の生成と保存
  3. 03画像をビジョンモデルで分析
  4. 04テキスト埋め込みの生成
  5. 05推論モデルの異なる応答フィールドに対応

活用シーン

  1. 01MCPクライアントからTogether AIのチャットモデルを呼び出す
  2. 02画像を生成してPNGファイルとして保存
  3. 03リモートまたはローカル画像を分析に送る
  4. 04RAGや検索パイプライン向けのテキスト埋め込み生成

MCP 対応

Together AIのチャット、画像生成、画像分析、埋め込み機能を、MCPクライアントが呼び出せるツールとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

together-ai-mcp

Together AI の推論エンドポイント(チャット補完、画像生成、ビジョン、埋め込み)を、Claude Desktop、Cursor、VS Code、その他の MCP 対応クライアントから呼び出せるツールとして公開する Node.js 製の Model Context Protocol(MCP)サーバーです。

このプロジェクトの目的

Together AI 経由でモデルにアクセスする際にいくつか問題があったため、この MCP を作成しました。

1. 推論モデルで応答が空になる問題

Together AI の最大規模の推論モデル(GLM-5、Qwen3.5-397B、MiniMax M2.5、Kimi K2.5)は、思考過程を標準外のレスポンスフィールドに出力します。そのため、最終回答を生成する前に OpenAI SDK のデフォルトのトークン予算を使い切ってしまいます。

次の 2 つの問題が重なっています。

トークン予算の枯渇。 OpenAI SDK のデフォルトの max_tokens は 2048 です。推論モデルでは、この予算が思考フェーズだけで使い切られ、message.content が設定されないままになります。トークン分の料金が発生してもエラーは発生せず、応答は何も返さないままになります。

レスポンスフィールドの分散。 Together AI では、モデルファミリーごとに出力先のフィールドが異なります。

フィールド使用モデル
message.content標準モデル、Qwen(インラインの <think> タグ)
message.reasoning_contentDeepSeek 形式
message.reasoningTogether AI 形式(GLM-5、MiniMax、Kimi)

message.content だけを読み取るコードはもちろん、message.content \|\| message.reasoning を読み取るコードでも、一部のモデルでは空文字列が返されます。

// Broken — misses reasoning_content (DeepSeek format):
const text = message.content || message.reasoning || '';

// Fixed — covers all Together AI reasoning model formats:
const text = message.content || message.reasoning_content || message.reasoning || '';

デフォルトの max_tokens を 8192 に引き上げ、推論モデルが最終回答を生成する前に思考過程を完了できるだけの予算を確保しています。

2. ビジョンモデルの失敗

ビジョンリクエストで OpenAI SDK の chat.completions.create() を使用すると、Together AI のビジョン API に対してエラーが表面化しないまま失敗します。Together AI では stream: false を明示的に設定する必要がありますが、SDK がこれを送信しない場合があります。失敗しても SDK のエラーにレスポンス本文が含まれないため、根本原因を特定できません。

// Broken — SDK may omit stream:false; errors are opaque:
const response = await openai.chat.completions.create({ model, messages });

// Fixed — raw fetch, explicit stream:false, full error body in exception:
const response = await fetch('https://api.together.xyz/v1/chat/completions', {
  method: 'POST',
  headers: { Authorization: `Bearer ${apiKey}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ model, messages, max_tokens, stream: false }),
});
if (!response.ok) {
  const body = await response.text();
  throw new Error(`Vision API error ${response.status}: ${body.slice(0, 200)}`);
}

機能

  • チャット補完 — あらゆる Together AI のテキストモデルまたは推論モデルに対応し、プロンプトと複数ターンのメッセージを完全にサポートします
  • 推論モデルのサポート — GLM-5、Qwen3.5-397B、MiniMax M2.5、Kimi K2.5 を正しく処理します(上記参照)
  • 画像生成 — FLUX.1-dev、FLUX.1-schnell、Stable Diffusion XL に対応し、画像をディスクに保存します
  • ビジョン — Llama 3.2 Vision または Qwen 2.5 VL を使用して画像を分析します
  • 埋め込み — BGE および Snowflake Arctic モデルを使用して、RAG/検索パイプライン用のベクトルを生成します

インストール

前提条件
セットアップ
git clone https://github.com/your-username/together-ai-mcp
cd together-ai-mcp
npm install
cp .env.example .env
# Edit .env and add your TOGETHER_API_KEY
Claude Desktop への追加

~/Library/Application Support/Claude/claude_desktop_config.json を編集します。

{
  "mcpServers": {
    "together-ai": {
      "command": "node",
      "args": ["/absolute/path/to/together-ai-mcp/index.js"],
      "env": {
        "TOGETHER_API_KEY": "your_api_key_here",
        "IMAGE_OUTPUT_DIR": "/path/to/save/images"
      }
    }
  }
}

Cursor と VS Code の設定については、examples/claude-config.md を参照してください。


ツール

together_chat

Together AI の任意のチャットモデルまたは推論モデルを呼び出します。

パラメーター型デフォルト説明
modelstringmeta-llama/Llama-3.3-70B-Instruct-Turboモデル ID
promptstring—ユーザーメッセージ(messages とのいずれか一方を使用)
messagesarray—複数ターンの [{role, content}] 配列
systemstring—システムプロンプト(prompt との併用時のみ使用)
temperaturenumber0.70.0~2.0
max_tokensinteger8192推論モデルが思考過程を完了するための予算を確保できるよう、SDK のデフォルト値から引き上げています
together_generate_image

FLUX または SDXL モデルを使って画像を生成します。

パラメーター型デフォルト説明
promptstringrequired画像の説明
modelstringblack-forest-labs/FLUX.1-schnellモデル ID
widthinteger1024画像の幅(ピクセル)
heightinteger1024画像の高さ(ピクセル)
stepsinteger4拡散ステップ数
ninteger1画像の枚数
negative_promptstring—除外する内容

画像は IMAGE_OUTPUT_DIR に PNG ファイルとして保存されます。

注記: Together AI のエンドポイントを呼び出す際に、SDK が steps などのカスタムパラメーターを削除してしまうため、画像生成では OpenAI SDK の images.generate() ではなく、直接 fetch を呼び出します。

together_vision

画像をビジョンモデルで分析します。

パラメーター型デフォルト説明
promptstringrequired質問または指示
modelstringmeta-llama/Llama-3.2-11B-Vision-Instructモデル ID
image_urlstring—公開画像 URL
image_pathstring—ローカルファイルパス(base64 に変換)
max_tokensinteger1024応答の最大長
together_embed

RAG および検索パイプライン用のテキスト埋め込みを生成します。

パラメーター型デフォルト説明
inputstring | string[]required埋め込むテキスト
modelstringBAAI/bge-large-en-v1.5埋め込みモデル ID

モデル

このサーバーは、Together AI のサーバーレス API で利用できるあらゆるモデルに対応しています。モデル ID を渡すだけで使用でき、設定を変更する必要はありません。

以下の表には、私が個人的に使用しているモデルを記載しています。参考情報として掲載しており、利用可能なモデルを限定するものではありません。

モデル ID の確認

利用可能なすべてのモデルは api.together.ai/models で確認できます。各モデルのページには正確な ID 文字列が表示されています。その ID を任意のツールの model パラメーターに渡してください。

{
  "tool": "together_chat",
  "params": {
    "model": "any-model-id-from-together-ai",
    "prompt": "Hello"
  }
}

制約は、画像生成モデルは together_generate_image、ビジョンモデルは together_vision、埋め込みモデルは together_embed 経由で呼び出す必要があることだけです。画像モデルを together_chat 経由で呼び出すことはできません。

専用エンドポイント: 一部のモデル(例:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8)では、サーバーレス API ではなく専用エンドポイントが必要です。このサーバー経由で呼び出すと、Together AI から 400 エラーが返されます。


使用しているモデル
チャット/推論
モデルID備考
Llama 3.3 70Bmeta-llama/Llama-3.3-70B-Instruct-Turboデフォルト — 汎用性が高く高速
DeepSeek V3deepseek-ai/DeepSeek-V3コードと推論に強い
DeepSeek R1deepseek-ai/DeepSeek-R1推論モデル
GLM-5 (744B)zai-org/GLM-5推論モデル — 上記の修正が必要
Qwen3.5 397BQwen/Qwen3.5-397B-A17B推論モデル — 上記の修正が必要
MiniMax M2.5MiniMaxAI/MiniMax-M2.5推論モデル — 上記の修正が必要
Kimi K2.5moonshotai/Kimi-K2.5推論モデル — 上記の修正が必要
Qwen 2.5 7BQwen/Qwen2.5-7B-Instruct-Turbo軽量/低コスト
画像生成
モデルID
FLUX.1-schnellblack-forest-labs/FLUX.1-schnell
FLUX.1-devblack-forest-labs/FLUX.1-dev
Stable Diffusion XLstabilityai/stable-diffusion-xl-base-1.0
ビジョン
モデルID
Llama 3.2 11B Visionmeta-llama/Llama-3.2-11B-Vision-Instruct
Qwen 2.5 VL 72BQwen/Qwen2.5-VL-72B-Instruct
埋め込み
モデルID
BGE LargeBAAI/bge-large-en-v1.5
M2-BERT 32Ktogethercomputer/m2-bert-80M-32k-retrieval
Snowflake ArcticSnowflake/snowflake-arctic-embed-m

テストの実行

npm test

テストスイートでは Node.js 組み込みのテストランナーを使用し、すべての外部依存関係をモックします。テストの実行に API キーは必要ありません。


プロジェクト構成

together-ai-mcp/
├── index.js              # MCP server and handler logic
├── package.json
├── .env.example
├── test/
│   └── index.test.js     # Full test suite (node:test, no external framework)
└── examples/
    ├── chat.md           # Example prompts for each tool and model
    └── claude-config.md  # Configuration for Claude Desktop, Cursor, VS Code

依存関係

  • @modelcontextprotocol/sdk — MCP サーバーのフレームワーク
  • openai — Together AI の baseURL とともに使用する OpenAI 互換クライアント

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。