Tools over HTTP + OpenAPI
Access all your tools over HTTP, well-specified using OpenAPI
Sometimes you are working in environments where MCP client are not the best fit. To help in these situations, Gatana offers a simple HTTP API to access all your tools. The URL to access the OpenAPI specification is: https://YOUR_ORG.gatana.ai/api/mcp-httpapi/openapi.json
The authorization requirements stays the same as described in MCP Authorization.
Long-running calls
If you have a long-running tool, that might trigger timeouts due to no data-transfers, you can set Accept header to text/event-stream. Gatana will send a :keepalive every 15 seconds, and finally close the stream with a :data event containing the JSON serialized result.
Example
$ curl https://ORG_ID.gatana.ai/api/mcp-httpapi/openapi.json -H"Authorization: Bearer $TOKEN" | jq
(...)
"/api/mcp-httpapi/tools/github_pull_request_read": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"method",
"owner",
"repo",
"pullNumber"
],
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"after": {
"type": "string",
"description": "Cursor for pagination, used only by the get_review_comments method. Pass the endCursor from the previous page's PageInfo to fetch the next page."
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"method": {
"enum": [
"get",
"get_diff",
"get_status",
"get_files",
"get_commits",
"get_review_comments",
"get_reviews",
"get_comments",
"get_check_runs"
],
"type": "string",
"description": "Action to specify what pull request data needs to be retrieved from GitHub. \nPossible options: \n 1. get - Get details of a specific pull request.\n 2. get_diff - Get the diff of a pull request.\n 3. get_status - Get combined commit status of a head commit in a pull request.\n 4. get_files - Get the list of files changed in a pull request. Use with pagination parameters to control the number of results returned.\n 5. get_commits - Get the list of commits on a pull request. Use with pagination parameters to control the number of results returned.\n 6. get_review_comments - Get review threads on a pull request. Each thread contains logically grouped review comments made on the same code location during pull request reviews. Returns threads with metadata (isResolved, isOutdated, isCollapsed) and their associated comments. Use cursor-based pagination (perPage, after) to control results.\n 7. get_reviews - Get the reviews on a pull request. When asked for review comments, use get_review_comments method. Use with pagination parameters to control the number of results returned.\n 8. get_comments - Get comments on a pull request. Use this if user doesn't specifically want review comments. Use with pagination parameters to control the number of results returned.\n 9. get_check_runs - Get check runs for the head commit of a pull request. Check runs are the individual CI/CD jobs and checks that run on the PR.\n"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"pullNumber": {
"type": "number",
"description": "Pull request number"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {}
}
}
}
}
},
(...)You can then call the tool like so:
curl https://ORG_ID.gatana.ai/api/mcp-httpapi/github_pull_request_read \
-X POST
-d method=get \
-d owner=gatana-ai \
-d repo=gatana-js \
-d pullNumber=1 -XPOST \
-H"Authorization: Bearer $TOKEN" | jq
{
"result": "{\"number\":1,\"title\":\"feat: ma(......)merged_at\":\"2026-02-28T10:32:37Z\"}",
"isError": false
}