Skip to main content
Glama
ibm-ecm

IBM Core Content Services MCP Server

Official
by ibm-ecm

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SCOPENoOAuth scope
PASSWORDNoAuthentication password (required)
USERNAMENoAuthentication username (required)
CLIENT_IDNoOAuth client ID
LOG_LEVELNoLogging level for the server. Valid values: DEBUG, INFO, WARNING, ERROR, CRITICALINFO
TOKEN_URLNoOAuth token URL
GRANT_TYPENoOAuth grant type
SERVER_URLNoContent Services GraphQL API endpoint URL (required)
SSL_ENABLEDNoWhether SSL is enabled. Can be set to 'true', a path to a certificate file, or 'false' (not recommended for production)true
OBJECT_STORENoObject store identifier (required)
POOL_MAXSIZENoMaximum pool size100
CLIENT_SECRETNoOAuth client secret
TOKEN_REFRESHNoToken refresh interval in seconds1800
ZENIAM_IAM_URLNoIAM url to send user/pwd or client_id/client_secret to IAM to get back IAM token, for example: <iam_host_route>/idprovider/v1/auth/identitytoken
ZENIAM_ZEN_URLNoZen url to send IAM token for exchange to Zen token, for example: <zen_host_route>/v1/preauth/validateAuth
REQUEST_TIMEOUTNoRequest timeout in seconds30.0
ZENIAM_IAM_USERNoIf grant type is password, specify the IAM user
POOL_CONNECTIONSNoNumber of connection pool connections100
ZENIAM_CLIENT_IDNoIf grant type is client_credentials, specify the IAM client id
ZENIAM_IAM_SCOPENoIAM scope
TOKEN_SSL_ENABLEDNoWhether SSL is enabled for token endpoint. Can be set to 'true', a path to a certificate file, or 'false' (not recommended for production)true
ZENIAM_IAM_PASSWORDNoIf grant type is password, specify the IAM password
ZENIAM_CLIENT_SECRETNoIf grant type is client_credentials, specify the IAM client secret
ZENIAM_IAM_GRANT_TYPENoIAM grant type
ZENIAM_IAM_SSL_ENABLEDNoWhether SSL is enabled for IAM route. Can be set to 'true', a path to a certificate file, or 'false' (not recommended for production)true
ZENIAM_ZEN_SSL_ENABLEDNoWhether SSL is enabled for Zen exchange route. Can be set to 'true', a path to a certificate file, or 'false' (not recommended for production)true

Tools

Functions exposed to the LLM to take actions

NameDescription
get_document_versions

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: - 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.

get_document_text_extract

Retrieves a document's text extract content.

: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: The text content of the document's text extract annotation. If multiple text extracts are found, they will be concatenated. Returns an empty string if no text extract is found.

create_document

PREREQUISITES IN ORDER: To use this tool, you MUST call two other tools first in a specific sequence.

  1. determine_class tool to get the class_identifier.

  2. get_class_property_descriptions to get a list of valid properties for the given class_identifier

Description: Creates a document in the content repository with specified properties.

:param classIdentifier: The class identifier for the document. If not provided, defaults to "Document". :param id: The unique GUID for the document. If not provided, a new GUID with curly braces will be generated. :param documentProperties: Properties for the document including name, content, mimeType, etc. :param fileInFolderIdentifier: The identifier or path of the folder to file the document in. This always starts with "/". :param checkinAction: Check-in action parameters. CheckinMinorVersion should always be included. :param file_paths: Optional list of file paths to upload as the document's content.

:returns: If successful, returns a Document object with its properties. If unsuccessful, returns a ToolError with details about the failure.

get_class_specific_properties_name

Retrieves a list of class-specific property names for a document based on its class definition.

This tool first determines the document's class, then fetches the class metadata to identify all available properties specific to that document class. It filters out system properties and hidden properties.

Use this tool when you need to know what custom properties are available for a specific document, which can then be used for targeted property extraction or search operations.

: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 list of property display names that are available for the document's class. These properties can be used for further operations like property extraction or search.

update_document_properties

PREREQUISITES IN ORDER: To use this tool, you MUST call get_class_property_descriptions first to get a list of valid properties for the document's current class.

Description: Updates an existing document's properties in the content repository. This tool ONLY updates properties and does NOT change the document's class. To change a document's class, use the update_document_class tool instead.

: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"). :param document_properties: Properties to update for the document including name, mimeType, etc.

:returns: If successful, returns a Document object with its updated properties. If unsuccessful, returns a ToolError with details about the failure.

update_document_class

PREREQUISITES IN ORDER: To use this tool, you MUST call determine_class first to get the new class_identifier.

Description: Changes a document's class in the content repository. WARNING: Changing a document's class can result in loss of properties if the new class does not have the same properties as the old class. Properties that don't exist in the new class will be removed from the document.

