About MCP Server Bridge Restish
MCP Server Bridge Restish connects a custom HTTP API to LLMs by turning API-provided tool definitions into MCP tools. It is intended for API operators who want clients to invoke their existing endpoints through MCP.
Key features
- 01Fetch tool definitions from an HTTP endpoint
- 02Register MCP tools dynamically
- 03Forward tool calls to API endpoints
- 04Support configurable API authentication
Use cases
- 01Expose a custom HTTP API to MCP clients
- 02Let an LLM call existing API endpoints
- 03Update available tools from API definitions
MCP support
Fetches tool definitions from the API server's /tools endpoint and registers them for MCP clients. Calls to those tools are forwarded to the corresponding HTTP endpoints.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEBridge Restish - MCP Server
Overview
This MCP server acts as a bridge to make your custom HTTP API server accessible to LLMs. It fetches tool definitions from your HTTP API server and dynamically registers them as MCP tools that LLMs can call.
How it works
- Fetch tool definitions: Retrieves available tool definitions from
${BASE_URL}/toolsendpoint - Register MCP tools: Dynamically registers MCP tools based on the fetched tool definitions
- Proxy API calls: When LLM calls a tool, it forwards the request to the corresponding HTTP API endpoint
HTTP API Server Requirements
Description
Your HTTP API server should implement the following specification:
Run a example server for illustration purposes.
git clone https://github.com/high-u/mcp-server-bridge-restish.git
cd mcp-server-bridge-restish
node example/server.js 3000
Tool Definition Endpoint
GET ${BASE_URL}/tools should return an array of tool definitions:
curl http://localhost:3000/tools
Example response:
[
{
"name": "get_time",
"description": "Get current date and time",
"schema": {
"type": "object",
"properties": {},
"required": []
},
"endpoint": "/get_time",
"method": "get"
},
{
"name": "get_birthday",
"description": "Get a birthday for a given name",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name to get birthday for"
}
},
"required": [
"name"
]
},
"endpoint": "/get_birthday",
"method": "get"
}
]
Tool Execution Endpoints
Each tool is executed via its specified endpoint and method:
GET ${BASE_URL}/get_time→ Returns current time as JSON
curl http://localhost:3000/get_time
{
"time": "2025-06-22T03:53:49.675Z",
"timestamp": 1750564429675
}
GET ${BASE_URL}/get_birthday?name=XXX→ Returns birthday for XXX as JSON
curl "http://localhost:3000/get_birthday?name=John"
{
"name": "John",
"birthday": "1973-11-08"
}
The response schema is up to you. It is up to the LLM how you use it.
Usage
Configure Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"bridge-restish": {
"command": "mcp-server-bridge-restish",
"args": ["http://localhost:3000", "server-api-key"],
"env": {
"BASE_URL": "http://localhost:3000",
"AUTH_TYPE": "Bearer",
"API_KEY": "server-api-key"
}
}
}
}
“BASE_URL” is required. Set “API_KEY” and “AUTH_TYPE” as needed.
Example User Prompt
What time is it?
How old is John this year?
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.