Skip to main content
A connection is a data source the AI can call during a query. MCP servers are the primary connection type: they advertise tools automatically. REST APIs, databases, and GraphQL endpoints are also supported.

Connection types

TypeDiscoveryDescription
mcpAutomaticModel Context Protocol server. Tools are discovered via tools/list.
restManualREST API endpoint. Tools defined manually.
graphqlManualGraphQL endpoint.
databaseManualDirect database connection.

MCP transports

MCP connections support two transports:

HTTP (Streamable HTTP)

The MCP server runs as an HTTP service. SupaProxy connects to its URL and calls tools via HTTP requests.
{
  "transport": "http",
  "url": "http://localhost:3000/mcp"
}
Tools are discovered automatically when the connection is saved.

STDIO

The MCP server runs as a subprocess. SupaProxy spawns the process and communicates via stdin/stdout.
{
  "transport": "stdio",
  "command": "node",
  "args": ["/opt/services/order-mcp/index.js"]
}
Tools are discovered on the first query (the process is spawned on demand).

Tool discovery

When a connection is saved (HTTP) or first queried (STDIO), SupaProxy calls the MCP server’s tools/list endpoint. Each tool has:
  • Name: unique identifier (e.g. get_order_status)
  • Description: what the tool does
  • Input schema: JSON Schema for the tool’s parameters
  • Is write: whether the tool modifies data (triggers write confirmation guardrail)

The agent loop

When a query arrives:
  1. SupaProxy connects to all workspace MCP servers
  2. Discovers available tools from each connection
  3. Sends the query, system prompt, and tool definitions to the language model
  4. The model returns tool call requests
  5. SupaProxy executes each tool call against the correct connection
  6. Results are fed back to the model
  7. Repeat until the model returns a final text answer
The maximum number of tool-call rounds is configurable per workspace (default: 10).

Connection status

StatusMeaning
connectedConnection is healthy and tools are available
disconnectedConnection has not been verified or is offline
errorLast connection attempt failed