Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: MCPBundles Platform Tunnel API
description: 'Programmatic workspace API authenticated with workspace API keys (``X-API-Key: mb_…`` or ``Authorization: Api-Key mb_…``). Use ``POST /graphql`` for workspace management. MCP tool execution uses ``https://mcp.mcpbundles.com`` (Hub and bundle routes), not these REST paths. Data-bundle REST APIs are documented separately per bundle.'
version: 1.0.0
tags:
- name: Tunnel
paths:
/api/tunnel/expose:
post:
summary: Tunnel Expose Register
description: 'Register a localhost port for external HTTP access.
Accepts any valid auth method (API key, OAuth Bearer, NextAuth cookie).
Returns the public URL that routes to localhost:{port}.'
operationId: tunnel_expose_register_api_tunnel_expose_post
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
tags:
- Tunnel
delete:
summary: Tunnel Expose Revoke
description: Revoke an exposed port.
operationId: tunnel_expose_revoke_api_tunnel_expose_delete
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
tags:
- Tunnel
/api/tunnel/sessions:
get:
summary: Tunnel Sessions List
description: 'Return every live proxy WebSocket for the authenticated user.
The desktop and the workspace settings page render this as the
"Connected devices" panel — one row per installation, with a
Revoke button per row that hits ``DELETE /api/tunnel/sessions/{id}``.'
operationId: tunnel_sessions_list_api_tunnel_sessions_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
tags:
- Tunnel
/api/tunnel/sessions/{connection_id}:
delete:
summary: Tunnel Sessions Revoke
description: 'Force-close one specific installation''s WebSocket.
The proxy on that machine will see a 1000 close, hit its
exponential backoff, and reconnect under a fresh
ProxyConnection row. Use this from the UI when a user wants to
kick a forgotten device off their account without signing out.'
operationId: tunnel_sessions_revoke_api_tunnel_sessions__connection_id__delete
parameters:
- name: connection_id
in: path
required: true
schema:
type: string
title: Connection Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Tunnel
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
type: object
required:
- loc
- msg
- type
title: ValidationError