内容管理协议服务器

ExpressionEngine MCP Server是一个通过Reinos Webservice API与ExpressionEngine站点交互的模型上下文协议服务器,支持搜索、查看、创建和更新条目等功能,适用于AI助手管理ExpressionEngine内容。

  • by tymrtn
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 tymrtn/mcp-ee

使用说明

Expression Engine MCP服务器

这是一个模型上下文协议(MCP)服务器,用于通过Reinos Web服务API与ExpressionEngine站点进行交互。它允许像Claude这样的人工智能助手管理ExpressionEngine内容。

特性

  • 连接到单个ExpressionEngine站点 通过Reinos网络服务。
  • 搜索、查看、创建和更新条目.
  • 安全认证 使用快捷键。
  • 优雅的错误处理 用于常见的服务器问题,如内存限制和“无结果”响应。
  • 详细日志记录 对于所有操作。

需求

  • Python 3.9或更高版本
  • 活动的ExpressionEngine安装
  • 这 雷诺斯网络服务 ExpressionEngine插件

安装

  1. 克隆此存储库:

    git clone https://github.com/tymrtn/mcp-ee.git
    cd ee-mcp
    
  2. 创建虚拟环境并安装依赖项:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -e .
    
  3. 通过复制示例环境文件来设置配置:

    cp env.example .env
    

    然后,编辑 .env 文件中包含您的ExpressionEngine网站详细信息。

配置

MCP服务器使用简单的 .env 文件:

# ExpressionEngine site API URL (e.g., https://your-site.com)
API_URL=https://your-site.com

# ExpressionEngine shortkey for Reinos Webservice authentication
SHORTKEY=your-shortkey-here

每个MCP服务器实例都连接到一个ExpressionEngine站点。要管理多个站点,您可以运行多个MCP服务器实例,每个实例都有自己的 .env 配置。

可用工具: manage_content

MCP服务器提供单个工具, manage_content,支持以下条目管理操作:

  • search_entries:使用各种过滤器搜索条目。
  • get_entry:通过ID获取特定条目。
  • create_entry:创建新条目。
  • update_entry:更新现有条目。

参数

这 params argument是一个包含动作数据的字典。关键参数包括:

  • site_id:站点的ID(通常 1).
  • channel_name:频道的短名称(例如。, blog, news).
  • entry_id:要获取或更新的条目的ID。
  • title:条目的标题。
  • status:条目的状态(例如。, open, closed, Draft).
  • 其他自定义字段名称(例如。, body, summary, title2).

示例用法

以下是一些如何使用 manage_content 工具:

搜索条目

# Search for the 5 most recent entries in the 'home' channel
manage_content(
    action="search_entries",
    params={
        "site_id": 1,
        "channel_name": "home",
        "title": "starting",
        "limit": 5
    }
)

获取特定条目

manage_content(
    action="get_entry",
    params={
        "entry_id": 655,
        "site_id": 1
    }
)

创建新条目

manage_content(
    action="create_entry",
    params={
        "site_id": 1,
        "channel_name": "home",
        "title": "New Blog Post via MCP",
        "status": "open",
        "summary": "This is a summary.",
        "body": "This is the main body content of the post."
    }
)

更新现有条目

manage_content(
    action="update_entry",
    params={
        "entry_id": 655,
        "site_id": 1,
        "title": "Updated Title for an Existing Entry",
        "status": "Draft"
    }
)

错误处理

该服务器设计用于优雅地处理常见的API和服务器错误:

  • 记忆力衰退:如果搜索查询过于宽泛并耗尽服务器内存,服务器将返回一条有用的错误消息,其中包含如何缩小搜索范围的建议。
  • 没有结果:如果搜索没有结果,服务器会提供一条明确的消息,其中包含修改搜索条件的提示。
  • 无效参数:服务器验证以下操作所需的参数 create_entry 如果缺失,则返回特定的错误消息。

许可证

此项目根据MIT许可证获得许可-请参阅 LICENSE 文件以获取详细信息。