Releases: YuryOstrovsky/xco-mcp-community-server
Release list
XCO MCP Community Server v1.0.0
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/invokeor/mcp— run only on
localhost / a trusted network, or behind an authenticated proxy. The image
contains no credentials; you supply them via.envat 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 /invokeendpoint, plus the/mcpJSON-RPC transport. - Live BGP/MAC/firmware-storage tools over SSH; query BGP by switch name
(restconf_get_bgp_summaryresolves names via inventory). - Docker image attached below (
docker load→xco-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/invokeor/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 oninventory_get_device_inventory_export/ file downloads). - All
SAFE_READtools are ungated (no leftover confirmation/auto-mode gates). restconf_get_bgp_summaryaccepts switch names; clearer tool descriptions
so "check BGP status for " routes correctly.
Caveats
- No caller authentication on
/invokeor/mcp— run on localhost / a
trusted network or behind an authenticated proxy. See README. - Community support only — no Extreme GTAC. Issues/Discussions on GitHub.