D

Drupal

community
other

Server for interacting with [Drupal](https://www.drupal.org/project/mcp) using STDIO transport layer.

MCP Server for Drupal

image
This is a typescript based companion Model Context Protocol(MCP) server for the Drupal MCP module that works with the
STDIO
transport. In order to use
SSE
transport this server is not required.
[!IMPORTANT] Both the Drupal module and this server are in active development. Use them at your own risk.

Installation and Usage

  • Download the binary for your system from the releases page
  • To use it with Claude Desktop you need to add the server config in the
    claude_desktop_config.json
    file. The file is located at the following path:
    • On MacOS:
      ~/Library/Application Support/Claude/claude_desktop_config.json
    • On Windows:
      %APPDATA%/Claude/claude_desktop_config.json
    {
      "mcpServers": {
        "mcp-server-drupal": {
          "command": "__BINARY_PATH__",
          "args": ["--drupal-url", "__DRUPAL_BASE_URL__"],
          "env": {}
        }
      }
    }
    
    • --drupal-url
      is a required argument
    • Replace
      __BINARY_PATH__
      with the path to the downloaded binary
    • Replace
      __DRUPAL_BASE_URL__
      with the base URL of your Drupal site
  • To check the server and sdk version run the following command:
mcp-server-drupal --version
  • To check the available commands run the following command:
mcp-server-drupal --help

Docker

The server is available as docker image on GHCR.
{
  "mcpServers": {
    "mcp-server-drupal": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/omedia/mcp-server-drupal",
        "--drupal-url=__DRUPAL_BASE_URL_"
      ],
      "env": {}
    }
  }
}
Specific version of the images are also avaiable.
{
  "mcpServers": {
    "mcp-server-drupal": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DRUPAL_AUTH_TOKEN",
        "ghcr.io/omedia/mcp-server-drupal:1.0.0-alpha5",
        "--drupal-url=__DRUPAL_BASE_URL__"
      ],
      "env": {
        "DRUPAL_AUTH_TOKEN": "THEPASSWORD"
      }
    }
  }
}

Development Phase

If you are using the server in development phase and you have
ddev
,
lando
or simple
docker compose
keep in mind to run the server in the same network as the Drupal site using
--network
or
-n
flags. You can also achive the same with
host.docker.iternal

Alternative usage

The server is also available as a deno module on JSR so you can use via
npx

{
  "mcpServers": {
    "mcp-server-drupal": {
      "command": "npx",
      "args": [
        "-y",
        "deno",
        "run",
        "-A",
        "jsr:@omedia/mcp-server-drupal@<VERSION>",
        "--drupal-url",
        "__DRUPAL_BASE_URL__"
      ],
      "env": {}
    }
  }
}

Authentication

The server supports both authentication via environment variables. You can use either a auth token or a basic auth with username and password combination . The following environment variables are supported:
  • DRUPAL_AUTH_TOKEN
    : The authentication token.
  • DRUPAL_AUTH_USER
    : The username for authentication.
  • DRUPAL_AUTH_PASSWORD
    : The password for authentication.
[!NOTE] Make sure to turn the authentication on the Drupal MCP module settings page.
[!NOTE] If both
DRUPAL_AUTH_TOKEN
and
DRUPAL_AUTH_USER
/
DRUPAL_AUTH_PASSWORD
are set, the token will be used over the username and password.
Example usage with token:
{
  "mcpServers": {
    "mcp-server-drupal": {
      "command": "__BINARY_PATH__",
      "args": ["--drupal-url", "__DRUPAL_BASE_URL__"],
      "env": {
        "DRUPAL_AUTH_TOKEN": "<AUTH_TOKEN>"
      }
    }
  }
}
Example usage with username and password:
{
  "mcpServers": {
    "mcp-server-drupal": {
      "command": "__BINARY_PATH__",
      "args": ["--drupal-url", "__DRUPAL_BASE_URL__"],
      "env": {
        "DRUPAL_AUTH_USER": "<BASIC_AUTH_USERNAME>",
        "DRUPAL_AUTH_PASSWORD": "<BASIC_AUTH_PASSWORD>"
      }
    }
  }
}

Docker

If you want to use the auth with docker do not forget to pass them as envriment variables
{
  "mcpServers": {
    "mcp-server-drupal": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DRUPAL_AUTH_TOKEN",
        "ghcr.io/omedia/mcp-server-drupal",
        "--drupal-url=__DRUPAL_BASE_URL__"
      ],
      "env": {
        "DRUPAL_AUTH_TOKEN": "<AUTH_TOKEN>"
      }
    }
  }
}

MCP

  • All instruments are defined by the Drupal API during the initialization phase
[!NOTE] The server now exposes the following
  • Resources (templates, reads)
  • Tools (calls)
No prompts are exposed by the server for now

Development

This project is built with Deno.
[!NOTE] Use deno version
2.0.0
or above
Install dependencies:
deno install
For development with auto-rebuild:
bun task dev
Build the server:
deno task build --output build/mcp-server-drupal
[!TIP] To build for the specific platform use the
--target
flag and check the docs

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a deno task:
deno task inspector --drupal-url [DRUPAL_BASE_URL]

Verifying the binaries

drupal_mcp_server
binaries are signed by cosign using identity-based signing. You can verify your binary by downloading the
signatures.tar.gz
file from the release page, extracting the signature and running the following command:
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

Related Servers

E

Everything

reference

Reference / test server with prompts, resources, and tools

View Details
M

Memory

reference

Knowledge graph-based persistent memory system

View Details
P

Puppeteer

reference

Browser automation and web scraping

View Details
S

Sentry

reference

Retrieving and analyzing issues from Sentry.io

View Details
S

Sequential Thinking

reference

Dynamic and reflective problem-solving through thought sequences

View Details