# MCPJungle (mcpjungle/MCPJungle)

> MCPJungle is a self-hosted MCP gateway. You register all your MCP servers in it once, and clients like Claude, Cursor, or your own agents connect to a single MCP endpoint instead of to each server separately.

- GitHub: https://github.com/mcpjungle/MCPJungle
- GitHub.Locker page: https://github.locker/mcpjungle/MCPJungle
- Stars: 1.6K
- Language: Go
- License: MPL-2.0
- Last push: 2026-11-03

## Questions and answers

Written by GitHub.Locker from the README and the repository; check the README below for details.

**Is it a server, a CLI, or a library I import into code?**

It's a server you run yourself, managed with a separate CLI. You don't import it into your code as a library.

**How do I get it running?**

Fetch the docker-compose.yaml and start the server with docker compose. It exposes an MCP endpoint over streamable HTTP. Then install the CLI, add an MCP server (the README uses context7 as the example), and add mcpjungle to your Claude Desktop config.

**What do I need before starting?**

Docker, to run the server with docker compose, and the mcpjungle CLI, installed with brew or downloaded from the Releases Page. The README lists no other prerequisites.

**What should I watch out for?**

The README says the docs site is the up-to-date source, so check docs.mcpjungle.com for current guides and operational details instead of relying on this README alone.

**Is it for just me or for a whole team?**

Both. You can start with a personal local setup to keep your MCP configuration clean, then run it as shared team infrastructure with centralized discovery, access control, and observability.

**Can I limit which tools a given client sees?**

Yes. Optional tool groups expose only the tools a specific client should see, so one shared gateway can serve different clients with different scopes.

**Does it manage prompts and resources, or only tools?**

It provides unified discovery for tools, prompts, and resources across all the MCP servers you register, so you don't have to check each server separately.

**Why put a gateway in front of MCP servers at all?**

Without one, every AI client needs its own MCP configuration and access control gets duplicated or missing. A single control point makes the setup easier to reproduce and keeps access consistent.


---

## README (checked against GitHub 2026-11-05)

Source: https://github.com/mcpjungle/MCPJungle/blob/main/README.md

<h1 align="center">
  MCPJungle
</h1>
<p align="center">
  <strong>Run all your MCP servers behind one endpoint</strong>
</p>
<p align="center">
  <a href="https://docs.mcpjungle.com" style="text-decoration: none;">
    <img src="https://img.shields.io/badge/Documentation-docs.mcpjungle.com-blue?style=flat-square&logo=book" alt="Documentation" style="max-width: 100%;">
  </a>

  <a href="https://github.com/mcpjungle/mcpjungle/pkgs/container/mcpjungle" style="text-decoration: none;">
    <img src="https://img.shields.io/badge/GHCR-available-green.svg?style=flat-square&logo=github" alt="GHCR" style="max-width: 100%;">
  </a>

  <a href="https://discord.gg/CapV4Z3krk" style="text-decoration: none;">
    <img src="https://img.shields.io/badge/Discord-MCPJungle-5865F2?style=flat-square&logo=discord&logoColor=white" alt="Discord" style="max-width: 100%;">
  </a>
</p>

MCPJungle is a self-hosted MCP gateway for developers and teams who want to manage multiple MCP servers without scattered client configurations, duplicated setup, or inconsistent access control.

Use it **locally** to keep your personal MCP setup clean, or run it as **shared infrastructure** for a team with centralized discovery, access control, and observability.

![diagram](./assets/mcpjungle-diagram/april-2026/mcpjungle-diagram.png)

Instead of wiring every MCP server into every AI client, register your servers once in MCPJungle and let Claude, Cursor, Codex, or your own Agents connect to a single MCP endpoint.

## Why MCPJungle?

MCP is powerful, but managing many MCP servers gets messy fast.

Without a gateway:

- 🔌 Every client needs its own MCP server configuration
- 🧩 Tools, prompts, and resources are scattered across different servers
- 🔐 Access control is duplicated or missing
- 👥 Teams have no shared view of available MCP tools
- 🛠️ Local setups become hard to reproduce

MCPJungle gives you a single control point:

- 🌐 One MCP endpoint for Claude, Cursor, Copilot, and custom agents
- 🗂️ One place to register and manage MCP servers
- 🔎 Unified discovery for tools, prompts, and resources
- 🎛️ Optional tool groups to expose only the tools a client should see
- 📊 Simple access-control and observability hooks for shared deployments

Start with a local setup. Scale to a shared team gateway when you need it.

![MCPJungle dashboard UI](./docs/images/dashboard-ui.png)

## Documentation
 Mcpjungle documentation has a new home: [https://docs.mcpjungle.com](https://docs.mcpjungle.com).
 
 Please prefer the docs site over this README for the latest guides, reference, and operational details.
 
 Your AI Clients can also access the docs using its MCP server `https://docs.mcpjungle.com/mcp`!

## Quickstart

This quickstart guide will show you how to:
1. Start the mcpjungle server locally using `docker compose`
2. Add an MCP server in mcpjungle
3. Connect your Claude Desktop to mcpjungle to access your MCP tools

### Start the server
Fetch the `docker-compose.yaml` and start the mcpjungle server:
```bash
curl -O https://raw.githubusercontent.com/mcpjungle/MCPJungle/refs/heads/main/docker-compose.yaml
docker compose up -d
```

This exposes mcpjungle's streamable http mcp server at `http://localhost:8080/mcp` by default.

### Add an MCP server
1. Download the `mcpjungle` CLI on your local machine either using brew or directly from the [Releases Page](https://github.com/mcpjungle/MCPJungle/releases).
```bash
brew install mcpjungle/mcpjungle/mcpjungle
```

 2. Add the [context7](https://context7.com/) MCP server to mcpjungle using the CLI:
```bash
mcpjungle register --name context7 --url https://mcp.context7.com/mcp
```

You should see output similar to this:

![register-context7](./docs/images/register-context7.png)

### Connect to mcpjungle

In your Claude Desktop, add the configuration for mcpjungle MCP server:
```json
{
  "mcpServers": {
    "mcpjungle": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:8080/mcp",
        "--allow-http"
      ]
    }
  }
}
```

Once you have added the configuration, try asking claude something simple: 
```text
Use context7 to get the documentation for `/lodash/lodash`
```

Claude will then attempt to call the `context7__get-library-docs` tool via MCPJungle, which will return the documentation for the Lodash library.

<p align="center">
  <img src="./assets/quickstart-claude-call-tool.png" alt="claude calls context7 tool via mcpjungle" height="400">
</p>

You now have a working MCP setup with a single unified endpoint!

Next, explore the complete documentation at [docs.mcpjungle.com](https://docs.mcpjungle.com/) and the [public roadmap](https://docs.mcpjungle.com/roadmap).

