pce-mcp
A production-ready Model Context Protocol (MCP) server for Pextra CloudEnvironment®.
Manage your Pextra CloudEnvironment® resources using MCP-compatible clients and tools.
Install
-
Download the latest release binary from the Releases page for your platform.
-
Follow the Configuration and Usage sections below to run the server.
-
Connect your MCP-compatible clients and tools to the server and begin prompting!
This produces the pce-mcp binary in the repository root when using go build.
Configuration
You can configure the server using flags or environment variables. Flags override environment variables.
Flags:
--base-url (required): Pextra CloudEnvironment® base URL (e.g., https://192.168.1.27:5007).
--sse-addr (default :2222): SSE server listen address; set to empty string to disable.
--http-addr (default :2223): HTTP server listen address; set to empty string to disable.
--disable-stdio (default false): Disable the stdio server.
--tls-ca-cert (default ""): Path to a custom CA certificate file for the PCE API client. If set, TLS verification will use this CA instead of the system CAs. Mutually exclusive with --tls-skip-verify.
--tls-skip-verify (default false): Disable TLS verification for the PCE API client. This exposes you to man-in-the-middle attacks and is not recommended for production use. Mutually exclusive with --tls-ca-cert.
--timeout (default 10): PCE API request timeout in seconds.
--headers (default ""): Custom HTTP headers to include in the PCE API client requests, formatted as a key=value pairs, can be specified multiple times. Example: --headers "Authorization=Basic xxx" --headers "X-Custom-Header=Value".
Environment variables (fallbacks if corresponding flag is not set):
BASE_URL
SSE_ADDR
HTTP_ADDR
DISABLE_STDIO (e.g., true/false)
TLS_CA_CERT (file path)
TLS_SKIP_VERIFY (e.g., true/false)
TIMEOUT (integer seconds)
Usage
Run the server:
./pce-mcp serve --base-url "https://localhost:5007"
Disable transports as needed:
# Disable SSE
./pce-mcp serve --base-url "https://localhost:5007" --sse-addr=
# Disable HTTP
./pce-mcp serve --base-url "https://localhost:5007" --http-addr=
# Disable stdio server
./pce-mcp serve --base-url "https://localhost:5007" --disable-stdio
# Disable two transports (only stdio server enabled)
./pce-mcp serve --base-url "https://localhost:5007" --sse-addr= --http-addr=
Use environment variables as fallbacks:
export BASE_URL="https://localhost:5007"
export SSE_ADDR=":3000"
export HTTP_ADDR=":3001"
export DISABLE_STDIO=true
export TLS_SKIP_VERIFY=true
export TIMEOUT=15
./pce-mcp serve
Development
Build:
go build ./...
Run:
go run ./... serve --base-url "https://localhost:5007"
Tests
Integration tests (Linux only, optional tools required; some tests may need root):
go test -v -tags=integration -cover ./...
Coverage report:
go test -v -tags=integration -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
License
This repository is licensed under the Apache License 2.0.