Skip to content

Releases: YuryOstrovsky/xco-mcp-community-server

XCO MCP Community Server v1.0.0

Choose a tag to compare

@YuryOstrovsky YuryOstrovsky released this 26 Jun 23:17

XCO MCP Community Server — v1.0.0

Community-ready, read-only MCP server for Extreme XCO / IP Fabric visibility.

This edition is read-only: it ships only SAFE_READ tools — there are no
mutation/configuration tools. See the README for the network-exposure and
restconf_get_running_config sensitivity warnings.

🚀 Getting started

Full guide: DEPLOY.md ·
Overview / tools: README

Quick version (using the attached image):

# 1. Load the prebuilt image
docker load -i xco-mcp-community-1.0.0.tar.gz

# 2. Create a .env in your working dir (NOT baked into the image)
cat > .env <<'ENV'
XCO_HOST=<xco-ip-or-hostname>
XCO_USERNAME=<xco-username>
XCO_PASSWORD=<xco-password>
XCO_VERIFY_TLS=false
XCO_READ_ONLY=1
# Per-switch SLX creds (for restconf_* / SSH tools)
RESTCONF_USERNAME=<switch-username>
RESTCONF_PASSWORD=<switch-password>
ENV

# 3. Run
docker run -d --name xco-mcp -p 8000:8000 --restart unless-stopped \
  --env-file ./.env xco-mcp-community:1.0.0

# 4. Verify
curl http://localhost:8000/ready     # -> {"status":"ready", ... "xco":true}
curl http://localhost:8000/tools     # the tool catalog

⚠️ No built-in caller authentication on /invoke or /mcp — run only on
localhost / a trusted network, or behind an authenticated proxy. The image
contains no credentials; you supply them via .env at runtime.
Reverse-proxy/TLS, monitoring, and from-source instructions are in
DEPLOY.md.

What's in it

  • 270 read-only tools (Tier-1 XCO REST wrappers + Tier-2 composites) over a single
    POST /invoke endpoint, plus the /mcp JSON-RPC transport.
  • Live BGP/MAC/firmware-storage tools over SSH; query BGP by switch name
    (restconf_get_bgp_summary resolves names via inventory).
  • Docker image attached below (docker loadxco-mcp-community:1.0.0).
  • Optional reference/demo web UI (natural-language console + tools browser):
    xco-mcp-community-client-demo v1.0.0
    — not required; any standard MCP client works against /invoke or /mcp.

Smoke-test evidence (live XCO + SLX)

Run: smoke-test/smoke_tier2_{a..e}.py against the deployed container.

Item Value
XCO version 4.0.0
SLX-OS 20.8.1 and 20.7.3c (8 switches)
Python (container) 3.11.15
Docker 29.3.1
Test date 2026-06-26
Commit fa5e0d3
Batch PASS FAIL WARN SKIP ERROR
A (auth + fabric) 23 0 4 0 0
B (inventory) 27 0 4 0 0
C (monitor/system) 22 0 3 2 0
D (tenant) 15 0 3 6 0
E (RESTCONF/SLX) 27 0 0 0 0
Total 114 0 14 8 0

0 FAIL, 0 ERROR. WARN/SKIP are benign environment cases (a tenant with no
BGP peers / mirror sessions, no CRITICAL alarms in the window, features not
configured in this lab) — not tool defects. Raw evidence attached
(smoke-evidence-2026-06-26.tar.gz).

Fixes since first engineering build

  • Unknown tenant now returns 404 (was 502) with suggested tenant names.
  • Binary exports (XLSX/ZIP) are base64-encoded at the HTTP boundary (fixes a
    500 on inventory_get_device_inventory_export / file downloads).
  • All SAFE_READ tools are ungated (no leftover confirmation/auto-mode gates).
  • restconf_get_bgp_summary accepts switch names; clearer tool descriptions
    so "check BGP status for " routes correctly.

Caveats

  • No caller authentication on /invoke or /mcp — run on localhost / a
    trusted network or behind an authenticated proxy. See README.
  • Community support only — no Extreme GTAC. Issues/Discussions on GitHub.