Each region has one MCP endpoint, /mcp/ on the inference host. It speaks MCP over Streamable HTTP and serves, together, the tools of the MCP servers your organization installed in the console under MCPs. Tool names are prefixed with the installation's alias, as <alias>-<tool>.
Connect a client
Any MCP client that supports Streamable HTTP and a custom header works. For example:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ccsio": {
"type": "remote",
"url": "https://api.eu.ccsio.ai/mcp/",
"headers": { "Authorization": "Bearer {env:CCSIO_API_KEY}" }
}
}
}Use the protocol directly
curl
# 1. Open a session. The answer's Mcp-Session-Id header names it.
curl -i "https://api.eu.ccsio.ai/mcp/" \
-H "Authorization: Bearer $CCSIO_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "initialize",
"params": {"protocolVersion": "2025-06-18", "capabilities": {},
"clientInfo": {"name": "my-app", "version": "1.0.0"}}}'
# 2. List the tools of every MCP server your organization installed.
curl "https://api.eu.ccsio.ai/mcp/" \
-H "Authorization: Bearer $CCSIO_API_KEY" \
-H "Mcp-Session-Id: <the id from step 1>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'
# 3. End the session when you are done.
curl -X DELETE "https://api.eu.ccsio.ai/mcp/" \
-H "Authorization: Bearer $CCSIO_API_KEY" \
-H "Mcp-Session-Id: <the id from step 1>"initializeopens a session; send itsMcp-Session-Idon every later request. The protocol versions are2025-06-18and2025-03-26.- The server-to-client stream (
GET /mcp/) is not offered: it answers405. - Calling tools needs the permission
mcp.invoke, which every built-in role holds. An installation can be limited to some teams.