Skip to content

API & MCP reference

MCP servers you can connect (catalog)

These are the servers offered in the Deputy under 'MCP servers ▸ Add from catalog'. Picking one pre-fills its command and args; you review, point it at your real device / testbed / token / path, then Add and Connect. The commands are starting TEMPLATES — nothing runs until you connect it.

'writes' = whether the server can change state. It stays blocked unless you flip that server's writes gate; the Posse forces every MCP tool read-only regardless.

'env' = the environment variables the server reads for its own login. Non-secret values (URLs, usernames) are typed in; anything marked (Vault) is a token/password you BIND to a Vault secret — pulled from the unlocked Vault at connect time and never written to disk. Unlock the Vault before connecting a server that needs a (Vault) value.

── Network devices ──

  • Juniper Junos [can write]

python jmcp.py -f devices.json -t stdio

Official Juniper server — talks to Junos over NETCONF/PyEZ to fetch config, run show/operational commands, and get device facts. Ships a blocklist that rejects disruptive commands (reboot/halt/zeroize) even in batch. It can also CHANGE config (load_and_commit_config, render_and_apply_j2_template), so keep the 'writes' gate OFF unless you mean to commit.

https://github.com/Juniper/junos-mcp-server

  • Cisco pyATS / Genie [can write]

python pyats_mcp_server.py

Wraps Cisco's pyATS/Genie framework — runs show commands over SSH, parses them into structured data, and can 'learn' and diff device state. Needs a pyATS testbed file describing your devices. Great for before/after change validation. It can also PUSH config (pyats_configure_device, pyats_rollback_config), so keep the 'writes' gate OFF unless you mean to change devices. Heads-up: current versions of this server run over HTTP, and the Deputy connects over stdio only — it needs a stdio-to-HTTP bridge (or a stdio build) before it will connect.

https://github.com/automateyournetwork/pyATS_MCP

  • Cisco Catalyst Center (DNA) [can write]

npx -y <your-vetted-catalyst-center-mcp-package>

Campus/fabric device inventory, health, and client assurance over Catalyst Center (formerly DNA Center). There's no official package — put the community server you've vetted here; npx -y installs whatever is published under the name you type. Some community builds are explicitly 'not for production' — check the repo before trusting it against a live controller, and treat it as write-capable until you've read its tool list.

https://developer.cisco.com/docs/dna-center/

  • Cisco Meraki Dashboard [can write]

npx -y <your-vetted-meraki-mcp-package>

env: MERAKI_API_KEY (Vault)

Org/network inventory, device status, clients, and uplink health over the Meraki Dashboard API. There's no official package — put the community server you've vetted here; npx -y installs whatever is published under the name you type. Needs a Meraki API key (a read-only key recommended); treat it as write-capable until you've read its tool list.

https://developer.cisco.com/meraki/api-v1/

  • Arista CloudVision (CVP) [can write]

python cvp_mcp_server.py --stdio

EOS fleet state, streaming telemetry, and config compliance through Arista CloudVision. Mostly surfaces CVP's existing REST/telemetry API through MCP; treat it as write-capable until you've read its tool list (no official server — the script name is a placeholder for the community server you use).

https://www.arista.com/en/products/eos/eos-cloudvision

  • F5 BIG-IP (iControl REST) [can write]

python f5_mcp_server.py --stdio

Virtual-server / pool / member health and stats via F5 iControl REST (LTM/GTM). Can also push config, so leave the 'writes' gate OFF unless you specifically intend changes (no official server — the script name is a placeholder for the community server you use).

https://clouddocs.f5.com/api/icontrol-rest/

  • Netmiko / NAPALM (multivendor) [can write]

python napalm_mcp_server.py --stdio

Vendor-agnostic SSH/API driver (IOS-XE, NX-OS, EOS, Junos, …) — getters for facts/interfaces/BGP/config, plus config-merge/replace on supported platforms. Keep 'writes' OFF for read-only diagnostics (no official server — the script name is a placeholder for the community server you use).

https://github.com/napalm-automation/napalm

  • Containerlab (lab topologies) [can write]

python clab_mcp_server.py --stdio

Spin up and inspect virtual lab topologies (deploy/destroy/inspect). Handy for reproducing a ticket safely off the production network. Deploy/destroy are writes — gate accordingly (no official server — the script name is a placeholder for the community server you use).

https://containerlab.dev/

── Source of truth ──

  • NetBox (source of truth) [read-only]

uvx --from git+https://github.com/netboxlabs/netbox-mcp-server@v1.2.2 netbox-mcp-server

env: NETBOX_URL, NETBOX_TOKEN (Vault)

Official netboxlabs server — queries sites, devices, IPs, prefixes, VLANs, cables. READ-ONLY by default (a write fork exists at your own risk). Set NETBOX_URL + NETBOX_TOKEN. Use it to compare INTENDED state (the DB) against the live network. It isn't on PyPI, so uvx installs it straight from the netboxlabs GitHub repo, pinned to a release tag (or clone the repo and run: uv run netbox-mcp-server).

