Appearance
MCP Server API Reference
Complete API reference for MCP Servers.
Base URL: https://api.universalapi.co
Create Server
POST /mcp-admin/createbash
curl -s -X POST https://api.universalapi.co/mcp-admin/create \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"serverName": "my-server",
"description": "A useful MCP server",
"sourceCode": "...",
"visibility": "public"
}' | jq| Parameter | Type | Required | Description |
|---|---|---|---|
serverName | string | Yes | Lowercase with hyphens |
description | string | Yes | What the server does |
sourceCode | string | Yes | Node.js code with createMcpServer() |
visibility | string | No | "private" (default) or "public" |
List Servers
GET /mcp-admin/listbash
curl -s https://api.universalapi.co/mcp-admin/list \
-H "Authorization: Bearer YOUR_TOKEN" | jqOptional query parameters: visibility (all, public, private), limit
Get Server
GET /mcp-admin/{serverId}
GET /mcp-admin/s/{owner}/{slug}bash
# By ID
curl -s https://api.universalapi.co/mcp-admin/mcp-xxx | jq
# By slug
curl -s https://api.universalapi.co/mcp-admin/s/snowtimber/serpapi | jqUpdate Server
PUT /mcp-admin/updatebash
curl -s -X PUT https://api.universalapi.co/mcp-admin/update \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"serverId": "mcp-xxx",
"description": "Updated description",
"sourceCode": "...",
"changeNote": "Optional note saved with the new version snapshot"
}' | jqVersioning
Every sourceCode update automatically writes an immutable version snapshot. Pass changeNote to annotate the version.
Versioning
Every source code change creates an immutable version snapshot. History is append-only — rollbacks create a new version copying the target's source.
List Versions
GET /mcp-admin/{serverId}/versionsbash
curl -s https://api.universalapi.co/mcp-admin/mcp-xxx/versions \
-H "Authorization: Bearer YOUR_TOKEN" | jqResponse:
json
{
"data": {
"serverId": "mcp-xxx",
"latestVersion": 3,
"versions": [
{"version": 3, "createdAt": 1765500000000, "createdBy": "user-xxx", "sizeBytes": 4096, "changeNote": "Rollback to version 1", "rollbackOf": 1, "tools": ["echo"]},
{"version": 2, "createdAt": 1765400000000, "createdBy": "user-xxx", "sizeBytes": 4200, "changeNote": "Add reverse tool", "rollbackOf": null, "tools": ["echo", "reverse"]},
{"version": 1, "createdAt": 1765300000000, "createdBy": "user-xxx", "sizeBytes": 4096, "changeNote": "Initial version", "rollbackOf": null, "tools": ["echo"]}
],
"count": 3
}
}Get a Version Snapshot
GET /mcp-admin/{serverId}/versions/{version}bash
curl -s https://api.universalapi.co/mcp-admin/mcp-xxx/versions/2 \
-H "Authorization: Bearer YOUR_TOKEN" | jqReturns the full snapshot including sourceCode (omitted for non-owners when the server has sourceVisibility: "hidden").
Rollback
POST /mcp-admin/{serverId}/rollbackOwner only. Creates a new version (latest+1) whose source is a copy of the target version, then updates the live server.
bash
curl -s -X POST https://api.universalapi.co/mcp-admin/mcp-xxx/rollback \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"targetVersion": 1}' | jqResponse: {"data": {"serverId": "mcp-xxx", "rolledBackTo": 1, "latestVersion": 4}}
Version Pinning (Runtime)
Pin AI clients to a specific source version by appending ?v=N (or ?version=N) to the MCP endpoint URL:
https://mcp.api.universalapi.co/mcp/{serverId}?v=3
https://mcp.api.universalapi.co/mcp/s/{owner}/{slug}?v=3Pinned requests execute the snapshot's source code instead of the latest. Requests to a non-existent version return 404.
Delete Server
DELETE /mcp-admin/deletebash
curl -s -X DELETE https://api.universalapi.co/mcp-admin/delete \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"serverId": "mcp-xxx"}' | jqMCP Protocol Endpoint
POST /mcp/{serverId}
POST /mcp/s/{owner}/{slug}
GET /mcp/{serverId}
GET /mcp/s/{owner}/{slug}This is the endpoint AI clients (Claude, Cline) connect to. It speaks the MCP protocol:
bash
# List available tools
curl -s -X POST https://mcp.api.universalapi.co/mcp/mcp-xxx \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"method": "tools/list", "params": {}}' | jq
# Call a tool
curl -s -X POST https://mcp.api.universalapi.co/mcp/mcp-xxx \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "google_search",
"arguments": {"query": "Universal API"}
}
}' | jq
# List resources
curl -s -X POST https://mcp.api.universalapi.co/mcp/mcp-xxx \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"method": "resources/list", "params": {}}' | jq