MCP configuration
Environment variables, transports, and runtime options.
Environment variables
| Variable | Required | Default | Notes |
|---|---|---|---|
EASY_API_KEY | yes | — | Easy Labs API key (sandbox or production) |
EASY_API_URL | no | https://api.easy.co/v1 | Override the API base URL — needed only for self-hosted or custom deployments |
EASY_MCP_PORT | no (HTTP only) | 3100 | Port the HTTP transport listens on |
Transports
Stdio (default)
The standard transport for local MCP clients (Claude Desktop, Cursor, Continue). The server reads JSON-RPC over stdin and writes responses to stdout.
npx -y @easylabs/mcp-serverHTTP / SSE-compatible
For remote or daemonized usage. Listens on /mcp at the configured port.
npx -y @easylabs/mcp-server -- --httpCustom port:
npx -y @easylabs/mcp-server -- --http --port=3200The HTTP transport accepts GET, POST, and DELETE on the /mcp endpoint. Compatible with the SSE transport pattern most MCP clients support.
Local development
Clone easy-mcp and run from source:
git clone https://github.com/itseasyco/easy-mcp.git
cd easy-mcp
pnpm install
EASY_API_KEY=sk_test_... pnpm devLogging
The server writes status and error messages to stderr so they don't interfere with the JSON-RPC stream on stdout. Pipe stderr to your log collector of choice for production deployments.
Sandbox vs production
The MCP server today reads EASY_API_URL as a single configurable base URL with no built-in sandbox/production split. Until the modernization adds a proper EASY_ENV env (see project #3 in the modernization plan), set the URL explicitly when targeting production:
{
"env": {
"EASY_API_KEY": "sk_live_...",
"EASY_API_URL": "https://api.easy.co/v1"
}
}Use a sandbox key (sk_test_...) for any agent that has write access — modernization Phase 2 will add write tools, and agents with prod credentials should be a deliberate opt-in.