返回市场
MCP服务器-Drupal

MCP服务器-Drupal

作者:Omedia48 星标更新:2025-05-01

项目介绍

Drupal 的 MCP 服务器

图片

这是一个基于 TypeScript 的 Model Context Protocol (MCP) 服务器,用于与 Drupal MCP 模块 配合使用的 STDIO 传输方式。如果要使用 SSE 传输,则不需要此服务器。

[!IMPORTANT] 📖 更详细的文档可以在 drupalmcp.io 找到

安装

STDIO 二进制文件可以通过多个分发渠道获取,以适应各种环境:

这里是一个快速示例,展示如何使用 Docker 来运行服务器:

{
  "mcpServers": {
    "mcp-server-drupal": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/omedia/mcp-server-drupal",
        "--drupal-url=__DRUPAL_BASE_URL_"
      ],
      "env": {}
    }
  }
}

📖 有关更多详细信息,请参阅文档中的 安装 部分

认证

该服务器支持通过环境变量进行认证。您可以使用认证令牌或用户名和密码组合的基本认证。支持以下环境变量:

  • DRUPAL_AUTH_TOKEN: 认证令牌。
  • DRUPAL_AUTH_USER: 认证用户名。
  • DRUPAL_AUTH_PASSWORD: 认证密码。

[!NOTE] 请确保在 Drupal MCP 模块设置页面上开启认证。

[!NOTE] 如果同时设置了 DRUPAL_AUTH_TOKENDRUPAL_AUTH_USER/DRUPAL_AUTH_PASSWORD,则会优先使用令牌。

📖 有关更多详细信息,请参阅文档中的 认证 部分

MCP

  • 所有工具都是在初始化阶段由 Drupal API 定义的

[!NOTE] 目前,服务器公开了以下内容:

  • 资源(模板、读取)
  • 工具(调用)

服务器目前不公开任何提示

开发

该项目是使用 Deno 构建的。

[!NOTE] 使用 Deno 版本 2.0.0 或更高版本

安装依赖项:

deno install

开发时自动重建:

bun task dev

构建服务器:

deno task build --output build/mcp-server-drupal

[!TIP] 若要针对特定平台构建,请使用 --target 标志,并查看 文档

调试

由于 MCP 服务器通过 stdio 进行通信,调试可能会比较困难。我们推荐使用 MCP Inspector,它作为一个 Deno 任务提供:

deno task inspector --drupal-url [DRUPAL_BASE_URL]

验证二进制文件和镜像

drupal_mcp_server 二进制文件和容器镜像是使用基于身份的签名通过 cosign 签名的。

您可以通过从发布页面下载 signatures.tar.gz 文件,提取签名并运行以下命令来验证您的二进制文件:

cosign verify-blob ${YOUR_BINARY_NAME} \
--bundle signatures/${YOUR_BINARY_NAME}.bundle \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp https://github.com/Omedia/mcp-server-drupal/.github/workflows/release.yml@refs/tags/v \
--certificate-github-workflow-repository Omedia/mcp-server-drupal

对于容器,您可以通过运行以下命令来验证镜像:

cosign verify ghcr.io/omedia/mcp-server-drupal:latest \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  --certificate-identity-regexp "https://github.com/Omedia/mcp-server-drupal/.github/workflows/release.yml@refs/tags/v"