hyreflow-ai MCP API

The Mcp API from hyreflow-ai — 5 operation(s) for mcp.

GitHub OpenAPI

Operations 8

GET /api/v2/mcp/oauth/authorize Mcp Authorize Get #
POST /api/v2/mcp/oauth/authorize Mcp Authorize Post #
POST /api/v2/mcp/oauth/register Mcp Register #
POST /api/v2/mcp/oauth/token Mcp Token #
POST /api/v2/mcp/oauth/revoke Mcp Revoke #
GET /api/v2/mcp Mcp Get #
POST /api/v2/mcp Mcp Post #
DELETE /api/v2/mcp Mcp Delete #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hyreflow-ai:hyreflow-ai-mcp-api"
All apis
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.

Get an API 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 Specification

hyreflow-ai-mcp-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: hyreflow engine (local) MCP API
  version: 0.1.0
tags:
- name: MCP
paths:
  /api/v2/mcp/oauth/authorize:
    get:
      summary: Mcp Authorize Get
      operationId: mcp_authorize_get_api_v2_mcp_oauth_authorize_get
      parameters:
      - name: response_type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Response Type
      - name: client_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Id
      - name: redirect_uri
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Redirect Uri
      - name: code_challenge
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Code Challenge
      - name: code_challenge_method
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Code Challenge Method
      - name: scope
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Scope
      - name: state
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: State
      - name: resource
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - MCP
    post:
      summary: Mcp Authorize Post
      description: 'Consent approval. No CSRF token, and that rests on ONE property of the cookie rather than on an

        omission: identity here comes from `hf_session`, which is set `samesite="lax"` (see app.py), so a

        cross-site POST arrives without it and falls through to the 401 below. Client registration is open

        (RFC 7591), so an attacker can register their own redirect_uri — if that cookie is ever widened to

        `samesite=none`, this endpoint needs a real one-time token BEFORE that ships.'
      operationId: mcp_authorize_post_api_v2_mcp_oauth_authorize_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - MCP
  /api/v2/mcp/oauth/register:
    post:
      summary: Mcp Register
      operationId: mcp_register_api_v2_mcp_oauth_register_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - MCP
  /api/v2/mcp/oauth/token:
    post:
      summary: Mcp Token
      operationId: mcp_token_api_v2_mcp_oauth_token_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - MCP
  /api/v2/mcp/oauth/revoke:
    post:
      summary: Mcp Revoke
      operationId: mcp_revoke_api_v2_mcp_oauth_revoke_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - MCP
  /api/v2/mcp:
    get:
      summary: Mcp Get
      description: 'No server-initiated SSE streams: a GET without a valid bearer gets the discovery 401; with one,

        405 tells the client this server is single-response only.'
      operationId: mcp_get_api_v2_mcp_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - MCP
    post:
      summary: Mcp Post
      description: 'Streamable-HTTP transport, single-response mode: each JSON-RPC POST gets one application/json

        response (spec-compliant; SSE streams are optional and none of our responses benefit from them).

        Unauthenticated requests get the RFC 6750 401 that drives OAuth discovery in every compliant

        client.


        The body is read here and EVERYTHING else runs in a worker thread. The dispatch below calls the

        engine''s own sync route functions, which do blocking provider HTTP — a waterfall runs for tens of

        seconds. Awaiting that inline on the event loop stalls every other request in the process (one

        uvicorn worker serves the whole engine), including the container health check. Same discipline as

        `stripe_webhook`, the only other async route here.'
      operationId: mcp_post_api_v2_mcp_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - MCP
    delete:
      summary: Mcp Delete
      description: 'DELETE terminates an MCP SESSION, which is identified by `Mcp-Session-Id`. We never issue one —

        this server is stateless, every request stands alone — so there is nothing here to terminate, and the

        spec''s answer for a server without session termination is 405.


        It must NOT revoke the OAuth grant. Clients send DELETE as routine shutdown cleanup, and treating

        that as ''destroy my credentials'' would force a full re-authorization on every restart. Revocation is

        a deliberate act with its own endpoint: POST /api/v2/mcp/oauth/revoke (RFC 7009).'
      operationId: mcp_delete_api_v2_mcp_delete
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - MCP
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer