call_apiLABSCO SUMMARY
The key travels in the call, which is the thing to think about.
Because there is no key in the server config, the API key has to reach call_api some other way — the README's examples put it in the prompt. That is convenient for a self-service agent and means the credential passes through the conversation. The typed response is the well-made part: distinguishing a status_code of 0 from a real HTTP status gives an agent something to reason about instead of a generic failure string.
What it is
A single-tool server built on the official MCP Python SDK. Rather than wrapping individual APIs, it exposes one HTTP call: the agent supplies the method, URL, headers and parameters, and the server performs the request and returns a structured result. The idea is that an agent already knows how to construct a Zyla API Hub URL, so one tool covers the whole marketplace.
What you get
call_apisupports GET, POST, PUT, DELETE, PATCH, HEAD and OPTIONSurlfor the endpoint,headersfor the Authorization value,paramsfor query strings — sent on every method, not just GET — anddatafor a JSON body on POST, PUT and PATCH- A typed response:
status_code,responseas parsed JSON or raw text, anderrorwhich is null on success status_codeof0means the request never reached the server, distinguishing a network failure from an HTTP error- Granular error messages for timeout, request error and unexpected failure, with a default timeout of 30 seconds
- Selectable transport: stdio by default, or SSE for network clients
Requirements
A Zyla API Hub key, which is not configured in the server — the agent puts it in the Authorization header on each call, so it lives in your prompt or your agent's own configuration. Clone and pip install -r requirements.txt, then run python mcp_server.py; a prebuilt image, ghcr.io/zyla-labs/mcp-server:latest, works for network deployments with MCP_TRANSPORT=sse. Project zyla-api-hub-mcp, version 1.0.0. Dependencies are just the MCP SDK and httpx.
Setup effort
One command plus a key — docker pull ghcr.io/zyla-labs/mcp-server:latest, then supply credentials
USE CASES
Letting an agent pick the right API for a question
Ask the question; the agent constructs the Zyla endpoint URL and calls it without any per-API wiring.
Trying a marketplace API before committing
Make one call with the parameters you think are right and read the structured response.
Posting a payload to an endpoint
Send the JSON body alongside query parameters in the same call.
Serving several network agents at once
Run the container with SSE transport and point remote clients at the endpoint.
1 tool
Listed in project docs. Your client may show a different list.
BEFORE YOU INSTALL
What to know first
Tools you get
1 tool named in the project's documentation.
Requires
docker on PATH
INSTALLATION
Connect your client
Server setup
docker pull ghcr.io/zyla-labs/mcp-server:latestMCP Clients
Claude Desktop
{
"mcpServers": {
"zyla-api-hub": {
"command": "python",
"args": [
"<YOUR_PATH_TO_MCP_SERVER>"
],
"env": {}
}
}
}Claude Code
claude mcp add zyla-api-hub -- python <YOUR_PATH_TO_MCP_SERVER>Cursor
{
"mcpServers": {
"zyla-api-hub": {
"command": "python",
"args": [
"<YOUR_PATH_TO_MCP_SERVER>"
]
}
}
}OpenClaw — stdio
{
"mcpServers": {
"zyla-api-hub": {
"command": "python",
"args": [
"<YOUR_PATH_TO_MCP_SERVER>"
],
"transport": "stdio"
}
}
}OpenClaw — Docker
docker run -p 8000:8000 -e MCP_TRANSPORT=sse ghcr.io/zyla-labs/mcp-server:latest
openclaw mcp add --transport sse zyla-api-hub http://localhost:8000/sseSSE server
python mcp_server.py sse