nvidia-nim-mcp について
nvidia-nim-mcpは、MCPクライアントからNVIDIA NIMモデルを利用するためのサーバーで、エージェントやアプリケーションの開発者を対象としています。言語、マルチモーダル、画像、埋め込み、再ランキングに加え、モデルの検索と比較も提供します。
主な機能
- 01チャットとテキスト生成
- 02埋め込みとパッセージの再ランキング
- 03画像生成と分析
- 04マルチモーダルタスクと関数呼び出し
- 05モデルメタデータの絞り込みと比較
活用シーン
- 01MCP対応エージェントでNIMモデルを利用
- 02テキストプロンプトから画像を生成
- 03埋め込みを作成し検索パッセージを順位付け
- 04機能やハードウェア条件からモデルを選定
MCP 対応
MCPサーバーは、NVIDIA NIMの推論操作とモデル検索ツールをMCPクライアントに公開します。利用にはNVIDIA APIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y nvidia-nim-mcpNVIDIA_API_KEYシークレットYour NVIDIA API key for accessing NIM models. Get one at https://build.nvidia.comNVIDIA_NIM_BASE_URLBase URL for self-hosted NIM endpointsNVIDIA_AI_FOUNDATION_URLBase URL for NVIDIA AI Foundation Models (free tier available)DEFAULT_MODELDefault model to use for chat/text generationENABLE_IMAGE_GENERATIONEnable image generation toolsENABLE_VISIONEnable vision/image analysis toolsENABLE_MULTIMODALEnable multimodal toolsローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
11掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| seed | integer | いいえ | |
| stop | any | いいえ | |
| model | string | いいえ | NIM モデル ID(任意。設定されていない場合はデフォルトを使用します) |
| top_p | number | いいえ | |
| messages | array | はい | |
| max_tokens | integer | いいえ | |
| temperature | number | いいえ | |
| system_prompt | string | いいえ | 先頭に追加するシステムプロンプト |
詳細
NVIDIA NIM MCP サーバー
NVIDIA NIM(NVIDIA Inference Microservices)モデルを利用する、本番環境対応の Model Context Protocol(MCP) サーバーです。50 以上の LLM、マルチモーダルモデル、画像生成、埋め込み、再ランキング、関数呼び出し、ビジョン、コード特化モデルに対応し、エージェントをインテリジェントに選択するための豊富なメタデータを備えています。
🚀 特長
- 10 個の MCP ツール:チャット補完、テキスト生成、埋め込み、再ランキング、関数呼び出し、モデル一覧、モデル情報、画像生成、画像分析、マルチモーダルタスク、モデル比較
- 50 以上の対応モデル:Llama 3.1/3.2、Nemotron 3 Ultra(550B)、MiniMax M3、Kimi K2.6(1T)、DeepSeek V4 Pro、GLM 5.1、Qwen 3.5 397B、Mistral Large 3(675B)、GPT-OSS 120B、DiffusionGemma、FLUX.1、SDXL、SD3 など
- 豊富なモデルメタデータ:ライセンス、ハードウェア要件、ベンチマーク、画像生成の仕様、推論モード、エージェント選択用タグ
- 高度なフィルタリング:商用利用、推論、ビジョン、関数呼び出し、マルチモーダル、コンテキスト長、タグ、ハードウェアによる絞り込み
- 本番環境対応:指数バックオフによる自動再試行、分あたりのレート制限、構造化 JSON ログ
- 型安全:TypeScript を全面的に使用し、各ツールの入力を Zod で検証
- Docker 対応:非 root ユーザーとヘルスチェックを備えたマルチステージ Dockerfile
- 設定可能:すべての設定を環境変数で指定
- 必須環境変数は 1 つだけ:
NVIDIA_API_KEYのみ必須で、その他はすべて適切なデフォルト値が設定されています
📋 前提条件
- Node.js 18 以降(NPM でインストールする場合)、または Docker(コンテナでデプロイする場合)
- NVIDIA NGC API キー(
nvapi-...)
⚙️ インストール
オプション 1:NPM グローバルインストール(推奨)
# Install globally
npm install -g nvidia-nim-mcp
# Run directly
nvidia-nim-mcp
オプション 2:NPM ローカルインストール
# Initialize your project
npm init -y
# Install locally
npm install nvidia-nim-mcp
# Run with npx
npx nvidia-nim-mcp
オプション 3:ソースからインストール
# Clone / download the project
cd nvidia-nim-mcp
# Install dependencies
npm install
# Build TypeScript
npm run build
オプション 4:Docker
# Pull from Docker Hub (when published)
docker pull nvidia-nim-mcp
# Or build locally
docker build -t nvidia-nim-mcp .
🔑 設定
.env.example を .env にコピーし、API キーを入力します。
cp .env.example .env
必須なのは NVIDIA_API_KEY のみです。その他の変数には、本番環境ですぐに使えるデフォルト値が設定されています。
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
NVIDIA_API_KEY | ✅ | — | NVIDIA NGC API キー |
NVIDIA_NIM_BASE_URL | ❌ | https://integrate.api.nvidia.com/v1 | NIM API のベース URL |
DEFAULT_MODEL | ❌ | black-forest-labs/flux.1-dev | デフォルトモデル(画像生成に最適) |
MAX_REQUESTS_PER_MINUTE | ❌ | 40 | レート制限の上限(NVIDIA API の制限) |
MAX_TOKENS_PER_REQUEST | ❌ | 4096 | リクエストあたりのトークン数の上限 |
REQUEST_TIMEOUT_MS | ❌ | 120000 | リクエストのタイムアウト(ミリ秒) |
MAX_RETRIES | ❌ | 3 | 失敗時の最大再試行回数 |
RETRY_DELAY_MS | ❌ | 1000 | 再試行間の基本待機時間(ミリ秒) |
LOG_LEVEL | ❌ | info | error|warn|info|debug |
ENABLE_IMAGE_GENERATION | ❌ | true | 画像生成ツールを有効化 |
ENABLE_VISION | ❌ | true | ビジョン/マルチモーダルツールを有効化 |
ENABLE_MULTIMODAL | ❌ | true | マルチモーダルタスクツールを有効化 |
🚀 実行
NPM グローバルインストール
# Run the server
nvidia-nim-mcp
# With custom environment variables
NVIDIA_API_KEY=nvapi-your-key LOG_LEVEL=debug nvidia-nim-mcp
NPM ローカルインストール
# Run with npx
npx nvidia-nim-mcp
# Or add to package.json scripts
# "scripts": { "start": "nvidia-nim-mcp" }
npm start
ソースから実行
# Development mode with auto-reload
npm run dev
# Production mode (compiled)
npm run build && npm start
Docker
# Run with environment variables
docker run --rm \
-e NVIDIA_API_KEY=nvapi-your-key \
-e LOG_LEVEL=info \
nvidia-nim-mcp
# Run in background with port mapping (if needed)
docker run -d \
--name nvidia-nim-mcp \
-e NVIDIA_API_KEY=nvapi-your-key \
nvidia-nim-mcp
スタンドアロン実行ファイル
# Make executable (if not already)
chmod +x dist/index.js
# Run directly
./dist/index.js
# With environment variables
NVIDIA_API_KEY=nvapi-your-key ./dist/index.js
🔧 MCP クライアントの設定
NPM グローバルインストールの場合
{
"mcpServers": {
"nvidia-nim": {
"command": "nvidia-nim-mcp",
"env": {
"NVIDIA_API_KEY": "nvapi-your-key-here",
"LOG_LEVEL": "info"
}
}
}
}
NPM ローカルインストールの場合
{
"mcpServers": {
"nvidia-nim": {
"command": "npx",
"args": ["nvidia-nim-mcp"],
"env": {
"NVIDIA_API_KEY": "nvapi-your-key-here",
"LOG_LEVEL": "info"
}
}
}
}
実行ファイルのパスを直接指定する場合
{
"mcpServers": {
"nvidia-nim": {
"command": "node",
"args": ["/absolute/path/to/nvidia-nim-mcp/dist/index.js"],
"env": {
"NVIDIA_API_KEY": "nvapi-your-key-here",
"LOG_LEVEL": "info"
}
}
}
}
🛠️ 利用可能なツール
chat_completion
任意の NIM LLM を使った複数ターンの会話です。
{
"model": "nvidia/nemotron-3-ultra-550b-a55b",
"messages": [
{ "role": "user", "content": "Explain quantum computing" }
],
"temperature": 0.3,
"max_tokens": 4096
}
text_generation
単一プロンプトによるテキスト生成(簡易インターフェース)です。
{
"prompt": "Write a haiku about machine learning",
"temperature": 0.5,
"max_tokens": 512
}
create_embeddings
RAG/検索用に、テキストをベクトル埋め込みに変換します。
{
"model": "nvidia/nv-embed-v1",
"input": ["NVIDIA makes GPUs", "AI runs on GPUs"],
"truncate": "END"
}
rerank_passages
クエリとの関連性に基づいて、文章の順位を付け直します。
{
"query": "What is CUDA?",
"passages": ["CUDA is a GPU programming platform", "NIM serves AI models"],
"top_k": 3
}
function_calling
ツール/関数呼び出しに対応した NIM モデルを使用します。
{
"model": "z-ai/glm-5.1",
"messages": [{ "role": "user", "content": "What's the weather in Paris?" }],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather",
"parameters": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
}
}]
}
generate_image
FLUX.1、SDXL、SD3、DiffusionGemma を使って、テキストプロンプトから画像を生成します。
{
"model": "black-forest-labs/flux.1-dev",
"prompt": "A photorealistic mountain landscape at sunset, 8K",
"width": 1024,
"height": 1024,
"steps": 30,
"cfg_scale": 3.5,
"sampler": "euler_a",
"scheduler": "simple"
}
analyze_image
ビジョン/マルチモーダルモデルを使って、画像を分析し、その内容を説明します。
{
"model": "moonshotai/kimi-k2.6",
"image_url": "https://example.com/image.jpg",
"prompt": "Describe this image in detail",
"detail": "high"
}
multimodal_task
テキストと画像を組み合わせたマルチモーダルタスクを実行します。
{
"model": "minimaxai/minimax-m3",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Analyze this chart" },
{ "type": "image_url", "image_url": { "url": "https://example.com/chart.png" } }
]
}
],
"max_tokens": 2048
}
list_models
豊富なメタデータと高度なフィルタリング機能を使用して、利用可能なモデルを一覧表示します。
{
"category": "code",
"commercial_use": true,
"supports_reasoning": true,
"tags": ["coding", "agentic"],
"include_details": true
}
フィルターオプション:
category:language、embedding、reranking、vision、code、multimodal、image_generation、allcommercial_use:商用ライセンスでフィルタリングしますsupports_reasoning:推論機能でフィルタリングしますsupports_vision:視覚機能でフィルタリングしますsupports_function_calling:関数呼び出し機能でフィルタリングしますsupports_multimodal:マルチモーダル入力でフィルタリングしますmin_context_length:コンテキストウィンドウの最小値(トークン数)tags:ユースケースのタグでフィルタリングしますhardware:GPU の種類(Hopper、Blackwell、Ampere)でフィルタリングしますinclude_details:完全なメタデータ(ベンチマーク、画像仕様など)を含めます
get_model_info
特定のモデルの完全なメタデータを取得します。
{ "model_id": "nvidia/nemotron-3-ultra-550b-a55b" }
返される情報: ライセンス、ハードウェア要件、ベンチマーク、画像生成の仕様、推論モード、タグ、対応言語など。
compare_models
2~5 個のモデルを、あらゆる選定要素について並べて比較します。
{
"model_ids": [
"nvidia/nemotron-3-ultra-550b-a55b",
"deepseek-ai/deepseek-v4-pro",
"moonshotai/kimi-k2.6",
"z-ai/glm-5.1"
]
}
返される情報: ライセンス、ハードウェア、ベンチマーク、機能、タグ、画像生成の仕様などを含む構造化された比較表。
📦 対応モデル(50 以上)
言語モデル(最先端の推論)
| モデル | パラメーター数 | コンテキスト | ライセンス | 商用利用 | 最適な用途 |
|---|---|---|---|---|---|
nvidia/nemotron-3-ultra-550b-a55b | 550B(アクティブ 55B) | 131K | OpenMDW-1.1 | ✅ | 最先端の推論、コーディング、エージェント型タスク、1M コンテキスト、多言語 |
nvidia/nemotron-3-ultra-550b-a55b-instruct | 550B | 131K | OpenMDW-1.1 | ✅ | 指示チューニング済みのバリアント |
minimaxai/minimax-m3 | 428B(アクティブ 22B) | 1M | Non-Commercial | ❌ | マルチモーダル、動画(30 分)、8 時間のコーディング、エージェント型タスク |
moonshotai/kimi-k2.6 | 1T(アクティブ 32B) | 256K | Modified MIT | ✅ | 長期的なコーディング、300 エージェント、視覚、エージェント型タスク |
deepseek-ai/deepseek-v4-pro | 1.6T(アクティブ 49B) | 1M | MIT | ✅ | 高度なコーディング、数学、推論、3 種類の推論モード |
z-ai/glm-5.1 | 754B(DSA) | 131K | MIT | ✅ | ソフトウェアエンジニアリング、エージェント型タスク、SWE-Bench 58.4% |
qwen/qwen3.5-397b-a17b | 397B(MoE) | 131K | Research | ❌ | 大規模な多言語処理、マルチモーダル |
mistralai/mistral-large-3-675b-instruct-2512 | 675B | 131K | Research | ❌ | 最先端の推論、マルチモーダル |
openai/gpt-oss-120b | 120B | 131K | Apache 2.0 | ✅ | オープンウェイト、研究、ファインチューニング |
google/diffusiongemma-26b-a4b-it | 25.2B(アクティブ 3.8B) | 256K | Apache 2.0 | ✅ | 拡散モデルによるテキスト生成、35 以上の言語、高速、マルチモーダル |
コード特化モデル
| モデル | パラメーター数 | コンテキスト | ライセンス | 商用利用 |
|---|---|---|---|---|
z-ai/glm-5.1 | 754B | 131K | MIT | ✅ |
z-ai/glm5 | - | 128K | Z.ai | ✅ |
qwen/qwen2.5-coder-32b-instruct | 32B | 131K | Research | ❌ |
マルチモーダル/視覚モデル
| モデル | パラメーター数 | コンテキスト | 視覚 | 動画 | ライセンス | 商用利用 |
|---|---|---|---|---|---|---|
meta/llama-3.2-90b-vision-instruct | 90B | 128K | ✅ | ❌ | Llama 3.2 | ✅ |
meta/llama-3.2-11b-vision-instruct | 11B | 128K | ✅ | ❌ | Llama 3.2 | ✅ |
nvidia/neva-22b | 22B | 4K | ✅ | ❌ | NVIDIA | ✅ |
microsoft/phi-3.5-vision-instruct | - | 128K | ✅ | ❌ | MIT | ✅ |
minimaxai/minimax-m3 | 428B | 1M | ✅ | ✅(30 分) | Non-Commercial | ❌ |
moonshotai/kimi-k2.6 | 1T | 256K | ✅ | ✅ | Modified MIT | ✅ |
画像生成モデル
| モデル | アーキテクチャ | 解像度 | アスペクト比 | 最大画像数 | ControlNet | ライセンス | 商用利用 |
|---|---|---|---|---|---|---|---|
black-forest-labs/flux.1-dev | Diffusion Transformer | 1024², 1152×896, 1344×768, 21:9 | 1:1, 16:9, 9:16, 4:3, 3:4, 21:9 | 1 | Canny, Depth | Apache 2.0* | ❌* |
black-forest-labs/flux.1-kontext-dev | Diffusion Transformer | 同上 | 同上 | 1 | - | Apache 2.0* | ❌* |
nvidia/stable-diffusion-xl | UNet + Attention | 1024², 1152×896, 1216×832 | 1:1, 16:9, 9:16, 4:3, 3:4 | 4 | - | SDXL 1.0 | ✅** |
stabilityai/sd-3-medium | SD3 | 同上 | 同上 | 2 | - | Stability AI | ✅** |
nvidia/sdxl-turbo | ADD | 512², 1024² | 1:1 | 4 | - | SDXL 1.0 | ✅** |
*デフォルトでは非商用です。商用利用についてはお問い合わせください
**Stability AI のメンバーシップが必要です
埋め込みと再ランキング
| モデル | タイプ | コンテキスト | 次元 | ライセンス | 商用利用 |
|---|---|---|---|---|---|
nvidia/nv-embedqa-e5-v5 | 埋め込み | 512 | - | NVIDIA | ✅ |
nvidia/nv-embed-v1 | 埋め込み | 4096 | - | NVIDIA | ✅ |
baai/bge-m3 | 埋め込み | 8192 | - | MIT | ✅ |
nvidia/nv-rerankqa-mistral-4b-v3 | 再ランキング | 4096 | - | NVIDIA | ✅ |
🏭 本番環境チェックリスト
- 起動時の環境変数の検証
- 指数バックオフによる再試行(設定可能)
- 1 分あたりのレート制限
- Winston によるリクエスト/レスポンスのログ記録
- 本番環境での構造化 JSON ログ
- すべてのツールでの Zod 入力検証
- グレースフルシャットダウン(SIGINT/SIGTERM)
- 未処理の例外/拒否を処理するハンドラー
- Docker マルチステージビルド(最小イメージ)
- Docker の非 root ユーザー
- トークン上限の適用
- 必須環境変数は 1 つのみ(
NVIDIA_API_KEY) - オプション機能用の機能フラグ
🧪 テスト
このプロジェクトには、包括的なテストスイートが含まれています。
- ユニットテスト:設定、ログ記録、モデル処理、ツールの検証
- 統合テスト:さまざまな入力シナリオでの 10 個すべての MCP ツール
- エラー処理:エッジケースと障害モードの検証
- スキーマ検証:すべてのツールの Zod ベースの入力検証
テストの実行
# Run all tests
npm test
# Run tests with coverage report
npm test -- --coverage
# Run tests in watch mode
npm test -- --watch
# Run specific test file
npm test src/handlers.test.ts
現在のテスト状況:✅ すべてのテストに合格しています(96 件)
🛠️ 開発
プロジェクトのビルド
# Install dependencies
npm install
# Compile TypeScript to JavaScript
npm run build
# Clean build artifacts
npm run clean
# Development mode with auto-reload
npm run dev
コード品質
# Run linter
npm run lint
# Run tests
npm test
# Run both linting and tests
npm run check
🤝 コントリビューション
コントリビューションを歓迎します!
- リポジトリをフォークする
- 機能ブランチを作成する:
git checkout -b feature/your-feature-name - 変更を加える:既存のコードスタイルとパターンに従ってください
- テストを追加する:新しい機能が適切にテストされていることを確認してください
- チェックを実行する:
npm run checkを実行して、コード品質とテストを確認します - 変更をコミットする:明確で説明的なコミットメッセージを使用してください
- フォークにプッシュする:
git push origin feature/your-feature-name - プルリクエストを作成する:変更内容とその利点を説明してください
コード標準
- TypeScript:厳格な型チェックを有効化
- ESLint:コードのフォーマットとベストプラクティス
- Zod:すべての外部入力の実行時検証
- テスト:新機能を包括的にテスト
- ドキュメント:ユーザー向けの変更に合わせて README.md を更新
開発ワークフロー
- セットアップ:インストール手順に従います
- 開発:
npm run devを使用して継続的に開発します - テスト:
npm testを実行して変更を確認します - ビルド:
npm run buildを使用してプロジェクトをコンパイルします - Lint:
npm run lintを実行してコード品質を確認します
📦 パッケージ化と配布
NPM パッケージ
- 簡単にインストールできるよう、npm レジストリで公開
- コンパイル済み JavaScript と TypeScript 定義を同梱
- グローバルおよびローカルのインストールに対応
- 標準的な CLI ツールとして実行
Docker イメージ
- イメージサイズを最小限に抑えるマルチステージビルド
- セキュリティのため、非 root ユーザーとして実行
- ヘルスチェックエンドポイントを同梱
- コンテナ化環境に簡単にデプロイ可能
単体実行ファイル
- shebang を含む自己完結型の JavaScript ファイルです
- Node.js がインストールされているシステムであれば、どのシステムでも直接実行できます
- Node.js 以外のインストールは不要です
パッケージのビルド
# Build the project
npm run build
# Create NPM package (.tgz)
npm pack
# Build Docker image
docker build -t nvidia-nim-mcp .
# All checks (lint, test, build)
npm run check && npm run build
📄 ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。