MCP Server for Drupal
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_TOKENandDRUPAL_AUTH_USER/DRUPAL_AUTH_PASSWORDare 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.0or 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
--targetflag 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"
Recommend MCP Servers 💡
clickup-mcp
An MCP server for ClickUp integration, enabling AI assistants to interact with ClickUp tasks, lists, attachments, and comments.
cbi-mcp-server
Provides an interface for developers to interact with CB Insights ChatCBI LLM through AI Agents.
OpenMCP
OpenMCP is a standard for converting web APIs into MCP servers and an open source registry of servers following the standard. It enables LLMs to fetch data and perform actions across various domains.
congressmcp
An MCP server that provides AI agents and MCP clients access to comprehensive U.S. Congressional data via the Congress.gov API.
@adarshem/mcp-server-learn
A demo MCP server providing weather alerts and forecasts using the US National Weather Service API
mcp-audiense-insights
Integrates Audiense Insights with MCP-compatible clients like Claude, enabling extraction of marketing insights and audience analysis from Audiense reports.