naftiko: 1.0.0-alpha2 info: label: Seismic Content Management description: Unified workflow capability for managing sales enablement content in Seismic — combining content management, folder organization, search, and analytics for content teams and sales managers. tags: - Seismic - Content Management - Sales Enablement - Documents - Analytics 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-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}}' exposes: - type: rest port: 8080 namespace: seismic-content-mgmt-api description: Unified REST API for Seismic content management and analytics. resources: - path: /v1/content name: content-items description: Manage content items. operations: - method: GET name: list-content-items description: List content items in Seismic. call: seismic-content.list-content-items with: folderId: rest.folderId query: rest.query offset: rest.offset limit: rest.limit outputParameters: - type: object mapping: $. - method: POST name: create-content-item description: Upload and create a content item. call: seismic-content.create-content-item outputParameters: - type: object mapping: $. - path: /v1/content/{contentId} name: content-item description: Manage a specific content item. operations: - method: GET name: get-content-item description: Get a content item. call: seismic-content.get-content-item with: contentId: rest.contentId outputParameters: - type: object mapping: $. - method: DELETE name: delete-content-item description: Delete a content item. call: seismic-content.delete-content-item with: contentId: rest.contentId outputParameters: - type: object mapping: $. - path: /v1/content/{contentId}/url name: content-url description: Get a shareable URL for a content item. operations: - method: GET name: get-content-url description: Get a temporary shareable URL. call: seismic-content.get-content-url with: contentId: rest.contentId outputParameters: - type: object mapping: $. - path: /v1/folders name: folders description: Manage content folders. operations: - method: GET name: list-folders description: List content folders. call: seismic-content.list-folders outputParameters: - type: object mapping: $. - method: POST name: create-folder description: Create a content folder. call: seismic-content.create-folder outputParameters: - type: object mapping: $. - path: /v1/search name: search description: Search content. operations: - method: POST name: search-content description: Search content items. call: seismic-content.search-content outputParameters: - type: object mapping: $. - path: /v1/analytics/content name: content-analytics description: Content usage analytics. operations: - method: GET name: get-content-analytics description: Get content analytics. call: seismic-analytics.get-content-analytics outputParameters: - type: object mapping: $. - path: /v1/analytics/top-content name: top-content description: Top performing content. operations: - method: GET name: get-top-content description: Get top performing content. call: seismic-analytics.get-top-content outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: seismic-content-mgmt-mcp transport: http description: MCP server for AI-assisted Seismic content management. tools: - name: list-content-items description: List content items in Seismic, optionally filtered by folder or search query. hints: readOnly: true openWorld: true call: seismic-content.list-content-items with: folderId: tools.folderId query: tools.query offset: tools.offset limit: tools.limit outputParameters: - type: object mapping: $. - name: get-content-item description: Get details of a specific content item by ID. hints: readOnly: true openWorld: false call: seismic-content.get-content-item with: contentId: tools.contentId outputParameters: - type: object mapping: $. - name: search-content description: Search for content items using full-text search and filters. hints: readOnly: true openWorld: true call: seismic-content.search-content outputParameters: - type: object mapping: $. - name: list-folders description: List content folders in Seismic. hints: readOnly: true openWorld: true call: seismic-content.list-folders outputParameters: - type: object mapping: $. - name: get-content-url description: Get a temporary shareable URL for a content item. hints: readOnly: true openWorld: false call: seismic-content.get-content-url with: contentId: tools.contentId outputParameters: - type: object mapping: $. - name: get-content-analytics description: Get analytics on content usage, views, downloads, and engagement. hints: readOnly: true openWorld: true call: seismic-analytics.get-content-analytics outputParameters: - type: object mapping: $. - name: get-top-content description: Get top-performing content ranked by views, downloads, shares, or engagement. hints: readOnly: true openWorld: true call: seismic-analytics.get-top-content outputParameters: - type: object mapping: $.