> ## 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.

# Managing MCPs

> Reference for registering servers, listing tools, prompts and resources, invoking tools, and controlling what the gateway exposes.

This page covers the day-to-day CLI commands used after the server is running: registering upstream MCP servers, inspecting what they expose, invoking tools, reading prompts and resources, and controlling visibility.

Use the dedicated guides for deeper workflows:

* [Register a streamable HTTP MCP server](/guides/register-http-servers)
* [Register a stdio MCP server](/guides/register-stdio-servers)
* [Manage tools and prompts](/guides/tools-and-prompts)
* [Manage resources](/guides/manage-resources)

<Note>
  Treat `mcpjungle <command> --help` as the authoritative source for the currently supported flags. This page keeps the higher-value workflows and examples.
</Note>

## `register`

Registers an upstream MCP server in mcpjungle. Once registration succeeds, the server's tools, prompts, and resources become available through the gateway.

```bash theme={null}
mcpjungle register [flags]
```

For streamable HTTP servers, you can use flags directly:

```bash theme={null}
mcpjungle register --name context7 --url https://mcp.context7.com/mcp
```

You can also pass a static bearer token for upstream authentication:

```bash theme={null}
mcpjungle register --name github --url https://api.githubcopilot.com/mcp \
  --bearer-token ghp_your_token_here
```

For `stdio` and `sse` servers, use a JSON config file:

```bash theme={null}
mcpjungle register --conf ./filesystem.json
```

### Common flags

<ParamField body="--name" type="string">
  Unique server name. Required when not using `--conf`.
</ParamField>

<ParamField body="--url" type="string">
  URL of a streamable HTTP MCP server. Required when registering an HTTP server without `--conf`.
</ParamField>

<ParamField body="--description" type="string">
  Optional human-readable description.
</ParamField>

<ParamField body="--bearer-token" type="string">
  Static bearer token forwarded to the upstream HTTP server.
</ParamField>

<ParamField body="--force" type="boolean" default="false">
  Deregister an existing server with the same name, then register the new one.
</ParamField>

<ParamField body="-c / --conf" type="string">
  Path to a JSON config file. Required for `stdio` and `sse` servers.
</ParamField>

### Minimal config examples

Streamable HTTP:

```json theme={null}
{
  "name": "calculator",
  "transport": "streamable_http",
  "description": "Basic math tools",
  "url": "http://127.0.0.1:8000/mcp",
  "session_mode": "stateless"
}
```

STDIO:

```json theme={null}
{
  "name": "filesystem",
  "transport": "stdio",
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
  "session_mode": "stateful"
}
```

For the full config fields, `session_mode`, environment-variable placeholders, and transport-specific notes, use:

* [Register a streamable HTTP MCP server](/guides/register-http-servers)
* [Register a stdio MCP server](/guides/register-stdio-servers)
* [Config file reference](/reference/config-file)

<Note>
  Server names must be unique across mcpjungle and must not contain whitespace, special characters, or consecutive underscores (`__`).
</Note>

## `deregister`

Removes a registered MCP server and all of its tools, prompts, and resources from the gateway.

```bash theme={null}
mcpjungle deregister <server-name>
```

Example:

```bash theme={null}
mcpjungle deregister context7
```

<Warning>
  Deregistering a server removes its tools, prompts, and resources immediately. Any connected MCP client relying on them will start failing.
</Warning>

## `list`

Lists the entities currently registered in mcpjungle.

```bash theme={null}
mcpjungle list <subcommand> [flags]
```

### `list servers`

Lists registered MCP servers and their transport details.

```bash theme={null}
mcpjungle list servers
```

### `list tools`

Lists tools across the gateway, or filters them by server or tool group.

```bash theme={null}
mcpjungle list tools [--server <name>]
mcpjungle list tools [--group <name>]
```

<ParamField body="--server" type="string">
  Filter tools to a specific registered server.
</ParamField>

<ParamField body="--group" type="string">
  Filter tools to those currently active in a tool group.
</ParamField>

<Note>
  `--server` and `--group` cannot be combined. `list tools --group` only shows tools that are currently active. Use `get group` to inspect the full configured group definition.
</Note>

### `list prompts`

Lists prompts across all servers or from one server.

