> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getoneprofile.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Finish an MCP OAuth connection

> Exchange the provider redirect's code for the grant, persist the connection, and return the server with a live probe of its tools.



## OpenAPI

````yaml /openapi.json post /table-enrichments/mcp-servers/oauth/callback/
openapi: 3.1.0
info:
  contact:
    email: support@getoneprofile.ai
    name: Oneprofile Support
  description: >-
    REST API reference for Oneprofile, the GTM data layer for your CRM. Manage
    tables, enrichments, and integrations. Authenticate with an API key to get
    started.
  termsOfService: https://www.getoneprofile.ai/terms
  title: API Reference | Oneprofile
  version: '0.0'
servers:
  - url: https://api.getoneprofile.ai
security: []
tags:
  - description: Sender profiles, connected mailboxes, tags, and the Google connect flow.
    name: senders
  - description: The workspace do-not-contact list, enforced before every send.
    name: suppression
  - description: 'Sequence authoring: the graph, the table-backed audience, previews.'
    name: sequences
  - description: >-
      The LinkedIn channel: connecting an account to a sender, its safety limits
      and history, and the protocol the browser extension speaks.
    name: linkedin
  - description: 'The unified outreach inbox: threads, replies, labels, events.'
    name: inbox
  - description: 'The AI reply layer: workspace settings, drafts, and approval.'
    name: inbox-ai
  - description: Notification rules, per-user preferences, and the Slack connection.
    name: notifications
  - description: Endpoints for seeing all available integration types.
    name: integration-types
  - description: Endpoints for creating and managing integrations.
    name: integrations
  - description: Endpoints for the generic OAuth install/claim app-listings engine.
    name: app-listings
  - description: Endpoints for creating and managing API keys.
    name: apikey
  - description: Endpoints for managing billing and subscription information.
    name: billing
  - description: Endpoints for creating and managing tables.
    name: tables
  - description: Endpoints for table columns, formula previews, and on-demand column runs.
    name: table-columns
  - description: Endpoints for table rows and manual cell edits.
    name: table-rows
  - description: Endpoints for observing and cancelling table recompute runs.
    name: table-runs
  - description: >-
      Endpoints for org-shared per-column display preferences: hidden, pinned,
      width, and colour tint.
    name: table-ui-prefs
  - description: >-
      Endpoints for the org-shared names given to the column tint palette: what
      this organisation calls each colour. Org-level, not per-table.
    name: table-column-color-labels
  - description: >-
      Endpoints for the enrichment action catalog, model list, presets, draft
      generation, and saved agents.
    name: table-enrichments
  - description: >-
      Endpoints for teaching a saved agent from example rows: training sessions,
      per-row feedback, and the proposed prompt to approve.
    name: agent-training
  - description: >-
      The durable audit trail of a table's enrichment actions: configured,
      edited, run, cancelled, and settled cost.
    name: table-enrichment-audit-logs
  - description: Endpoints for saving and applying column templates.
    name: table-templates
  - description: Server-sent change feed for a table's grid.
    name: table-events
  - description: 'Endpoints for org-shared saved table views: sort, filters, hidden columns.'
    name: table-views
  - description: >-
      The per-table AI Assistant: named conversations, the column suggestions a
      build turn produces, and the questions an analyze turn answers.
    name: table-assistant
  - description: >-
      Endpoints for PER-USER table preferences: favourites and recently opened.
      Unlike the rest of the table surface these are personal, so two members of
      one organisation legitimately see different answers.
    name: table-user-prefs
  - description: >-
      Endpoints for building a table from an uploaded CSV: upload and preview
      the inferred columns, commit the reviewed mapping, then poll the row load.
    name: table-imports
  - description: Endpoint for downloading a table's rows as CSV.
    name: table-export
  - description: >-
      Endpoints for the integration a table imports from: attach and preview it,
      promote imported fields into columns, and run the import on demand.
    name: table-sources
  - description: >-
      Endpoints for a table's recurring import cadence: set it, pause it, and
      read the next fire times.
    name: table-schedules
  - description: >-
      Endpoints for pushing a table's rows out to a connected integration: list
      writable destinations, derive their write capabilities, and map export
      columns.
    name: table-writeback
  - description: >-
      Endpoints backing a lookup column's setup: the connections whose records a
      column could read, and the identity fields one record type can be looked
      up by.
    name: table-integration-lookup
  - description: >-
      Endpoints for sourcing leads from the lead database: count and preview
      matches, land them in a table, and keep saved searches.
    name: find-leads
  - description: >-
      Endpoints for discovering a domain's subdomains from public certificate
      logs and landing the results in a table.
    name: find-subdomains
  - description: Endpoints for the credit balance meter and usage reporting.
    name: credits
  - description: >-
      Endpoints for the workspace referral program: the shareable link, the
      friends who joined through it, and claiming a code after signup.
    name: referral
  - description: >-
      Endpoints for the design partner program's customer surface: whether this
      workspace is a design partner, the badges its feedback has earned, and
      sending and reading that feedback.
    name: design-partner
  - description: >-
      Endpoints for the org-level AI business context — company description,
      ideal customer profile, buyer personas and interest signals — plus
      domain-based generation.
    name: ai-context
