Skip to content
varsafe
Esc
↑↓navigate↵open⌘Jpreview

MCP transport (JSON-RPC request)

Model Context Protocol endpoint over Streamable HTTP. Send JSON-RPC requests here to list and call varsafe tools. Requires an OAuth 2.1 access token whose granted scopes cover the tool being called; an unauthenticated request answers 401 with a WWW-Authenticate header pointing at the protected-resource metadata.

POST/mcp
Responses
200The JSON-RPC response(s), delivered as a server-sent event stream. The request must `Accept` both `application/json` and `text/event-stream`.
string
202Accepted: the message carried only notifications or responses, so no reply.
400The body is not a valid JSON-RPC message, or names an unsupported MCP protocol version.
jsonrpcstringrequired
errorobjectrequired
Show properties
codeintegerrequired
min -9007199254740991 · max 9007199254740991
messagestringrequired
dataany
idstring | nullrequired
401No bearer token, or it is invalid, expired or revoked. The `WWW-Authenticate` header names the protected-resource metadata.
statusCodeintegerrequired
HTTP status code, repeated in the body.
min -9007199254740991 · max 9007199254740991
errorstringrequired
RFC 6750 error code, e.g. `invalid_token` or `insufficient_scope`.
error_descriptionstring
Human-readable explanation.
403The token lacks the grant the transport requires.
statusCodeintegerrequired
HTTP status code, repeated in the body.
min -9007199254740991 · max 9007199254740991
errorstringrequired
RFC 6750 error code, e.g. `invalid_token` or `insufficient_scope`.
error_descriptionstring
Human-readable explanation.
406The `Accept` header must allow both `application/json` and `text/event-stream` (`GET` needs `text/event-stream`).
jsonrpcstringrequired
errorobjectrequired
Show properties
codeintegerrequired
min -9007199254740991 · max 9007199254740991
messagestringrequired
dataany
idstring | nullrequired
415The request `Content-Type` must be `application/json`.
jsonrpcstringrequired
errorobjectrequired
Show properties
codeintegerrequired
min -9007199254740991 · max 9007199254740991
messagestringrequired
dataany
idstring | nullrequired
429Too many rejected authentication attempts.
statusCodeintegerrequired
HTTP status code, repeated in the body.
min -9007199254740991 · max 9007199254740991
errorstringrequired
RFC 6750 error code, e.g. `invalid_token` or `insufficient_scope`.
error_descriptionstring
Human-readable explanation.
500Unexpected server error. The body never carries internal detail.
statusCodeintegerrequired
HTTP status code, repeated in the body.
min -9007199254740991 · max 9007199254740991
codestringrequired
Stable machine-readable error code, e.g. `SECRET_NOT_FOUND` or `FORBIDDEN`. Branch on this, never on the message.
messagestringrequired
Human-readable explanation. Wording may change.
fieldstring
The offending request field, present on validation failures.
503Token verification is temporarily unavailable. Retry later.
statusCodeintegerrequired
HTTP status code, repeated in the body.
min -9007199254740991 · max 9007199254740991
errorstringrequired
RFC 6750 error code, e.g. `invalid_token` or `insufficient_scope`.
error_descriptionstring
Human-readable explanation.
Request
curl -X POST "https://api.varsafe.dev/mcp"
Response
"string"