nvidia-nim-mcp
Enables AI agents to consume 50+ NVIDIA NIM models including LLMs, image generation, and vision through 10 MCP tools with rich metadata and advanced filtering.
README
NVIDIA NIM MCP Server
A production-ready Model Context Protocol (MCP) server for consuming NVIDIA NIM (NVIDIA Inference Microservices) models. Supports 50+ LLMs, multimodal models, image generation, embeddings, reranking, function calling, vision, and code-specialized models with rich metadata for intelligent agent selection.
๐ Features
- 10 MCP Tools: chat completion, text generation, embeddings, reranking, function calling, model listing, model info, image generation, image analysis, multimodal tasks, model comparison
- 50+ Supported Models: 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, and more
- Rich Model Metadata: licensing, hardware requirements, benchmarks, image generation specs, reasoning modes, tags for agent selection
- Advanced Filtering: by commercial use, reasoning, vision, function calling, multimodal, context length, tags, hardware
- Production-Grade: automatic retries with exponential backoff, per-minute rate limiting, structured JSON logging
- Type-Safe: full TypeScript, Zod input validation on every tool
- Docker-Ready: multi-stage Dockerfile with non-root user, health checks
- Configurable: all settings via environment variables
- Single Required Env: Only
NVIDIA_API_KEYrequired; all others have sensible defaults
๐ Prerequisites
- Node.js 18+ (for NPM installation) or Docker (for container deployment)
- A NVIDIA NGC API key (
nvapi-...)
โ๏ธ Installation
Option 1: NPM Global Installation (Recommended)
# Install globally
npm install -g nvidia-nim-mcp
# Run directly
nvidia-nim-mcp
Option 2: NPM Local Installation
# Initialize your project
npm init -y
# Install locally
npm install nvidia-nim-mcp
# Run with npx
npx nvidia-nim-mcp
Option 3: From Source
# Clone / download the project
cd nvidia-nim-mcp
# Install dependencies
npm install
# Build TypeScript
npm run build
Option 4: Docker
# Pull from Docker Hub (when published)
docker pull nvidia-nim-mcp
# Or build locally
docker build -t nvidia-nim-mcp .
๐ Configuration
Copy .env.example to .env and fill in your API key:
cp .env.example .env
Only NVIDIA_API_KEY is required โ all other variables have production-ready defaults:
| Variable | Required | Default | Description |
|---|---|---|---|
NVIDIA_API_KEY |
โ | โ | Your NVIDIA NGC API key |
NVIDIA_NIM_BASE_URL |
โ | https://integrate.api.nvidia.com/v1 |
Base URL for NIM API |
DEFAULT_MODEL |
โ | black-forest-labs/flux.1-dev |
Default model (best image generation) |
MAX_REQUESTS_PER_MINUTE |
โ | 40 |
Rate limit cap (NVIDIA API limit) |
MAX_TOKENS_PER_REQUEST |
โ | 4096 |
Hard cap on tokens per request |
REQUEST_TIMEOUT_MS |
โ | 120000 |
Request timeout (ms) |
MAX_RETRIES |
โ | 3 |
Max retry attempts on failure |
RETRY_DELAY_MS |
โ | 1000 |
Base delay between retries (ms) |
LOG_LEVEL |
โ | info |
error|warn|info|debug |
ENABLE_IMAGE_GENERATION |
โ | true |
Enable image generation tools |
ENABLE_VISION |
โ | true |
Enable vision/multimodal tools |
ENABLE_MULTIMODAL |
โ | true |
Enable multimodal task tools |
๐ Running
NPM Global Installation
# Run the server
nvidia-nim-mcp
# With custom environment variables
NVIDIA_API_KEY=nvapi-your-key LOG_LEVEL=debug nvidia-nim-mcp
NPM Local Installation
# Run with npx
npx nvidia-nim-mcp
# Or add to package.json scripts
# "scripts": { "start": "nvidia-nim-mcp" }
npm start
From Source
# 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
Standalone Executable
# 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 Client Configuration
For Global NPM Installation
{
"mcpServers": {
"nvidia-nim": {
"command": "nvidia-nim-mcp",
"env": {
"NVIDIA_API_KEY": "nvapi-your-key-here",
"LOG_LEVEL": "info"
}
}
}
}
For Local NPM Installation
{
"mcpServers": {
"nvidia-nim": {
"command": "npx",
"args": ["nvidia-nim-mcp"],
"env": {
"NVIDIA_API_KEY": "nvapi-your-key-here",
"LOG_LEVEL": "info"
}
}
}
}
For Direct Executable Path
{
"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"
}
}
}
}
๐ ๏ธ Available Tools
chat_completion
Multi-turn conversation with any NIM LLM.
{
"model": "nvidia/nemotron-3-ultra-550b-a55b",
"messages": [
{ "role": "user", "content": "Explain quantum computing" }
],
"temperature": 0.3,
"max_tokens": 4096
}
text_generation
Single-prompt text generation (simplified interface).
{
"prompt": "Write a haiku about machine learning",
"temperature": 0.5,
"max_tokens": 512
}
create_embeddings
Convert text(s) to vector embeddings for RAG/search.
{
"model": "nvidia/nv-embed-v1",
"input": ["NVIDIA makes GPUs", "AI runs on GPUs"],
"truncate": "END"
}
rerank_passages
Rerank passages by relevance to a query.
{
"query": "What is CUDA?",
"passages": ["CUDA is a GPU programming platform", "NIM serves AI models"],
"top_k": 3
}
function_calling
Use NIM models with tool/function calling.
{
"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
Generate images from text prompts using 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
Analyze and describe images using vision/multimodal models.
{
"model": "moonshotai/kimi-k2.6",
"image_url": "https://example.com/image.jpg",
"prompt": "Describe this image in detail",
"detail": "high"
}
multimodal_task
Perform multimodal tasks combining text and images.
{
"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
List available models with rich metadata and advanced filtering.
{
"category": "code",
"commercial_use": true,
"supports_reasoning": true,
"tags": ["coding", "agentic"],
"include_details": true
}
Filter Options:
category:language,embedding,reranking,vision,code,multimodal,image_generation,allcommercial_use: Filter by commercial licensesupports_reasoning: Filter by reasoning capabilitysupports_vision: Filter by vision capabilitysupports_function_calling: Filter by function callingsupports_multimodal: Filter by multimodal inputmin_context_length: Minimum context window (tokens)tags: Filter by use case tagshardware: Filter by GPU type (Hopper, Blackwell, Ampere)include_details: Include full metadata (benchmarks, image specs, etc.)
get_model_info
Get complete metadata for a specific model.
{ "model_id": "nvidia/nemotron-3-ultra-550b-a55b" }
Returns: licensing, hardware requirements, benchmarks, image gen specs, reasoning modes, tags, supported languages, etc.
compare_models
Compare 2-5 models side-by-side across all decision factors.
{
"model_ids": [
"nvidia/nemotron-3-ultra-550b-a55b",
"deepseek-ai/deepseek-v4-pro",
"moonshotai/kimi-k2.6",
"z-ai/glm-5.1"
]
}
Returns: Structured comparison table with licensing, hardware, benchmarks, capabilities, tags, image generation specs, etc.
๐ฆ Supported Models (50+)
Language Models (Frontier Reasoning)
| Model | Parameters | Context | License | Commercial | Best For |
|---|---|---|---|---|---|
nvidia/nemotron-3-ultra-550b-a55b |
550B (55B active) | 131K | OpenMDW-1.1 | โ | Frontier reasoning, coding, agentic, 1M context, multilingual |
nvidia/nemotron-3-ultra-550b-a55b-instruct |
550B | 131K | OpenMDW-1.1 | โ | Instruction-tuned variant |
minimaxai/minimax-m3 |
428B (22B active) | 1M | Non-Commercial | โ | Multimodal, video (30min), 8hr coding, agentic |
moonshotai/kimi-k2.6 |
1T (32B active) | 256K | Modified MIT | โ | Long-horizon coding, 300 agents, vision, agentic |
deepseek-ai/deepseek-v4-pro |
1.6T (49B active) | 1M | MIT | โ | Advanced coding, math, reasoning, 3 reasoning modes |
z-ai/glm-5.1 |
754B (DSA) | 131K | MIT | โ | Software engineering, agentic, SWE-Bench 58.4% |
qwen/qwen3.5-397b-a17b |
397B (MoE) | 131K | Research | โ | Large-scale multilingual, multimodal |
mistralai/mistral-large-3-675b-instruct-2512 |
675B | 131K | Research | โ | Frontier reasoning, multimodal |
openai/gpt-oss-120b |
120B | 131K | Apache 2.0 | โ | Open-weight, research, fine-tuning |
google/diffusiongemma-26b-a4b-it |
25.2B (3.8B active) | 256K | Apache 2.0 | โ | Diffusion text gen, 35+ langs, fast, multimodal |
Code-Specialized Models
| Model | Parameters | Context | License | Commercial |
|---|---|---|---|---|
z-ai/glm-5.1 |
754B | 131K | MIT | โ |
z-ai/glm5 |
- | 128K | Z.ai | โ |
qwen/qwen2.5-coder-32b-instruct |
32B | 131K | Research | โ |
Multimodal / Vision Models
| Model | Parameters | Context | Vision | Video | License | Commercial |
|---|---|---|---|---|---|---|
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 | โ | โ (30min) | Non-Commercial | โ |
moonshotai/kimi-k2.6 |
1T | 256K | โ | โ | Modified MIT | โ |
Image Generation Models
| Model | Architecture | Resolutions | Aspect Ratios | Max Images | ControlNet | License | Commercial |
|---|---|---|---|---|---|---|---|
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 | Same | Same | 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 | Same | Same | 2 | - | Stability AI | โ ** |
nvidia/sdxl-turbo |
ADD | 512ยฒ, 1024ยฒ | 1:1 | 4 | - | SDXL 1.0 | โ ** |
*Non-commercial default; commercial via contact
**Requires Stability AI membership
Embeddings & Reranking
| Model | Type | Context | Dimensions | License | Commercial |
|---|---|---|---|---|---|
nvidia/nv-embedqa-e5-v5 |
Embedding | 512 | - | NVIDIA | โ |
nvidia/nv-embed-v1 |
Embedding | 4096 | - | NVIDIA | โ |
baai/bge-m3 |
Embedding | 8192 | - | MIT | โ |
nvidia/nv-rerankqa-mistral-4b-v3 |
Reranking | 4096 | - | NVIDIA | โ |
๐ญ Production Checklist
- [x] Environment variable validation on startup
- [x] Exponential backoff retry (configurable)
- [x] Per-minute rate limiter
- [x] Request/response logging with Winston
- [x] Structured JSON logs in production
- [x] Zod input validation for all tools
- [x] Graceful shutdown (SIGINT/SIGTERM)
- [x] Unhandled exception/rejection handlers
- [x] Docker multi-stage build (minimal image)
- [x] Non-root Docker user
- [x] Token cap enforcement
- [x] Single required env var (
NVIDIA_API_KEY) - [x] Feature flags for optional capabilities
๐งช Testing
The project includes a comprehensive test suite:
- Unit Tests: Configuration, logging, model handling, tool validation
- Integration Tests: All 10 MCP tools with various input scenarios
- Error Handling: Validation of edge cases and failure modes
- Schema Validation: Zod-based input validation for all tools
Running Tests
# 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
Current Test Status: โ All tests passing (96 tests)
๐ ๏ธ Development
Building the Project
# 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
Code Quality
# Run linter
npm run lint
# Run tests
npm test
# Run both linting and tests
npm run check
๐ค Contributing
Contributions are welcome!
- Fork the Repository
- Create a Feature Branch:
git checkout -b feature/your-feature-name - Make Your Changes: Follow the existing code style and patterns
- Add Tests: Ensure new functionality is properly tested
- Run Checks:
npm run checkto verify code quality and tests - Commit Changes: Use clear, descriptive commit messages
- Push to Your Fork:
git push origin feature/your-feature-name - Open a Pull Request: Describe your changes and their benefits
Code Standards
- TypeScript: Strict type checking enabled
- ESLint: Code formatting and best practices
- Zod: Runtime validation for all external inputs
- Testing: Comprehensive test coverage for new features
- Documentation: Update README.md for user-facing changes
Development Workflow
- Setup: Follow the installation instructions
- Development: Use
npm run devfor continuous development - Testing: Run
npm testto verify your changes - Building: Use
npm run buildto compile the project - Linting: Run
npm run lintto check code quality
๐ฆ Packaging & Distribution
NPM Package
- Published to npm registry for easy installation
- Includes compiled JavaScript and TypeScript definitions
- Global and local installation options
- Runs as a standard CLI tool
Docker Image
- Multi-stage build for minimal image size
- Runs as non-root user for security
- Includes health check endpoint
- Easy deployment to containerized environments
Standalone Executable
- Self-contained JavaScript file with shebang
- Can be run directly on any system with Node.js
- No installation required beyond Node.js
Building Packages
# 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
๐ License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.