This tool ONLY changes the document's class and does NOT update any properties. To update properties after changing the class, use the update_document_properties tool.

: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"). :param class_identifier: The new class identifier for the document (required).

:returns: If successful, returns a Document object with the new class. If unsuccessful, returns a ToolError with details about the failure.

checkin_document

Checks in a document in the content repository with specified properties.

:param identifier: The identifier (required). This can be either a reservation_id or document_id. Reservation ID (GUID) is prioritized. Otherwise, we use document_id (GUID). :param checkin_action: Check-in action parameters for the document. :param document_properties: Properties to update for the document during check-in. :param file_paths: Optional list of file paths to upload as the document's content.

:returns: If successful, returns a Document object with its updated properties. If unsuccessful, returns a ToolError with details about the failure.

checkout_document

Checks out a document in the content repository.

: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"). :param document_properties: Properties to update for the document during check-out. :param checkout_action: Check-out action parameters for the document. :param download_folder_path: Optional path to a folder where the document content will be downloaded. If not provided but content download is needed, the user will be prompted to provide it.

:returns: If successful, returns a Document object with its updated properties. If unsuccessful, returns a ToolError with details about the failure.

delete_version_series

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.

delete_document_version

Deletes a specific document version in the content repository.

: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: If successful, returns the deleted Document id. If unsuccessful, returns a ToolError with details about the failure.

get_document_properties

Retrieves a document's properties from the content repository by ID or path.

Note: Use this tool ONLY when you need to retrieve a document using its ID or file path. For searching documents by other properties, use the repository_search tool instead.

: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: If successful, returns the Document object with its properties. If unsuccessful, returns a ToolError with details about the failure.

cancel_document_checkout

Cancels a document checkout in the content repository.

:param identifier: The identifier (required). This can be either a reservation_id or document_id. Reservation ID (GUID) is prioritized. Otherwise, we use document_id (GUID).

:returns: If successful, returns a Document object with its updated properties. If unsuccessful, returns a ToolError with details about the failure.

create_folder

PREREQUISITES IN ORDER: To use this tool, you MUST call two other tools first in a specific sequence.

  1. determine_class tool to get the class_identifier.

  2. get_class_property_descriptions to get a list of valid properties for the given class_identifier

Creates a folder in the content repository with specified properties. This tool interfaces with the GraphQL API to create a new folder object with the provided parameters.

:param name string Yes The name of the folder to be created. :param parent_folder string Yes The identifier of the parent folder where this folder will be created. :param class_identifier string No The class identifier for the folder. If not provided, defaults to "Folder". :param id string No The unique identifier for the folder. If not provided, a new UUID with curly braces will be generated (format: {uuid}). :param folder_properties FolderPropertiesInput No properties of to set.

:returns: If successful, return a folder object with the following properties: id: The identifier of the created folder name: The name of the folder parent_folder: The identifier of the parent folder creator: The user who created the folder class_identifier: The class identifier of the folder Else, return a ToolError instance that describes the error.

delete_folder

Deletes a folder in the content repository. This tool interfaces with the GraphQL API to delete a folder object with the provided id.

:param id_or_path string Yes The unique identifier or path for the folder. If not provided, an error will be returned.

:returns: If successful, return the folder id. Else, return a ToolError instance that describes the error.

unfile_document

Unfile a document from a folder in the content repository. This tool interfaces with the GraphQL API to unfile document from folder with the provided ids.

:param folder_id_or_path string Yes The unique identifier or path for the folder. If not provided, an error will be returned. :param document_id string Yes The unique identifier for the document. If not provided, an error will be returned.

:returns: If successful, return the folder id. Else, return a ToolError instance that describes the error.

update_folder

PREREQUISITES IN ORDER: To use this tool, you MUST call two other tools first in a specific sequence.

  1. determine_class tool to get the class_identifier.

  2. get_class_property_descriptions to get a list of valid properties for the given class_identifier

Description: Updates an existing folder in the content repository with specified properties.

:param identifier: String The folder identifier or path (required). This can be either the folder's ID (GUID) or its path in the repository (e.g., "/Folder1/folder123"). :param class_identifier: String Optional. The class identifier for the folder. If provided, allows changing the folder's class. :param folder_properties: FolderPropertiesInput Properties to update for the folder including name, etc

:returns: If successful, returns a Folder object with its updated properties. If unsuccessful, returns a ToolError with details about the failure.

get_folder_documents

Retrieves a folder's contained documents.

:param folder_id_or_path: The folder id or path.

:returns: A list contains documents in the folder

list_root_classes

List all available root class types in the repository.

This tool should be called first to get a list of valid root class names before using the list_all_classes tool.

:returns: A list of all available root class types (e.g., ["Document", "Folder", "Annotation", "CustomObject"])

list_all_classes

List all available classes for a specific root class type.