paths:
  /table-enrichments/mcp-servers/oauth/callback/:
    post:
      tags:
        - table-enrichments
      summary: Finish an MCP OAuth connection
      description: >-
        Exchange the provider redirect's code for the grant, persist the
        connection, and return the server with a live probe of its tools.
      operationId: finish_mcp_oauth_connect
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/McpOauthCallbackRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/McpOauthCallbackResponseSchema'
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Unknown catalog entry
        '422':
          description: The sign-in attempt expired or was rejected
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Internal server error.
        '502':
          description: The authorization service is unreachable
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Service unavailable.
      security:
        - HTTPBearer: []
        - APIKeyHeader: []
components:
  schemas:
    McpOauthCallbackRequestSchema:
      description: The provider redirect's payload, relayed by the frontend callback page.
      properties:
        code:
          maxLength: 4096
          minLength: 1
          title: Code
          type: string
        state:
          maxLength: 256
          minLength: 1
          title: State
          type: string
      required:
        - code
        - state
      title: McpOauthCallbackRequestSchema
      type: object
    McpOauthCallbackResponseSchema:
      description: The finished connection and a live probe of what it can reach.
      properties:
        server:
          $ref: '#/components/schemas/McpServerReadSchema'
        verify:
          $ref: '#/components/schemas/McpServerVerifyResponseSchema'
      required:
        - server
        - verify
      title: McpOauthCallbackResponseSchema
      type: object
    UnauthorizedResponse:
      properties:
        detail:
          description: The detail of why the request is unauthorized.
          title: Detail
          type: string
      required:
        - detail
      title: UnauthorizedResponse
      type: object
    ForbiddenResponse:
      properties:
        detail:
          description: The detail of why the request is forbidden.
          title: Detail
          type: string
      required:
        - detail
      title: ForbiddenResponse
      type: object
    NotFoundResponse:
      properties:
        detail:
          description: The detail of why the resource was not found.
          title: Detail
          type: string
      required:
        - detail
      title: NotFoundResponse
      type: object
    ServerErrorResponse:
      properties:
        detail:
          description: The detail of why the server returned an error.
          title: Detail
          type: string
      required:
        - detail
      title: ServerErrorResponse
      type: object
    McpServerReadSchema:
      description: One org-level MCP server as the agent editor renders it.
      properties:
        account_label:
          anyOf:
            - type: string
            - type: 'null'
          description: 'OAuth servers only: best-effort account/workspace name of the grant.'
          title: Account Label
        auth_mode:
          description: 'How requests authenticate: ''headers'' (static) or ''oauth''.'
          title: Auth Mode
          type: string
        catalog_slug:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The curated-catalog entry this server came from; null for custom
            servers.
          title: Catalog Slug
        created_at:
          format: date-time
          title: Created At
          type: string
        enabled:
          title: Enabled
          type: boolean
        header_names:
          description: >-
            The names of the configured request headers. Values are credentials
            and are never returned by the API.
          items:
            type: string
          title: Header Names
          type: array
        id:
          format: uuid
          title: Id
          type: string
        name:
          title: Name
          type: string
        oauth_status:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            OAuth servers only: 'active' or 'needs_reconnect'; null for
            static-header servers and never-connected rows.
          title: Oauth Status
        updated_at:
          format: date-time
          title: Updated At
          type: string
        url:
          title: Url
          type: string
      required:
        - id
        - name
        - url
        - header_names
        - enabled
        - auth_mode
        - catalog_slug
        - oauth_status
        - account_label
        - created_at
        - updated_at
      title: McpServerReadSchema
      type: object
    McpServerVerifyResponseSchema:
      description: A live probe's result; an unreachable server is data, not an error.
      properties:
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        ok:
          title: Ok
          type: boolean
        tools:
          items:
            $ref: '#/components/schemas/McpToolSchema'
          title: Tools
          type: array
      required:
        - ok
        - error
        - tools
      title: McpServerVerifyResponseSchema
      type: object
    McpToolSchema:
      description: One tool a probed MCP server offers.
      properties:
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        input_schema:
          additionalProperties: true
          title: Input Schema
          type: object
        name:
          title: Name
          type: string
      required:
        - name
        - description
        - input_schema
      title: McpToolSchema
      type: object
  securitySchemes:
    HTTPBearer:
      scheme: bearer
      type: http
    APIKeyHeader:
      in: header
      name: X-API-Key
      type: apiKey

````