nvidia-nim-mcp
Integrates with NVIDIA NIM (NVIDIA Inference Microservices) to provide tools for chat completion, text generation, embeddings, reranking, function calling, image generation, image analysis, multimodal tasks, model listing, and model comparison using 50+ LLMs and other models.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nvidia-nim-mcpWrite a short story about a robot learning to paint"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Run:AI MCP Server
📋 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-mcpOption 2: NPM Local Installation
# Initialize your project
npm init -y
# Install locally
npm install nvidia-nim-mcp
# Run with npx
npx nvidia-nim-mcpOption 3: From Source
# Clone / download the project
cd nvidia-nim-mcp
# Install dependencies
npm install
# Build TypeScript
npm run buildOption 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 .envOnly NVIDIA_API_KEY is required — all other variables have production-ready defaults:
Variable | Required | Default | Description |
| ✅ | — | Your NVIDIA NGC API key |
| ❌ |
| Base URL for NIM API |
| ❌ |
| Default model (best image generation) |
| ❌ |
| Rate limit cap (NVIDIA API limit) |
| ❌ |
| Hard cap on tokens per request |
| ❌ |
| Request timeout (ms) |
| ❌ |
| Max retry attempts on failure |
| ❌ |
| Base delay between retries (ms) |
| ❌ |
|
|
| ❌ |
| Enable image generation tools |
| ❌ |
| Enable vision/multimodal tools |
| ❌ |
| 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-mcpNPM Local Installation
# Run with npx
npx nvidia-nim-mcp
# Or add to package.json scripts
# "scripts": { "start": "nvidia-nim-mcp" }
npm startFrom Source
# Development mode with auto-reload
npm run dev
# Production mode (compiled)
npm run build && npm startDocker
# 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-mcpStandalone 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 |
| 550B (55B active) | 131K | OpenMDW-1.1 | ✅ | Frontier reasoning, coding, agentic, 1M context, multilingual |
| 550B | 131K | OpenMDW-1.1 | ✅ | Instruction-tuned variant |
| 428B (22B active) | 1M | Non-Commercial | ❌ | Multimodal, video (30min), 8hr coding, agentic |
| 1T (32B active) | 256K | Modified MIT | ✅ | Long-horizon coding, 300 agents, vision, agentic |
| 1.6T (49B active) | 1M | MIT | ✅ | Advanced coding, math, reasoning, 3 reasoning modes |
| 754B (DSA) | 131K | MIT | ✅ | Software engineering, agentic, SWE-Bench 58.4% |
| 397B (MoE) | 131K | Research | ❌ | Large-scale multilingual, multimodal |
| 675B | 131K | Research | ❌ | Frontier reasoning, multimodal |
| 120B | 131K | Apache 2.0 | ✅ | Open-weight, research, fine-tuning |
| 25.2B (3.8B active) | 256K | Apache 2.0 | ✅ | Diffusion text gen, 35+ langs, fast, multimodal |
Code-Specialized Models
Model | Parameters | Context | License | Commercial |
| 754B | 131K | MIT | ✅ |
| - | 128K | Z.ai | ✅ |
| 32B | 131K | Research | ❌ |
Multimodal / Vision Models
Model | Parameters | Context | Vision | Video | License | Commercial |
| 90B | 128K | ✅ | ❌ | Llama 3.2 | ✅ |
| 11B | 128K | ✅ | ❌ | Llama 3.2 | ✅ |
| 22B | 4K | ✅ | ❌ | NVIDIA | ✅ |
| - | 128K | ✅ | ❌ | MIT | ✅ |
| 428B | 1M | ✅ | ✅ (30min) | Non-Commercial | ❌ |
| 1T | 256K | ✅ | ✅ | Modified MIT | ✅ |
Image Generation Models
Model | Architecture | Resolutions | Aspect Ratios | Max Images | ControlNet | License | Commercial |
| 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* | ❌* |
| Diffusion Transformer | Same | Same | 1 | - | Apache 2.0* | ❌* |
| UNet + Attention | 1024², 1152×896, 1216×832 | 1:1, 16:9, 9:16, 4:3, 3:4 | 4 | - | SDXL 1.0 | ✅** |
| SD3 | Same | Same | 2 | - | Stability AI | ✅** |
| 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 |
| Embedding | 512 | - | NVIDIA | ✅ |
| Embedding | 4096 | - | NVIDIA | ✅ |
| Embedding | 8192 | - | MIT | ✅ |
| Reranking | 4096 | - | NVIDIA | ✅ |
🏭 Production Checklist
Environment variable validation on startup
Exponential backoff retry (configurable)
Per-minute rate limiter
Request/response logging with Winston
Structured JSON logs in production
Zod input validation for all tools
Graceful shutdown (SIGINT/SIGTERM)
Unhandled exception/rejection handlers
Docker multi-stage build (minimal image)
Non-root Docker user
Token cap enforcement
Single required env var (
NVIDIA_API_KEY)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.tsCurrent 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 devCode 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-nameMake 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 testsCommit Changes: Use clear, descriptive commit messages
Push to Your Fork:
git push origin feature/your-feature-nameOpen 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 developmentTesting: Run
npm testto verify your changesBuilding: Use
npm run buildto compile the projectLinting: 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
Available Tools
11 toolsanalyze_imageB
Analyze and describe images using NVIDIA NIM vision and multimodal models. Provide an image URL and a prompt/question to get detailed analysis, captioning, or visual Q&A.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Vision/multimodal model ID (e.g., meta/llama-3.2-90b-vision-instruct, meta/llama-3.2-11b-vision-instruct, nvidia/neva-22b, microsoft/phi-3.5-vision-instruct) | |
| top_p | No | Nucleus sampling parameter | |
| detail | No | Image detail level for analysis | auto |
| prompt | Yes | Analysis prompt or question about the image (e.g., 'Describe this image', 'What objects are in this image?', 'Extract text from this image') | |
| image_url | Yes | URL of the image to analyze | |
| max_tokens | No | Maximum tokens in response | |
| temperature | No | Sampling temperature | |
| system_prompt | No | System prompt to guide the analysis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It reveals that the tool depends on NVIDIA NIM models and expects a URL, but it does not mention auth requirements, network/API dependence, rate limits, public URL accessibility, or how the optional model parameter is defaulted. This is a meaningful gap for an externally backed tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the tool's purpose and key usage steps. Every word earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives enough core context for a simple image-analysis use case and mentions expected output types, but with no output schema and no annotations it does not cover model defaulting, call latency, or failure behavior. It is minimally viable for a schema-rich tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already explains each parameter. The description adds little beyond paraphrasing image_url and prompt (URL and question), and does not clarify model selection or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Analyze and describe images') and names the technology (NVIDIA NIM vision and multimodal models). It does not explicitly contrast with sibling tools like multimodal_task, but the image-analysis focus is distinct from generation/completion siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides direct instructions ('Provide an image URL and a prompt/question'), implying use for image analysis, captioning, or visual Q&A. However, it does not explain when to choose this tool over multimodal_task or other siblings, nor does it mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat_completionA
Send a multi-turn conversation to a NVIDIA NIM language model and receive a completion. Supports all major open-source LLMs including Llama 3.1, Mistral, Gemma, Qwen, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| stop | No | ||
| model | No | NIM model ID (optional, uses default if not set) | |
| top_p | No | ||
| messages | Yes | ||
| max_tokens | No | ||
| temperature | No | ||
| system_prompt | No | System prompt to prepend |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It only states the basic operation and lists supported models; it does not disclose response format, authentication requirements, token usage, or the need to include full conversation history for multi-turn context. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place. The first sentence encapsulates the core action; the second adds model compatibility. No redundancy, front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, no output schema, and no annotations, the description leaves major gaps: no return value explanation, no guidance on message structure, and no relationship to sibling tools beyond the multi-turn hint. The description is insufficient for an agent to use the tool effectively without significant schema inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 25% (only model and system_prompt described). The description does not compensate for the omitted parameter meanings, failing to explain essential parameters like messages, temperature, max_tokens, top_p, seed, or stop. It adds no semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Send a multi-turn conversation to a NVIDIA NIM language model and receive a completion.' It uses a specific verb (send), resource (conversation to NIM model), and outcome (completion). The mention of 'multi-turn' distinguishes it from sibling text_generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While no explicit alternatives are named, the description establishes a clear use case: multi-turn conversations. This implies it should be used when conversational context is needed, as opposed to single-turn tools. However, it lacks explicit when-not-to-use guidance or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_modelsA
Compare 2-5 models side-by-side across key decision factors: licensing, hardware requirements, benchmarks, capabilities, and use case tags. Returns structured comparison table.
| Name | Required | Description | Default |
|---|---|---|---|
| model_ids | Yes | Array of 2-5 model IDs to compare (e.g., ['nvidia/nemotron-3-ultra-550b-a55b', 'deepseek-ai/deepseek-v4-pro', 'moonshotai/kimi-k2.6']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the output type ('structured comparison table') and decision factors, but does not mention potential behavior around invalid model IDs, performance, or error handling. This is acceptable for a read-only comparison tool but leaves some uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core action and key factors. Every word earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single parameter and no output schema, the description covers the purpose, input range, and output structure. It could be slightly more explicit about what 'structured comparison table' entails, but the listed factors give a clear picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers 100% of the parameter with a clear explanation and example. The description adds no new semantic information beyond the schema, only reinforcing the 2-5 count. It meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compare') with a clear resource ('models') and scope (2-5), plus the exact decision factors considered. This distinctly separates it from sibling tools like get_model_info (single model) and list_models (listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the use case (comparison of multiple models across decision factors), but it does not explicitly state when NOT to use it or name alternative tools. Since the purpose is unambiguous, the absence of explicit exclusion is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_embeddingsA
Convert text(s) into vector embeddings using NVIDIA NIM embedding models. Useful for semantic search, RAG, clustering, and similarity comparisons.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Text or list of texts to embed | |
| model | No | Embedding model ID (e.g. nvidia/nv-embed-v1) | |
| truncate | No | ||
| encoding_format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only restates the conversion action and lists use cases; it does not mention default model behavior, truncation handling, output format specifics, rate limits, or other operational traits. This is a limited disclosure beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and resource before adding valuable use-case context. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does not explain return value shape, default model/truncation settings, or how the optional parameters affect behavior. It is adequate for a high-level understanding but insufficient for reliable invocation in complex scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes 'input' and 'model', but 'truncate' and 'encoding_format' are only enums without detailed descriptions. The tool description adds no parameter-level meaning and does not compensate for the 50% schema coverage gap. It merely restates that text is converted, which is already implied by the 'input' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Convert') and identifies the exact resource ('text(s) into vector embeddings using NVIDIA NIM embedding models'). It clearly distinguishes from sibling tools like chat_completion and rerank_passages by stating the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use cases ('semantic search, RAG, clustering, and similarity comparisons') that signal when to use this tool. It lacks explicit exclusionary guidance or comparison to alternatives, but the context is clear enough for the agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
function_callingC
Use NIM models with tool/function calling capabilities. The model will decide which function to call and with what arguments.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| tools | Yes | ||
| messages | Yes | ||
| max_tokens | No | ||
| temperature | No | ||
| tool_choice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does reveal that the model decides which function to call and with what arguments, which is important, but it omits details about the response format, whether tools are executed, pagination, rate limits, or the tool_choice behavior. This is minimal disclosure for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences with no filler or redundancy. It is efficiently front-loaded, but it might be too sparse to be considered excellently structured, hence a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, 2 required, no output schema, no annotations), the description is severely incomplete. It only mentions the high-level capability and gives no information about required inputs, return values, or edge cases. This is far below the minimum viable description for such a tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 6 parameters with 0% description coverage, so the description must compensate. It fails to do so: it does not explain the purpose of 'model', 'tools', 'messages', 'max_tokens', 'temperature', or 'tool_choice'. The only indirect hint is 'function calling' and 'with what arguments,' which vaguely relates to 'tools' but adds no concrete parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool uses NIM models with tool/function calling capabilities, which is a specific verb+resource+capability. It clearly indicates the tool's role but does not explicitly distinguish it from sibling tools like chat_completion, though the function-calling focus provides some differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use NIM models with tool/function calling capabilities' but gives no guidance on when to choose this tool over alternatives like chat_completion or text_generation. There are no explicit exclusions, prerequisites, or recommended scenarios, leaving the decision to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageA
Generate images from text prompts using NVIDIA NIM image generation models (Stable Diffusion XL, SDXL Turbo, SD3, FLUX.1). Supports various resolutions, samplers, and schedulers. FLUX.1-schnell and FLUX.1-kontext-dev are available on the free NVIDIA AI Foundation tier. Can save generated images as PNG files to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducibility | |
| image | No | Base64 data URL of input image (required for FLUX Kontext image-to-image editing, format: data:image/png;base64,...) | |
| model | No | Image generation model ID (e.g., nvidia/stable-diffusion-xl, nvidia/sdxl-turbo, stabilityai/sd-3-medium, black-forest-labs/flux.1-dev, black-forest-labs/flux.1-schnell, black-forest-labs/flux.1-kontext-dev) | |
| steps | No | Number of diffusion steps (ignored for FLUX Schnell, fixed at 4) | |
| width | No | Image width in pixels | |
| height | No | Image height in pixels | |
| prompt | Yes | Text prompt describing the image to generate | |
| sampler | No | Sampler algorithm (e.g., euler, euler_a, dpmpp_2m, dpmpp_sde, ddim) | |
| cfg_scale | No | Classifier-free guidance scale | |
| save_path | No | Optional file path to save the generated image as PNG (e.g., './output/image.png' or '/absolute/path/image.png') | |
| scheduler | No | Scheduler type (e.g., karras, exponential, simple, ddim_uniform) | |
| num_images | No | Number of images to generate | |
| aspect_ratio | No | Aspect ratio for output (e.g., 'match_input_image', '1:1', '16:9', '4:3', '3:4', '21:9') | |
| save_filename | No | Optional filename (without extension) to auto-generate path in current directory (e.g., 'my-image' creates './my-image.png') | |
| negative_prompt | No | Negative prompt to avoid unwanted features | |
| response_format | No | Response format: URL or base64 JSON | url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the ability to save PNGs to disk and notes free-tier model availability. However, it lacks information about output formats (URL vs b64_json), rate limits, or model-specific constraints beyond what the schema already states, leaving gaps in full behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the primary purpose, followed by key capabilities and a practical note about free-tier models. Every sentence adds value without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 parameters and no output schema, the description provides a useful overview but omits important return-value semantics (URL vs base64 JSON) and does not mention image-to-image editing via FLUX Kontext despite the schema having an image parameter. It covers core context but is not fully complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds a high-level summary (supports resolutions, samplers, schedulers) but does not provide additional meaning beyond what each parameter's schema description already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates images from text prompts using specific NVIDIA NIM models, which distinguishes it from siblings like text_generation or analyze_image. The verb+resource is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (image generation) and hints at model selection (free tier for FLUX models). It doesn't explicitly exclude alternatives or name them, but the sibling tools are distinctly different tasks, making the usage context apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_model_infoB
Get detailed information about a specific NVIDIA NIM model.
| Name | Required | Description | Default |
|---|---|---|---|
| model_id | Yes | The model ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It discloses 'Get' as a read operation but does not specify what details are included, whether the response is paginated, or any other behavior. The value added beyond the name is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It efficiently communicates the purpose without any filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is minimally adequate. However, without an output schema, it leaves the agent guessing about what 'detailed information' includes. Enumerating example fields (e.g., model ID, endpoints, parameters) would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'model_id' ('The model ID'). The description does not add any additional meaning beyond the schema, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and a specific resource ('detailed information about a specific NVIDIA NIM model'). The word 'specific' distinguishes it from sibling tools like list_models and compare_models, which operate on multiple models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It implies usage for a single model but does not explicitly mention when not to use it or how it relates to list_models or compare_models.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsB
List available NVIDIA NIM models with detailed metadata for agent selection, optionally filtered by category (language, embedding, reranking, vision, code, multimodal, image_generation) and advanced filters.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Filter by use case tags | |
| category | No | Filter by model category | all |
| hardware | No | Filter by GPU hardware type (e.g., Hopper, Blackwell, Ampere) | |
| commercial_use | No | Filter by commercial license availability | |
| include_details | No | Include detailed model metadata for agent selection | |
| supports_vision | No | Filter by vision capability | |
| min_context_length | No | Minimum context length in tokens | |
| supports_reasoning | No | Filter by reasoning capability | |
| supports_multimodal | No | Filter by multimodal input capability | |
| supports_function_calling | No | Filter by function calling capability |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'List' which implies a read-only operation, but it does not disclose return format, pagination behavior, authentication requirements, rate limits, or the fact that 'detailed metadata' is only returned when include_details=true. The description adds little beyond the obvious read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys purpose, filtering capability, and target use case without any fluff or repetition. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 10 optional parameters, no output schema, and no annotations, the description is very brief. It does not mention what metadata is actually returned, whether results are paginated, how to handle missing parameters, or any defaults beyond what the schema provides. The tool has moderate complexity and the description leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters. The description adds minimal extra meaning by mentioning 'category' and listing example categories like language, embedding, reranking, etc., but this is largely redundant with the schema's enum. It also refers to 'advanced filters' without detailing them, adding little semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource combination: 'List available NVIDIA NIM models'. It clearly states the scope (available models) and mentions filtering by category, distinguishing it from sibling tools like get_model_info (which presumably retrieves details for a specific model) and compare_models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for agent selection' provides some context for when the tool might be appropriate, implying it is used during model discovery. However, it does not explicitly state when to use it instead of alternatives like get_model_info or compare_models, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
multimodal_taskB
Perform multimodal tasks combining text and images. Send a conversation with mixed text and image content to multimodal models for complex reasoning across modalities.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Multimodal model ID (e.g., nvidia/neva-22b, microsoft/phi-3.5-vision-instruct, meta/llama-3.2-90b-vision-instruct) | |
| top_p | No | ||
| stream | No | ||
| messages | Yes | Conversation messages with optional images. Each message can have text content or an array of text and image_url parts. | |
| max_tokens | No | ||
| temperature | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only describes the action of sending a conversation to multimodal models, with no information about API key requirements, rate limits, response format, error handling, side effects, or the behavior of the model call. This is minimal behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two short sentences that immediately convey the tool's purpose without any filler. It is front-loaded with the core function, and every word earns its place, making it a model of efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and no annotations, this two-sentence description is insufficiently complete. It fails to explain the meaning of the model, temperature, max_tokens, stream, and top_p parameters, and it provides no information about return values or potential errors. An agent would struggle to invoke this tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (model and messages have descriptions; top_p, stream, max_tokens, temperature do not). The description adds no meaningful detail for the undocumented parameters—it only vaguely references the messages content. This does not compensate for the low schema coverage, leaving users without a clear understanding of the other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: perform multimodal tasks by sending a conversation with mixed text and image content to multimodal models. It uses specific verbs ('perform'/'send') and a concrete resource, and it differentiates from text-only or image-only sibling tools by emphasizing the combination of modalities, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for multimodal reasoning with both text and images, but it doesn't provide explicit guidance on when to use it versus alternatives like chat_completion or analyze_image. There is no mention of when-not-to-use or alternative tools, so the usage context is only implied, not clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rerank_passagesA
Rerank a list of passages by relevance to a query using NVIDIA NIM reranking models. Essential for RAG pipelines to improve retrieval quality.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Reranking model ID | |
| query | Yes | Search query | |
| top_k | No | Return top K results | |
| passages | Yes | ||
| truncate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states that reranking uses NVIDIA NIM models, but it does not explicitly mention that the operation is read-only or describe any side effects, rate limits, or permission requirements. The term 'rerank' implies a pure computation, but the description could be more transparent about expected behavior such as output format or whether the original order matters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and resource. Every sentence is purposeful: the first states what it does, the second provides context for use. There is no redundant phrasing or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, no output schema, and no annotations. The description gives the core purpose and a use-case hint (RAG pipelines), but it does not explain what the tool returns, how truncate or top_k affect results, or any constraints. While the schema covers parameter details, the lack of output information leaves a gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes most parameters (model, query, top_k, truncate), leaving only 'passages' with no description. The tool description mentions 'query' and 'passages' but does not add meaningful semantics beyond naming them. It does not explain the oneOf structure for passages or clarify top_k behavior. With 60% schema coverage, the description provides minimal additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reranks passages by relevance to a query, specifying the action (rerank), the resource (list of passages), and the technology (NVIDIA NIM models). It distinguishes itself from sibling tools like text_generation and create_embeddings by focusing on reranking for retrieval quality. The mention of RAG pipelines further clarifies the intended use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies a clear use case: 'Essential for RAG pipelines to improve retrieval quality.' This provides context for when to use the tool, but it does not explicitly list alternatives or exclude other scenarios. The context is strong enough to guide an agent toward this tool for reranking tasks, though it lacks explicit alternative comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_generationA
Generate text from a single prompt (simplified interface). Ideal for one-shot tasks like summarization, translation, extraction, or Q&A.
| Name | Required | Description | Default |
|---|---|---|---|
| stop | No | ||
| model | No | ||
| prompt | Yes | Text prompt | |
| max_tokens | No | ||
| temperature | No | ||
| system_prompt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the basic function (generate text) and gives task examples, without disclosing any operational behaviors like response format, latency, rate limits, or authentication requirements. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core action and offering a clear value proposition. No filler or redundant wording; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters and no output schema, the description is too minimal. It omits important context about parameter usage, expected behavior, or what the response contains. The examples are helpful but do not compensate for the lack of operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17%, covering just the prompt parameter. The description mentions 'single prompt' but adds no explanation for stop, model, max_tokens, temperature, or system_prompt. With such low schema coverage, the description needed to compensate but did not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates text from a single prompt, and explicitly positions it as a simplified interface for one-shot tasks. Examples like summarization, translation, extraction, and Q&A make the purpose concrete and help distinguish it from likely siblings such as chat_completion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit context for when to use (one-shot tasks) but does not provide exclusions or alternatives. The phrase 'simplified interface' hints at being an alternative to more complex siblings, but no direct comparison or when-not-to-use guidance is given.
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.
11 tool updates
v2.1.1- First observed
analyze_image - First observed
chat_completion - First observed
compare_models - First observed
create_embeddings - First observed
function_calling - First observed
generate_image - First observed
get_model_info - First observed
list_models - First observed
multimodal_task - First observed
rerank_passages - First observed
text_generation
TDQS
Scored across 11 tools
The tools are mostly distinct, with clear purposes for embeddings, reranking, image generation, and listing models. Minor overlap exists among chat_completion, text_generation, and function_calling (all text generation) and between analyze_image and multimodal_task, but descriptions clarify their different modes.
All names use snake_case, but they mix verb-first patterns (create_embeddings, list_models) with noun-first patterns (chat_completion, text_generation) and gerunds (function_calling). This is readable but not fully consistent.
11 tools is well-scoped for the NVIDIA NIM domain, covering language, embedding, reranking, vision, and image generation. Each tool fills a specific niche without feeling excessive or thin.
The surface covers the main NIM inference workflows: chat, text generation, embeddings, reranking, function calling, vision, and image generation. Minor gaps such as streaming or fine-tuning exist, but they are not core to the server's apparent purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Governed app access for AI agents: 1,000+ apps & 12,000+ tools via Code Mode MCP.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
100+ MCP tools for AI agents: content metadata, trade intelligence, business-expertise analysis.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive AI model metadata through MCP, enabling search and filtering of 100+ AI models by capabilities, pricing, context length, and provider specifications.MIT
- FlicenseAqualityDmaintenanceEnables LLM agents to control NVIDIA Run:AI infrastructure by dynamically searching and executing over 426 Run:AI APIs through MCP tools.45-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access a unified catalog of tools from various APIs (OpenAPI, GraphQL, MCP, Google Discovery) through the MCP protocol.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to access 140+ NVIDIA NIM models for chat, embeddings, reranking, vision, image generation, OCR, and content safety via stdio.87MIT