get_document_versions
Retrieves all versions in a document's version series by providing the document ID or path.
Instructions
Retrieves all versions in the version series that includes the specified document. This returns all versions (past, current, and future) that belong to the same version series.
:param identifier: The document id or path (required). This can be either the document's ID (GUID) or its path in the repository (e.g., "/Folder1/document.pdf").
:returns: A dictionary containing the version series details, including: - versionSeries (dict): A dictionary containing version series details, including: - versions (list): A list of all versions in the series, with each version containing: - versionables (list): A list of versionable objects, each containing: - majorVersionNumber (int): The major version number. The format to print out version number is majorVersionNumber.minorVersionNumber. - minorVersionNumber (int): The minor version number. The format to print out version number is majorVersionNumber.minorVersionNumber. - id (str): The unique identifier of the version's document id.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The `register_document_tools` function registers the `get_document_versions` tool. The handler function is `get_document_versions` (defined as an async inner function at line 66), which takes an `identifier` parameter and executes a GraphQL query to retrieve all versions in the version series. It builds a GraphQL query `getDocumentVersions` and returns the result from `graphql_client.execute_async()`. No schema validation (beyond the `identifier: str` parameter) or helper utilities are needed.
def register_document_tools( mcp: FastMCP, graphql_client: GraphQLClient, metadata_cache: MetadataCache ) -> None: @mcp.tool( name="get_document_versions", ) async def get_document_versions(identifier: str) -> dict: """ Retrieves all versions in the version series that includes the specified document. This returns all versions (past, current, and future) that belong to the same version series. :param identifier: The document id or path (required). This can be either the document's ID (GUID) or its path in the repository (e.g., "/Folder1/document.pdf"). :returns: A dictionary containing the version series details, including: - versionSeries (dict): A dictionary containing version series details, including: - versions (list): A list of all versions in the series, with each version containing: - versionables (list): A list of versionable objects, each containing: - majorVersionNumber (int): The major version number. The format to print out version number is majorVersionNumber.minorVersionNumber. - minorVersionNumber (int): The minor version number. The format to print out version number is majorVersionNumber.minorVersionNumber. - id (str): The unique identifier of the version's document id. """ query = """ query getDocumentVersions($object_store_name: String!, $identifier: String!){ document( repositoryIdentifier: $object_store_name identifier: $identifier ) { versionSeries { versions { versionables { id majorVersionNumber minorVersionNumber } } } } } """ variables = { "identifier": identifier, "object_store_name": graphql_client.object_store, } return await graphql_client.execute_async(query=query, variables=variables) - src/cs_mcp_server/tools/documents.py:60-65 (registration)The registration of the `get_document_versions` tool happens via the `@mcp.tool(name='get_document_versions')` decorator on line 63-64, inside the `register_document_tools` function. The tool is registered when `register_document_tools` is called from `mcp_server_main.py` (line 270 for CORE server type, line 293 for FULL server type).
def register_document_tools( mcp: FastMCP, graphql_client: GraphQLClient, metadata_cache: MetadataCache ) -> None: @mcp.tool( name="get_document_versions", ) - The GraphQL query string (lines 82-99) embedded in the handler is a helper/data component that defines the query to retrieve document versions. It queries the `document` by identifier, traverses to `versionSeries` -> `versions` -> `versionables`, returning `id`, `majorVersionNumber`, and `minorVersionNumber`.
query = """ query getDocumentVersions($object_store_name: String!, $identifier: String!){ document( repositoryIdentifier: $object_store_name identifier: $identifier ) { versionSeries { versions { versionables { id majorVersionNumber minorVersionNumber } } } } } """ variables = { "identifier": identifier, "object_store_name": graphql_client.object_store, } return await graphql_client.execute_async(query=query, variables=variables)