GET /api/servers
List all MCP servers and their status.
GET /api/servers/:name
Read a single server’s configuration.
POST /api/servers
Add a new MCP server.
POST /api/servers/batch
Add multiple servers in one request.
PUT /api/servers/:name
Update an existing server.
DELETE /api/servers/:name
Remove a server.
POST /api/servers/:name/toggle
Enable or disable a server.
POST /api/servers/:name/reload
Reconnect to an upstream server.
POST /api/servers/:serverName/tools/:toolName/toggle
Enable or disable a tool.
PUT /api/servers/:serverName/tools/:toolName/description
Override a tool description.
DELETE /api/servers/:serverName/tools/:toolName/description
Reset a tool description to upstream.
Prompts on servers
Toggle / describe / reset prompts.
Resources on servers
Toggle / describe / reset resources.
GET /api/settings
Read everything: servers, groups, system config.
Get All Servers
Retrieves a list of all configured MCP servers, including their status and available tools.- Endpoint:
/api/servers - Method:
GET - Response:
Get a Server
Returns the configuration of a single server, including upstream tools/prompts/resources when connected.- Endpoint:
GET /api/servers/:name - Authentication: Required.
- Returns
404if the server is not configured.
Create a New Server
Adds a new MCP server to the configuration.- Endpoint:
/api/servers - Method:
POST - Body:
name(string, required): The unique name for the server.config(object, required): The server configuration object.type(string):stdio,sse,streamable-http, oropenapi.command(string): Command to execute forstdiotype.args(array of strings): Arguments for the command.url(string): URL forsse,streamable-http, oropenapitypes.openapi(object): OpenAPI configuration.url(string): URL to the OpenAPI schema.schema(object): The OpenAPI schema object itself.
headers(object): Headers to send with requests forsse,streamable-http, andopenapitypes.keepAliveInterval(number): Health check and reconnect interval in milliseconds for remote servers. Defaults to 60000.enableKeepAlive(boolean): Toggle periodic health checks and automatic reconnect attempts for remote servers.enabled(boolean): Defaults totrue. Disabled servers stay in the configuration but are not connected.owner(string): The owner of the server. Defaults to the current user or'admin'.passthroughHeaders(string[]): Inbound HTTP header names that should be forwarded to the upstream server.oauth,proxy,options,description: Optional advanced settings — see MCP Settings.
Batch Create Servers
Create several servers in a single request. The body contains aservers array of { name, config } objects — the same shape POST /api/servers accepts, just batched:
- Endpoint:
POST /api/servers/batch - Authentication: Required.
- Body:
{ name, success, message? } record so partial batches do not abort the whole request.
Update a Server
Updates the configuration of an existing MCP server.- Endpoint:
/api/servers/:name - Method:
PUT - Parameters:
:name(string, required): The name of the server to update.
- Body:
config(object, required): The updated server configuration object. See “Create a New Server” for details.
Delete a Server
Removes an MCP server from the configuration.- Endpoint:
/api/servers/:name - Method:
DELETE - Parameters:
:name(string, required): The name of the server to delete.
Toggle a Server
Enables or disables an MCP server.- Endpoint:
/api/servers/:name/toggle - Method:
POST - Parameters:
:name(string, required): The name of the server to toggle.
- Body:
enabled(boolean, required):trueto enable the server,falseto disable it.
Reload a Server
Forces MCPHub to disconnect and re-establish the upstream connection (or re-spawn the stdio child) for a single server. Use this when an upstream server has been updated out-of-band or appears stuck.- Endpoint:
POST /api/servers/:name/reload - Authentication: Required.
Toggle a Tool
Enables or disables a specific tool on a server.- Endpoint:
/api/servers/:serverName/tools/:toolName/toggle - Method:
POST - Parameters:
:serverName(string, required): The name of the server.:toolName(string, required): The name of the tool.
- Body:
enabled(boolean, required):trueto enable the tool,falseto disable it.
Update Tool Description
Updates the description of a specific tool.- Endpoint:
/api/servers/:serverName/tools/:toolName/description - Method:
PUT - Parameters:
:serverName(string, required): The name of the server.:toolName(string, required): The name of the tool.
- Body:
description(string, required): The new description for the tool.
Reset Tool Description
Drops the override stored in MCPHub and falls back to the upstream tool description.- Endpoint:
DELETE /api/servers/:serverName/tools/:toolName/description - Authentication: Required.
Prompts
MCPHub exposes the same toggle / describe / reset triple for upstream prompts. The body shape mirrors the tool endpoints above.Resources
System Configuration
System-wide configuration (routing, install, smart routing, mcpRouter, name separator, session rebuild, OAuth server) is managed throughPUT /api/system-config. See System Config API for the full request schema and accepted top-level keys (routing, install, smartRouting, mcpRouter, nameSeparator, enableSessionRebuild, oauthServer).
Get Settings
Retrieves all server settings and configurations.- Endpoint:
/api/settings - Method:
GET - Response: