Class EquinixMcpServerMain

java.lang.Object
com.eqixiac.equinix.mcp.server.EquinixMcpServerMain

public final class EquinixMcpServerMain extends Object
Launches the embedded Equinix Intelligence MCP Server over stdio - the entry point an MCP host (Claude Desktop, Cursor, VS Code, ...) configures as a command. A community server, not affiliated with Equinix.

Configuration, all via environment (or .env.local in the working directory as a fallback for the credentials; see parseDotEnv(Path) for the accepted syntax - a malformed line exits with status 3 and a message naming the line and key, never the value):

  • EQUINIX_ACCESS_KEY / EQUINIX_SECRET_KEY - required client credentials; when absent from the environment, simple KEY=VALUE lines in .env.local are consulted. Missing credentials exit with status 2.
  • EQUINIX_MCP_TOOLSETS or --toolsets design,ibx - optional toolset filter (ids: design, estate, fabric, portal, ne, ibx, mutate); default: every read-only toolset. The mutate toolset (the Safe Mutation Broker) is never on by default and must be named explicitly.
  • EQUINIX_SANDBOX=true - optional; targets the sandbox environment.
  • EQUINIX_MCP_LOG_LEVEL - optional slf4j-simple level (default info).
  • EQUINIX_PEERINGDB_KEY, GCP_BILLING_API_KEY - optional tool enrichments.
  • EQUINIX_MCP_PRICING_TIMEOUT_MS - optional; the live-pricing budget of one tool call in milliseconds, shared by all its lookups (default 12000, accepted 100..120000; other values are clipped or replaced by the default with a warning).
  • EQUINIX_MCP_ELICIT_TIMEOUT_MS - optional; the hard timeout in milliseconds for one MCP elicitation round trip (default 300000). It bounds the account and service-profile prompts of design_plan_deployment and the confirmation prompt of fabric_confirm_change; an unanswered confirmation prompt executes nothing. Accepted range 100..3600000.
  • --env-file <path> - optional; where to read the credentials fallback instead of .env.local in the working directory.

stdout is sacred: it carries only MCP JSON-RPC. Every diagnostic - including these startup messages - goes to stderr, and slf4j-simple is pinned to stderr before the first logger initializes.

  • Method Details

    • main

      public static void main(String[] args)
      Starts the server. Returns once the transport is serving; the process stays alive on the transport's reader thread and exits naturally when the host closes stdin.
      Parameters:
      args - optionally --toolsets <csv> and --env-file <path>