Skip to main content
Glama

fabric-mcp — aligned Equinix Fabric MCP server (self-hosted)

A local, self-hosted Python MCP server that reimplements the contract of the hosted mcp.equinix.com/fabric server (109 tools, protocol-compatible) over the public Fabric REST v4 API — with client-credentials auth (no browser OAuth) and a governance layer that lets us safely add destructive operations. Supersedes the fragile hosted-OAuth path (CIMD invalid_request, Desktop timeouts, token-cache churn) and the old ungated equinix-fabric-python server.

Why

  • mcp.equinix.com/fabric is hosted + user-delegated OAuth → fights Claude Desktop's 60s timeout and Equinix's CIMD rejection. A local stdio server with client-credentials sidesteps all of it.

  • Full control: our own codebase, our own extensions, governed delete/deprovision.

Related MCP server: Fabric Admin MCP Server

Status (steps 1–3 done, no credentials needed)

  • Contract (contract/contract.json) — 109 official tools + 3 governed extensions, each with {authority, category, rest_hint, schema:pending, implemented_in_v1}.

  • Gap map (contract/GAP.md) — vs the old equinix-fabric-mcp/server.py (~15 covered, 94 to build).

  • Governance core (governance/gate.py) — authority classifier + dry-run-before-write + confirm + destructive allow-list + two-key + protected-targets + audit. Self-tested.

Architecture

Claude Desktop / LiteLLM ──(stdio MCP)──►  fabric-mcp (this server)
                                              │  client-credentials (no browser)
                                              ├─ governance/gate.py  (authority + approval + audit)
                                              └─ REST ──►  api.equinix.com/fabric/v4

Authority tiers: read-only = allowed+audited · write = dry-run→confirm · destructive = dry-run + allow-list + two-key + protected-target deny.

Remaining (needs credentials)

  • Step 4 — implement the 94 REST wrappers (read-only → write → governed destructive), filling per-tool input schemas from a fresh tools/list dump or the Fabric v4 OpenAPI spec.

  • Step 5 — wire into Claude Desktop (local stdio, the working path) + optional LiteLLM route; live-test with the fresh key.

Credentials — drop point

This server authenticates with the Fabric REST API via OAuth2 client-credentials (https://api.equinix.com/oauth2/v1/token, grant_type=client_credentials). Generate a fresh API key pair in the Equinix portal (developer.equinix.com → your app → Consumer Key/Secret) and put them in ~/Development/Equinix/fabric-mcp/.env (gitignored):

EQUINIX_CLIENT_ID=<consumer key>
EQUINIX_CLIENT_SECRET=<consumer secret>
FABRIC_MCP_MODE=mock          # mock (default) | live

The server reads them from the environment only — never hardcoded, never committed. See .env.example.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables interaction with Firewalla network security devices for network monitoring, device management, traffic analysis, and security rule configuration through MCP tools.
    -
  • F
    license
    C
    quality
    D
    maintenance
    Exposes Microsoft Fabric operations as MCP tools, with 105 tools across 17 domains including lakehouses, warehouses, notebooks, pipelines, and real-time analytics, handling long-running operations and supporting multiple authentication modes.
    100
    -
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables querying and interacting with Arista CloudVision via MCP, supporting both HTTP and gRPC connections.
    6
    -