文档库检索服务

Watsonx.data文档库检索MCP服务器是一个符合模型上下文协议(MCP)的服务,用于连接AI代理与文档库,实现智能数据检索和交互。

  • by IBM
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 IBM/ibm-watsonxdata-dl-retrieval-mcp-server

使用说明

Watsonx.data文档库检索MCP服务器

这 Watsonx.data文档库检索MCP服务器 是一种符合模型上下文协议(MCP)的服务,可将AI代理与watsonx.data中的文档库无缝连接,实现智能数据检索和交互。

主要特点

  • 动态发现和注册
    自动检测文档库并将其注册为MCP工具。

  • 自然语言接口
    使用会话语言查询文档库并接收人类可读的响应。

  • 最小配置
    部署时只需简单的设置要求,无需复杂的配置。

  • 框架不可知集成
    直接插入具有原生MCP兼容性的首选代理框架。


概述

  • 协议:模型上下文协议(MCP)
  • 目的:充当代理AI框架和watsonx.data文档库之间的桥梁
  • 支持的环境:IBM Cloud Pak for Data(CPD)、Watsonx SaaS
  • 代理兼容性:代理框架必须支持MCP标准(通过SSE或Stdio)。
    注意:此服务器将无法与不支持MCP的代理一起运行。

先决条件

  • Python版本 3.11 或以后
  • 访问您的 CPD或SaaS环境
  • 访问凭据和a CA证书包 CPD
  • 确保您的 代理框架支持MCP协议

获取CPD的CA捆绑包

  1. 登录到您的OpenShift集群:

    oc login -u kubeadmin -p '<your_openshift_password>' https://<your_openshift_cpd_url>:6443
    
  2. 提取根CA包:

    oc get configmap kube-root-ca.crt -o jsonpath='{.data.ca\.crt}' > cabundle.crt
    

注意:请使用open shift登录命令。用户和密码将打开轮班门户登录用户名和密码


设置

第一步:安装Python

步骤2:创建虚拟环境

python -m venv .venv

步骤3:激活虚拟环境

source .venv/bin/activate  # macOS/Linux
.venv\Scripts\activate     # Windows

步骤4:安装 uv 包管理器

pip install uv

步骤5:安装MCP服务器包

pip install ibm-watsonxdata-dl-retrieval-mcp-server

配置

对于Cloud Pak For Data(CPD):

export CPD_ENDPOINT="<cpd-endpoint>"
export CPD_USERNAME="<cpd-username>"
export CPD_PASSWORD="<cpd-password>"
export CA_BUNDLE_PATH="<absolute_path_to_cabundle.crt>"
export LH_CONTEXT="CPD"

注:

  • 对于CPD_ENDPOINT,请使用已安装CPD的端点url。示例:“https://cpd-cpd-instance.apps.perf10.5y2z.openshiftapps.com"
  • 对于CPD_USERNAME和CPD_PASSWORD,使用用于登录CPD的用户名和密码。

对于Watsonx SaaS:

export WATSONX_DATA_API_KEY="<api-key>"
export WATSONX_DATA_RETRIEVAL_ENDPOINT="<retrieval-service-endpoint>"
export DOCUMENT_LIBRARY_API_ENDPOINT="<document-library-endpoint>"
export WATSONX_DATA_TOKEN_GENERATION_ENDPOINT="<token-generation-endpoint>"
export LH_CONTEXT="SAAS"

注:

  • 对于DOCUMENT_LIBRARY_API_ENDPOINT,请在此使用与区域对应的端点url:https://cloud.ibm.com/apidocs/data-ai-common-core#endpoint-url。 例子:https://api.ca-tor.dai.cloud.ibm.com
  • 对于WATSONX_DATA_RETRIVAL_ENDPOINT,请使用WATSONX.DATA端点。 例子:https://console-ibm-cator.lakehouse.saas.ibm.com
  • 对于WATSONX_DATA_TOKEN_GENERATION_ENDPOINT,请使用此处的端点url:https://cloud.ibm.com/apidocs/iam-identity-token-api#endpoints . 例子:https://iam.cloud.ibm.com

运行服务器

uv run ibm-watsonxdata-dl-retrieval-mcp-server

默认情况下,服务器在 sse 8000号港口的运输方式。

运输:苏格兰和南方能源公司

uv run ibm-watsonxdata-dl-retrieval-mcp-server --port <desired_port> --transport sse

运输:stdio

uv run ibm-watsonxdata-dl-retrieval-mcp-server --port <desired_port> --transport stdio

与WXO集成

先决条件:

安装WXO ADK并完成初始设置。有关更多详细信息,请参阅文档:https://developer.watson-orchestrate.ibm.com

运输:STDIO

要使用WXO在stdio传输中添加MCP服务器,请参阅以下示例。

  1. 创建连接
orchestrate connections add -a <app id>
  1. 配置连接
orchestrate connections configure --app-id <app id> --environment draft -t team -k key_value
  1. 设置凭据
orchestrate connections set-credentials --app-id=<app id> --env draft -e WATSONX_DATA_API_KEY="<api_key>" -e WATSONX_DATA_RETRIEVAL_ENDPOINT="<wxd retrieval endpoint>" -e DOCUMENT_LIBRARY_API_ENDPOINT="<DL endpoint>" -e WATSONX_DATA_TOKEN_GENERATION_ENDPOINT="<token generation endpoint>" -e LH_CONTEXT="SAAS"

Saas示例:

orchestrate toolkits import \
    --kind mcp \
    --name "mcp-toolkit" \
    --description "mcp server for watsonx retrival service" \
    --package "ibm-watsonxdata-dl-retrieval-mcp-server" \
    --command "uv run ibm-watsonxdata-dl-retrieval-mcp-server --port <port> --transport stdio" \
    --language python \
    --tools "*" \
    --app-id <app id>

运输:苏格兰和南方能源公司

  1. 安装mcp代理
pip install mcp-proxy  
  1. 在sse传输中运行ibmwatsonxdata-dl检索mcp服务器。

一旦满足先决条件,这些工具就可以作为工具包添加到WXO中。

例子:

orchestrate toolkits import \ 
  --kind mcp \ 
  --name mcp_toolkit \ 
  --description "MCP server (hosted, SSE)" \ 
  --package "mcp-proxy" \ 
  --language python \ 
  --command "uvx mcp-proxy https://<mcp server endpoint>/sse" \ 
  --tools "*" 

注:
在SAAS和MCP服务器本地运行wxo时,如果需要,可以公开MCP服务器端点。

有关更多详细信息,请参阅wxo文档:https://www.ibm.com/docs/en/watsonx/watson-orchestrate/base?topic=tools-从mcp服务器导入


与其他代理框架集成

有关使用Watsonx.data文档库检索MCP服务器和代理框架的更多示例,请参阅 examples

局限性

  • 环境凭据 在运行时无法更改.
    • 要更改凭据,请执行以下操作之一:
      • 使用新的环境变量启动新服务器,或者
      • 获取新的环境变量并重新启动服务器。

工具命名

每个文档库都注册了一个唯一的工具名称:

tool_name = <library_name><library_id>

例子:

invoice_document_library77e4b4dd_479e_4406_acc4_ce154c96266c