> ## Documentation Index
> Fetch the complete documentation index at: https://mcpjam-docs-coming-from-mcp-inspector.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Multi-server connections

> Connect to multiple MCP servers with different transport methods

You can connect to MCP servers over **STDIO** or **Streamable HTTP**, with OAuth 2 and Dynamic Client Registration (DCR) support. Multiple servers can be connected at once within a project.

## Manage connections

You can connect to multiple MCP servers simultaneously. To manage connections, go to the **Servers** tab in the MCPJam sidebar.

<Frame>
  <img className="block" src="https://mintcdn.com/mcpjam-docs-coming-from-mcp-inspector/m7Z-ETzK9jePOHMz/images/connection/multiple.png?fit=max&auto=format&n=m7Z-ETzK9jePOHMz&q=85&s=90515d565c118ce2258c8f5dfc168b8c" alt="Multiple" width="300" data-path="images/connection/multiple.png" />
</Frame>

* Toggle MCP servers to enable or temporarily deactivate a server.
* Hit the 3 dots. You can reconnect, edit, or disconnect to a server.
* Click "View server info" to open a detailed modal showing server metadata, protocol version, capabilities, and instructions.

### Server info modal

View comprehensive server details in a dedicated modal dialog:

* **Server metadata**: Name, title, version, protocol version, and transport type
* **Capabilities**: Tools, prompts, and resources supported by the server
* **Instructions**: Server-provided instructions for AI assistants
* **Raw capabilities**: Full JSON of server and client capabilities (with copy button)
* **OpenAI Apps SDK**: For servers using the OpenAI Apps SDK, view widget metadata in a separate tab

### History tab

The **History** tab in the server detail modal shows a timeline of every revision recorded for that server. Each row displays the revision number, a tool-count delta relative to the previous revision, and a timestamp.

Click any revision row to expand it. The expanded panel shows:

* **Diff view** (default for revisions 2 and later) — highlights tools added, removed, or updated compared to the previous revision.
* **Snapshot view** — lists all tools captured at that revision, with each tool's name and description.

A **Diff / Snapshot** toggle appears at the top of the expanded panel when a previous revision exists. Revision 1 opens directly in Snapshot view since there is nothing to diff against.

### Server information

Each connected server card displays:

* **Server icon and version**: If provided by the server, the icon and version number appear in the card header
* **Connection status**: Real-time indicator showing connected, connecting, or failed status with retry count
* **Transport type**: Shows whether the server uses STDIO or Streamable HTTP

Click "Show details" to expand additional server information:

* **Server capabilities**: Lists available features (Tools, Prompts, Resources)
* **MCP protocol version**: The protocol version the server implements
* **Instructions**: Server-provided instructions for AI assistants
* **Documentation link**: Direct link to the server's documentation if available

### OpenAI app metadata

Servers that provide OpenAI-compatible tool metadata display an OpenAI logo indicator. Expanding these servers shows two tabs:

* **Info tab**: Standard server information and capabilities
* **OpenAI Tool Metadata tab**: Detailed metadata for each tool including read/write permissions and widget configuration

<Note>
  Using the [hosted app](https://app.mcpjam.com)? Only HTTPS connections are available. STDIO and plain HTTP connections require the [local inspector](/installation). See [Hosted App](/hosted/overview) for details.
</Note>

## STDIO servers

Connect to STDIO with commands. Commands vary based on what language your MCP server is built with. For example, connecting to an MCP server built with Node might look like:

```bash theme={null}
node /path/to/your/server.js
```

<Info>
  For local development, always use absolute paths (e.g.,
  `/Users/yourname/project/server.py`) to avoid path resolution issues.
</Info>

<Frame>
  <img className="block" src="https://mintcdn.com/mcpjam-docs-coming-from-mcp-inspector/m7Z-ETzK9jePOHMz/images/connection/stdio.png?fit=max&auto=format&n=m7Z-ETzK9jePOHMz&q=85&s=aaa5c650e7ddf80c8b2b33d353eda1ea" alt="STDIO" width="300" data-path="images/connection/stdio.png" />
</Frame>

### Environment variables

You can configure environment variables with STDIO. Click "Add Variable" in the Environment Variables section. This is often used to pass dynamic values like API tokens to a STDIO server.

## HTTP servers

Connect to any Streamable HTTP MCP server by selecting **HTTP** in the transport dropdown and pasting in the URL — typically ending in `/mcp`.

<Frame>
  <img className="block" src="https://mintcdn.com/mcpjam-docs-coming-from-mcp-inspector/m7Z-ETzK9jePOHMz/images/connection/streamable.png?fit=max&auto=format&n=m7Z-ETzK9jePOHMz&q=85&s=ab41d50315891adcaa1a4d1ac0aad307" alt="Streamable HTTP" width="300" data-path="images/connection/streamable.png" />
</Frame>

### Custom headers

Expand **Custom Headers** to add arbitrary request headers (for example, proxy auth or tenant identifiers). Headers are sent on every request to the server.

### Authentication

MCPJam is compliant with the MCP authorization spec and supports Dynamic Client Registration (DCR), client pre-registration, and Client ID Metadata Documents (CIMD). You can:

1. Choose **No Authentication**
2. Choose **Bearer Token** — use this if you already have an API token and don't need to register an OAuth client.
3. Choose **OAuth** — follow [MCP Authorization](https://modelcontextprotocol.io/specification/draft/basic/authorization) to obtain a bearer token. You can optionally set scopes or a custom client ID and secret. For step-by-step debugging, see the [OAuth Debugger](/inspector/guided-oauth).

### Request timeout

Expand **Additional Configuration** to override the request timeout (default `10000` ms). Increase this when talking to slow or cold-start servers.

## Tunneling

Expose your local MCP servers over HTTPS for remote access. This lets you share your servers with external clients and applications without deploying them.

Each tunnel is scoped to a single server and secured at the network edge: the tunnel URL contains a secret key (`?k=…`) that is enforced before any traffic reaches your machine. Requests without the correct key are rejected with a 401 at the edge.

### Create a tunnel

1. Go to the **MCP Servers** tab.
2. Click **Create Tunnel** on the server card you want to expose.
3. Copy the tunnel URL from the server card and paste it into your MCP client (for example, ChatGPT's custom connector settings).

The tunnel URL is stable — the base domain stays the same across sessions. If you close and recreate a tunnel for the same server, you get the same domain with a new secret key.

### Rotate the secret

Click the **Rotate** button (refresh icon) on the tunnel pill to issue a new secret key. The base domain does not change, but the old URL stops working immediately. Use this if you shared the URL with someone who should no longer have access.

### Recent requests

Click the **log icon** on the tunnel pill to open the recent-requests panel. It shows the last 20 JSON-RPC method calls that arrived through the tunnel, refreshing every 4 seconds. The panel closes automatically when you close the tunnel.

### Close a tunnel

Click the **close (×) button** on the tunnel pill to stop remote access. The tunnel closes immediately and all remote connections are terminated. The domain is reserved so a future tunnel for the same server reuses it.

<Warning>
  Anyone with the full tunnel URL — including its secret key — can access this
  server. Share it carefully, rotate it if it leaks, and close the tunnel when
  you are done.
</Warning>
