Dust MCP API

Register a client-side Model Context Protocol server with a Dust workspace, stream MCP tool-call requests over SSE, return tool execution results back to Dust agents, and keep the server's heartbeat alive. Also lists the MCP server views available in a space.

Dust MCP API is one of 9 APIs that Dust publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include AI, Artificial Intelligence, Dust, MCP, and Tools. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

dust-mcp-api-openapi.yml Raw ↑
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.