https://github.com/netboxlabs/netbox-mcp-server

  • Nautobot [can write]

python nautobot_mcp.py --stdio

env: NAUTOBOT_URL, NAUTOBOT_TOKEN (Vault)

SoT/IPAM/DCIM over Nautobot's REST + GraphQL. Note NetBox and Nautobot APIs have diverged — a NetBox server will NOT drive Nautobot. Needs a Nautobot token; treat it as write-capable until you've read its tool list (no official server — the script name is a placeholder for the community server you use).

https://docs.nautobot.com/

── ITSM & ticketing ──

  • ServiceNow [can write]

python -m servicenow_mcp.cli

env: SERVICENOW_INSTANCE_URL, SERVICENOW_AUTH_TYPE, SERVICENOW_USERNAME, SERVICENOW_PASSWORD (Vault)

Read and manage ServiceNow records — incidents, changes, CMDB, catalog items. Install it from the osomai repo first (git clone, then pip install -e .); there's no official PyPI package, so don't use uvx servicenow-mcp (that name is an unrelated package). Set SERVICENOW_INSTANCE_URL + a service-account login (SERVICENOW_AUTH_TYPE basic). Pair it with drift/Posse findings to open or annotate an incident. Can create/update records, so leave the 'writes' gate OFF unless you mean to file tickets.

https://github.com/osomai/servicenow-mcp

  • Jira (+ Confluence) [can write]

uvx mcp-atlassian

env: JIRA_URL, JIRA_USERNAME, JIRA_API_TOKEN (Vault)

Community Atlassian server — search/read Jira issues and Confluence pages, and (with writes on) create issues, transition them, and add comments. Set JIRA_URL + JIRA_USERNAME + JIRA_API_TOKEN. Handy for turning a finding into a tracked ticket without leaving the Deputy.

https://github.com/sooperset/mcp-atlassian

── Monitoring / NMS ──

  • SolarWinds Orion (SWIS) [can write]

python swis_mcp_server.py --stdio

env: SWIS_HOST, SWIS_USER, SWIS_PASSWORD (Vault)

Query SolarWinds Orion through the SWIS REST/SWQL API — nodes, interfaces, NPM/NetPerfMon status, and active alerts. Yes, the toolset SubnetSlinger set out to replace — now on speaking terms. Read-heavy for diagnostics; set SWIS_HOST + an Orion service account, and treat it as write-capable until you've read its tool list (no official server — the script name is a placeholder for the community server you use).

https://github.com/solarwinds/OrionSDK

── General purpose ──

  • Filesystem [can write]

npx -y @modelcontextprotocol/server-filesystem C:\NetConfigs

Official reference server — read and write files under a folder you choose (it exposes write/edit/move tools too). Point it at your config-backup or golden-config directory so the Deputy can read and diff saved configs. Restrict the path; keep 'writes' OFF to read only.

https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem

  • Git [can write]

uvx mcp-server-git --repository C:\NetConfigs

Official reference server — browse a Git repo's history, diffs, and log. Ideal when configs are stored as code: 'what changed in this switch's config last Tuesday?' It also exposes add/commit/branch tools, so keep 'writes' OFF to read only.

https://github.com/modelcontextprotocol/servers/tree/main/src/git

  • GitHub [can write]

npx -y @modelcontextprotocol/server-github

env: GITHUB_PERSONAL_ACCESS_TOKEN (Vault)

Reference server for GitHub — issues, PRs, code search, file contents. Needs GITHUB_PERSONAL_ACCESS_TOKEN. Can open/edit issues and PRs, so it is WRITE-capable — leave the gate OFF for read-only browsing. This npm package is archived (no longer maintained); GitHub's own server is github/github-mcp-server.

https://github.com/modelcontextprotocol/servers-archived/tree/main/src/github

  • Fetch (web page → text) [read-only]

uvx mcp-server-fetch

Official server that fetches a URL and returns clean text/markdown — pull a vendor advisory, an RFC, or a KB article into the conversation. Read-only. (SubnetSlinger stays local by default; this is opt-in per connection.)

https://github.com/modelcontextprotocol/servers/tree/main/src/fetch

  • SQLite [can write]

uvx mcp-server-sqlite --db-path C:\data\netops.db

Reference server that queries a local SQLite database. Useful for asset/inventory or ticket exports you keep locally. Can run write SQL, so gate it if you only want SELECTs. Archived (no longer maintained).

https://github.com/modelcontextprotocol/servers-archived/tree/main/src/sqlite

Missing one? Any MCP server works — use 'Review / add manually' with its command and args. To go the other way, SubnetSlinger also ships its OWN server so Claude Desktop / Cursor can call these tools.

This page mirrors the in-app help. Open the same article any time from the app's Docs panel. Spot something unclear? Tell us.