Seismic MCP Server
The MCP Server implements the Model Context Protocol (MCP) to expose backend capabilities as structured tools that can be discovered and invoked by MCP-compatible clients
Server Endpoints
The MCP Server is available via the following endpoints:
Tenant endpoint
https://mcp.seismic.com/v1/tenants/<tenant_name>
- Automatically detects the tenant from the URL
- Directly routes authentication to the tenant-specific context
Global endpoint
https://mcp.seismic.com/v1
- Uses central authentication
- Users are required to manually provide their tenant name during authentication. Apart from this there is no difference between these two endpoints.
Available Tools
| Tool | Description |
|---|---|
| Get contents by Generative Search | Retrieves relevant sources for a user query without generating an answer. It Search and return the most relevant content recommendations ranked by relevance score. |
| Generate answers or summaries by Generative Search | Generates a natural-language answer to a user question and returns the supporting sources used. |
| Generate LiveSend link | Generates a LiveSend link with configurable settings and provided contents, enabling controlled sharing and engagement tracking. |
Tool Schemas
Get contents by Generative Search
Get contents by Generative Search- Name: generative_search_for_retrieving_contents
- Description: Retrieves relevant sources for a user query without generating an answer. It Search and return the most relevant content recommendations ranked by relevance score.
Schema
{
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "(same as query). User prompt can be a natural language and keyword"
},
"size": {
"type": "integer",
"description": "How many sources to be returned, default to 10, not more than 20",
"default": 10,
"minimum": 1,
"maximum": 20
},
"filter": {
"type": "object",
"description": "ONLY include this parameter when the user explicitly asks to filter content (e.g., by date range, folder, content type, or a named property). Do NOT add a filter to improve relevance or precision on general queries — omit it entirely unless the user specifically requested filtering.",
"properties": {
"operator": {
"type": "string",
"description": "Value should be 'and' or 'or'"
},
"conditions": {
"type": "array",
"items": {
"title": "Seismic.Search.GenSearch.Conditions",
"type": "object",
"properties": {
"attribute": {
"type": "string",
"description": "The property name to filter by. Use the following predefined content properties: contentVersionId, contentId, id, engagementMeetingId, format, contentProfiles, profileVersionId, or folderPath. For date-based filtering, use: createdDate, expireDate, modifiedDate, publishDate, versionActivatedTime, or versionCreatedDate. For custom properties, use the format 'custom.{propertyName}' where {propertyName} is the exact custom property name."
},
"operator": {
"type": "string",
"description": "The value should be 'in','notin','or','and'. for date type or integer custom property, its value should be 'greaterthan' 'greaterthanorequal' 'lessthan' 'lessthanorequal'"
},
"value": {
"type": "array",
"items": {
"type": "string"
},
"description": "The values of the property"
}
},
"example": {
"attribute": "custom.region",
"operator": "in",
"value": [
"EMEA"
]
}
},
"description": "One array contain multi conditions"
},
"filters": {
"type": "array",
"items": {
"type": "object",
"description": "Same as the parent filter",
"additionalProperties": true
},
"description": "One array contains multi filters"
}
},
"example": {
"operator": "and",
"conditions": [
{
"attribute": "custom.region",
"operator": "in",
"value": [
"EMEA"
]
}
],
"filters": []
}
}
},
"required": [
"term"
]
}
{
"type": "object",
"properties": {
"queryTimeInMs": {
"type": "integer",
"description": "Time to query the data from search database"
},
"serviceTimeInMs": {
"type": "integer",
"description": "Total time of complete the request"
},
"totalCount": {
"type": "integer",
"description": "Total number of the content returned"
},
"documents": {
"type": "array",
"description": "Source documents related to the search",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier of the content"
},
"versionId": {
"type": [
"string",
"null"
],
"description": "Content version id. Knowledge content will not have this field"
},
"repository": {
"type": "string",
"description": "Repository of the content like DocCenter, NewsCenter or Knowledge"
},
"name": {
"type": "string",
"description": "Content name"
},
"teamsiteId": {
"type": [
"string",
"null"
],
"description": "Teamsite id of the standard content. Knowledge content will not have this field"
},
"type": {
"type": "string",
"description": "Type of the content. FAQ for knowledge, \"3\" for Seismic"
},
"format": {
"type": [
"string",
"null"
],
"description": "Content format like mp4, pdf, ppt, etc. Knowledge content will not have this field"
},
"properties": {
"type": [
"array",
"null"
],
"description": "Custom properties of the content"
},
"thumbnailUrl": {
"type": [
"string",
"null"
],
"description": "Thumbnail url of the content"
},
"pageNumber": {
"type": "integer",
"description": "Page number of the published text"
},
"downloadUrl": {
"type": [
"string",
"null"
],
"description": "Download url of the content"
},
"createdDate": {
"type": [
"string",
"null"
],
"description": "Date created of the content"
},
"publishDate": {
"type": [
"string",
"null"
],
"description": "Date published of the content"
},
"modifiedDate": {
"type": "string",
"description": "Last modified date of the content"
},
"majorVersion": {
"type": "integer",
"description": "Major version of the content"
},
"minorVersion": {
"type": "integer",
"description": "Minor version of the content"
},
"sourceText": {
"type": "string",
"description": "Paginate text of the matched search term"
},
"status": {
"type": "string",
"description": "Status of the content, can be published, approved, and etc"
},
"score": {
"type": "number",
"description": "Score of the matched text, the higher score the more relavant"
},
"applicationUrls": {
"type": "array",
"description": "The application urls of the content like universal link or knowledge link",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the application url"
},
"url": {
"type": "string",
"description": "Url of the content"
}
},
"example": {
"name": "DocCenter Universal Link",
"url": "https://quake.seismic.com/Link/Content/DCNPLvGpV9KE2Iv9-ZmBnhXQ"
}
}
}
}
}
}
}
}
Generate answers or summaries by Generative Search
Generate answers or summaries by Generative Search- Name: generative_search_for_answer_or_summary
- Description: Generates a natural-language answer to a user question and returns the supporting sources used.
Schema
{
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "(same as query). User prompt can be a natural language and keyword"
},
"filter": {
"type": "object",
"description": "ONLY include this parameter when the user explicitly asks to filter content (e.g., by date range, folder, content type, or a named property). Do NOT add a filter to improve relevance or precision on general queries — omit it entirely unless the user specifically requested filtering.",
"properties": {
"operator": {
"type": "string",
"description": "Value should be 'and' or 'or'"
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attribute": {
"type": "string",
"description": "The property name to filter by. Use the following predefined content properties: contentVersionId, contentId, id, engagementMeetingId, format, contentProfiles, profileVersionId, or folderPath. For date-based filtering, use: createdDate, expireDate, modifiedDate, publishDate, versionActivatedTime, or versionCreatedDate. For custom properties, use the format 'custom.{propertyName}' where {propertyName} is the exact custom property name."
},
"operator": {
"type": "string",
"description": "The value should be 'in','notin','or','and'. for date type or integer custom property, its value should be 'greaterthan' 'greaterthanorequal' 'lessthan' 'lessthanorequal'"
},
"value": {
"type": "array",
"items": {
"type": "string"
},
"description": "The values of the property"
}
},
"example": {
"attribute": "custom.region",
"operator": "in",
"value": [
"EMEA"
]
}
},
"description": "One array contain multi conditions"
},
"filters": {
"type": "array",
"items": {
"type": "object",
"description": "Same as the parent filter",
"additionalProperties": true
},
"description": "One array contains multi filters"
}
},
"example": {
"operator": "and",
"conditions": [
{
"attribute": "custom.region",
"operator": "in",
"value": [
"EMEA"
]
}
],
"filters": []
}
}
},
"required": [
"term"
]
}
{
"type": "object",
"properties": {
"answer": {
"type": "string",
"description": "Answer generated from the LLM model"
},
"totalCount": {
"type": "integer",
"description": "Total number of the content returned"
},
"documents": {
"type": "array",
"description": "Source files related to the search",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier of the content"
},
"versionId": {
"type": [
"string",
"null"
],
"description": "Content version id. Knowledge content will not have this field"
},
"repository": {
"type": "string",
"description": "Repository of the content like DocCenter, NewsCenter or Knowledge"
},
"name": {
"type": "string",
"description": "Content name"
},
"teamsiteId": {
"type": [
"string",
"null"
],
"description": "Teamsite id of the standard content. Knowledge content will not have this field"
},
"type": {
"type": "string",
"description": "Type of the content. FAQ for knowledge, \"3\" for Seismic"
},
"format": {
"type": [
"string",
"null"
],
"description": "Content format like mp4, pdf, ppt, etc. Knowledge content will not have this field"
},
"properties": {
"type": [
"array",
"null"
],
"description": "Custom properties of the content"
},
"thumbnailUrl": {
"type": [
"string",
"null"
],
"description": "Thumbnail url of the content"
},
"pageNumber": {
"type": "integer",
"description": "Page number of the published text"
},
"downloadUrl": {
"type": [
"string",
"null"
],
"description": "Download url of the content"
},
"createdDate": {
"type": [
"string",
"null"
],
"description": "Date created of the content"
},
"publishDate": {
"type": [
"string",
"null"
],
"description": "Date published of the content"
},
"modifiedDate": {
"type": "string",
"description": "Last modified date of the content"
},
"majorVersion": {
"type": "integer",
"description": "Major version of the content"
},
"minorVersion": {
"type": "integer",
"description": "Minor version of the content"
},
"sourceText": {
"type": "string",
"description": "Paginate text of the matched search term"
},
"status": {
"type": "string",
"description": "Status of the content, can be published, approved, and etc"
},
"score": {
"type": "number",
"description": "Score of the matched text, the higher score the more relavant"
},
"applicationUrls": {
"type": "array",
"description": "The application urls of the content like universal link or knowledge link",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the application url"
},
"url": {
"type": "string",
"description": "Url of the content"
}
},
"example": {
"name": "DocCenter Universal Link",
"url": "https://quake.seismic.com/Link/Content/DCNPLvGpV9KE2Iv9-ZmBnhXQ"
}
}
}
}
}
}
}
}
Generate LiveSend link
Generate LiveSend link- Name: generate_livesend_link
- Description: Generates a LiveSend link with configurable settings and provided contents, enabling controlled sharing and engagement tracking.
Schema
{
"type": "object",
"properties": {
"contents": {
"type": "array",
"description": "A list of universal content IDs for the contents to be included in the LiveSend. \nThis field must not be null and should contain at least one item. Supported contents include \nDocCenter content and Workspace content in Seismic.\n- Workspace content: \n - Format: `Workspace__{Type}__{ContentId}__{VersionId}`\n - Example: `Workspace__File__0a584955-aea5-40b9-82a0-7310acb178d6__a85a14dc-964b-4fd3-b163-47b7474c1700`\n- DocCenter content: \n - Format: `ContentManager__{Type}__{ContentId}__{VersionId}__{TeamSiteId}`\n - Example: `ContentManager__File__c8d89fb3-0f18-4c9d-9721-fda7d983fbbc__ed90a0c5-5256-4ce8-a822-4a7259e163e8__3193b16d-9c2e-4422-b3e1-a8ecb1f40a51`",
"items": {
"type": "string"
}
},
"contexts": {
"type": "array",
"description": "Array of contexts of the relevant interaction.\nOptional.",
"items": {
"type": "object",
"properties": {
"contextId": {
"type": "string",
"example": "00646000009eMGL",
"description": "The id of the context the integrator is in. Typically the record id from the external system."
},
"contextName": {
"type": "string",
"example": "Edge Communications",
"description": "The name of the context. Typically this is the record name."
},
"contextType": {
"type": "string",
"example": "Opportunity",
"description": "The type or class of the context. Typically the record type such as Account, Contact, or Opportunity. This field is case sensitive."
},
"source": {
"type": "string",
"example": "seismic-embedded",
"description": "The name of the application or integration which collected the context.",
"enum": [
"seismic-contact-picker",
"seismic-embedded",
"seismic-attribution",
"seismic-aura",
"seismic-context-picker",
"seismic-ai"
]
},
"sourceType": {
"type": "string",
"example": "ambient",
"enum": [
"override",
"explicit",
"navigational",
"foreign-key",
"heuristic",
"ambient"
],
"description": "The type of the source."
},
"systemId": {
"type": "string",
"example": "00566547531rXYZ",
"description": "The id for the external system which is critical when the tenant can be connected to multiple instances of the same system (such as Salesforce or Dynamics)."
},
"systemType": {
"type": "string",
"example": "Salesforce",
"description": "The system type."
}
},
"required": [
"contextId",
"contextName",
"contextType",
"source",
"sourceType",
"systemId",
"systemType"
]
}
},
"recipients": {
"type": "array",
"description": "A list of recipients.\nOptional.",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The email address of the recipient.",
"example": "[email protected]"
},
"firstName": {
"type": "string",
"description": "The first name of the recipient.\nOptional.",
"example": "Michael"
},
"lastName": {
"type": "string",
"description": "The last name of the recipient.\nOptional.",
"example": "Brown"
},
"contexts": {
"type": "array",
"description": "Array of contexts specific to this recipient in the context of the relevant interaction.\nOptional.",
"items": {
"type": "object",
"properties": {
"contextEmail": {
"type": "string",
"example": "[email protected]",
"description": "The email address from the context, where appropriate."
},
"contextId": {
"type": "string",
"description": "The id of the context the integrator is in. Typically the record id from the external system.",
"example": "00646000009eMGL"
},
"contextName": {
"type": "string",
"example": "Edge Communications",
"description": "The name of the context. Typically this is the record name."
},
"contextType": {
"type": "string",
"example": "Opportunity",
"description": "The type or class of the context. Typically the record type such as Account, Contact, or Opportunity. This field is case sensitive."
},
"source": {
"type": "string",
"example": "seismic-embedded",
"description": "The name of the application or integration which collected the context.",
"enum": [
"seismic-contact-picker",
"seismic-embedded",
"seismic-attribution",
"seismic-aura",
"seismic-context-picker",
"seismic-ai"
]
},
"sourceType": {
"type": "string",
"description": "The type of the source.",
"example": "ambient",
"enum": [
"override",
"explicit",
"navigational",
"foreign-key",
"heuristic",
"ambient"
]
},
"systemId": {
"type": "string",
"description": "The id for the external system which is critical when the tenant can be connected to multiple instances of the same system (such as Salesforce or Dynamics).",
"example": "00566547531rXYZ"
},
"systemType": {
"type": "string",
"example": "Salesforce",
"description": "The system type."
}
},
"required": [
"contextId",
"contextName",
"contextType",
"source",
"sourceType",
"systemId",
"systemType"
]
}
}
},
"required": [
"email"
]
}
},
"settings": {
"type": [
"object",
"null"
],
"description": "The settings of the LiveSend link.\nOptional. If not set or assigned a null value, a system default value will be assigned.",
"properties": {
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "The expiration date for the LiveSend link(in UTC time format).\nOptional. If not set or assigned a null value, a system default value will be assigned."
},
"password": {
"type": "string",
"description": "Password protection for the LiveSend link."
},
"allowDownload": {
"type": "boolean",
"description": "Indicates whether the viewers are allowed to download the content.\nOptional. If not set or assigned a null value, a system default value will be assigned."
},
"notificationType": {
"type": "string",
"enum": [
"None",
"Summary",
"All"
],
"description": "Notification type for LiveSend link sessions.\nOptional. If not set or assigned a null value, a system default value will be assigned."
}
}
}
},
"required": [
"contents"
]
}
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the created LiveSend."
},
"internalUrl": {
"type": "string",
"description": "The internal URL for accessing the LiveSend within Seismic Engagement Center."
},
"externalUrl": {
"type": "string",
"description": "The link URL for accessing the LiveSend."
}
},
"required": []
}
Authentication
This server requires a standard Seismic JWT user access token with the seismic.mcp scope.
- The
seismic.mcpscope allows clients to establish a connection with the MCP Server. - This scope alone does not grant permission to invoke tools.
- Tool invocation requires additional permission approved by the tenant administrator.
Example:
Authorization: Bearer <access_token>
Obtaining OAuth Credentials
Users can obtain the authentication client with seismic.mcp scope by creating an MCP-type app in the Seismic App Registry Portal. This app provides the necessary client credentials to request a Seismic JWT token.
See Creating and Installing an MCP app in Seismic for more details.
Early Access
To create MCP type apps reach out to your CSM for getting it enabled for your tenant.
Usage Examples
- Finding answers from contents in Seismic
Example Prompts
Suggest some best practices for sellers, include sources
How is the SEP market evolving? Answer from my Seismic contents
- Generate LiveSend links
Example Prompt
Generate a LiveSend link for O1 CaseStudy document
- Discover contents and content summarization
Example Prompts
Find the content link for Mars Case Study
Summarize the file for Mars case study
Support
Updated about 7 hours ago