项目简介

'mcp-contentstack' 仓库提供了一组基于 Model Context Protocol (MCP) 实现的工具服务器示例。这些服务器旨在让大型语言模型(如通过 AWS Bedrock 访问的 Claude)能够通过标准的 MCP 接口调用外部功能,特别是与 Contentstack 的 Knowledge Vault 进行交互。仓库中同时包含了一个示例 MCP 客户端,用于演示如何连接并使用这些工具服务器。

主要功能点

本项目中的 MCP 服务器(例如 'brand-kit/knowledge-vault/crud.py')提供了以下功能,供连接的 MCP 客户端调用:

  • Contentstack Knowledge Vault 内容管理:
    • 添加新的知识库内容。
    • 更新现有知识库内容。
    • 删除知识库内容。
    • 搜索知识库内容。
  • 模拟数据访问:
    • 提供一个简单的工具,返回预设的 LinkedIn 文本数据(示例功能)。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/viveksingh-ctrl/mcp-contentstack.git
    cd mcp-contentstack
  2. 设置Python环境并安装依赖:
    # 推荐使用 uv 或 venv 创建虚拟环境
    curl -LsSf https://astral.sh/uv/install.sh | sh # 安装 uv
    uv venv .venv
    source .venv/bin/activate # Linux/macOS
    # .venv\Scripts\activate # Windows
    
    # 安装所需的库
    uv pip install -r requirements.txt 
  3. 配置 Contentstack API 凭据和信息: 在项目根目录下创建 '.env' 文件,并填入以下信息(请替换为您的实际凭据和UID):
    AWS_ACCESS_KEY_ID=your-access-key
    AWS_SECRET_ACCESS_KEY=your-secret-key
    AWS_REGION=us-east-1 # 您的AWS区域
    AUTHTOKEN=bltsomething # Contentstack Auth Token
    BRAND_KIT_UID=cssomething # Contentstack Brand Kit UID

服务器配置(供 MCP 客户端使用)

MCP 服务器通常由 MCP 客户端负责启动和管理连接(例如通过 Stdio)。对于本项目中的服务器脚本(如 'brand-kit/knowledge-vault/crud.py' 或 'automate/linkedin.py'),MCP 客户端连接它们时,需要知道如何启动它们。典型的配置会指定:

  • 服务器名称 (name): 用于在客户端内部标识这个服务器(例如 "BrandKit" 或 "Automate")。
  • 传输协议 (transport): 通常是 'stdio'。
  • 启动命令 (command): 运行服务器脚本的命令,例如 'python'。
  • 启动参数 (args): 传递给命令的参数,即服务器脚本的文件路径,例如 './brand-kit/knowledge-vault/crud.py'。

客户端会使用这些信息来启动服务器进程并通过标准输入/输出来建立 MCP 连接。

基本使用方法

本项目包含一个示例客户端 ('formatted_mcp_client.py'),您可以运行它来连接其中一个服务器并与 Claude 进行交互,让 Claude 调用工具:

  1. 确保您的 '.env' 文件已正确配置 且您处于激活的Python虚拟环境中。
  2. 运行客户端并指定要连接的服务器脚本:
    # 连接 Contentstack Knowledge Vault 服务器
    python formatted_mcp_client.py ./brand-kit/knowledge-vault/crud.py
    
    # 连接模拟 LinkedIn 数据服务器
    # python formatted_mcp_client.py ./automate/linkedin.py 
  3. 客户端将启动服务器,连接到 Bedrock 中的 Claude 模型,并显示可用工具。
  4. 在命令行提示符下输入您的问题。如果问题需要调用工具(例如关于 Contentstack Knowledge Vault 的操作请求),Claude 可能会指示客户端调用相应的工具,并将工具结果返回给 Claude 处理,最终给出结合了工具结果的回复。
  5. 输入 'quit' 退出客户端。

信息

分类

AI与计算