openapi: 3.0.0 info: title: Dust MCP API version: 1.0.2 description: Register client-side Model Context Protocol servers, stream tool requests over SSE, return results, and list MCP server views available in a space. contact: name: Dust Support url: https://docs.dust.tt license: name: MIT url: https://github.com/dust-tt/dust/blob/main/LICENSE servers: - url: https://dust.tt description: Dust.tt API (us-central1) - url: https://eu.dust.tt description: Dust.tt API (europe-west1) tags: - name: MCP description: MCP servers - name: Tools description: Tools paths: /api/v1/w/{wId}/mcp/heartbeat: post: summary: Update Heartbeat for a Client-Side MCP Server description: '[Documentation](https://docs.dust.tt/docs/client-side-mcp-server) Update the heartbeat for a previously registered client-side MCP server. This extends the TTL for the server registration. ' tags: - MCP security: - BearerAuth: [] parameters: - in: path name: wId required: true description: ID of the workspace schema: type: string requestBody: required: true content: application/json: schema: type: object required: - serverId properties: serverId: type: string description: The ID of the registered MCP server responses: '200': description: Heartbeat updated successfully content: application/json: schema: type: object properties: success: type: boolean expiresAt: type: string format: date-time '400': description: Bad Request. Missing or invalid parameters. '401': description: Unauthorized. Invalid or missing authentication token. '403': description: Forbidden. User does not have access to the workspace. '404': description: Not Found. MCP server not registered or expired. /api/v1/w/{wId}/mcp/register: post: summary: Register a Client-Side MCP Server description: '[Documentation](https://docs.dust.tt/docs/client-side-mcp-server) Register a client-side MCP server to Dust. The registration is scoped to the current user and workspace. A serverId identifier is generated and returned in the response. ' tags: - MCP security: - BearerAuth: [] parameters: - in: path name: wId required: true description: ID of the workspace schema: type: string requestBody: required: true content: application/json: schema: type: object required: - serverName properties: serverName: type: string description: Name of the MCP server responses: '200': description: Server registered successfully content: application/json: schema: type: object properties: serverId: type: string expiresAt: type: string format: date-time '400': description: Bad Request. Missing or invalid parameters. '401': description: Unauthorized. Invalid or missing authentication token. '403': description: Forbidden. User does not have access to the workspace. /api/v1/w/{wId}/mcp/requests: get: summary: Stream MCP Tool Requests for a Workspace description: '[Documentation](https://docs.dust.tt/docs/client-side-mcp-server) Server-Sent Events (SSE) endpoint that streams MCP tool requests for a workspace. This endpoint is used by client-side MCP servers to listen for tool requests in real-time. The connection will remain open and events will be sent as new tool requests are made. ' tags: - MCP security: - BearerAuth: [] parameters: - in: path name: wId required: true description: ID of the workspace schema: type: string - in: query name: serverId required: true description: ID of the MCP server to filter events for schema: type: string - in: query name: lastEventId required: false description: ID of the last event to filter events for schema: type: string responses: '200': description: 'Connection established successfully. Events will be streamed in Server-Sent Events format. Each event will contain a tool request that needs to be processed by the MCP server. ' content: text/event-stream: schema: type: object properties: type: type: string description: Type of the event (e.g. "tool_request") data: type: object description: The tool request data '400': description: Bad Request. Missing or invalid parameters. '401': description: Unauthorized. Invalid or missing authentication token. '403': description: Forbidden. You don't have access to this workspace or MCP server. '500': description: Internal Server Error. /api/v1/w/{wId}/mcp/results: post: summary: Submit MCP Tool Execution Results description: '[Documentation](https://docs.dust.tt/docs/client-side-mcp-server) Endpoint for client-side MCP servers to submit the results of tool executions. This endpoint accepts the output from tools that were executed locally. ' tags: - MCP security: - BearerAuth: [] parameters: - in: path name: wId required: true description: ID of the workspace schema: type: string requestBody: required: true content: application/json: schema: type: object required: - result - serverId properties: result: type: object description: The result data from the tool execution serverId: type: string description: ID of the MCP server submitting the results responses: '200': description: Tool execution results successfully submitted '400': description: Bad Request. Missing or invalid parameters. '401': description: Unauthorized. Invalid or missing authentication token. '403': description: Forbidden. You don't have access to this workspace or MCP server. '404': description: Conversation or message not found. '500': description: Internal Server Error. /api/v1/w/{wId}/spaces/{spaceId}/mcp_server_views: get: summary: List Available MCP Server Views. description: Retrieves a list of enabled MCP server views (aka tools) for a specific space of the authenticated workspace. tags: - Tools security: - BearerAuth: [] parameters: - in: path name: wId required: true description: Unique string identifier for the workspace schema: type: string - in: path name: spaceId required: true description: ID of the space schema: type: string responses: '200': description: MCP server views of the space content: application/json: schema: type: object properties: spaces: type: array items: $ref: '#/components/schemas/MCPServerView' '400': description: Bad Request. Missing or invalid parameters. '401': description: Unauthorized. Invalid or missing authentication token. '404': description: Workspace not found. '405': description: Method not supported. '500': description: Internal Server Error. components: schemas: MCPServerView: type: object properties: id: type: integer description: Unique identifier for the MCP server view example: 123 sId: type: string description: Unique string identifier for the MCP server view example: mcp_sv_abc123 name: type: string nullable: true description: Custom name for the MCP server view (null if not set) example: My Custom MCP Server description: type: string nullable: true description: Custom description for the MCP server view (null if not set) example: This MCP server handles customer data operations createdAt: type: number description: Unix timestamp of when the MCP server view was created example: 1625097600 updatedAt: type: number description: Unix timestamp of when the MCP server view was last updated example: 1625184000 spaceId: type: string description: ID of the space containing the MCP server view example: spc_xyz789 serverType: type: string enum: - remote - internal description: Type of the MCP server example: remote server: type: object properties: sId: type: string description: Unique string identifier for the MCP server example: mcp_srv_def456 name: type: string description: Name of the MCP server example: Customer Data Server version: type: string description: Version of the MCP server example: 1.0.0 description: type: string description: Description of the MCP server example: Handles customer data operations and queries icon: type: string description: Icon identifier for the MCP server example: database authorization: type: object nullable: true properties: provider: type: string description: OAuth provider for authorization example: github supported_use_cases: type: array items: type: string enum: - platform_actions - personal_actions description: Supported use cases for the authorization example: - platform_actions scope: type: string description: OAuth scope required example: repo:read tools: type: array items: type: object properties: name: type: string description: Name of the tool example: query_customers description: type: string description: Description of what the tool does example: Query customer database for information inputSchema: type: object description: JSON Schema for the tool's input parameters example: type: object properties: customerId: type: string availability: type: string description: Availability status of the MCP server example: production allowMultipleInstances: type: boolean description: Whether multiple instances of this server can be created example: false documentationUrl: type: string nullable: true description: URL to the server's documentation example: https://docs.example.com/mcp-server oAuthUseCase: type: string nullable: true enum: - platform_actions - personal_actions description: OAuth use case for the MCP server view example: platform_actions editedByUser: type: object nullable: true description: Information about the user who last edited the MCP server view properties: editedAt: type: number nullable: true description: Unix timestamp of when the edit occurred example: 1625184000 fullName: type: string nullable: true description: Full name of the editor example: John Doe imageUrl: type: string nullable: true description: Profile image URL of the editor example: https://example.com/profile/johndoe.jpg securitySchemes: BearerAuth: type: http scheme: bearer description: Your DUST API key is a Bearer token.