Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Governed Cisco Meraki + ACI fabric ops: uplink RCA, ACI endpoint trace; 37 tools with audit/undo.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"fabric-aiops": {
"command": "uvx",
"args": [
"fabric-aiops"
]
}
}
}ターミナルでこれを実行します
claude mcp add fabric-aiops -- uvx fabric-aiopsプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"fabric-aiops": {
"command": "uvx",
"args": [
"fabric-aiops"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"fabric-aiops": {
"type": "stdio",
"command": "uvx",
"args": [
"fabric-aiops"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント AIops-tools で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.15.0)がレジストリに届いたのは8 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Agent Data Tools: Utilities
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
103 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Audit availability: Real writes require a committed
pendingaudit row and stop before contacting the platform if storage is unavailable. Reads and previews may continue with a warning; new audit rows store outcome summaries rather than full responses.
Disclaimer: Community-maintained open-source project. Not affiliated with, endorsed by, or sponsored by Cisco, Meraki, Arista, Ubiquiti, or any network-controller vendor. "Cisco", "Meraki", "Catalyst", "DNA Center", "Arista", "CloudVision", "Ubiquiti", "UniFi", "ACI", "APIC" and all product/trademark names belong to their respective owners. MIT licensed.
Governed AI-ops for network fabrics managed through a controller — the Cisco Meraki Dashboard API (the reference platform, full read + write), Cisco Catalyst Center (formerly DNA Center; read subset), Arista CloudVision Portal (CVP) (read subset), and UniFi Network (self-hosted controller or UniFi OS console; read subset + device restart), plus read-only Cisco ACI (APIC) endpoint path reconstruction and faults — with a built-in governance harness: unified audit log, token/runaway budget guard, undo-token recording, and descriptive risk tiers. Multi-platform by construction: a registry keyed by platform maps every *canonical operation* onto each controller's REST API (path templates + response adapters), so adding a controller is a registry entry, never new ops/CLI/MCP surface. An operation a platform doesn't map returns a clear teaching error ("not supported on X yet — open an issue"), never a silent no-op. No platform has yet been exercised against a live controller by this tool; the ACI reads are the one part built from real controller responses (anonymized APIC payloads a production user supplied) — see docs/VERIFICATION.md.
Three flagship signature analyses, plus the guarded reads and writes around them:
fabric-aiops ...): init, overview, org, network, device, client, health, aci, remediate, secret, doctor, mcp.fabric-aiops mcp or fabric-aiops-mcp): 37 tools (28 read, 9 write), every one wrapped with the bundled @governed_tool harness.username:password / CVP service-account token / UniFi API key) lives in an encrypted store ~/.fabric-aiops/secrets.enc (Fernet + scrypt) — never plaintext on disk. Unlock with a master password from FABRIC_AIOPS_MASTER_PASSWORD (MCP/CI) or an interactive prompt (CLI).update_device/update_network_vlan restore prior values; claim↔remove; bind↔unbind/rebind). Irreversible ops (reboot_device, blink_device_leds) record the prior state for audit but declare no undo.--dry-run and requires double confirmation; every write MCP tool takes a dry_run preview.| Domain | Tools | Count | R/W |
|---|---|---|---|
| Overview | overview | 1 | read |
| Organizations | org_list, org_get, org_licensing, org_admins, org_device_statuses, org_api_requests | 6 | read |
| Networks | network_list, network_get, network_vlans, network_alerts, network_traffic | 5 | read |
| Devices | device_inventory, device_status, device_uplinks, switch_ports, wireless_ssids | 5 | read |
| Clients | client_list, client_get, client_usage, client_connectivity | 4 | read |
| Health (flagship) | uplink_loss_and_latency_rca, network_health_score, config_template_drift | 3 | read |
| Cisco ACI (APIC only) | aci_endpoint_trace, aci_epg_segment, aci_faults_list | 3 | read |
| Remediation | reboot_device, claim_devices_into_network, remove_device_from_network, bind_network_to_template, unbind_network_from_template | 5 | write (high) |
update_device, update_network_vlan | 2 | write (medium) | |
blink_device_leds | 1 | write (low) | |
| Undo | undo_list | 1 | read |
undo_apply | 1 | write (medium) |
network_health_score and config_template_drift are injected-only (they score data you already hold); uplink_loss_and_latency_rca accepts injected records for offline analysis or pulls live from a configured target. Device models carry a product-type prefix: MX appliance, MS switch, MR wireless AP, MV camera, MG cellular gateway.
One tool, five controller platforms. For the four in the table below the ops/CLI/MCP surface is identical everywhere; each platform maps the canonical operations it supports and raises a teaching error for the rest ("not supported on yet — open an issue or PR"). ACI maps none of these — see Cisco ACI below.
| Canonical operation | meraki | catalyst | cvp | unifi |
|---|---|---|---|---|
overview (org/site/container rollup) | ✅ | ✅ | ✅ | ✅ |
org_list / org_get | ✅ | ✅ sites | ✅ containers | ✅ sites (list; get ❌) |
org_licensing, org_api_requests | ✅ | ❌ | ❌ | ❌ |
org_admins | ✅ | ❌ | ✅ users | ❌ |
org_device_statuses | ✅ | ✅ device-health | ✅ inventory + streaming status | ✅ stat/device (state, uptime, firmware) |
network_list / network_get | ✅ | ✅ site-health / site | ✅ containers | ✅ sites / stat/health (subsystem rollup) |
network_vlans, network_traffic | ✅ | ❌ | ❌ | ❌ |
network_alerts | ✅ | ✅ issues (P1→critical, P2→warning) | ✅ events | ✅ alarms (*_Lost_Contact→critical) |
device_inventory, device_status | ✅ | ✅ network-device | ✅ inventory (+ complianceCode drift signal) | ✅ stat/device (id = device MAC) |
device_uplinks | ✅ | ❌ | ❌ | ❌ |
switch_ports | ✅ | ✅ interface stats (pass the device uuid) | ❌ | ✅ device port_table (pass the device MAC) |
wireless_ssids | ✅ | ❌ | ❌ | ❌ |
client_list / client_get | ✅ | ✅ client-health (aggregate) / client-detail (by MAC) | ❌ | ✅ stat/sta (connected) / stat/user (by MAC) |
client_usage, client_connectivity | ✅ | ❌ | ❌ | ❌ |
uplink_loss_and_latency_rca (live pull) | ✅ | ❌ (injected records still work) | ❌ (injected records still work) | ❌ (injected records still work) |
network_health_score, config_template_drift (injected-only) | ✅ | ✅ | ✅ | ✅ |
reboot_device | ✅ | ❌ teaching error | ❌ teaching error | ✅ cmd/devmgr restart-device |
| The other 7 writes (blink/update/claim/remove/bind/unbind/VLAN) | ✅ | ❌ teaching error | ❌ teaching error | ❌ teaching error |
Concept mapping: canonical *organizations/networks* are Catalyst Center sites, CVP containers, and UniFi sites (the canonical id is the site's short name — the /api/s/{site}/ path segment); all have one global tree, so the org scope does not filter their lists. On unifi, device-scoped calls (device get / switch_ports / reboot) fill the site from the target's default org_id — set it in config.yaml (or the init wizard). Writes are Meraki-only except UniFi device restart — Catalyst Center and CVP change models (task/configlet workflows) don't map cleanly onto these canonical writes, so each write fails fast with a teaching error *before* any controller call (never a silent no-op). CVP config-drift surfaces through device_inventory (complianceCode/complianceIndication per device) and network_alerts (events); configlet-content retrieval and deep pagination on catalyst/cvp/unifi are known deferrals.
ACI has two axes — tenant → VRF → bridge domain → EPG, and pod → node → interface — and neither is an organization → network → device tree. Rather than make every network_id mean something different per call, an aci target answers the canonical tools with a teaching error and gets three read-only ACI-native tools that take ACI references (MAC/IP, tenant/app/EPG names, DNs):
| Tool (CLI) | What it answers |
|---|---|
aci_endpoint_trace (aci trace --mac/--ip) | Where is this endpoint and what carries it: attachment (pod / leaf / interface or vPC) → EPG → bridge domain → VRF → the EPG's contracts → filter entries, plus faults whose DN names the EPG or the attachment interface |
aci_epg_segment (aci segment TENANT APP EPG) | The same EPG → BD → VRF → contracts chain from an EPG name |
aci_faults_list (aci faults) | Fabric faults, worst severity first |
How to read them:
staticPathResolved: true means the fabric is configured to carry the endpoint, not that traffic flows. Nothing is written to the APIC and no troubleshooting session is created.tDn), so cross-tenant links into common are followed; a relation that is not formed is a finding with its state.delegated record mirrors a fault on another object. A cleared fault keeps the description it had when raised.notChecked): vzAny contracts, taboo contracts, imported contract interfaces, preferred-group peers, service graphs / L3Out.Leaf/spine inventory and interface state (fabricNode, topSystem, l1PhysIf) are not in this release — they will be built once real responses for those classes are available, as the ones above were.
| Platform | platform: | Secret stored (encrypted) | Auth on the wire | Base URL |
|---|---|---|---|---|
| Cisco Meraki Dashboard | meraki | API key (Dashboard → Organization → Settings → API access) | Authorization: Bearer (or auth_style: meraki-key → X-Cisco-Meraki-API-Key) | default https://api.meraki.com/api/v1 |
| Cisco Catalyst Center | catalyst | username:password (one string) | exchanged via POST /dna/system/api/v1/auth/token (HTTP Basic) for a ~1 h X-Auth-Token, auto-refreshed once on a 401 | required, e.g. https:// |
| Arista CloudVision Portal | cvp | service-account token (Settings → Access Control → Service Accounts) | Authorization: Bearer | required, e.g. https:// |
| Cisco ACI (APIC) | aci | username:password (one string; a read-only role is enough — every ACI read is a GET, only the login is a POST) | POST /api/aaaLogin.json opens a session carried as a cookie; extended via /api/aaaRefresh.json at half its lifetime; one fresh login on a 401/403 (APIC reports an expired session as 403) | required, e.g. https:// |
| UniFi Network | unifi | API key (UniFi OS: Settings → Control Plane → Integrations; self-hosted Network Server 9.0+) | X-API-KEY (stateless; legacy cookie login is a known deferral) | required — classic controller https:// :8443, or UniFi OS console `https:// /proxy/net
冒頭だけを表示しています。続きはリポジトリで読めます