返回市场
MCP服务器-CS

MCP服务器-CS

作者:ibm-ecm4 星标更新:2025-11-15

项目介绍

核心内容服务MCP服务器

概述

核心内容服务MCP服务器提供了一个标准化接口,使AI模型能够使用IBM FileNet内容管理器(FNCM)的功能。此MCP服务器允许您:

  • 通过AI代理管理存储在FNCM中的文档,包括文档的创建和删除
  • 对文档执行更新操作,如签入、签出和属性更新
  • 搜索对象,例如文档和文件夹
  • 管理文件夹,并在文件夹中存档或取消存档文档
  • 管理文档类、文件夹类等

工具列表

核心内容服务MCP服务器提供了以下工具与FileNet CPE进行交互:

文档管理

  • get_document_versions:检索文档的版本历史记录,包括主要和次要版本号以及每个版本的文档ID。
  • get_document_text_extract:从文档中提取文本内容,通过检索其文本提取注释实现。如果找到多个文本提取结果,则会将其连接起来。注意:此功能需要在您的对象存储中安装持久文本提取插件。请参阅先决条件部分以获取更多详情。
  • create_document:在内容库中创建具有指定属性的新文档。如果提供了文件路径,则可以上传文件作为文档的内容。需要首先调用determine_class和get_class_property_descriptions。
  • update_document_properties:更新现有文档的属性而不改变其类别。需要首先调用get_class_property_descriptions以获取当前文档类别的有效属性。
  • update_document_class:更改内容库中文档的类别。警告:更改文档类别可能导致属性丢失,如果新类别没有相同的属性。需要首先调用determine_class以获取新的class_identifier。
  • checkin_document:签入之前已签出的文档。如果提供了文件路径,则可以在签入时上传新的内容文件。
  • checkout_document:签出文档以便编辑。如果提供了文件路径,则可以下载文档内容到指定文件夹路径。
  • cancel_document_checkout:取消内容库中的文档签出,释放预留。
  • get_document_properties:通过ID或路径从内容库中检索文档,返回带有属性的文档对象。
  • get_class_specific_properties_name:根据文档的类别定义检索特定于类别的属性名称列表。过滤掉系统属性和隐藏属性。
  • delete_document_version:使用文档ID删除内容库中的特定文档版本。
  • delete_version_series:使用版本系列ID删除整个版本系列(文档的所有版本)。

文件夹管理

  • create_folder:在内容库中创建具有指定名称、父文件夹和可选类别标识符的新文件夹。
  • delete_folder:使用ID或路径从仓库中删除文件夹。
  • unfile_document:将文档从文件夹中移除而不删除文档本身。
  • update_folder:更新现有文件夹的属性。需要首先调用determine_class和get_class_property_descriptions。
  • get_folder_documents:获取文件夹中包含的文档。

元数据

  • list_root_classes:列出仓库中特定根类的所有类别。
  • list_all_classes:列出仓库中特定根类的所有类别。
  • determine_class:基于可用类别和用户消息或上下文文档的内容确定适当的类别。
  • get_class_property_descriptions:检索指定类的所有属性的详细描述。

搜索

  • get_searchable_property_descriptions:检索可用于搜索操作的属性描述。
  • repository_object_search:根据指定标准搜索仓库对象。
  • lookup_documents_by_name:通过匹配关键词与文档名称来搜索文档。返回按置信度得分排序的匹配文档列表。当您知道文档名称的一部分但不知道其确切ID或路径时非常有用。
  • lookup_documents_by_path:根据文档在文件夹层次结构中的位置搜索文档。在每个路径级别上匹配关键词与文件夹名称和文档包含名称。当用户使用路径分隔符(例如,“/Folder1/Subfolder/document”)描述文档时特别有用。

注释

  • get_document_annotations:检索与文档关联的所有注释,包括它们的ID、名称、描述性文本和内容元素。

测试环境

核心内容服务MCP服务器已在以下MCP客户端和LLM组合中进行了测试:

  • Claude桌面:Sonnet 4.5, 4, 3.5 和 Haiku 4.5
  • Watsonx Orchestrate:Llama-3-2-90b-vision-instruct

虽然其他MCP客户端和LLM组合尚未经过测试,但它们可能与此服务器兼容。我们鼓励您自行实验并验证。

有关如何设置其他MCP客户端的说明,请参阅:

MCP客户端限制

某些MCP客户端存在限制,影响哪些工具可以使用。下表显示了已知的兼容性问题:

MCP客户端限制影响的工具
Watson Orchestrate不支持复杂Pydantic类作为输入create_document<br>update_document_properties<br>checkout_document<br>checkin_document<br>update_folder<br>repository_object_search

注意:这些限制是由于MCP客户端的输入处理能力,而不是MCP服务器本身。


设置和配置

