### [MetaMCP](https://github.com/metatool-ai/metatool-app)

> Handle: `metamcp`<br/>
> URL: [http://localhost:34421](http://localhost:34421)

![screenshot from harbor's metamcp service](./harbor-metamcp.png)

MetaMCP is "the One" middleware MCP to manage all your MCPs. It uses a GUI fullstack app (this repo) and a local MCP proxy to achieve this. (see our latest npm repo mcp-server-metamcp)

A few feature highlights:

- GUI app to manage multiple MCP server integrations all together.
- Support ANY MCP clients (e.g., Claude Desktop, Cursor, etc.) because MetaMCP is a MCP server.
- Support prompts, resources, tools under MCP.
- Support multi-workspace: e.g., activate a workspace of DB1 or switch to DB2 in another workspace, preventing polluting context of DB1 to your MCP Client.
- Tool level toggle on/off

### Starting

```bash
# [Optional] pre-build the images
# ℹ️ This may take a few minutes
harbor build metamcp

# Run the service
# "--open" is optional to open the browser automatically
harbor up metamcp --open

# Configure the MCPs via the GUI
# Then, restart to make the changes effective
harbor restart metamcp

# Launch @modelcontextprotocol/inspector
# Use host's url to access the MCP server: $(harbor url metamcp-sse)/sse
npx @modelcontextprotocol/inspector
```

- MetaMCP is an app that doesn't run MCP servers on its own, however, Harbor also bundles its "backend" part, [MetaMCP MCP Server](https://github.com/metatool-ai/mcp-server-metamcp) (available as `metamcp-sse` service)
  - You will need to restart after reconfiguring your MCPs, so that `metamcp-sse` can pick up the changes
  - You can use `metamcp-sse` address as SSE MCP server for your other MCP clients (`http://localhost:34423/sse` by default)
- `mcpo` will connect to `metamcp-sse` out of the box when services are launched together

### Configuration

Following options can be set via [`harbor config`](./3.-Harbor-CLI-Reference#harbor-config):

```bash
# Port on the host where the metamcp service will be available
METAMCP_HOST_PORT              34421
# Port on the host where MetaMCP DB will be available (Postgres)
# You can connect to the DB by checking "harbor env metamcp DATABASE_URL"
METAMCP_DB_HOST_PORT           34422
# Port on the host where metamcp-sse service will be available
METAMCP_SSE_HOST_PORT          34423
# GitHub ref to build MetaMCP images from
METAMCP_GIT_REF                https://github.com/metatool-ai/metatool-app.git
```

Additionally, you can use [`harbor env`](./3.-Harbor-CLI-Reference#harbor-env) to set environment variables that are supported by the service.