IMPORTANT: Only use this tool when the user explicitly asks to see a list of classes of a specific root class. If a user does not specify a root_class, you MUST request the root class from them. To get a list of all valid root class names that can be used with this tool, you can call the list_root_classes_tool tool.

:param root_class: The root class to list all classes for (e.g., "Document", "Folder", "Annotation", "CustomObject")

:returns: A list of all classes for the specified root class, or a ToolError if an error occurs

determine_class

Find classes that match the given keywords by looking for substring matches in class names and descriptions.

IMPORTANT: To get a list of all valid class names that can be used with this tool, you MUST first call the list_root_classes_tool tool.

:param root_class: The root class to search within (eg. "Document", "Folder") :param keywords: Up to 3 words from the user's message that might contain the class's name

:returns: A list of up to 3 matching classes with their scores, or a ToolError if no matches are found Each match is a ClassMatch object with class_name and score fields

get_class_property_descriptions

Retrieves properties of a class.

:param class_symbolic_name: The symbolic name of the class to retrieve properties for

:returns: A list of CachePropertyDescription objects for each property

get_searchable_property_descriptions

Retrieves only the searchable properties of a class.

:param class_symbolic_name: The symbolic name of the class to retrieve searchable properties for

:returns: A list of CachePropertyDescription objects for properties that are searchable

repository_object_search

PREREQUISITES IN ORDER: To use this tool, you MUST call two other tools first in a specific sequence.

  1. determine_class tool to get the class_name for search_class.

  2. get_searchable_property_descriptions to get a list of valid property_name for search_properties

Description: This tool will execute a request to search for a repository object(s).

:param search_parameters (SearchParameters): parameters for the searching including the object being searched for and any search conditions.

:returns: A the repository object details, including: - repositoryObjects (dict): a dictionary containing independentObjects: - independentObjects (list): A list of independent objects, each containing: - properties (list): A list of properties, each containing: - label (str): The name of the property. - value (str): The value of the property.

lookup_documents_by_name

:param keywords: Up to 3 words from the user's message that might contain the document's name. Avoid using very common words such as "and", "or", "the", etc. :param class_symbolic_name: If specified, a specific document class to look in for matching documents. The root Document class is used by default. Specify a class only if the user indicates that the documents should belong to a specific class. Use the determine_class tool to lookup the class symbolic name based on the user's message.

:returns: A list of matching documents, or a ToolError if no matches are found or there is some other problem. Each match is a DocumentMatch object with information about the document including its name and a confidence score.

Description: This tool will execute a search to lookup documents by name. A list of the most likely documents matching the keywords is returned. Use this list to select the appropriate document based on the user's message.

lookup_documents_by_path

PREREQUISITE: To use this tool, you MUST call the determine_class tool first to get the class_symbolic_name. If the user does not specify a specific clas then call determine_class with the root Document class.

:param keywords_at_path_levels: A list of lists of keywords to search for at each path level. The first dimension list is the number of path levels entered by the user. For each path level a sub list contains up to 3 words from the user's message for that level that might contain either the intermediate folder name or the actual document's containment name. Avoid using very common words such as "and", "or", "the", etc. for these keywords. Note that the matching of documents by path is based on the containment names of the documents filed in the folder, not the name of the documents themselves. The containment names of documents are usually the same or similar to the documents but they can be different in some scenarios. :param class_symbolic_name: If specified, a specific document class to look in for matching documents. The root Document class is used by default. Specify a class only if the user indicates that the documents should belong to a specific class.

:returns: A list of matching document filings, or a ToolError if no matches are found or if there is some other problem. Each match is a DocumentMatch object with information about the document filing including its name.

Description: This tool will execute a search to lookup documents based on where they are filed in a folder hierarchy. One indication that a lookup by path is appropriate rather than a more basic lookup by name is if the user has used a path separator character ('/') to describe the document. A list of the most likely documents matching the keywords is returned. Use this list to select the appropriate document based on the user's message.

get_document_annotations_tool

Retrieves all annotations associated with a document.

This tool fetches annotation metadata including creator, dates, descriptive text, and content element information. Use this to analyze document annotations or to identify specific annotations for further processing.

:param document_id: The document ID to retrieve annotations for.

:returns: A dictionary containing document annotations with the following structure: - data.document.annotations.annotations: List of annotation objects, each containing: - className: The class name of the annotation - creator: The creator of the annotation - dateCreated: Creation timestamp - dateLastModified: Last modification timestamp - id: Unique identifier of the annotation - name: Name of the annotation - owner: Owner of the annotation - descriptiveText: Text description of the annotation - contentSize: Size of the annotation content - mimeType: MIME type of the annotation - annotatedContentElement: Content element being annotated - contentElementsPresent: Whether content elements are present - contentElements: List of content elements with className, contentType, and sequence

Returns ToolError if the document doesn't exist or another error occurs.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ibm-ecm/ibm-content-services-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server