Skip to content

MCP Server API Reference

Complete API reference for MCP Servers.

Base URL: https://api.universalapi.co

Create Server

POST /mcp-admin/create
bash
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
ParameterTypeRequiredDescription
serverNamestringYesLowercase with hyphens
descriptionstringYesWhat the server does
sourceCodestringYesNode.js code with createMcpServer()
visibilitystringNo"private" (default) or "public"

List Servers

GET /mcp-admin/list
bash
curl -s https://api.universalapi.co/mcp-admin/list \
  -H "Authorization: Bearer YOUR_TOKEN" | jq

Optional 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 | jq

Update Server

PUT /mcp-admin/update
bash
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"
  }' | jq

Versioning

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}/versions
bash
curl -s https://api.universalapi.co/mcp-admin/mcp-xxx/versions \
  -H "Authorization: Bearer YOUR_TOKEN" | jq

Response:

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" | jq

Returns the full snapshot including sourceCode (omitted for non-owners when the server has sourceVisibility: "hidden").

Rollback

POST /mcp-admin/{serverId}/rollback

Owner 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}' | jq

Response: {"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=3

Pinned requests execute the snapshot's source code instead of the latest. Requests to a non-existent version return 404.

Delete Server

DELETE /mcp-admin/delete
bash
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"}' | jq

MCP 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

Universal API - The agentic entry point to the universe of APIs