GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
Capability-aware MCP server for Rancher-managed Kubernetes: discovery, resources, workflows.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
RANCHER_URL, RANCHER_TOKEN, RANCHER_VERIFY_SSL, RANCHER_INSTANCES_JSON「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"rancher": {
"command": "uvx",
"args": [
"rancher-mcp"
],
"env": {
"RANCHER_URL": "your-value",
"RANCHER_TOKEN": "your-value",
"RANCHER_VERIFY_SSL": "your-value",
"RANCHER_INSTANCES_JSON": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add rancher --env RANCHER_URL=your-value --env RANCHER_TOKEN=your-value --env RANCHER_VERIFY_SSL=your-value --env RANCHER_INSTANCES_JSON=your-value -- uvx rancher-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"rancher": {
"command": "uvx",
"args": [
"rancher-mcp"
],
"env": {
"RANCHER_URL": "your-value",
"RANCHER_TOKEN": "your-value",
"RANCHER_VERIFY_SSL": "your-value",
"RANCHER_INSTANCES_JSON": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"rancher": {
"type": "stdio",
"command": "uvx",
"args": [
"rancher-mcp"
],
"env": {
"RANCHER_URL": "your-value",
"RANCHER_TOKEN": "your-value",
"RANCHER_VERIFY_SSL": "your-value",
"RANCHER_INSTANCES_JSON": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
RANCHER_VERIFY_SSL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント rex で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:RANCHER_URL, RANCHER_TOKEN, RANCHER_INSTANCES_JSON
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.59.0)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Operate Rancher-managed Kubernetes through any MCP client — discovery, generic resource access, and curated operator workflows, wrapped in an audit-logged, rate-limited, confirmation-guarded safety model.
Quick start · Tool surface · Architecture · Safety model · Compatibility · Development
Rancher is how real fleets run Kubernetes — and it speaks two APIs (the legacy Norman /v3 plane and the modern Steve /v1 plane), varies by version, and wraps every cluster behind its own proxy. Pointing a generic Kubernetes MCP server at it misses everything Rancher-specific; pointing an agent at raw kubectl gives up auditability, guardrails, and the management-plane view entirely.
MCP Rancher is built for that reality:
read_only: true and every mutation is refused at the config layer, before any guard even has to fire.206 tools: 178 read-only · 28 writes · 5 destructive — counted from the registry itself, not by hand. docs/tool-manifest.json is generated from the live FastMCP registry (make tool-manifest) and a CI gate fails the build if it ever drifts from the code. Per-tool descriptions, safety annotations, and parameters all live there; the narrative registry with slice tracking is docs/tool-catalog.md.
| Layer | What it does | Examples |
|---|---|---|
| Discovery & schema | Explore what any instance can do | rancher_server_version, rancher_norman_schema_list, rancher_capability_domain_list |
| Generic engine | CRUD + actions + links + watch on *any* resource, both planes | rancher_steve_resource_list, rancher_norman_resource_action_invoke, rancher_steve_resource_watch |
| Curated reads | Typed, shaped responses across ~25 domains | rancher_pods_list, rancher_deployments_list, rancher_longhorn_volumes_list, rancher_policy_reports_list |
| Curated writes | Guarded mutations | rancher_deployment_scale, rancher_deployment_restart, rancher_cron_job_suspend, rancher_node_cordon, rancher_secret_create |
| Operator rollups | One-call triage | rancher_cluster_health_check, rancher_find_failing_pods, rancher_find_stalled_rollouts, rancher_project_health_summary |
Domains covered: clusters & nodes · projects & namespaces · workloads · pods & services · storage · networking · config & secrets *(values masked)* · certificates *(keys masked)* · RBAC · auth & identity · apps & catalogs · logging pipeline · Prometheus monitoring · policy reports · CIS compliance · backup operator · etcd backups · Longhorn · Fleet · provisioning · settings & features · alerts & notifiers.
All 206 stay exposed by default — every tool schema is deferred behind Claude Code's own search, so a small default would only help other hosts at the good host's expense. A constrained host (a small local model, a tight context budget) can opt into a smaller surface via RANCHER_TOOLSETS; see Toolset profiles under Configuration.
# From source
git clone https://github.com/rex/mcp-rancher.git cd mcp-rancher make setup # deps, .env scaffold, pre-commit hooks cp .env.example .env # set RANCHER_URL + RANCHER_TOKEN make dev # run the MCP server (stdio)
Once published to PyPI, it's one line: uvx rancher-mcp.
claude mcp add rancher \
-e RANCHER_URL=https://rancher.example.com \ -e RANCHER_TOKEN=token-xxxxx:yyyyyyyyy \ -- uv run --directory /path/to/mcp-rancher rancher-mcp
{
"mcpServers": { "rancher": { "command": "uv", "args": ["run", "--directory", "/path/to/mcp-rancher", "rancher-mcp"], "env": { "RANCHER_URL": "https://rancher.example.com", "RANCHER_TOKEN": "token-xxxxx:yyyyyyyyy" } } } }
RANCHER_INSTANCES_JSON='{
"production": {"url": "https://rancher.prod.example.com", "token": "token-a:xxx", "verify_ssl": true, "read_only": true}, "lab": {"url": "https://rancher.lab.example.com", "token": "token-b:yyy", "verify_ssl": false, "read_only": false} }' RANCHER_DEFAULT_INSTANCE=production
Every tool takes an optional instance argument. Instances flagged read_only: true refuse all mutations at the settings layer.
flowchart LR
A[MCP client Claude Code · Claude Desktop · any] -- stdio --> S
subgraph S[rancher-mcp] direction TB L1[Discovery & schema planes · schemas · capabilities] L2[Generic engine any resource · both planes CRUD · actions · links · watch] L3[Curated tools typed models · shaped output next-step hints] G[Safety layer read-only guard · confirmation phrases audit log · rate limit · masking] L1 --> L2 --> L3 L3 --> G L2 --> G end
G -- Norman /v3 --> R1[(Rancher instance A)] G -- Steve /v1 + k8s proxy --> R1 G -- Norman + Steve --> R2[(Rancher instance B)]
Three layers, deliberately separate: discovery tells you what an instance can do, the generic engine can touch anything it exposes, and curated tools make the common paths typed, shaped, and self-describing (every response carries suggested_next_steps). Most curated tools are generated from YAML descriptors (catalog/curated_tools/) with a drift gate — the editorial decisions live in descriptors, not boilerplate.
Built for the day an agent is pointed at the cluster that pays your salary:
| Guard | Behavior |
|---|---|
| Read-only instances | read_only: true refuses every mutation for that instance, before tool logic runs |
| Destructive confirmation | Deletes require an explicit typed phrase (e.g. "delete steve namespace foo") — no phrase, no delete |
| Tool annotations | Every tool declares readOnlyHint / destructiveHint / idempotentHint, so clients can gate UX on them |
| Audit log | Every mutation emits a structured event="audit" record — tool, operation, plane, instance, resource, outcome. Argument *names* only; values never logged |
| Rate limiting | Token-bucket on writes (default 60/min) — a runaway loop can't machine-gun your API |
| Secret & key masking | Secret values and certificate private keys are structurally absent from curated responses (reveal is an explicit generic-tool opt-in) |
| Structured errors | Guard rejections return typed error_code envelopes agents can branch on — never raw strings |
| Primary target | Rancher 2.9.3 (production-validated) |
| Compatibility floor | Rancher 2.6.5 (kept green via capability detection) |
| API planes | Norman /v3 + Steve /v1 (+ per-cluster Kubernetes proxy) |
| Transport | stdio |
Capability detection bridges version differences at runtime — no version-pinned builds, no "works on my Rancher." Both targets are exercised by the same test suite, and read paths have been validated live against both a 2.6.5 lab and a 2.9.3 production fleet (validation report).
| Variable | Default | Purpose |
|---|---|---|
RANCHER_URL | — | Rancher server URL (single-instance mode) |
RANCHER_TOKEN | — | API token (token-xxxxx:yyyyyyyyy) |
RANCHER_VERIFY_SSL | true | TLS verification |
RANCHER_INSTANCES_JSON | — | Multi-instance config (see above) |
RANCHER_DEFAULT_INSTANCE | first defined | Instance used when a tool call names none |
RANCHER_MCP_SERVER_NAME | rancher-mcp | Server identity announced to clients |
RANCHER_MCP_SERVER_DESCRIPTION | built-in | Server description announced to clients |
RANCHER_MCP_WRITE_RATE_LIMIT_PER_MIN | 60 | Write rate limit (0 disables) |
RANCHER_TOOLSETS | all | Comma-separated toolset profile(s) exposed at startup — see below |
RANCHER_TOOLS | — | Comma-separated tool names force-included on top of the selected profile(s) |
RANCHER_EXCLUDE_TOOLS | — | Comma-separated tool names removed, applied last — always wins over RANCHER_TOOLS |
The default is all: every tool stays exposed. Claude Code, the primary host, defers every tool schema behind its own search, so a small default would only help other hosts at the cost of making the good host worse — this is a deliberate choice, not an oversight.
RANCHER_TOOLSETS opts a constrained host (a small local model, or a context budget) into a smaller surface. Values are either a family name — one per src/rancher_mcp/tools/ module (storage, workloads, pods_services, rbac, …; see rancher_mcp.toolsets.FAMILY_REGISTRARS for the full list) — or the cross-family core profile: a ~32-tool triage/orientation set (rancher_find_*, the health/summary rollups, core list/get pairs, and the generic rancher_{steve,norman}_resource_{list,get} escape hatches). core cuts the tools/list payload from 206 tools / ~401 KB to 32 tools / ~78 KB (~80% smaller). Profiles compose: RANCHER_TOOLSETS=core,storage gives the triage set plus everything storage-related.
RANCHER_TOOLSETS=core # small triage surface
RANCHER_TOOLSETS=core,storage,workloads # triage + two full families RANCHER_TOOLS=rancher_secret_get # add one extra tool on top RANCHER_EXCLUDE_TOOLS=rancher_secret_create # remove one, wins over the above
An unknown profile name fails loudly at startup rather than silently producing an empty or shrunken surface. Calling a real tool that exists but isn't in the active profile returns a structured TOOLSET_NOT_ENABLED error naming the tool, the toolset that would enable it, and the env var to set — never a bare "unknown tool", which would make a disabled tool indistinguishable from a typo.
Ship
冒頭だけを表示しています。続きはリポジトリで読めます