delete_version_series
Delete all versions of a document in the content repository by providing the version series ID.
Instructions
Deletes an entire version series (all versions of a document) in the content repository.
:param version_series_id: The version series ID (GUID) to delete. If you don't have the version series ID, first call get_document_property on the document to get the version series ID.
:returns: If successful, returns the deleted version series ID as a string. If unsuccessful, returns a ToolError with details about the failure.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| version_series_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- The tool handler function for 'delete_version_series'. It receives a version_series_id parameter, performs a GraphQL mutation (deleteVersionSeries) to delete the entire version series, and returns the deleted ID or a ToolError on failure.
@mcp.tool( name="delete_version_series", annotations=ToolAnnotations(destructiveHint=True) ) async def delete_version_series( version_series_id: str, ) -> Union[str, ToolError]: """ Deletes an entire version series (all versions of a document) in the content repository. :param version_series_id: The version series ID (GUID) to delete. If you don't have the version series ID, first call get_document_property on the document to get the version series ID. :returns: If successful, returns the deleted version series ID as a string. If unsuccessful, returns a ToolError with details about the failure. """ method_name = "delete_version_series" try: # Prepare the mutation to delete the version series mutation = """ mutation ($object_store_name: String!, $identifier: String!) { deleteVersionSeries( repositoryIdentifier: $object_store_name identifier: $identifier ) { id className } } """ # Prepare variables for the GraphQL mutation variables = { "object_store_name": graphql_client.object_store, "identifier": version_series_id, } # Execute the GraphQL mutation logger.info("Executing version series deletion") response: Union[ToolError, Dict[str, Any]] = ( await graphql_client_execute_async_wrapper( logger, method_name, graphql_client, query=mutation, variables=variables, ) ) if isinstance(response, ToolError): return response # Return just the id as a string return response["data"]["deleteVersionSeries"]["id"] except Exception as e: logger.error("%s failed: %s", method_name, str(e)) logger.error(traceback.format_exc()) return ToolError( message=f"{method_name} failed: {str(e)}. Trace available in server logs." ) - src/cs_mcp_server/mcp_server_main.py:250-310 (registration)The registration function register_server_tools shows that register_document_tools (which contains delete_version_series) is called for CORE and FULL server types.
def register_server_tools( graphql_client: GraphQLClient, metadata_cache: MetadataCache, server_type: ServerType, ) -> None: """ Register tools based on the server type. Args: graphql_client: The initialized GraphQL client metadata_cache: The metadata cache instance server_type: The type of server (ServerType enum) """ # Ensure mcp is initialized (type narrowing for type checker) assert mcp is not None logger.info("Registering tools for %s server", server_type.value) # Register tools based on server type if server_type == ServerType.CORE: register_document_tools(mcp, graphql_client, metadata_cache) register_folder_tools(mcp, graphql_client) register_class_tools(mcp, graphql_client, metadata_cache) register_search_tools(mcp, graphql_client, metadata_cache) # register_annotation_tools(mcp, graphql_client) # register_custom_object_tools(mcp, graphql_client) logger.info("Core tools registered") elif server_type == ServerType.AI__DOCUMENT_INSIGHT: register_advanced_search_tools(mcp, graphql_client, metadata_cache) register_vector_search_tool(mcp, graphql_client) logger.info("AI Document Insight tools registered") elif server_type == ServerType.LEGAL_HOLD: register_hold_tools(mcp, graphql_client) logger.info("Legal hold tools registered") elif server_type == ServerType.PROPERTY_EXTRACTION_AND_CLASSIFICATION: register_property_extraction_tools(mcp, graphql_client, metadata_cache) register_classification_tools(mcp, graphql_client, metadata_cache) logger.info("Property extraction and classification tools registered") elif server_type == ServerType.FULL: register_document_tools(mcp, graphql_client, metadata_cache) register_folder_tools(mcp, graphql_client) register_class_tools(mcp, graphql_client, metadata_cache) register_search_tools(mcp, graphql_client, metadata_cache) # register_annotation_tools(mcp, graphql_client) # register_custom_object_tools(mcp, graphql_client) register_vector_search_tool(mcp, graphql_client) register_advanced_search_tools(mcp, graphql_client, metadata_cache) register_annotation_tools(mcp, graphql_client) register_hold_tools(mcp, graphql_client) register_property_extraction_tools(mcp, graphql_client, metadata_cache) register_classification_tools(mcp, graphql_client, metadata_cache) logger.info("All tools registered") else: raise ValueError(f"Unknown server type: {server_type}") - src/cs_mcp_server/tools/__init__.py:14-44 (registration)The tools __init__.py exports register_document_tools from the documents module, which contains the delete_version_series handler.
""" Tools module for MCP servers. This module exports all tool registration functions from the tools directory. """ # Import all registration functions to make them available when importing from this package from .classes import register_class_tools from .search import register_search_tools from .legal_hold import register_hold_tools from .vector_search import register_vector_search_tool from .property_extraction import register_property_extraction_tools from .annotations import register_annotation_tools from .documents import register_document_tools from .folders import register_folder_tools from .custom_objects import register_custom_object_tools # Define __all__ to specify what gets imported with "from tools import *" __all__ = [ "register_class_tools", "register_document_tools", "register_search_tools", "register_hold_tools", "register_vector_search_tool", "register_property_extraction_tools", "register_annotation_tools", "register_folder_tools", "register_custom_object_tools", ] - Constant VERSION_SERIES_CLASS used to identify the VersionSeries class type in the system.
VERSION_SERIES_CLASS = "VersionSeries" - The core model defines versionSeries as an optional field on Document objects, which is referenced in the documentation for retrieving version series IDs.
versionSeries: Optional[dict] = Field(default=None, description="Version series")