DevHub CMS MCP 是一个基于 Model Context Protocol(MCP)的集成工具,用于在 DevHub CMS 系统中管理内容。它作为中间层,让支持 MCP 的大型语言模型(LLM)能够直接操作 DevHub CMS,而无需在 LLM 中内置直接的 API 访问能力。
主要用途
该工具旨在将 DevHub CMS 的内容管理能力通过 MCP 协议暴露给 LLM,使 LLM 可以执行诸如获取业务信息、管理位置、更新营业时间、处理博客文章和上传图片等操作。
主要能力
该 MCP 提供以下工具:
业务与位置管理
get_businesses():获取 DevHub 账户内的所有业务,返回业务列表及其 ID 和名称。get_locations(business_id):获取特定业务的所有位置,返回包括地址、坐标和 URL 在内的详细位置信息。get_hours_of_operation(location_id, hours_type='primary'):获取特定位置的营业时间,返回一周中每天的时间段结构化列表。update_hours(location_id, new_hours, hours_type='primary'):更新特定位置的营业时间。get_nearest_location(business_id, latitude, longitude):根据地理坐标查找最近的 DevHub 位置。site_from_url(url):从 URL 获取 DevHub 站点 ID 和详细信息,返回站点 ID、URL 及相关位置 ID。
内容管理
get_blog_post(post_id):根据 ID 获取单个博客文章,包括标题、日期和 HTML 内容。create_blog_post(site_id, title, content):创建新的博客文章,内容应为 HTML 格式,且不应包含 H1 标签。update_blog_post(post_id, title=None, content=None):更新现有博客文章的标题和/或内容。
媒体管理
upload_image(base64_image_content, filename):将图片上传到 DevHub 媒体库,支持 webp、jpeg 和 png 格式,图片需以 base64 编码字符串提供。
使用方式
使用该 MCP 需要本地系统安装 uv 包管理器,并设置必要的环境变量。配置方式包括:
- 在 Claude Desktop 的
claude_desktop_config.json文件的mcpServers部分添加配置,然后重启 Claude Desktop。 - 在 Cursor 中使用,将类似配置添加到 Cursor 全局环境或单个项目。
- 通过 Claude Code 命令行安装,更新环境变量。
- 通过 Smithery 自动安装到 Claude Desktop。
本地开发时,可克隆仓库并配置 mcpServers 部分。运行 MCP 需要设置指定的环境变量。
适用场景
该工具适用于需要通过 LLM 管理 DevHub CMS 内容的场景,例如批量更新营业时间、创建或修改博客文章、上传媒体文件、查询业务和位置信息等。
限制
- 需要本地安装 uv 包管理器。
- 需要正确配置环境变量。
- 创建博客文章时内容不应包含 H1 标签。
- 上传图片仅支持 webp、jpeg 和 png 格式,且需 base64 编码。
- 该工具设计用于支持 MCP 的 LLM,如 Claude Desktop。
测试
该包包含测试套件,使用模拟的 DevHub API 请求,允许在不进行实际 API 调用的情况下测试功能。安装测试依赖后,可使用 pytest 运行测试,并查看详细输出和测试覆盖率信息。测试文件位于 tests/devhub_cms_mcp/test_mcp_integration.py。