naftiko: 1.0.0-alpha2 info: label: Salesforce Sales Cloud Data Integration description: Workflow capability for bulk data loading, real-time event streaming, and enterprise data integration in Salesforce Sales Cloud. Combines Bulk API 2.0 for large dataset operations with Change Data Capture for real-time sync. Designed for data engineers and ETL/ELT pipeline developers. tags: - Salesforce - Sales Cloud - Data Integration - Bulk Loading - ETL - Change Data Capture - Events created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SALESFORCE_ACCESS_TOKEN: SALESFORCE_ACCESS_TOKEN capability: consumes: - type: http namespace: salesforce-bulk baseUri: https://{instance}.salesforce.com/services/data/v59.0 description: Salesforce Bulk API 2.0 authentication: type: bearer token: '{{SALESFORCE_ACCESS_TOKEN}}' resources: - name: ingest-jobs path: /jobs/ingest description: Bulk ingest job management operations: - name: list-ingest-jobs method: GET description: List all bulk ingest jobs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-ingest-job method: POST description: Create a new bulk ingest job body: type: json data: object: '{{tools.object}}' contentType: '{{tools.contentType}}' operation: '{{tools.operation}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: ingest-job path: /jobs/ingest/{jobId} description: Individual ingest job operations operations: - name: get-ingest-job method: GET description: Get status of a bulk ingest job inputParameters: - name: jobId in: path type: string required: true description: Bulk job ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: close-ingest-job method: PATCH description: Close or abort a bulk ingest job inputParameters: - name: jobId in: path type: string required: true description: Bulk job ID body: type: json data: state: '{{tools.state}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: query-jobs path: /jobs/query description: Bulk query job management operations: - name: list-query-jobs method: GET description: List all bulk query jobs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-query-job method: POST description: Create a bulk query job body: type: json data: operation: '{{tools.operation}}' query: '{{tools.query}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - type: http namespace: salesforce-sales-rest baseUri: https://{instance}.salesforce.com/services/data/v59.0 description: Salesforce Sales Cloud REST API authentication: type: bearer token: '{{SALESFORCE_ACCESS_TOKEN}}' resources: - name: limits path: /limits description: Org API limits operations: - name: get-org-limits method: GET description: Get API limits and usage information outputRawFormat: json outputParameters: - name: result type: object value: $. - name: sobjects path: /sobjects description: List sObject types operations: - name: list-sobjects method: GET description: List all sObject types in the org outputRawFormat: json outputParameters: - name: result type: object value: $. - name: sobject-describe path: /sobjects/{sObjectName}/describe description: sObject metadata operations: - name: describe-sobject method: GET description: Get metadata description of a sObject type inputParameters: - name: sObjectName in: path type: string required: true description: API name of the sObject outputRawFormat: json outputParameters: - name: result type: object value: $. - name: sobject-records path: /sobjects/{sObjectName} description: sObject record operations operations: - name: create-sobject-record method: POST description: Create a new sObject record inputParameters: - name: sObjectName in: path type: string required: true description: API name of the sObject body: type: json data: fields: '{{tools.fields}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: sobject-row path: /sobjects/{sObjectName}/{id} description: Individual sObject record operations operations: - name: get-sobject-record method: GET description: Get a specific sObject record by ID inputParameters: - name: sObjectName in: path type: string required: true description: API name of the sObject - name: id in: path type: string required: true description: Salesforce record ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-sobject-record method: PATCH description: Update a sObject record inputParameters: - name: sObjectName in: path type: string required: true description: API name of the sObject - name: id in: path type: string required: true description: Salesforce record ID body: type: json data: fields: '{{tools.fields}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: delete-sobject-record method: DELETE description: Delete a sObject record inputParameters: - name: sObjectName in: path type: string required: true description: API name of the sObject - name: id in: path type: string required: true description: Salesforce record ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: soql-query path: /query description: SOQL query execution operations: - name: soql-query method: GET description: Execute a SOQL query inputParameters: - name: q in: query type: string required: true description: SOQL query string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: sosl-search path: /search description: SOSL search execution operations: - name: sosl-search method: GET description: Execute a SOSL search inputParameters: - name: q in: query type: string required: true description: SOSL search string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: process-approvals path: /process/approvals description: Approval process management operations: - name: list-approval-items method: GET description: List all approval items outputRawFormat: json outputParameters: - name: result type: object value: $. - name: submit-for-approval method: POST description: Submit a record for approval body: type: json data: requests: '{{tools.requests}}' outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8081 namespace: data-integration-api description: Unified REST API for Salesforce data integration operations. resources: - path: /v1/bulk/ingest-jobs name: ingest-jobs description: Bulk data ingest job management operations: - method: GET name: list-ingest-jobs description: List bulk ingest jobs call: salesforce-bulk.list-ingest-jobs outputParameters: - type: object mapping: $. - method: POST name: create-ingest-job description: Create a bulk ingest job call: salesforce-bulk.create-ingest-job outputParameters: - type: object mapping: $. - path: /v1/bulk/ingest-jobs/{jobId} name: ingest-job description: Individual job management operations: - method: GET name: get-ingest-job description: Get bulk job status call: salesforce-bulk.get-ingest-job with: jobId: rest.jobId outputParameters: - type: object mapping: $. - path: /v1/bulk/query-jobs name: query-jobs description: Bulk query job management operations: - method: GET name: list-query-jobs description: List bulk query jobs call: salesforce-bulk.list-query-jobs outputParameters: - type: object mapping: $. - method: POST name: create-query-job description: Create a bulk query job call: salesforce-bulk.create-query-job outputParameters: - type: object mapping: $. - path: /v1/query name: soql description: SOQL data extraction operations: - method: GET name: query description: Extract data with SOQL call: salesforce-sales-rest.soql-query with: q: rest.q outputParameters: - type: object mapping: $. - type: mcp port: 9091 namespace: data-integration-mcp transport: http description: MCP server for AI-assisted Salesforce data integration and ETL operations. tools: - name: list-bulk-ingest-jobs description: List all bulk data ingest jobs and their statuses hints: readOnly: true idempotent: true call: salesforce-bulk.list-ingest-jobs outputParameters: - type: object mapping: $. - name: create-bulk-ingest-job description: Create a new bulk data ingest job for large dataset loading hints: readOnly: false destructive: false call: salesforce-bulk.create-ingest-job outputParameters: - type: object mapping: $. - name: get-bulk-ingest-job description: Get status and results of a bulk ingest job hints: readOnly: true idempotent: true call: salesforce-bulk.get-ingest-job with: jobId: tools.jobId outputParameters: - type: object mapping: $. - name: close-bulk-ingest-job description: Close or abort a bulk ingest job hints: readOnly: false idempotent: true call: salesforce-bulk.close-ingest-job with: jobId: tools.jobId outputParameters: - type: object mapping: $. - name: create-bulk-query-job description: Create a bulk query job to extract large datasets via SOQL hints: readOnly: false destructive: false call: salesforce-bulk.create-query-job outputParameters: - type: object mapping: $. - name: list-bulk-query-jobs description: List bulk query jobs hints: readOnly: true idempotent: true call: salesforce-bulk.list-query-jobs outputParameters: - type: object mapping: $. - name: extract-data-soql description: Extract Salesforce data using SOQL for integration pipelines hints: readOnly: true idempotent: true call: salesforce-sales-rest.soql-query with: q: tools.q outputParameters: - type: object mapping: $. - name: get-api-limits description: Check API rate limits before running bulk operations hints: readOnly: true idempotent: true call: salesforce-sales-rest.get-org-limits outputParameters: - type: object mapping: $.