All tool calls are JSON-RPC 2.0 over HTTPS POST to /mcp:
POST /mcp HTTP/1.1
Authorization: Bearer <OWNSONA_API_TOKEN>
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "<tool-name>",
"arguments": { ... }
}
}
The server returns a JSON-RPC response whose result.content[0].text
field holds the tool’s structured payload as a JSON string. Every
successful payload begins with "ok": true; every error payload
begins with "ok": false, "error": {...}.
A 64-bit integer (Postgres BIGSERIAL). Stable for the row’s
lifetime; never reused after a hard-delete.
ISO 8601 with timezone, e.g. "2026-05-17T14:00:00Z".
Lowercase short strings, alphanumeric plus hyphen. See Tag normalization.
Never returned in tool output; an implementation detail of the similarity search.
Every request must carry Authorization: Bearer <token>. The
token is compared in constant time against
OWNSONA_API_TOKEN from application.ini. Missing or
wrong token returns HTTP 401 with AUTH_FAILED.