Barndoor MCP Proxy API

Proxy requests to MCP servers

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/barndoor-mcp-proxy-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

barndoor-mcp-proxy-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Barndoor Platform Agents MCP Proxy API
  version: 1.0.0
  description: 'REST API for the Barndoor Platform - manage MCP servers, OAuth connections, and proxy MCP requests.


    ## Authentication


    All endpoints require a JWT Bearer token obtained through Auth0 OAuth 2.0 flow with PKCE.

    The SDK handles the OAuth flow automatically using interactive login.


    ## MCP Integration


    The `/mcp/{mcp_server_name}` endpoints provide streaming proxy access to third-party MCP servers

    (Salesforce, Notion, Slack, etc.) with automatic authentication and session management.

    '
  contact:
    name: Barndoor Support
    url: https://barndoor.ai
servers:
- url: https://{organization_id}.platform.barndoor.ai
  description: Trial (Production)
  variables:
    organization_id:
      description: Your organization identifier
      default: your-org
- url: https://{organization_id}.mcp.barndoor.ai
  description: Enterprise (Production)
  variables:
    organization_id:
      description: Your organization identifier
      default: your-org
- url: https://{organization_id}.platform.barndooruat.com
  description: Enterprise (Production)
  variables:
    organization_id:
      description: Your organization identifier
      default: your-org
- url: https://{organization_id}.platform.barndoordev.com
  description: Enterprise (Production)
  variables:
    organization_id:
      description: Your organization identifier
      default: your-org
security:
- BearerAuth: []
tags:
- name: MCP Proxy
  description: Proxy requests to MCP servers
