Skip to main content
Glama
sejongjeong

Run:AI MCP Server

by sejongjeong

Run:AI MCP Server

NVIDIA Run:AI 인프라를 LLM 에이전트가 제어하는 MCP(Model Context Protocol) 서버.

426개 Run:AI API를 4개 메타 도구 + BM25 검색 엔진으로 동적 검색·실행합니다.

도구

도구

설명

search_runai_api_spec

OpenAPI 스펙 BM25 검색 — 엔드포인트, 메서드, 스키마 반환

call_runai_api

REST API 호출 (인증 자동, DELETE 시 confirm 필요)

resolve_runai_names

엔티티 이름 → ID 변환 (cluster, project, workload 등)

execute_runai_cli

CLI 전용 작업 (port-forward, exec, logs, attach, diagnostics)

Related MCP server: Workspace MCP

워크플로우

search_runai_api_spec("create training workload")
  → resolve_runai_names([{ type: "project", name: "my-project" }])
  → call_runai_api({ method: "POST", path: "/api/v1/workloads/trainings", ... })

설치

npm install
npm run build

인증

Run:AI UI에서 Application (서비스 계정) 생성 → clientID + clientSecret 발급. 서버가 자동으로 POST /api/v1/token (client_credentials grant)으로 JWT를 발급·갱신합니다.

cp .env.example .env
# RUNAI_CLIENT_ID, RUNAI_CLIENT_SECRET 설정

정적 토큰(RUNAI_API_TOKEN)도 지원하나, JWT는 만료되므로 서비스 계정 방식을 권장합니다.

Claude Code MCP 설정

~/.claude/mcp.json:

{
  "mcpServers": {
    "runai": {
      "command": "node",
      "args": ["/path/to/runai-mcp-server/dist/index.js"],
      "env": {
        "RUNAI_API_BASE_URL": "https://your-instance.run.ai",
        "RUNAI_CLIENT_ID": "your-client-id",
        "RUNAI_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

개발

npm run dev      # ts-node 개발 실행
npm test         # 전체 테스트
npm run build    # 프로덕션 빌드

아키텍처

  • Registry Builder: OpenAPI 3.0.3 스펙을 파싱하여 413개 OperationDescriptor 생성, $ref 자동 해결

  • BM25 Search: IDF 기반 키워드 검색 + 동의어 확장 (job→workload, remove→delete 등)

  • Adaptive Schema: 검색 결과 1-2개면 requestBody 스키마 포함, 3개+면 summary만 (토큰 절약)

  • Safety: DELETE는 confirm_destructive 필수, CLI는 화이트리스트 + 쉘 인젝션 방어

라이선스

MIT

Available Tools

4 tools
call_runai_apiCall Run:AI APIA

Run:AI REST API를 호출합니다. search_runai_api_spec으로 엔드포인트를 먼저 확인하세요. Bearer 토큰 인증은 자동. DELETE 등 위험 작업은 confirm_destructive: true 필요.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAPI path, e.g. /api/v1/workloads/trainings
methodYesHTTP method
payloadNoJSON request body
pathParamsNoPath template parameters ({var} substitution)
queryParamsNoURL query parameters
confirm_destructiveNoRequired for DELETE operations

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description must carry the behavioral disclosure burden. It adds useful context: 'Bearer 토큰 인증은 자동' (Bearer token authentication is automatic) and 'DELETE 등 위험 작업은 confirm_destructive: true 필요' (dangerous operations like DELETE require confirm_destructive: true). However, it does not disclose response format, error handling, or other side effects, which are relevant for a generic API caller.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences, front-loaded with purpose, followed by prerequisite and safety conditions. Every sentence earns its place, with no redundant or extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generic API wrapper, the description is largely complete: it directs users to look up the endpoint spec first, explains authentication, and covers destructive safeguards. The only notable omission is explicit mention of the response format, but that is endpoint-dependent and accessible via search_runai_api_spec, so the description adequately scopes the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no substantial parameter semantics beyond what the schema already provides; it merely reiterates the confirm_destructive requirement for DELETE operations, which is already documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Run:AI REST API를 호출합니다' (Calls the Run:AI REST API), specifying the verb and resource. It also differentiates from siblings by instructing to check the endpoint with search_runai_api_spec first, positioning this tool as the actual API caller.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage guidance: 'search_runai_api_spec으로 엔드포인트를 먼저 확인하세요' (check the endpoint first with search_runai_api_spec). It also includes relevant conditions like automatic Bearer token authentication and the need for confirm_destructive for DELETE operations. However, it does not explicitly state when not to use alternatives like execute_runai_cli.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_runai_cliExecute Run:AI CLIA

Run:AI CLI 전용 로컬 세션 작업 실행. API 대체 불가능한 작업만: port-forward (로컬 포트 → 워크로드 pod 터널링), exec (컨테이너 내 명령 실행: nvidia-smi, bash 등), attach (실행 중 프로세스에 TTY 연결), logs (로그 조회/스트리밍 --follow), diagnostics (클러스터 진단). 워크로드 생성/삭제/조회 등은 search_runai_api_spec + call_runai_api를 사용하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
command_argsYesrunai CLI args (without 'runai' prefix)
timeout_secondsNoTimeout in seconds. Use 0 for port-forward.

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden for behavioral disclosure. It adds useful context like local session, port-forward tunneling, streaming logs, and --follow, but omits safety considerations, permissions, return value format, and error behavior for an execution tool that can run arbitrary commands inside containers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences: purpose comes first, followed by supported subcommands and an explicit pointer to sibling tools for other operations. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is strong on purpose and usage, but the tool is a CLI execution tool with no output schema, and the description does not mention return output, error handling, or exit behavior. That gap matters for invocation correctness. However, the supported-command scoping and API alternative guidance make it minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, so baseline is 3. The description adds value by narrowing command_args to the allowed subcommands and giving concrete examples (nvidia-smi, bash, --follow). timeout_seconds is clarified in the schema with 'Use 0 for port-forward', but the description itself doesn't add timeout guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it executes Run:AI CLI local session operations and enumerates specific subcommands (port-forward, exec, attach, logs, diagnostics). It also explicitly distinguishes from siblings like search_runai_api_spec and call_runai_api by limiting scope to API-irreplaceable tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'API 대체 불가능한 작업만' (only tasks that cannot be replaced by API) and lists exactly when to use each subcommand. It also says to use search_runai_api_spec + call_runai_api for workload create/delete/query, naming alternatives clearly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_runai_namesResolve Run:AI NamesA

Run:AI 엔티티 이름을 ID로 변환합니다. API는 ID를 요구하지만 사용자는 이름만 아는 경우가 대부분입니다. 지원: cluster, project, department, nodepool, workload, user, service-account, access-key. 여러 엔티티를 한번에 resolve 가능.

ParametersJSON Schema
NameRequiredDescriptionDefault
resolveYesArray of entities to resolve

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses supported types and batch resolution capability, but doesn't mention error behavior, case sensitivity, or whether it's a read-only operation. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core purpose. The second sentence efficiently lists supported types and batch capability. Zero wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with a well-documented schema, the description covers the main operation, supported types, and batch capability. Since there's no output schema, it doesn't detail return format, but the phrase 'ID로 변환' implies the output. It's nearly complete, though minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema is fully self-descriptive (100% coverage) with the 'resolve' array and entity type enum. The description adds context that multiple entities can be resolved at once, but this is already implied by the array type. No additional parameter semantics beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts Run:AI entity names to IDs, with a specific verb ('변환합니다') and resource ('Run:AI 엔티티 이름'). It also lists supported entity types, distinguishing it from the generic sibling tools like call_runai_api.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the context: 'API는 ID를 요구하지만 사용자는 이름만 아는 경우가 대부분입니다' (the API requires IDs but users usually only know names), implying when to use the tool. However, it doesn't explicitly name alternatives or exclusions, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_runai_api_specSearch Run:AI API SpecA

NVIDIA Run:AI OpenAPI 스펙을 검색하여 특정 작업에 필요한 API 엔드포인트, HTTP 메서드, 요청 스키마를 찾습니다. Run:AI의 모든 API를 커버합니다: 워크로드(workloads): training, inference, workspace, distributed(MPI/PyTorch/JAX/TensorFlow/XGBoost) 생성/조회/삭제/중지(suspend)/재개(resume), pod 목록, 이벤트, 메트릭 | 클러스터(clusters): 생성/조회/삭제, GPU 메트릭, 설치 정보, 스토리지 클래스 | 노드(nodes)/노드풀(node-pools): GPU/CPU 리소스 현황, 텔레메트리, 메트릭 | 조직: 프로젝트(projects), 부서(departments), 리소스 할당(quota), 우선순위, 리포트 | 인증/권한(RBAC): 역할(roles), 접근 규칙(access-rules), 서비스 계정, 액세스 키, 퍼미션 | 에셋(assets): 컴퓨트, 크레덴셜(docker-registry/NGC/S3/git/password/generic-secret), 데이터소스(config-map/host-path/NFS/PVC), 환경(environment), 레지스트리 | 정책(policies): 워크로드 타입별 리소스 제한/기본값 | 템플릿(templates): training/inference/workspace/distributed 재사용 템플릿 | 알림: Slack, 이메일 채널/구독 | 데이터볼륨(datavolumes), AI 애플리케이션 | 사용자, 감사 로그(audit), 테넌트 설정, 보안 설정, IDP. Deprecated 엔드포인트는 기본적으로 숨겨지며, 대체 API를 안내합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes자연어 검색. 예: 'submit a training workload with GPU'
include_deprecatedNoDeprecated 엔드포인트 포함 여부

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It discloses meaningful behavior such as deprecated endpoints being hidden by default and alternative APIs being suggested. However, it does not explain search mechanics, result format, or potential edge cases (e.g., ambiguous queries or result limits), leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then follows a well-organized, pipe-delimited list of API categories. While long, the enumeration is directly relevant for a tool that searches a broad API surface, and it is structured for readability. It is not excessively verbose for its purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of Run:AI's API landscape and the absence of an output schema, the description provides a thorough overview of what the tool can find, including many categories and the deprecated-endpoint behavior. It does not specify return formatting or detailed search options, but it is sufficient for an agent to understand the tool's capabilities and likely output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the scope of what can be queried via the 'query' parameter and by explicitly relating the 'include_deprecated' parameter to the default behavior of hiding deprecated endpoints and suggesting alternatives. This goes beyond the simple schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('검색하여 찾습니다') and resource ('OpenAPI 스펙'), and clearly states it finds API endpoints, HTTP methods, and request schemas for a given task. It also distinguishes itself from siblings that execute API calls or resolve names by emphasizing it is a search/spec-lookup tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is used to locate the necessary API information before making calls, and it outlines the full scope of what can be searched. It does not explicitly mention when not to use it or name alternatives, but the intent is clear and there are no misleading exclusions.

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. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observedcall_runai_api
    • First observedexecute_runai_cli
    • First observedresolve_runai_names
    • First observedsearch_runai_api_spec

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a distinct responsibility: searching the API spec, executing API calls, resolving names to IDs, and running CLI-only operations. There is no overlap; dependencies like 'search before call' are explicitly documented.

Naming Consistency5/5

All tool names follow a consistent verb_runai_noun pattern with snake_case: search_runai_api_spec, call_runai_api, resolve_runai_names, execute_runai_cli. The naming is uniform and predictable.

Tool Count5/5

With only 4 tools, the server covers an enormous API surface by using a meta-design (search + call + resolve + CLI). Each tool is essential and well-scoped, avoiding redundancy.

Completeness5/5

The toolset provides comprehensive coverage: search_runai_api_spec exposes every API endpoint, call_runai_api executes them, resolve_runai_names bridges user-friendly names to API IDs, and execute_runai_cli handles operations impossible via API (port-forward, exec, logs). No obvious gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to access a unified catalog of tools from various APIs (OpenAPI, GraphQL, MCP, Google Discovery) through the MCP protocol.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables LLM agents to list Google Drive files, read/write Google Sheets, and query external REST APIs through MCP tools.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Exposes Azure AI Foundry agents, workflows, and AI Search vector-database capabilities as MCP tools, enabling natural language interaction with agents, semantic search, and index management.
    10
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sejongjeong/runai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server