naftiko: 1.0.0-alpha2 info: label: Seismic Sales Enablement description: Unified workflow capability for sales enablement workflows in Seismic — combining dynamic document generation, user management, analytics, and content delivery for sales reps, managers, and enablement teams. tags: - Seismic - Sales Enablement - Document Generation - LiveDocs - User Management - Reporting created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SEISMIC_ACCESS_TOKEN: SEISMIC_ACCESS_TOKEN capability: consumes: - type: http namespace: seismic-content baseUri: https://api.seismic.com/integration/v2 description: Seismic Content API for managing sales enablement content. authentication: type: bearer token: '{{SEISMIC_ACCESS_TOKEN}}' resources: - name: content-items path: /content description: Manage content items in the Seismic platform. operations: - name: list-content-items method: GET description: Retrieve a list of content items. inputParameters: - name: folderId in: query type: string required: false description: Filter by folder ID. - name: contentProfileId in: query type: string required: false description: Filter by content profile ID. - name: query in: query type: string required: false description: Search query. - name: offset in: query type: integer required: false description: Pagination offset. - name: limit in: query type: integer required: false description: Maximum items to return. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-content-item method: POST description: Create a new content item. outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' folderId: '{{tools.folderId}}' description: '{{tools.description}}' - name: content-item path: /content/{contentId} description: Manage a specific content item. operations: - name: get-content-item method: GET description: Retrieve details of a specific content item. inputParameters: - name: contentId in: path type: string required: true description: Unique identifier of the content item. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-content-item method: PATCH description: Update metadata of a content item. inputParameters: - name: contentId in: path type: string required: true description: Unique identifier of the content item. outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' description: '{{tools.description}}' - name: delete-content-item method: DELETE description: Delete a content item. inputParameters: - name: contentId in: path type: string required: true description: Unique identifier of the content item. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: content-url path: /content/{contentId}/url description: Get a temporary URL for a content item. operations: - name: get-content-url method: GET description: Retrieve a temporary URL for accessing a content item. inputParameters: - name: contentId in: path type: string required: true description: Unique identifier of the content item. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: content-versions path: /content/{contentId}/versions description: Manage content item versions. operations: - name: list-content-versions method: GET description: List versions of a content item. inputParameters: - name: contentId in: path type: string required: true description: Unique identifier of the content item. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: folders path: /folders description: Manage content folders. operations: - name: list-folders method: GET description: List content folders. inputParameters: - name: parentId in: query type: string required: false description: Filter by parent folder ID. - name: offset in: query type: integer required: false description: Pagination offset. - name: limit in: query type: integer required: false description: Maximum items to return. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-folder method: POST description: Create a new content folder. outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' parentId: '{{tools.parentId}}' - name: search path: /search description: Search content in the Seismic platform. operations: - name: search-content method: POST description: Search for content items across the Seismic platform. outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: query: '{{tools.query}}' offset: '{{tools.offset}}' limit: '{{tools.limit}}' - name: content-properties path: /content-properties description: Manage content property definitions. operations: - name: list-content-properties method: GET description: List content property definitions. inputParameters: - name: offset in: query type: integer required: false description: Pagination offset. - name: limit in: query type: integer required: false description: Maximum items to return. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: content-profiles path: /content-profiles description: Manage content profiles. operations: - name: list-content-profiles method: GET description: List content profiles. outputRawFormat: json outputParameters: - name: result type: object value: $. - type: http namespace: seismic-livedocs baseUri: https://api.seismic.com/integration/v2 description: Seismic LiveDocs API for dynamic document generation. authentication: type: bearer token: '{{SEISMIC_ACCESS_TOKEN}}' resources: - name: livedocs-generate path: /livedocs/generate description: Generate LiveDoc documents from templates. operations: - name: generate-livedoc method: POST description: Generate a LiveDoc by merging data into a template. outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: templateId: '{{tools.templateId}}' name: '{{tools.name}}' outputFormat: '{{tools.outputFormat}}' inputs: '{{tools.inputs}}' async: '{{tools.async}}' - name: livedoc-templates path: /livedocs/templates description: Manage LiveDoc templates. operations: - name: list-livedoc-templates method: GET description: List available LiveDoc templates. inputParameters: - name: query in: query type: string required: false description: Search query to filter templates. - name: outputFormat in: query type: string required: false description: Filter by supported output format. - name: offset in: query type: integer required: false description: Pagination offset. - name: limit in: query type: integer required: false description: Maximum items to return. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: livedoc-template path: /livedocs/templates/{templateId} description: Manage a specific LiveDoc template. operations: - name: get-livedoc-template method: GET description: Retrieve details of a specific LiveDoc template. inputParameters: - name: templateId in: path type: string required: true description: Unique identifier of the template. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: template-inputs path: /livedocs/templates/{templateId}/inputs description: Get input fields for a LiveDoc template. operations: - name: get-livedoc-template-inputs method: GET description: Retrieve input field definitions for a template. inputParameters: - name: templateId in: path type: string required: true description: Unique identifier of the template. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: generation-jobs path: /livedocs/jobs description: Manage asynchronous LiveDoc generation jobs. operations: - name: list-generation-jobs method: GET description: List LiveDoc generation jobs and their statuses. inputParameters: - name: status in: query type: string required: false description: Filter by job status. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: generation-job path: /livedocs/jobs/{jobId} description: Manage a specific generation job. operations: - name: get-generation-job method: GET description: Get the status and result of a generation job. inputParameters: - name: jobId in: path type: string required: true description: Unique identifier of the generation job. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: data-sources path: /livedocs/datasources description: Manage data sources for LiveDoc generation. operations: - name: list-data-sources method: GET description: List configured data sources for LiveDoc generation. inputParameters: - name: type in: query type: string required: false description: Filter by data source type. outputRawFormat: json outputParameters: - name: result type: object value: $. - type: http namespace: seismic-analytics baseUri: https://api.seismic.com/integration/v2 description: Seismic Analytics API for content and user engagement reporting. authentication: type: bearer token: '{{SEISMIC_ACCESS_TOKEN}}' resources: - name: content-analytics path: /analytics/content description: Analytics on content usage and engagement. operations: - name: get-content-analytics method: GET description: Retrieve analytics data for content items. inputParameters: - name: contentId in: query type: string required: false description: Filter for a specific content item. - name: startDate in: query type: string required: false description: Start date (ISO 8601). - name: endDate in: query type: string required: false description: End date (ISO 8601). - name: granularity in: query type: string required: false description: 'Time granularity: daily, weekly, monthly.' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: top-content path: /analytics/content/top description: Top-performing content analytics. operations: - name: get-top-content method: GET description: Retrieve ranked top-performing content. inputParameters: - name: metric in: query type: string required: true description: 'Metric to rank by: views, downloads, shares, engagement.' - name: startDate in: query type: string required: false description: Start date. - name: endDate in: query type: string required: false description: End date. - name: limit in: query type: integer required: false description: Number of top items to return. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-analytics path: /analytics/users description: Analytics on user activity and adoption. operations: - name: get-user-analytics method: GET description: Retrieve analytics data on user activity. inputParameters: - name: userId in: query type: string required: false description: Filter for a specific user. - name: startDate in: query type: string required: false description: Start date. - name: endDate in: query type: string required: false description: End date. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: delivery-analytics path: /analytics/deliveries description: Analytics on content delivery to buyers. operations: - name: get-delivery-analytics method: GET description: Retrieve analytics on content deliveries. inputParameters: - name: userId in: query type: string required: false description: Filter by sender user ID. - name: contentId in: query type: string required: false description: Filter by content item. - name: startDate in: query type: string required: false description: Start date. - name: endDate in: query type: string required: false description: End date. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: reports path: /analytics/reports description: Analytical reports management. operations: - name: list-reports method: GET description: List available analytical reports. inputParameters: - name: type in: query type: string required: false description: Filter by report type. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: report path: /analytics/reports/{reportId} description: Manage a specific report. operations: - name: get-report method: GET description: Retrieve a specific report with data. inputParameters: - name: reportId in: path type: string required: true description: Unique identifier of the report. - name: startDate in: query type: string required: false description: Start date for report period. - name: endDate in: query type: string required: false description: End date for report period. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: report-export path: /analytics/reports/{reportId}/export description: Export a report. operations: - name: export-report method: POST description: Initiate an export of a report. inputParameters: - name: reportId in: path type: string required: true description: Unique identifier of the report. outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: format: '{{tools.format}}' startDate: '{{tools.startDate}}' endDate: '{{tools.endDate}}' - type: http namespace: seismic-users baseUri: https://api.seismic.com/integration/v2 description: Seismic User Management API. authentication: type: bearer token: '{{SEISMIC_ACCESS_TOKEN}}' resources: - name: users path: /users description: Manage user accounts. operations: - name: list-users method: GET description: List users in the Seismic platform. inputParameters: - name: query in: query type: string required: false description: Search query. - name: groupId in: query type: string required: false description: Filter by group. - name: roleId in: query type: string required: false description: Filter by role. - name: status in: query type: string required: false description: Filter by status. - name: offset in: query type: integer required: false description: Pagination offset. - name: limit in: query type: integer required: false description: Maximum items to return. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-user method: POST description: Create a new user account. outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: email: '{{tools.email}}' firstName: '{{tools.firstName}}' lastName: '{{tools.lastName}}' roleId: '{{tools.roleId}}' - name: user path: /users/{userId} description: Manage a specific user. operations: - name: get-user method: GET description: Get details of a specific user. inputParameters: - name: userId in: path type: string required: true description: Unique identifier of the user. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-user method: PATCH description: Update a user's profile. inputParameters: - name: userId in: path type: string required: true description: Unique identifier of the user. outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: firstName: '{{tools.firstName}}' lastName: '{{tools.lastName}}' status: '{{tools.status}}' - name: delete-user method: DELETE description: Delete a user account. inputParameters: - name: userId in: path type: string required: true description: Unique identifier of the user. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: groups path: /groups description: Manage user groups. operations: - name: list-groups method: GET description: List user groups. inputParameters: - name: query in: query type: string required: false description: Search query. - name: offset in: query type: integer required: false description: Pagination offset. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-group method: POST description: Create a new user group. outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' description: '{{tools.description}}' - name: roles path: /roles description: Manage roles and permissions. operations: - name: list-roles method: GET description: List available roles. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: teams path: /teams description: Manage team structures. operations: - name: list-teams method: GET description: List teams. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8081 namespace: seismic-sales-enablement-api description: Unified REST API for Seismic sales enablement workflows. resources: - path: /v1/documents/generate name: document-generation description: Generate personalized sales documents. operations: - method: POST name: generate-livedoc description: Generate a personalized LiveDoc. call: seismic-livedocs.generate-livedoc outputParameters: - type: object mapping: $. - path: /v1/documents/templates name: document-templates description: List available document templates. operations: - method: GET name: list-livedoc-templates description: List LiveDoc templates. call: seismic-livedocs.list-livedoc-templates outputParameters: - type: object mapping: $. - path: /v1/documents/jobs name: generation-jobs description: Track document generation jobs. operations: - method: GET name: list-generation-jobs description: List generation jobs. call: seismic-livedocs.list-generation-jobs outputParameters: - type: object mapping: $. - path: /v1/content name: content-items description: Browse sales content. operations: - method: GET name: list-content-items description: List content items. call: seismic-content.list-content-items outputParameters: - type: object mapping: $. - path: /v1/analytics/users name: user-analytics description: Sales rep adoption analytics. operations: - method: GET name: get-user-analytics description: Get user analytics. call: seismic-analytics.get-user-analytics outputParameters: - type: object mapping: $. - path: /v1/analytics/reports name: reports description: Analytics reports. operations: - method: GET name: list-reports description: List reports. call: seismic-analytics.list-reports outputParameters: - type: object mapping: $. - path: /v1/users name: users description: Manage users. operations: - method: GET name: list-users description: List users. call: seismic-users.list-users outputParameters: - type: object mapping: $. - type: mcp port: 9091 namespace: seismic-sales-enablement-mcp transport: http description: MCP server for AI-assisted Seismic sales enablement. tools: - name: generate-livedoc description: Generate a personalized sales document by merging data into a Seismic LiveDoc template. hints: readOnly: false openWorld: false call: seismic-livedocs.generate-livedoc outputParameters: - type: object mapping: $. - name: list-livedoc-templates description: List available LiveDoc templates for document generation. hints: readOnly: true openWorld: true call: seismic-livedocs.list-livedoc-templates outputParameters: - type: object mapping: $. - name: get-livedoc-template description: Get details of a specific LiveDoc template. hints: readOnly: true openWorld: false call: seismic-livedocs.get-livedoc-template with: templateId: tools.templateId outputParameters: - type: object mapping: $. - name: get-livedoc-template-inputs description: Get required input fields for a LiveDoc template. hints: readOnly: true openWorld: false call: seismic-livedocs.get-livedoc-template-inputs with: templateId: tools.templateId outputParameters: - type: object mapping: $. - name: get-generation-job description: Check the status of an async LiveDoc generation job. hints: readOnly: true openWorld: false call: seismic-livedocs.get-generation-job with: jobId: tools.jobId outputParameters: - type: object mapping: $. - name: list-content-items description: Browse available sales content in Seismic. hints: readOnly: true openWorld: true call: seismic-content.list-content-items outputParameters: - type: object mapping: $. - name: search-content description: Search Seismic content library. hints: readOnly: true openWorld: true call: seismic-content.search-content outputParameters: - type: object mapping: $. - name: get-content-url description: Get a shareable URL for delivering content to prospects. hints: readOnly: true openWorld: false call: seismic-content.get-content-url with: contentId: tools.contentId outputParameters: - type: object mapping: $. - name: get-user-analytics description: Get sales rep adoption and usage analytics. hints: readOnly: true openWorld: true call: seismic-analytics.get-user-analytics outputParameters: - type: object mapping: $. - name: get-delivery-analytics description: Get analytics on content delivered to buyers. hints: readOnly: true openWorld: true call: seismic-analytics.get-delivery-analytics outputParameters: - type: object mapping: $. - name: list-reports description: List available Seismic analytics reports. hints: readOnly: true openWorld: true call: seismic-analytics.list-reports outputParameters: - type: object mapping: $. - name: list-users description: List Seismic platform users. hints: readOnly: true openWorld: true call: seismic-users.list-users outputParameters: - type: object mapping: $. - name: list-data-sources description: List CRM data sources available for LiveDoc generation. hints: readOnly: true openWorld: true call: seismic-livedocs.list-data-sources outputParameters: - type: object mapping: $.