Skip to main content
Tools are the callable functions that registered MCP servers expose. MCPJungle aggregates them into a single proxy surface and lets you invoke them over HTTP without speaking the MCP protocol directly. Prompts are reusable message templates — they follow the same listing and fetch patterns as tools.

Tools

GET /api/v0/tools

Returns all tools registered across all enabled servers. Pass the optional server query parameter to filter by a single server. Access: admin and user
server
string
Name of a registered MCP server. When provided, only tools from that server are returned.
curl http://localhost:8080/api/v0/tools \
  -H "Authorization: Bearer YOUR_TOKEN"
Response 200
[
  {
    "name": "filesystem__read_file",
    "enabled": true,
    "description": "Read the contents of a file",
    "input_schema": {
      "type": "object",
      "properties": {
        "path": { "type": "string", "description": "Absolute path to the file" }
      },
      "required": ["path"]
    }
  }
]
name
string
required
Fully qualified tool name in the format server__tool.
enabled
boolean
required
Whether the tool is currently active and callable through the MCP proxy.
description
string
Human-readable description of what the tool does.
input_schema
object
JSON Schema describing the tool’s input parameters.
annotations
object
Optional metadata attached to the tool by the upstream server.

GET /api/v0/tool

Returns a single tool by name. The name must be passed as a query parameter (not a path segment) because tool names contain slashes and double underscores. Access: admin and user
name
string
required
Fully qualified tool name, e.g. filesystem__read_file.
cURL
curl "http://localhost:8080/api/v0/tool?name=filesystem__read_file" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response 200 — A single tool object with the same shape as items returned by GET /api/v0/tools.

POST /api/v0/tools/invoke

Invokes a tool and returns its output. The request body is a JSON object containing the tool name and all tool-specific arguments at the top level. Access: admin and user
name
string
required
Fully qualified tool name to invoke, e.g. filesystem__read_file.
*
any
All remaining fields are passed as arguments to the tool. The exact set of accepted fields depends on the tool’s input_schema.
curl -X POST http://localhost:8080/api/v0/tools/invoke \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "filesystem__read_file",
    "path": "/tmp/notes.txt"
  }'
Response 200
content
object[]
required
Array of content blocks returned by the tool. Each block is a map with at least a type field ("text", "image", etc.) and type-specific data.
isError
boolean
true when the tool itself reported an error (distinct from an HTTP-level error). The response still returns 200 in this case.
structuredContent
any
Optional structured data returned by the tool alongside the content blocks.
_meta
object
Optional MCP metadata attached to the response.

POST /api/v0/tools/enable

Enables one or more tools. Pass either a fully qualified tool name (e.g. filesystem__read_file) or a server name to re-enable all tools from that server. Access: admin only
entity
string
required
A tool name or server name. When a server name is given, all tools belonging to that server are enabled.
cURL
# Enable a single tool
curl -X POST "http://localhost:8080/api/v0/tools/enable?entity=filesystem__read_file" \
  -H "Authorization: Bearer YOUR_TOKEN"

# Enable all tools from a server
curl -X POST "http://localhost:8080/api/v0/tools/enable?entity=filesystem" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response 200 — Array of tool names that were enabled.
["filesystem__read_file", "filesystem__write_file"]

POST /api/v0/tools/disable

Disables one or more tools, removing them from the MCP proxy surface. They remain registered and can be re-enabled. Access: admin only
entity
string
required
A tool name or server name. When a server name is given, all tools belonging to that server are disabled.
cURL
curl -X POST "http://localhost:8080/api/v0/tools/disable?entity=filesystem__write_file" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response 200 — Array of tool names that were disabled.

Prompts

Prompts are message templates registered by upstream MCP servers. They can accept arguments and are rendered server-side before being returned.

GET /api/v0/prompts

Returns all prompts across all enabled servers. Pass the optional server query parameter to filter by a single server. Access: admin and user
server
string
Name of a registered MCP server. When provided, only prompts from that server are returned.
cURL
curl http://localhost:8080/api/v0/prompts \
  -H "Authorization: Bearer YOUR_TOKEN"

GET /api/v0/prompt

Returns metadata for a single prompt by name. The name must be passed as a query parameter. Access: admin and user
name
string
required
Fully qualified prompt name.
cURL
curl "http://localhost:8080/api/v0/prompt?name=myserver__summarize" \
  -H "Authorization: Bearer YOUR_TOKEN"

POST /api/v0/prompts/render

Renders a prompt template with the provided arguments and returns the resulting messages. Access: admin and user
name
string
required
Fully qualified prompt name to render.
arguments
object
Key-value map of argument names to string values. The accepted keys depend on the prompt’s own argument schema.
cURL
curl -X POST http://localhost:8080/api/v0/prompts/render \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "myserver__summarize",
    "arguments": {
      "text": "MCPJungle is a self-hosted MCP gateway.",
      "language": "English"
    }
  }'
Response 200
description
string
Optional description of the rendered prompt.
messages
object[]
required
Rendered message sequence. Each message has a role ("user" or "assistant") and a content map.
meta
object
Optional MCP metadata attached to the response.
{
  "description": "Summarize the provided text",
  "messages": [
    {
      "role": "user",
      "content": {
        "type": "text",
        "text": "Please summarize the following in English:\n\nMCPJungle is a self-hosted MCP gateway."
      }
    }
  ]
}

Prompt enable / disable

The enable and disable endpoints for prompts follow the same pattern as tools.
EndpointMethodDescription
/api/v0/prompts/enablePOSTEnable a prompt or all prompts from a server. Pass ?entity=<name>.
/api/v0/prompts/disablePOSTDisable a prompt or all prompts from a server. Pass ?entity=<name>.
Both endpoints are admin-only and return an array of prompt names that were affected.