403 Forbidden. All endpoints on this page also require the admin role.
MCPJungle distinguishes between two kinds of principals:
- MCP clients — AI agents or automated systems that connect to the MCP proxy. Each client has a bearer token and an allow list of servers it may access.
- Human users — people who authenticate with the REST API or CLI. Users have a role (
adminoruser) and their own bearer token.
MCP clients
GET /api/v0/clients
Lists all registered MCP clients.
Access: admin only (enterprise mode)
cURL
200
Unique name of the MCP client.
Human-readable description.
Bearer token the client uses to authenticate. Treat this as a secret.
true when the token was provided by the caller at creation time; false when MCPJungle generated it automatically.Server names this client is permitted to access. Use
["*"] to allow all servers.POST /api/v0/clients
Creates a new MCP client and issues it a bearer token.
Access: admin only (enterprise mode)
Unique name for the client.
Optional human-readable description.
List of server names the client may access. Pass
["*"] to grant access to all current and future servers.Custom bearer token to assign. If omitted, MCPJungle generates a secure token automatically. Avoid hard-coding tokens in production; use a secret manager instead.
cURL
201 — The created client object, same shape as an item from GET /api/v0/clients. The access_token field is populated and should be recorded now — it is not masked on subsequent reads.
PUT /api/v0/clients/:name
Replaces the configuration of an existing MCP client. All fields in the body overwrite the current values.
Access: admin only (enterprise mode)
Name of the client to update.
POST /api/v0/clients. The name field in the body is ignored — the path parameter is authoritative.
cURL
200 — The updated client object.
DELETE /api/v0/clients/:name
Deletes an MCP client. Its bearer token is immediately invalidated; any in-flight requests using that token will fail.
Access: admin only (enterprise mode)
Name of the client to delete.
cURL
204 — No content.
Human users
POST /api/v0/users
Creates a new human user and issues a bearer token. Users are assigned the user role by default and have read-plus-invoke access.
Access: admin only (enterprise mode)
Unique username for the new user.
Role to assign. Accepted values:
admin, user. Defaults to user.Custom bearer token. If omitted, MCPJungle generates one automatically.
cURL
201
Username of the newly created user.
Assigned role —
"admin" or "user".Bearer token the user authenticates with. Record it now; there is no way to retrieve it again without rotating it.
GET /api/v0/users
Lists all users. Access tokens are not included in list responses.
Access: admin only (enterprise mode)
cURL
200
Username of the user.
Role assigned to the user.
PUT /api/v0/users/:username
Updates a user’s configuration. You can use this to rotate the access token or change the role.
Access: admin only (enterprise mode)
Username of the user to update.
New username. Omit to keep the existing username.
New role.
admin or user.New bearer token. If omitted, the existing token is kept.
cURL
200 — Same shape as the POST /api/v0/users response, including the (possibly new) access_token.
DELETE /api/v0/users/:username
Deletes a user. Their bearer token is immediately revoked.
Access: admin only (enterprise mode)
Username of the user to delete.
cURL
204 — No content.
GET /api/v0/users/whoami
Returns the identity of the currently authenticated user. Useful for verifying that a token is valid and checking the assigned role.
Access: any authenticated user (enterprise mode)
cURL
200
Username associated with the provided token.
Role of the authenticated user.
/api/v0/users/whoami is the only user endpoint accessible to non-admin users. All other /api/v0/users endpoints require admin role.