先决条件

  • Python 3.13+
  • uv
    • 在macOS上:brew install uv
    • 在Windows上:请参见上述链接
  • 访问已安装Content Services GraphQL API (CS-GQL) 的FileNet内容平台引擎(CPE)服务器
  • 如果要使用文档内容检索功能,必须在您的对象存储中安装持久文本提取插件

配置

核心内容服务MCP服务器需要几个环境变量来连接到您的FileNet CPE服务器:

必需的环境变量

环境变量描述默认值
SERVER_URL内容服务GraphQL API端点URL(必需)-
USERNAME身份验证用户名(必需)-
PASSWORD身份验证密码(必需)-
OBJECT_STORE对象存储标识符(必需)-

可选的环境变量

环境变量描述默认值
SSL_ENABLED是否启用SSL。可以设置为true、证书文件路径或false(不推荐用于生产环境)true
TOKEN_SSL_ENABLED是否为令牌端点启用SSL。可以设置为true、证书文件路径或false(不推荐用于生产环境)true
TOKEN_REFRESH令牌刷新间隔(秒)1800
TOKEN_URLOAuth令牌URL-
GRANT_TYPEOAuth授权类型-
SCOPEOAuth范围-
CLIENT_IDOAuth客户端ID-
CLIENT_SECRETOAuth客户端密钥-
REQUEST_TIMEOUT请求超时时间(秒)30.0
POOL_CONNECTIONS连接池连接数100
POOL_MAXSIZE最大池大小100

CP4BA环境变量

环境变量描述默认值
ZENIAM_ZEN_URL发送IAM令牌以交换Zen令牌的Zen URL,例如:<zen_host_route>/v1/preauth/validateAuth-
ZENIAM_ZEN_SSL_ENABLED是否为Zen交换路由启用SSL。可以设置为true、证书文件路径或false(不推荐用于生产环境)true
ZENIAM_IAM_URL发送用户/密码或客户端ID/客户端密钥到IAM以获取IAM令牌的IAM URL,例如:<iam_host_route>/idprovider/v1/auth/identitytoken-
ZENIAM_IAM_SSL_ENABLED是否为IAM路由启用SSL。可以设置为true、证书文件路径或false(不推荐用于生产环境)[true]
ZENIAM_IAM_GRANT_TYPEIAM授权类型-
ZENIAM_IAM_SCOPEIAM范围-
ZENIAM_IAM_USER如果授权类型为密码,则指定IAM用户-
ZENIAM_IAM_PASSWORD如果授权类型为密码,则指定IAM密码-
ZENIAM_CLIENT_ID如果授权类型为客户端凭据,则指定IAM客户端ID-
ZENIAM_CLIENT_SECRET如果授权类型为客户端凭据,则指定IAM客户端密钥-

SSL配置最佳实践

对于SSL配置(SSL_ENABLEDTOKEN_SSL_ENABLEDZENIAM_ZEN_SSL_ENABLEDZENIAM_IAM_SSL_ENABLED),您有三种选择:

  1. 使用系统证书(推荐用于生产环境):设置为true以使用系统的证书库。
  2. 提供自定义证书路径:设置为证书文件路径(例如,/path/to/certificate.pem)。
  3. 禁用SSL验证(不推荐用于生产环境):设置为false以禁用SSL验证。

安全警告:仅应在测试环境中禁用SSL验证(false)。对于生产部署,始终使用正确的证书验证以确保通信安全。

认证方法

服务器支持两种认证方法:

基本认证

设置以下环境变量:

SERVER_URL=https://your-graphql-endpoint
USERNAME=your_username
PASSWORD=your_password
OBJECT_STORE=your_object_store
SSL_ENABLED=your_path_to_graphql_certificate | true | false

OAuth认证

设置以下环境变量:

SERVER_URL=https://your-graphql-endpoint
USERNAME=your_username
PASSWORD=your_password
TOKEN_URL=https://your-oauth-server/token
GRANT_TYPE=password
SCOPE=openid
CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secret
OBJECT_STORE=your_object_store

Zen/IAM认证

使用USER/PASSWORD和SSL到所有外部服务器的ZEN/IAM环境变量示例

SERVER_URL=https://your-graphql-endpoint
SSL_ENABLED=your_path_to_graphql_certificate| true | false
OBJECT_STORE=your_object_store
ZENIAM_ZEN_URL=https://your-zen-exchange-route
ZENIAM_ZEN_SSL_ENABLED=your_path_to_zen_exchange_route_certicate | true | false
ZENIAM_IAM_URL=https://your-IAM-route
ZENIAM_IAM_SSL_ENABLED=your_path_to_IAM_route_certicate | true | false
ZENIAM_IAM_GRANT_TYPE=password
ZENIAM_IAM_SCOPE=openid
ZENIAM_IAM_USER=your_user_name
ZENIAM_IAM_PASSWORD=your_user_password

