OpenConnector exposes provider Actions through MCP, HTTP, OpenAPI, local Action guides, and the Web Console. This document is the detailed reference that keeps endpoint lists and protocol examples out of the README.
| Surface | Endpoint | Use it for |
|---|---|---|
| MCP | POST /mcp |
Agent hosts that can call MCP tools. |
| MCP metadata | GET /mcp/tools |
Preview the discovery-oriented MCP tool set. |
| HTTP runtime API | /v1/* |
SDK-style clients, scripts, and direct Action execution. |
| OpenAPI | GET /openapi.json |
API importers, reference generation, and strongly scoped one-Action specs. |
| Action guide | GET /api/actions/:actionId/agent.md |
Agent-readable markdown guide for one Action. |
| Web Console | GET / |
Browser workflow for browsing providers, configuring credentials, and debugging Actions. |
When OOMOL_CONNECT_RUNTIME_TOKEN or persistent runtime tokens are configured, /v1/* and /mcp
callers should send:
Authorization: Bearer oct_...
Admin endpoints under /api/*, /docs, and the Web Console use OOMOL_CONNECT_ADMIN_TOKEN when it
is configured.
Point MCP-capable clients at:
http://localhost:3000/mcp
The local MCP endpoint supports stateless POST JSON-RPC requests with JSON responses. It does not
keep GET SSE streams open.
The MCP server exposes a small discovery-oriented tool set:
list_appssearch_actionsget_action_guideexecute_action
Preview MCP tool metadata:
curl -s http://localhost:3000/mcp/toolsRuntime clients should use /v1. Responses use a uniform JSON envelope:
{
"success": true,
"message": "OK",
"data": {},
"meta": {}
}Discover Actions:
curl -s http://localhost:3000/v1/actions
curl -s "http://localhost:3000/v1/actions?service=github"
curl -s http://localhost:3000/v1/actions/github.get_current_userExecute an Action:
curl -s -X POST http://localhost:3000/v1/actions/github.get_current_user \
-H 'content-type: application/json' \
-d '{"input":{}}'Select a named connection with x-oo-connector-alias:
curl -s -X POST http://localhost:3000/v1/actions/github.get_current_user \
-H 'x-oo-connector-alias: work' \
-H 'content-type: application/json' \
-d '{"input":{}}'The alias query parameter is also accepted:
curl -s -X POST "http://localhost:3000/v1/actions/github.get_current_user?alias=work" \
-H 'content-type: application/json' \
-d '{"input":{}}'Each Action has a local markdown guide that includes the input schema, scopes, provider permissions, current connection identity, and request examples:
curl -s http://localhost:3000/api/actions/github.get_current_user/agent.mdThe Web Console also lets you copy cURL, TypeScript, and agent prompt examples for each Action.
Upload a temporary local transit file for Actions that accept a file URL:
curl -s -X POST http://localhost:3000/api/files \
-F "file=@./report.pdf"The response includes a downloadUrl under /api/files/:fileId. Local transit files are stored
under OOMOL_CONNECT_DATA_DIR/files and are cleaned up by age.
GET /v1/healthGET /v1/providersGET /v1/actionsGET /v1/actions/searchGET /v1/actions?service=<service>GET /v1/actions/:actionIdPOST /v1/actions/:actionIdGET /v1/appsGET /v1/apps/services/:serviceGET /v1/apps/authenticatedPOST /v1/proxy/:service
POST /v1/proxy/:service proxies one provider API request when that provider has a registered or
provider-specific local proxy executor. Providers without a proxy executor return proxy_not_supported.
Request body:
{
"endpoint": "/provider/path",
"method": "GET",
"query": { "limit": "10" },
"headers": { "accept": "application/json" },
"body": { "name": "example" }
}endpoint must be a relative path beginning with /; absolute URLs are rejected. The runtime keeps
stored credentials local and lets the provider proxy executor apply provider-specific authentication.
Successful responses use the standard /v1 success envelope with data.status, data.headers, and
data.data.
Proxy requests are controlled by OOMOL_CONNECT_ALLOWED_PROXIES and
OOMOL_CONNECT_BLOCKED_PROXIES. When action policy is configured, provider proxies are denied by
default unless explicitly allowlisted.
These endpoints power the Web Console, examples, and setup scripts:
GET /api/providersGET /api/providers/:serviceGET /api/actionsGET /api/actions/searchGET /api/actions/:actionIdGET /api/actions/:actionId/agent.mdPOST /api/filesGET /api/files/:fileIdDELETE /api/files/:fileIdGET /api/connectionsPUT /api/connections/:serviceDELETE /api/connections/:serviceGET /api/oauth/configsPUT /api/oauth/configs/:serviceDELETE /api/oauth/configs/:servicePOST /api/oauth/authorizationsGET /oauth/callbackGET /api/runtime-tokensPOST /api/runtime-tokensDELETE /api/runtime-tokens/:idGET /api/runsPOST /mcpGET /mcp/toolsGET /openapi.json