EvalGate MCP API
The mcp API from EvalGate — 3 operation(s) for mcp.
The mcp API from EvalGate — 3 operation(s) for mcp.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/evalgate-com:evalgate-com-mcp-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: EvalGate MCP API
version: 18.13.0
description: EvalGate API. See docs/api-contract.md for stability commitments.
servers:
- url: https://evalgate.com
description: Production
- url: http://localhost:3000
description: Local
tags:
- name: MCP
paths:
/api/mcp/call:
post:
x-evalgate-source-hash: sha256:90774acb600e9e135ff53f33bed95510b995d76e695920592064a74eb227b6dc
summary: Create mcp call
operationId: post_mcp_call
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiMcpCallResponse200ApplicationJson'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
security:
- bearerAuth: []
tags:
- MCP
x-evalgate-request-validators:
- McpCallBodySchema
- toolSchema
x-evalgate-required-scopes:
- eval:read
description: 'Requires scopes: eval:read'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiMcpCallRequest'
x-evalgate-contract-hash: sha256:110775919b3ef30852291a3e75890c325f178a0f5f4d8484679eb2c66d7114a0
/api/mcp:
get:
x-evalgate-source-hash: sha256:fb8087cb5b714680b3c2ab89d39194a071fde0c3b58563eb385749642915ef90
summary: List mcp mcp
operationId: get_mcp
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiMcpResponse200ApplicationJson'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
security:
- bearerAuth: []
tags:
- MCP
description: Requires an authenticated bearer token. List mcp mcp.
x-evalgate-contract-hash: sha256:920ca471c107ef8b849be0a08958b56b23f20bf062d09851b46a06fbde1d56a7
post:
x-evalgate-source-hash: sha256:42604fdadcc39c7596b40fcb26174df581d765f26c1b92bdcc4041b8161b1a2c
summary: Create mcp mcp
operationId: post_mcp
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiMcpResponse200ApplicationJson'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
security:
- bearerAuth: []
tags:
- MCP
description: Requires an authenticated bearer token. Create mcp mcp.
x-evalgate-contract-hash: sha256:920ca471c107ef8b849be0a08958b56b23f20bf062d09851b46a06fbde1d56a7
delete:
x-evalgate-source-hash: sha256:f9bd0f9f46aeb19f01d44461f08cdc7d772d3635e95f6ae7c984b56ace869aa6
summary: Delete mcp mcp
operationId: delete_mcp
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteApiMcpResponse200ApplicationJson'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
security:
- bearerAuth: []
tags:
- MCP
description: Requires an authenticated bearer token. Delete mcp mcp.
x-evalgate-contract-hash: sha256:920ca471c107ef8b849be0a08958b56b23f20bf062d09851b46a06fbde1d56a7
/api/mcp/tools:
get:
x-evalgate-source-hash: sha256:de289b6c8db17ac5473aa10850b7e4e180d39936b3361667d589e1a571fa7770
summary: List mcp tools
operationId: get_mcp_tools
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiMcpToolsResponse200ApplicationJson'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
security:
- bearerAuth: []
tags:
- MCP
x-evalgate-required-scopes:
- eval:read
description: 'Requires scopes: eval:read'
parameters:
- name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 1000
default: 50
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
x-evalgate-contract-hash: sha256:86f0a2d9a8b9395f0d9078320813a25fd3bfc4035d2ba0ea02fbe625284ba31b
components:
responses:
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
WWW-Authenticate:
description: Bearer challenge. Agent-facing routes include the RFC 9728 resource_metadata URL.
schema:
type: string
Conflict:
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
RateLimited:
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
Retry-After:
description: Delay in seconds before retrying when present.
schema:
type: integer
minimum: 1
ValidationError:
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
ServiceUnavailable:
description: Service unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
InternalError:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
schemas:
GetApiMcpToolsResponse200ApplicationJson:
type: object
properties:
api:
type: string
apiVersion:
type: string
compatibility:
type: string
writesEnabled:
type: boolean
tools:
type: array
items:
type: object
properties:
mutation:
oneOf:
- type: boolean
enum:
- false
- type: boolean
enum:
- true
longRunning:
type: boolean
enum:
- true
version:
type: string
name:
type: string
description:
type: string
inputSchema:
type: object
properties:
type:
type: string
enum:
- object
properties:
type: object
additionalProperties:
type: object
properties:
type:
type: string
description:
type: string
enum:
type: array
items:
type: string
additionalProperties: false
required:
- type
required:
type: array
items:
type: string
additionalProperties: false
required:
- type
- properties
additionalProperties: false
required:
- name
- description
- inputSchema
additionalProperties: false
required:
- api
- apiVersion
- compatibility
- writesEnabled
- tools
PostApiMcpCallResponse200ApplicationJson:
type: object
properties:
ok:
type: boolean
enum:
- true
content:
type: array
items:
oneOf:
- type: object
properties:
type:
type: string
enum:
- json
json:
$ref: '#/components/schemas/JsonValue'
additionalProperties: false
required:
- type
- json
- type: object
properties:
type:
type: string
enum:
- text
text:
type: string
additionalProperties: false
required:
- type
- text
additionalProperties: false
required:
- ok
- content
DeleteApiMcpResponse200ApplicationJson:
oneOf:
- type: object
properties:
jsonrpc:
type: string
enum:
- '2.0'
id:
oneOf:
- type: string
- type: integer
- type: 'null'
result:
type: object
additionalProperties:
$ref: '#/components/schemas/JsonValue'
required:
- jsonrpc
- id
- result
additionalProperties:
$ref: '#/components/schemas/JsonValue'
- type: object
properties:
jsonrpc:
type: string
enum:
- '2.0'
id:
oneOf:
- type: string
- type: integer
- type: 'null'
error:
type: object
properties:
code:
type: integer
message:
type: string
data:
$ref: '#/components/schemas/JsonValue'
required:
- code
- message
additionalProperties:
$ref: '#/components/schemas/JsonValue'
required:
- jsonrpc
- id
- error
additionalProperties:
$ref: '#/components/schemas/JsonValue'
PostApiMcpResponse200ApplicationJson:
oneOf:
- type: object
properties:
jsonrpc:
type: string
enum:
- '2.0'
id:
oneOf:
- type: string
- type: integer
- type: 'null'
result:
type: object
additionalProperties:
$ref: '#/components/schemas/JsonValue'
required:
- jsonrpc
- id
- result
additionalProperties:
$ref: '#/components/schemas/JsonValue'
- type: object
properties:
jsonrpc:
type: string
enum:
- '2.0'
id:
oneOf:
- type: string
- type: integer
- type: 'null'
error:
type: object
properties:
code:
type: integer
message:
type: string
data:
$ref: '#/components/schemas/JsonValue'
required:
- code
- message
additionalProperties:
$ref: '#/components/schemas/JsonValue'
required:
- jsonrpc
- id
- error
additionalProperties:
$ref: '#/components/schemas/JsonValue'
ApiError:
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INVALID_REFERENCE
- VALIDATION_ERROR
- RATE_LIMITED
- CONFLICT
- INTERNAL_ERROR
- SERVICE_UNAVAILABLE
- QUOTA_EXCEEDED
- FEATURE_LIMIT_REACHED
- NO_ORG_MEMBERSHIP
- SHARE_REVOKED
- SHARE_EXPIRED
- SHARE_UNAVAILABLE
- PROVIDER_KEY_MISSING
- PROVIDER_KEY_EXPIRED
- PROVIDER_RATE_LIMITED
- PROVIDER_UNAUTHORIZED
- PROVIDER_UNAVAILABLE
- AGENT_HANDOFF_INVALID
- AGENT_HANDOFF_EXPIRED
- AGENT_HANDOFF_DENIED
- AGENT_HANDOFF_CONSUMED
- PAYLOAD_TOO_LARGE
- METHOD_NOT_ALLOWED
message:
type: string
details: {}
requestId:
type: string
format: uuid
redaction:
type: object
properties:
applied:
type: boolean
enum:
- true
fieldCount:
type: integer
minimum: 0
secretCount:
type: integer
minimum: 0
required:
- applied
- fieldCount
- secretCount
required:
- code
- message
required:
- error
JsonValue:
oneOf:
- type: 'null'
- type: boolean
- type: number
- type: string
- type: array
items:
$ref: '#/components/schemas/JsonValue'
- type: object
additionalProperties:
$ref: '#/components/schemas/JsonValue'
PostApiMcpCallRequest:
type: object
properties:
tool:
type: string
arguments:
type: object
additionalProperties:
$ref: '#/components/schemas/JsonValue'
additionalProperties: false
required:
- tool
GetApiMcpResponse200ApplicationJson:
oneOf:
- type: object
properties:
jsonrpc:
type: string
enum:
- '2.0'
id:
oneOf:
- type: string
- type: integer
- type: 'null'
result:
type: object
additionalProperties:
$ref: '#/components/schemas/JsonValue'
required:
- jsonrpc
- id
- result
additionalProperties:
$ref: '#/components/schemas/JsonValue'
- type: object
properties:
jsonrpc:
type: string
enum:
- '2.0'
id:
oneOf:
- type: string
- type: integer
- type: 'null'
error:
type: object
properties:
code:
type: integer
message:
type: string
data:
$ref: '#/components/schemas/JsonValue'
required:
- code
- message
additionalProperties:
$ref: '#/components/schemas/JsonValue'
required:
- jsonrpc
- id
- error
additionalProperties:
$ref: '#/components/schemas/JsonValue'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: EvalGate API key
description: Organization-scoped EvalGate API key. Discover the supported agent scopes at /.well-known/oauth-protected-resource. Per-operation grants are listed in x-evalgate-required-scopes; OpenAPI bearer security requirement arrays remain empty as required for non-OAuth schemes.
x-evalgate-scopes-supported:
- eval:read
- eval:write
- objectives:read
- objectives:write
- runs:read
- runs:write
- traces:read
- traces:write
- exports:download
- reports:write
- prompt:publish
- scorer:publish
- red_team:read
- red_team:run
- red_team:approve
- docs:read
- agent:read
- agent:execute
- resources:read
- resources:write
- contexts:read
- contexts:write
- observations:write
- checks:read
- checks:run
- standards:read
- standards:write
- standards:approve
- grants:read
- grants:write
- admin:keys
- admin:workspace
- admin:org
x-evalgate-protected-resource-metadata: https://www.evalgate.com/.well-known/oauth-protected-resource
ProviderHealthSignature:
type: apiKey
in: header
name: x-evalgate-provider-health-signature
description: HMAC SHA-256 signature over the exact provider request bytes. Provider requests also require the timestamp and key-id headers.
browserSession:
type: apiKey
in: cookie
name: better-auth.session_token
description: Interactive EvalGate browser session established through GitHub or Google sign-in. This scheme represents the human approval step and is not an agent API key or an EvalGate OAuth authorization-server token.
x-service-info:
categories:
- ai
- developer-tools
docs:
homepage: https://evalgate.com
apiReference: https://docs.evalgate.com/api-reference
llms: https://evalgate.com/llms.txt