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] 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.jsonfile. The file is located at the following path:On MacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonOn Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-server-drupal": {
"command": "__BINARY_PATH__",
"args": ["--drupal-url", "__DRUPAL_BASE_URL__"],
"env": {}
}
}
}
--drupal-urlis a required argumentReplace
__BINARY_PATH__with the path to the downloaded binaryReplace
__DRUPAL_BASE_URL__with the base URL of your Drupal siteTo 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_TOKENandDRUPAL_AUTH_USER/DRUPAL_AUTH_PASSWORDare 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.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
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
MCP Server Drupal
Project Details
- Omedia/mcp-server-drupal
- MIT License
- Last Updated: 4/13/2025
Recomended MCP Servers
Portainer MCP server
MCP server for evolution, the non official api for whatsapp
A Model Context Protocol (MCP) server implementation for comprehensive code analysis. This tool integrates with Claude Desktop to...
MCP server for kintone
MCP Server for the Bitrise API, enabling app management, build operations, artifact management and more.
NOT for educational purposes: An MCP server for professional penetration testers including nmap, go/dirbuster, nikto, JtR, wordlist building,...
📦 Repomix (formerly Repopack) is a powerful tool that packs your entire repository into a single, AI-friendly file....
Full implementation of Todoist Rest API & support Todoist Sync API for MCP server
这个项目是一个基于Model Context Protocol (MCP)的AutoCAD集成服务器,它允许通过自然语言与AutoCAD进行交互。通过这个服务器,用户可以使用Claude等大型语言模型来创建、修改和分析AutoCAD图纸,同时还可以存储和查询CAD元素的相关数据。目前制作参考学习,仅实现端到端之间的通信,具体工具函数尚未晚上
MCP Server for Trino developed via MCP Python SDK





