Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mcpjungle.com/llms.txt

Use this file to discover all available pages before exploring further.

The Mcpjungle CLI reads a YAML configuration file at ~/.mcpjungle.conf on startup. It stores two values: the URL of the Mcpjungle server and an access token for authenticated requests. Most users never edit this file by hand — mcpjungle init-server and mcpjungle login write to it automatically.

Client config file (~/.mcpjungle.conf)

Location and format

The file lives in your home directory and uses YAML syntax:
registry_url: http://my-server:9000
access_token: 1YHf2LwE1LXtp5lW_vM-gmdYHlPHdqwnILitBhXE4Aw
Both fields are optional. If either is absent the CLI falls back to its default value or prompts you to supply it via a CLI flag.

Supported fields

registry_url
string
default:"http://127.0.0.1:8080"
Base URL of the Mcpjungle server the CLI connects to. Set this to avoid passing --registry on every command.
registry_url: http://my-server:9000
access_token
string
Bearer token sent in the Authorization: Bearer header with every API request. Required when the server runs in enterprise mode. Populated automatically by mcpjungle init-server (admin token) or mcpjungle login (user token).
access_token: 1YHf2LwE1LXtp5lW_vM-gmdYHlPHdqwnILitBhXE4Aw

Value precedence

When the CLI resolves the registry URL it uses the following order, highest priority first:
  1. --registry flag passed explicitly on the command line
  2. registry_url set in ~/.mcpjungle.conf
  3. Built-in default (http://127.0.0.1:8080)
If you pass --registry manually but registry_url is not yet in your config file, the CLI prints a tip suggesting you add it to avoid repeating the flag.

Populating the file automatically

~/.mcpjungle.conf is usually created or updated in one of two ways:
  • mcpjungle init-server writes the initial admin credentials during enterprise bootstrap
  • mcpjungle login <user-token> stores a user token for later authenticated CLI use
You can also edit the file manually if needed. For the enterprise bootstrap flow and login workflow, see Enterprise operations.

JSON config file formats

Several mcpjungle commands accept a -c / --conf flag pointing to a JSON file instead of inline CLI flags. This section documents every supported JSON format.

${VAR_NAME} placeholder substitution

All JSON config files support environment variable placeholders in string fields. Before sending the request to the server, the CLI expands every ${VAR_NAME} occurrence using the current shell environment. Rules:
  • Only ${VAR_NAME} syntax is recognized — not $VAR_NAME.
  • Placeholders can appear anywhere inside a string, including as a substring: "prefix-${VAR}-suffix".
  • Substitution runs in the CLI process, so the variable must be set in the environment where you run the command.
  • Placeholders resolve in all string fields, including nested objects and string arrays.
  • If a referenced variable is not set, the command fails with a descriptive error.
{
  "name": "${MCP_SERVER_NAME}",
  "transport": "streamable_http",
  "url": "https://api.example.com/workspaces/${WORKSPACE_ID}/mcp",
  "bearer_token": "${API_TOKEN}"
}

Register a Streamable HTTP server

Used with mcpjungle register -c <file>.
{
  "name": "calculator",
  "transport": "streamable_http",
  "description": "Provides basic math tools",
  "url": "http://127.0.0.1:8000/mcp",
  "bearer_token": "<optional bearer token>",
  "oauth_redirect_uri": "http://127.0.0.1:8085/oauth/callback",
  "oauth_client_id": "<optional pre-registered client id>",
  "oauth_client_secret": "<optional client secret>",
  "oauth_scopes": ["mcp.read"],
  "headers": {
    "<custom-header>": "<value>"
  }
}
FieldTypeRequiredDescription
namestringYesUnique name for this server in Mcpjungle.
transportstringYesMust be "streamable_http".
descriptionstringNoHuman-readable description.
urlstringYesFull URL of the MCP server endpoint.
bearer_tokenstringNoIf set, Mcpjungle adds Authorization: Bearer <token> to every upstream request.
oauth_redirect_uristringNoRedirect URI used if the upstream MCP server requires OAuth during registration.
oauth_client_idstringNoOptional pre-registered OAuth client ID.
oauth_client_secretstringNoOptional OAuth client secret paired with oauth_client_id.
oauth_scopesstring arrayNoOptional list of scopes to request during upstream OAuth authorization.
headersobjectNoAdditional HTTP headers to forward. A "Authorization" entry here overrides bearer_token.
Upstream OAuth support is currently beta.For interactive CLI use, you usually do not need to set oauth_redirect_uri manually. Mcpjungle can provision a localhost callback automatically when the upstream MCP server actually requires OAuth.

Register a STDIO server

Used with mcpjungle register -c <file>.
{
  "name": "filesystem",
  "transport": "stdio",
  "description": "Filesystem MCP server",
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
  "env": {
    "KEY": "value"
  },
  "session_mode": "stateless"
}
FieldTypeRequiredDescription
namestringYesUnique name for this server in Mcpjungle.
transportstringYesMust be "stdio".
descriptionstringNoHuman-readable description.
commandstringYesExecutable to run the MCP server process (e.g., "npx", "uvx").
argsstring arrayNoArguments passed to command.
envobjectNoEnvironment variables injected into the server process.
session_modestringNoConnection lifecycle: "stateless" (default) creates a new process per call; "stateful" keeps the process alive between calls.

Create a tool group

Used with mcpjungle create group -c <file>.
{
  "name": "claude-tools",
  "description": "Tools exposed to Claude Desktop",
  "included_tools": [
    "filesystem__read_file",
    "time__get_current_time"
  ],
  "included_servers": ["deepwiki"],
  "excluded_tools": ["deepwiki__search"]
}
FieldTypeRequiredDescription
namestringYesUnique name for the tool group.
descriptionstringNoHuman-readable description.
included_toolsstring arrayNoExplicit list of tools to include, in <server>__<tool> format.
included_serversstring arrayNoServer names whose entire tool set is included.
excluded_toolsstring arrayNoTools to remove from the final set. Exclusions are always applied last, regardless of how a tool was included.
At least one of included_tools or included_servers should be set, otherwise the group will be empty.

Create an MCP client

Used with mcpjungle create mcp-client --conf <file> (enterprise mode).
{
  "name": "cursor-local",
  "allowed_servers": ["calculator", "github"],
  "access_token": "my_secret_token_123",
  "access_token_ref": {
    "file": "/run/secrets/mcpjungle_token",
    "env": "MCPJUNGLE_CLIENT_TOKEN"
  }
}
FieldTypeRequiredDescription
namestringYesUnique name for this MCP client.
allowed_serversstring arrayNoServer names the client may access. Use "*" to allow all servers. Omit to deny all.
access_tokenstringNoInline token value. For testing only.
access_token_ref.filestringNoPath to a plain-text file containing only the token string.
access_token_ref.envstringNoName of an environment variable containing the token string.
When creating a client from a config file, you must supply a token via access_token or access_token_ref. Mcpjungle cannot print a generated token back to the console when reading from a file.

Token supply strategies

For MCP client and user config files, there are three ways to supply a custom token:
  1. access_token
  2. access_token_ref.file
  3. access_token_ref.env
Use access_token only for testing or throwaway setups. For anything more serious, prefer file- or environment-based secrets.

Create a user account

Used with mcpjungle create user --conf <file> (enterprise mode).
{
  "name": "charlie",
  "access_token": "charlies_secret_token",
  "access_token_ref": {
    "file": "/path/to/token-file.txt",
    "env": "CHARLIE_TOKEN"
  }
}
FieldTypeRequiredDescription
namestringYesUnique username.
access_tokenstringNoInline token value. For testing only.
access_token_ref.filestringNoPath to a plain-text file containing only the token string.
access_token_ref.envstringNoName of an environment variable containing the token string.
The same ${VAR_NAME} placeholder substitution applies to user config files. When using a config file you must supply a token — Mcpjungle cannot print a generated one to the console.