Package com.eqixiac.equinix.mcp.server
https://mcp.equinix.com/fabric: it covers
Fabric and Network Edge, signs users in with OAuth 2.1 (Customer Portal login), grants one of the
viewer, operator or manager permission levels at consent, and offers create and update tools but
no delete tools.
An MCP host (Claude Desktop, Cursor, VS Code, ...) launches
EquinixMcpServerMain as a subprocess and speaks
newline-delimited JSON-RPC over stdio - the only transport this server offers. Every tool
executes through this SDK's typed domain clients and design engines under the operator's own
client-credentials (EQUINIX_ACCESS_KEY / EQUINIX_SECRET_KEY); there is no
browser consent flow and no separate authorization server.
The design loop. One input, the DesignSpec, drives every design tool
(design toolset): design_spec_template and design_validate_spec (issues with
JSON paths and fixes, the normalised spec, its fingerprint), design_optimize
(recommendation, Pareto frontier, sensitivity, findings, cost with sources and currency conversions,
the spec with the used rates pinned), design_analyze_resilience (N-1/N-2, single points of
failure, blast radius, remediation, Mermaid graph), design_growth_and_terms,
design_estimate_tco, design_compare_cloud_egress, design_analyze_peering,
and the plan lifecycle design_plan_deployment / design_get_plan /
design_plan_drift / design_export_terraform, and design_decision_record (the
whole case for a design as one ADR-style document). Results carry the spec fingerprint and a
provenance block; optimization results and plans are kept in the process's
DesignStore so later calls can pass a
spec_fingerprint or plan_id. The estate toolset adds
design_analyze_estate, which reads the customer's own inventory and always requires explicit
project ids. With the design toolset the server also serves MCP resources (the DesignSpec JSON Schema,
a starter spec, stored plans) and prompts (DesignResources).
Design rules the tool catalog follows:
- every tool embeds engine logic (optimizer, resilience simulation, wizard, growth, TCO and savings, cloud-to-cloud path comparison, peering, latency, estate analysis) or cross-domain reach (portal, Network Edge, IBX SmartView); none is a 1:1 mirror of a REST endpoint;
- domain-prefixed
snake_casenames (design_*,portal_*,ne_*,ibx_*); - read-only: no delete tools, and mutations are out of scope for this catalog -
they arrive only through the Safe Mutation Broker's dry-run-first two-phase tools,
registered via the same
ToolRegistrationseam. The confirm phase asks the client for the user's approval through an MCP form elicitation (ServerContext.confirmWithHuman(String)) and executes only on an accept; a client without elicitation support is reported asunsupported_by_client; - Beta:
design_compare_cloud_to_cloudanddesign_list_multicloud_environmentscover native provider-to-provider multicloud links from dated reference data bundled with the SDK. The server calls no cloud-provider control-plane API and never creates such a link; a figure with no citable source isnullwith a reason, never zero; - results are structured JSON sized for a model's context: summaries by default, more with
detail=standard|fullor by id, and every capped list says how many entries were omitted; a tool call never hangs: live pricing lookups share one per-call time budget and degrade gracefully to dated reference figures; - text from remote systems (Equinix API fields and errors, PeeringDB names, pricing
errors) is sanitised, bounded and listed under
untrusted_data(UntrustedText); - a client
notifications/cancelledstops a tool call at its next safe point (CancellationSignal); long read-only engine runs (optimization, resilience, estate) are abandoned at once.
Extension seam: build a ToolRegistration (name,
JSON schema, annotations, ToolHandler) and pass it to
EquinixMcpServer.builder().additionalTools(...); the handler receives the parsed
argument JSON and the shared ServerContext of
lazily-built SDK facades.
-
ClassDescriptionThe cancellation state of one MCP tool call.Registers this server in a Claude Desktop
claude_desktop_config.jsonby merging into themcpServers.equinixentry.The design tools' single in-memory store: deployment plans keyed by theirplan_idand optimization results keyed by the fingerprint of the spec they were run for, so the tools can be chained (design_optimizethendesign_plan_deployment,design_get_plan,design_plan_drift,design_export_terraform) without repeating work.A stored entry.What a store entry holds.The outcome of a lookup.The outcome of a store.How a lookup resolved.The embedded Equinix Intelligence MCP Server - a community server, not affiliated with Equinix and separate from Equinix's official Fabric MCP server (Public Preview athttps://mcp.equinix.com/fabric).Builder forEquinixMcpServer.Launches the embedded Equinix Intelligence MCP Server over stdio - the entry point an MCP host (Claude Desktop, Cursor, VS Code, ...) configures as a command.The result of asking the person at the MCP client to approve one action through a form elicitation (ServerContext.confirmWithHuman(String), delivered by aHumanConfirmer).What the client reported for one confirmation prompt.How the server asks the person at the MCP client to approve one action.The live-pricing time budget of one tool call:ServerContext.pricingTimeoutMillis()milliseconds, shared by every pricing lookup the call makes (cloud provider price lists and the Equinix rate card alike).The shared state aToolHandlerexecutes against: the lazily-built SDK facades (Fabric + design engines, Customer Portal, Network Edge, IBX SmartView), the environment, the JSON mapper, and the single-processDesignStoreof plans and optimization results.Builder forServerContext.Creates the live pricing adapter for a provider.Thrown by a handler that stops because the client cancelled its tool call withnotifications/cancelled.The body of an MCP tool: takes the parsed argument JSON and the sharedServerContext, returns the structured result payload.A handler that observes its cancellation signal while it runs.One complete MCP tool definition: name, description, JSON input/output schema, behavior annotations, owningToolset, and theToolHandlerthat executes it.The named tool groups the embedded MCP server can expose, selectable viaEquinixMcpServer.builder().toolsets(...), theEQUINIX_MCP_TOOLSETSenvironment variable, or the--toolsetslaunch argument (comma-separated ids, e.g.The one place tool output handles text that came from a remote system: Equinix API fields (ticket references, device names, service-profile names, error messages), PeeringDB names, and the messages of failed pricing lookups.A text node holding sanitised remote text.