paths:
  /mcp/{mcp_server_name}:
    get:
      tags:
      - MCP Proxy
      summary: MCP Server Proxy Endpoint
      description: 'Proxies MCP JSON-RPC requests to third-party servers with automatic authentication.


        This endpoint supports both regular HTTP requests and Server-Sent Events (SSE) streaming

        for real-time MCP protocol communication.


        ## Usage


        - **JSON-RPC**: Send MCP protocol requests as JSON

        - **SSE Streaming**: Use `Accept: text/event-stream` for real-time communication

        - **Session Management**: Include `x-mcp-session-id` header for session tracking


        ## Authentication Flow


        1. User must first connect to the server via `/api/servers/{server_id}/connect`

        2. Complete OAuth flow for the third-party service

        3. Use this endpoint to proxy MCP requests with automatic credential injection

        '
      operationId: proxyMcpRequest
      parameters:
      - name: mcp_server_name
        in: path
        required: true
        description: MCP server name identifier
        schema:
          type: string
          pattern: ^[a-z0-9-]+$
        example: salesforce
      - name: x-mcp-session-id
        in: header
        required: false
        description: MCP session identifier for request tracking
        schema:
          type: string
        example: sess_1234567890abcdef
      requestBody:
        required: false
        description: MCP JSON-RPC request payload
        content:
          application/json:
            schema:
              type: object
              description: MCP JSON-RPC 2.0 request
              properties:
                jsonrpc:
                  type: string
                  enum:
                  - '2.0'
                  description: JSON-RPC version
                method:
                  type: string
                  description: MCP method name
                  example: tools/list
                params:
                  type: object
                  description: Method parameters
                  additionalProperties: true
                id:
                  oneOf:
                  - type: string
                  - type: number
                  description: Request identifier
              required:
              - jsonrpc
              - method
              example:
                jsonrpc: '2.0'
                method: tools/list
                params: {}
                id: 1
      responses:
        '200':
          description: MCP response or SSE stream
          content:
            application/json:
              schema:
                type: object
                description: MCP JSON-RPC 2.0 response
                properties:
                  jsonrpc:
                    type: string
                    enum:
                    - '2.0'
                  result:
                    type: object
                    description: Method result
                    additionalProperties: true
                  error:
                    type: object
                    description: Error object if method failed
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data:
                        type: object
                        additionalProperties: true
                  id:
                    oneOf:
                    - type: string
                    - type: number
                    description: Request identifier
                required:
                - jsonrpc
                - id
                example:
                  jsonrpc: '2.0'
                  result:
                    tools:
                    - name: get_accounts
                      description: Get Salesforce accounts
                      parameters:
                        type: object
                        properties:
                          limit:
                            type: integer
                            description: Maximum number of accounts
                  id: 1
            text/event-stream:
              schema:
                type: string
                description: 'Server-Sent Events stream for real-time MCP communication.


                  Each event contains a JSON-RPC message with event metadata.


                  Example events:

                  ```

                  data: {"jsonrpc": "2.0", "method": "notifications/initialized", "params": {}}


                  data: {"jsonrpc": "2.0", "result": {"tools": [...]}, "id": 1}

                  ```

                  '
              example: 'data: {"jsonrpc": "2.0", "method": "notifications/initialized", "params": {}}


                data: {"jsonrpc": "2.0", "result": {"tools": []}, "id": 1}

                '
        '401':
          description: Unauthorized - invalid or missing JWT token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - server not connected or access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: ServerNotConnected
                message: Server 'salesforce' is not connected. Please initiate connection first.
        '404':
          description: Server not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: Bad Gateway - upstream server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: UpstreamError
                message: Failed to connect to Salesforce API
  /sse/{mcp_server_name}:
    get:
      tags:
      - MCP Proxy
      summary: SSE Server Proxy Endpoint
      description: 'Server-Sent Events proxy endpoint for real-time streaming communication with third-party servers.


        This endpoint provides dedicated SSE streaming capabilities separate from the MCP protocol,

        allowing for custom event streaming and real-time data flows.


        ## Usage


        - **SSE Streaming**: Optimized for `text/event-stream` communication

        - **Real-time Events**: Custom event types and data streaming

        - **Session Management**: Include `x-mcp-session-id` header for session tracking


        ## Authentication Flow


        1. User must first connect to the server via `/api/servers/{server_id}/connect`

        2. Complete OAuth flow for the third-party service

        3. Use this endpoint for real-time event streaming with automatic credential injection

        '
      operationId: proxySSERequest
      parameters:
      - name: mcp_server_name
        in: path
        required: true
        description: MCP server name identifier
        schema:
          type: string
          pattern: ^[a-z0-9-]+$
        example: salesforce
      - name: x-mcp-session-id
        in: header
        required: false
        description: MCP session identifier for request tracking
        schema:
          type: string
        example: sess_1234567890abcdef
      requestBody:
        required: false
        description: Optional request payload for SSE initialization
        content:
          application/json:
            schema:
              type: object
              description: SSE initialization parameters
              properties:
                event_types:
                  type: array
                  items:
                    type: string
                  description: Types of events to subscribe to
                  example:
                  - data_update
                  - status_change
                filters:
                  type: object
                  description: Event filtering parameters
                  additionalProperties: true
                  example:
                    object_type: Account
                    limit: 100
              example:
                event_types:
                - data_update
                - status_change
                filters:
                  object_type: Account
                  limit: 100
      responses:
        '200':
          description: SSE event stream
          content:
            text/event-stream:
              schema:
                type: string
                description: 'Server-Sent Events stream for real-time communication.


                  Events follow the SSE format with optional event types and data payloads.


                  Example events:

                  ```

                  event: connected

                  data: {"status": "ready", "timestamp": "2024-01-01T00:00:00Z"}


                  event: data_update

                  data: {"type": "Account", "id": "123", "changes": {...}}


                  event: error

                  data: {"error": "rate_limit", "message": "Rate limit exceeded"}

                  ```

                  '
              example: 'event: connected

                data: {"status": "ready", "timestamp": "2024-01-01T00:00:00Z"}


                event: data_update

                data: {"type": "Account", "id": "123", "name": "Acme Corp"}


                event: status_change

                data: {"status": "disconnected", "reason": "timeout"}

                '
            application/json:
              schema:
                type: object
                description: Fallback JSON response if SSE not supported
                properties:
                  status:
                    type: string
                    example: streaming_not_supported
                  message:
                    type: string
                    example: Client does not support SSE, use /mcp endpoint instead
        '401':
          description: Unauthorized - invalid or missing JWT token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - server not connected or access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: ServerNotConnected
                message: Server 'salesforce' is not connected. Please initiate connection first.
        '404':
          description: Server not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: Bad Gateway - upstream server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: UpstreamError
                message: Failed to connect to Salesforce streaming API
components:
  schemas:
    Error:
      type: object
      required:
      - error
      - message
      properties:
        error:
          type: string
          description: Error type identifier
          example: ServerNotFound
        message:
          type: string
          description: Human-readable error message
          example: Server with ID '123' not found
        details:
          type: object
          description: Additional error details
          additionalProperties: true
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'JWT token obtained through Auth0 OAuth 2.0 flow with PKCE.


        The token should be included in the Authorization header:

        `Authorization: Bearer <your-jwt-token>`


        Use the Barndoor SDK''s `loginInteractive()` function to obtain tokens automatically.

        '
    HTTPBearer:
      type: http
      scheme: bearer