与MCP客户端/代理框架集成

Claude桌面配置

  1. 打开Claude桌面设置:

    • 在macOS上,点击顶部菜单栏中的Claude菜单并选择设置
    • 在Windows上,从Claude应用程序访问设置截图显示设置
  2. 导航到开发者标签页并点击编辑配置

    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json 截图显示“编辑配置”
  3. claude_desktop_config.json文件添加以下配置示例之一:

    选项1:使用本地安装(如果您已克隆该存储库)

    {
      "mcpServers": {
        "core-cs-mcp-server": {
          "command": "/path/to/your/uvx",
          "args": [
            "--from",
            "/path/to/your/cs-mcp-server",
            "core-cs-mcp-server"
          ],
          "env": {
            "USERNAME": "your_username",
            "PASSWORD": "your_password",
            "SERVER_URL": "https://your-graphql-server/content-services-graphql/graphql",
            "OBJECT_STORE": "your_object_store"
          }
        }
      }
    }
    

    选项2:直接从GitHub安装(推荐)

    {
      "mcpServers": {
        "core-cs-mcp-server": {
          "command": "uvx",
          "args": [
            "--from",
            "git+https://github.com/ibm-ecm/cs-mcp-server",
            "core-cs-mcp-server"
          ],
          "env": {
            "USERNAME": "your_username",
            "PASSWORD": "your_password",
            "SERVER_URL": "https://your-graphql-server/content-services-graphql/graphql",
            "OBJECT_STORE": "your_object_store"
          }
        }
      }
    }
    
  4. 重启Claude桌面:

    • 单纯关闭窗口是不够的,Claude桌面必须停止并重新启动:
      • 在macOS上:Claude > 退出
      • 在Windows上:文件 > 退出
  5. 检查可用工具:

    • 要查看Claude桌面中所有可用工具,请按照以下步骤操作:
      • 首先点击设置图标,您应该看到: 截图显示MCP服务器
      • 然后点击core-cs-mcp-server,您应该看到所有工具: 截图显示Claude工具

注意:上面的JSON配置示例仅显示了所需的最小环境变量。有关所有可能配置选项的完整列表,请参阅上面的环境变量表格。

Watson Orchestrate (WxO) 配置

本节解释如何增强IBM Watsonx Orchestrate,使其在聊天过程中与IBM FileNet内容管理进行交互。

配置
1. 配置连接变量

对于SaaS或本地部署(UI):

  • 点击主菜单图标
  • 导航至管理 > 连接
  • 点击新建连接
  • 输入连接ID和显示名称
  • 点击下一步
  • 您现在将配置草稿连接详情(测试环境)
    • 将身份验证类型下拉菜单选择为键值对
    • 输入每个必需的变量:
      • SERVER_URL:您的内容服务GraphQL API端点URL
      • USERNAME:身份验证用户名
      • PASSWORD:身份验证密码
      • OBJECT_STORE:对象存储标识符
    • 根据需要输入任何可选变量(例如,SSL_ENABLEDTOKEN_REFRESH等)
    • 完成后点击下一步
  • 现在您将输入实时连接环境变量
    • 将身份验证类型下拉菜单选择为键值对
    • 输入与上述相同的必需变量
    • 根据需要输入任何可选变量
    • 选择首选凭证类型
    • 点击添加连接

对于ADK(应用开发工具包):

有关使用ADK CLI创建连接,请参阅官方文档

2. 创建代理
  • 点击主菜单图标

  • 导航至构建 > 代理生成器

    构建 > 代理生成器

  • 导航至所有代理

  • 点击创建代理 + 添加新代理

    创建代理

  • 选择从头开始创建

  • 输入名称(例如,核心内容服务代理

  • 输入描述(例如,此代理使与FileNet内容管理互动成为可能。

  • 点击创建

    创建代理(继续)

3. 使用核心内容服务MCP服务器增强代理
  • 导航至工具集部分,点击添加工具 +

    添加工具 +

  • 点击导入

    导入MCP服务器

  • 点击从MCP服务器导入

    导入MCP服务器(继续)

  • 点击添加MCP服务器

    添加MCP服务器

  • 输入一个不含空格字符的服务器名称(例如,core-cs-mcp-server

  • 可选地输入一个描述(例如,此MCP服务器连接到FileNet内容平台引擎,使内容管理操作成为可能。

  • 输入一个安装命令

    uvx --from git+https://github.com/ibm-ecm/cs-mcp-server core-cs-mcp-server
    
  • 点击连接

  • 如果看到“连接成功”,请点击完成

    添加MCP服务器(继续)

  • 激活切换设置为开启以启用所需工具

    启用工具

  • 将您先前创建的连接与此代理关联

4. 部署代理
  • 点击部署

    配置完成

  • 在弹出窗口中,再次点击部署

5. 让