```bash theme={null}
mcpjungle list prompts
mcpjungle list prompts --server github
```

### `list resources`

Lists resources across all servers or from one server.

```bash theme={null}
mcpjungle list resources
mcpjungle list resources --server mintlify-mcpjungle
```

### `list groups`

Lists tool groups.

```bash theme={null}
mcpjungle list groups
```

### Common examples

```bash theme={null}
# List all tools
mcpjungle list tools

# List tools from one server
mcpjungle list tools --server github

# List tools currently active in a group
mcpjungle list tools --group engineering-tools

# List prompts from one server
mcpjungle list prompts --server github

# List resources from one server
mcpjungle list resources --server mintlify-mcpjungle
```

## `usage`

Shows the input schema for a tool before you invoke it.

```bash theme={null}
mcpjungle usage <tool-name>
```

Example:

```bash theme={null}
mcpjungle usage github__create_issue
```

The output includes the tool description, argument types, required fields, and any JSON-schema constraints exposed by the upstream MCP server.

## `invoke`

Calls a tool directly through mcpjungle.

```bash theme={null}
mcpjungle invoke <tool-name> [flags]
```

### Flags

<ParamField body="--input" type="string" default="{}">
  JSON object of input arguments passed to the tool.
</ParamField>

<ParamField body="--group" type="string">
  Invoke the tool within a tool group's context. The tool must be available in that group.
</ParamField>

### Examples

```bash theme={null}
# Invoke a tool with no input
mcpjungle invoke github__list_repos

# Invoke a tool with JSON input
mcpjungle invoke github__create_issue \
  --input '{"owner": "myorg", "repo": "myrepo", "title": "Bug report"}'

# Invoke within a tool group
mcpjungle invoke github__create_issue \
  --input '{"owner": "myorg", "repo": "myrepo", "title": "Bug"}' \
  --group engineering-tools
```

Text responses are printed to stdout. If the response contains images, audio, or binary resources, the CLI may save files in the current working directory.

## `enable`

Enables tools, prompts, or an entire server globally.

```bash theme={null}
mcpjungle enable <subcommand> <name>
```

Supported forms:

* `mcpjungle enable tool <name>`
* `mcpjungle enable prompt <name>`
* `mcpjungle enable server <name>`

Examples:

```bash theme={null}
mcpjungle enable tool github__create_issue
mcpjungle enable tool github
mcpjungle enable prompt github
mcpjungle enable server github
```

<Note>
  The legacy form `mcpjungle enable <name>` still works for backward compatibility, but `enable tool <name>` or `enable server <name>` is preferred.
</Note>

## `disable`

Disables tools, prompts, or an entire server globally.

```bash theme={null}
mcpjungle disable <subcommand> <name>
```

Supported forms:

* `mcpjungle disable tool <name>`
* `mcpjungle disable prompt <name>`
* `mcpjungle disable server <name>`

Examples:

```bash theme={null}
mcpjungle disable tool github__delete_repo
mcpjungle disable tool github
mcpjungle disable prompt github
mcpjungle disable server github
```

<Note>
  The legacy form `mcpjungle disable <name>` still works for backward compatibility, but only maps to tool disabling behavior.
</Note>

## `get prompt`

Retrieves a prompt template and optionally renders it with arguments.

```bash theme={null}
mcpjungle get prompt <prompt-name> [--arg key=value ...]
```

Example:

```bash theme={null}
mcpjungle get prompt github__code-review \
  --arg code="def hello(): print('world')" \
  --arg language="python"
```

The output shows the generated structured messages returned by the upstream MCP server.

## `get resource`

Retrieves resource metadata, or reads the resource contents.

```bash theme={null}
mcpjungle get resource <uri>
mcpjungle get resource --read <uri>
```

Examples:

```bash theme={null}
# View metadata
mcpjungle get resource mcpj://res/mintlify-mcpjungle/bWludGxpZnk6Ly9za2lsbHMvbWNwanVuZ2xl

# Read the contents
mcpjungle get resource --read mcpj://res/mintlify-mcpjungle/bWludGxpZnk6Ly9za2lsbHMvbWNwanVuZ2xl
```

With `--read`, text content is printed inline. Blob content may be decoded and written to a file in the current working directory.
