obot-admin-mcp
README.md
# obot-admin-mcp
An MCP server that lets an MCP client (claude.ai, Claude Desktop, etc.) manage a self-hosted [obot](https://github.com/obot-platform/obot) MCP gateway via its REST API. Use it to install, list, inspect, and remove MCP servers in obot from inside the chat client.
## Why
obot exposes each registered MCP server as `https://<obot-host>/mcp-connect/<id>`. To install a new MCP server you normally hit obot's REST API or its admin UI. This package wraps the relevant endpoints as MCP tools, so once you register `obot-admin-mcp` in obot itself and wire its `connectURL` into claude.ai, you can ask Claude to "install the n8n MCP" or "list everything obot has" and it just works.
## Tools
- `list_mcp_servers` — id, name, runtime, configured-state, `connectURL`.
- `get_mcp_server(id)` — full manifest, env, missing required vars.
- `add_npx_mcp(name, package, env?, sensitiveKeys?, shortDescription?, alias?)` — install an npm-published stdio MCP. Auto-calls `/configure` if env is supplied.
- `add_remote_mcp(name, url, shortDescription?, alias?)` — register a remote HTTP/SSE MCP.
- `delete_mcp_server(id)` — remove an MCP from obot.
- `configure_mcp_server(id, env)` — set runtime env values on an existing server (fills `missingRequiredEnvVars`).
- `list_catalog_entries(search?)` — browse obot's catalog (default 81 entries).
## Configuration
Two env vars:
| Var | Required | Notes |
| --- | --- | --- |
| `OBOT_URL` | yes | Base URL of your obot, e.g. `https://obot.example.com` |
| `OBOT_TOKEN` | yes | obot bootstrap or admin token |
## Run locally (Claude Desktop / dev)
Install direct from this repo (no npm publish required — built `dist/` is committed):
```jsonc
{
"mcpServers": {
"obot-admin": {
"command": "npx",
"args": ["-y", "github:kiarashedraki/obot-admin-mcp"],
"env": {
"OBOT_URL": "https://obot.example.com",
"OBOT_TOKEN": "<your-token>"
}
}
}
}
```
## Register inside obot (the meta loop)
```bash
curl -X POST "$OBOT_URL/api/mcp-servers" \
-H "Authorization: Bearer $OBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"manifest": {
"name": "obot-admin",
"shortDescription": "Manage obot itself",
"runtime": "npx",
"npxConfig": { "package": "github:kiarashedraki/obot-admin-mcp" },
"env": [
{ "key": "OBOT_URL", "value": "https://obot.example.com", "required": true, "sensitive": false },
{ "key": "OBOT_TOKEN", "value": "<token>", "required": true, "sensitive": true }
]
},
"alias": "obot-admin"
}'
```
The response includes `connectURL` — paste that into claude.ai → Settings → Connectors → Add custom connector.
## Security
The bootstrap/admin token gives full control of obot, which mounts the host docker socket. Treat the token like a root credential. Do not register `obot-admin-mcp` on a shared/multi-tenant obot without an additional auth wall (e.g., Cloudflare Access in front of `obot-connect/<id>`).
## License
MIT
TDQS
A3.9/5.0
Scored across 6 tools
Disambiguation5/5
Each tool targets a distinct operation: adding (two types), deleting, getting details, listing servers, and listing catalog. No overlap in purpose.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern in snake_case (e.g., add_npx_mcp, delete_mcp_server, list_mcp_servers).
Tool Count5/5
6 tools cover the essential CRUD and listing operations for an MCP admin server without being excessive or insufficient.
Completeness4/5
Covers create, read, delete operations but lacks an update/modify tool (e.g., to change environment variables or configuration).
Maintenance
ActivityInactive
ResponsivenessNo issues