MCP ExplorerExplorer

Drupal Server

@Omediaon 2 months ago
39 MIT
FreeCommunity
Web Services
#Drupal#TypeScript
Server for interacting with [Drupal](https://www.drupal.org/project/mcp) using STDIO transport layer.

Overview

What is Drupal Server

The MCP Server for Drupal is a TypeScript-based server that implements the Model Context Protocol (MCP) to work with the Drupal MCP module through STDIO transport. It allows for interaction between Drupal and applications supporting MCP, facilitating data exchange and operations.

Use cases

This server is intended for scenarios where integration between Drupal and other tools or systems is required, especially in automation tasks, data synchronization, and backend processing. It is particularly useful for developers building applications that need to interface with Drupal dynamically.

How to use

To use the MCP Server with Docker, configure it in your application settings to run a Docker container with the required arguments, including the Drupal base URL. Authentication can be set up using environment variables for either a token or basic auth. Detailed installation instructions are available in the documentation.

Key features

Key features include the ability to define resources and tools dynamically from the Drupal API, support for authentication via environment variables, and the option for debugging with the MCP Inspector. The server is built with Deno and supports various platforms.

Where to use

This server can be used in any environment where Drupal is deployed, especially in situations requiring real-time data handling and processing. It is versatile enough to work within local development setups or cloud-based infrastructures.

Content

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]
📖 Detailed docs are avilable at drupalmcp.io

Installation

The STDIO Binary is available through multiple distribution channels to accommodate various environments:

Here is a quick example of how to use the server with docker:

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

📖 For more details check the Installation section in the docs

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.

📖 Check the Authentication section in the docs for more details

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 and images

drupal_mcp_server binaries and container images 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

On the container side you can verify the image by running the following command:

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"

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers