Config File Reference

Complete reference for zeromcp.config.json.

Full example

{
  "tools": [
    {
      "path": "./tools",
      "prefix": ""
    },
    {
      "path": "./shared-tools",
      "prefix": "shared"
    }
  ],
  "transport": [
    { "type": "stdio" },
    {
      "type": "http",
      "port": 4242,
      "auth": "env:MCP_AUTH_TOKEN"
    }
  ],
  "credentials": {
    "stripe": {
      "env": "STRIPE_SECRET_KEY"
    },
    "google": {
      "file": "~/.config/google/credentials.json"
    }
  },
  "remote": [
    {
      "name": "github",
      "url": "http://localhost:3001/mcp"
    },
    {
      "name": "jira",
      "url": "http://localhost:3002/mcp",
      "auth": "env:JIRA_TOKEN"
    }
  ],
  "logging": true,
  "bypass_permissions": false,
  "autoload_tools": true,
  "namespacing": {
    "my-long-name": {
      "prefix": "short"
    }
  },
  "separator": "_"
}

tools

Type: string | Array<string | { path, prefix }>
Default: "./tools"

Where to scan for tool files. Accepts a single directory path, or an array of paths with optional prefixes.

transport

Type: object | Array<object>
Default: { "type": "stdio" }

FieldTypeDescription
type"stdio" | "http"Transport type
portnumberHTTP port (default: 4242)
authstringAuth token or "env:VAR_NAME"

credentials

Type: Record<string, { env?: string, file?: string }>
Default: {}

Maps directory names to credential sources. Tools in tools/stripe/ get the credentials from the "stripe" key.

remote

Type: Array<{ name, url, auth? }>
Default: []

FieldTypeDescription
namestringNamespace prefix for this server's tools
urlstringHTTP/HTTPS URL of the MCP server
authstringBearer token or "env:VAR_NAME"

Other fields

FieldTypeDefaultDescription
loggingbooleanfalseLog all sandboxed network calls
bypass_permissionsbooleanfalseWarn instead of block
autoload_toolsbooleanfalseWatch files and hot reload
separatorstring"_"Namespace separator
namespacingRecord<string, { prefix? }>{}Override directory prefixes