naftiko: 1.0.0-alpha2 info: label: Salesforce Sales Pipeline Management description: Unified workflow capability for managing the full sales pipeline in Salesforce Sales Cloud. Combines REST API access to accounts, contacts, leads, opportunities, and activities with analytics for pipeline reporting. Designed for sales operations teams and AI assistants managing deal flow. tags: - Salesforce - Sales Cloud - CRM - Sales Pipeline - Opportunities - Accounts - Leads created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SALESFORCE_ACCESS_TOKEN: SALESFORCE_ACCESS_TOKEN capability: consumes: - 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: $. - type: http namespace: salesforce-analytics baseUri: https://{instance}.salesforce.com/services/data/v59.0/analytics description: Salesforce Analytics REST API authentication: type: bearer token: '{{SALESFORCE_ACCESS_TOKEN}}' resources: - name: reports path: /reports description: Report management operations: - name: list-reports method: GET description: List all available reports outputRawFormat: json outputParameters: - name: result type: object value: $. - name: report path: /reports/{reportId} description: Individual report operations operations: - name: get-report method: GET description: Get report metadata inputParameters: - name: reportId in: path type: string required: true description: Salesforce report ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: run-report method: POST description: Run a report synchronously inputParameters: - name: reportId in: path type: string required: true description: Salesforce report ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dashboards path: /dashboards description: Dashboard management operations: - name: list-dashboards method: GET description: List all dashboards outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dashboard path: /dashboards/{dashboardId} description: Individual dashboard operations operations: - name: get-dashboard method: GET description: Get dashboard metadata inputParameters: - name: dashboardId in: path type: string required: true description: Salesforce dashboard ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: refresh-dashboard method: PUT description: Refresh dashboard data inputParameters: - name: dashboardId in: path type: string required: true description: Salesforce dashboard ID outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: sales-pipeline-api description: Unified REST API for Salesforce sales pipeline management. resources: - path: /v1/accounts name: accounts description: Account management operations: - method: POST name: create-account description: Create a new account record call: salesforce-sales-rest.create-sobject-record with: sObjectName: Account outputParameters: - type: object mapping: $. - path: /v1/accounts/{id} name: account description: Individual account operations operations: - method: GET name: get-account description: Get an account record call: salesforce-sales-rest.get-sobject-record with: sObjectName: Account id: rest.id outputParameters: - type: object mapping: $. - method: PATCH name: update-account description: Update an account record call: salesforce-sales-rest.update-sobject-record with: sObjectName: Account id: rest.id outputParameters: - type: object mapping: $. - path: /v1/contacts name: contacts description: Contact management operations: - method: POST name: create-contact description: Create a new contact record call: salesforce-sales-rest.create-sobject-record with: sObjectName: Contact outputParameters: - type: object mapping: $. - path: /v1/contacts/{id} name: contact description: Individual contact operations operations: - method: GET name: get-contact description: Get a contact record call: salesforce-sales-rest.get-sobject-record with: sObjectName: Contact id: rest.id outputParameters: - type: object mapping: $. - path: /v1/leads name: leads description: Lead management operations: - method: POST name: create-lead description: Create a new lead record call: salesforce-sales-rest.create-sobject-record with: sObjectName: Lead outputParameters: - type: object mapping: $. - path: /v1/leads/{id} name: lead description: Individual lead operations operations: - method: GET name: get-lead description: Get a lead record call: salesforce-sales-rest.get-sobject-record with: sObjectName: Lead id: rest.id outputParameters: - type: object mapping: $. - path: /v1/opportunities name: opportunities description: Opportunity management operations: - method: POST name: create-opportunity description: Create a new opportunity call: salesforce-sales-rest.create-sobject-record with: sObjectName: Opportunity outputParameters: - type: object mapping: $. - path: /v1/opportunities/{id} name: opportunity description: Individual opportunity operations operations: - method: GET name: get-opportunity description: Get an opportunity record call: salesforce-sales-rest.get-sobject-record with: sObjectName: Opportunity id: rest.id outputParameters: - type: object mapping: $. - method: PATCH name: update-opportunity description: Update an opportunity call: salesforce-sales-rest.update-sobject-record with: sObjectName: Opportunity id: rest.id outputParameters: - type: object mapping: $. - path: /v1/query name: soql-query description: SOQL query for advanced data access operations: - method: GET name: query description: Execute a SOQL query call: salesforce-sales-rest.soql-query with: q: rest.q outputParameters: - type: object mapping: $. - path: /v1/reports name: reports description: Sales reports operations: - method: GET name: list-reports description: List available sales reports call: salesforce-analytics.list-reports outputParameters: - type: object mapping: $. - path: /v1/reports/{reportId}/run name: report-execution description: Report execution operations: - method: POST name: run-report description: Execute a sales report call: salesforce-analytics.run-report with: reportId: rest.reportId outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: sales-pipeline-mcp transport: http description: MCP server for AI-assisted sales pipeline management in Salesforce. tools: - name: get-account description: Get a Salesforce Account record by ID hints: readOnly: true idempotent: true call: salesforce-sales-rest.get-sobject-record with: sObjectName: Account id: tools.id outputParameters: - type: object mapping: $. - name: create-account description: Create a new Account record in Salesforce hints: readOnly: false destructive: false call: salesforce-sales-rest.create-sobject-record with: sObjectName: Account outputParameters: - type: object mapping: $. - name: update-account description: Update an existing Account record hints: readOnly: false idempotent: true call: salesforce-sales-rest.update-sobject-record with: sObjectName: Account id: tools.id outputParameters: - type: object mapping: $. - name: get-contact description: Get a Salesforce Contact record by ID hints: readOnly: true idempotent: true call: salesforce-sales-rest.get-sobject-record with: sObjectName: Contact id: tools.id outputParameters: - type: object mapping: $. - name: create-contact description: Create a new Contact record in Salesforce hints: readOnly: false destructive: false call: salesforce-sales-rest.create-sobject-record with: sObjectName: Contact outputParameters: - type: object mapping: $. - name: get-lead description: Get a Salesforce Lead record by ID hints: readOnly: true idempotent: true call: salesforce-sales-rest.get-sobject-record with: sObjectName: Lead id: tools.id outputParameters: - type: object mapping: $. - name: create-lead description: Create a new Lead record in Salesforce hints: readOnly: false destructive: false call: salesforce-sales-rest.create-sobject-record with: sObjectName: Lead outputParameters: - type: object mapping: $. - name: get-opportunity description: Get a Salesforce Opportunity record by ID hints: readOnly: true idempotent: true call: salesforce-sales-rest.get-sobject-record with: sObjectName: Opportunity id: tools.id outputParameters: - type: object mapping: $. - name: create-opportunity description: Create a new Opportunity record in Salesforce hints: readOnly: false destructive: false call: salesforce-sales-rest.create-sobject-record with: sObjectName: Opportunity outputParameters: - type: object mapping: $. - name: update-opportunity description: Update an existing Opportunity (stage, amount, close date) hints: readOnly: false idempotent: true call: salesforce-sales-rest.update-sobject-record with: sObjectName: Opportunity id: tools.id outputParameters: - type: object mapping: $. - name: soql-query description: Execute a SOQL query to retrieve CRM records with custom filters hints: readOnly: true idempotent: true openWorld: true call: salesforce-sales-rest.soql-query with: q: tools.q outputParameters: - type: object mapping: $. - name: sosl-search description: Search across Salesforce objects using SOSL hints: readOnly: true idempotent: true call: salesforce-sales-rest.sosl-search with: q: tools.q outputParameters: - type: object mapping: $. - name: get-org-api-limits description: Get current API usage and limits for the Salesforce org hints: readOnly: true idempotent: true call: salesforce-sales-rest.get-org-limits outputParameters: - type: object mapping: $. - name: list-sales-reports description: List available Salesforce reports for sales analytics hints: readOnly: true idempotent: true openWorld: true call: salesforce-analytics.list-reports outputParameters: - type: object mapping: $. - name: run-sales-report description: Execute a Salesforce report and retrieve results for pipeline analysis hints: readOnly: true idempotent: false call: salesforce-analytics.run-report with: reportId: tools.reportId outputParameters: - type: object mapping: $. - name: list-dashboards description: List available Salesforce dashboards hints: readOnly: true idempotent: true call: salesforce-analytics.list-dashboards outputParameters: - type: object mapping: $.