mcp-server-drupal
by GGKapanadze
TS based companion MCP server for the Drupal MCP module that works with the STDIO transport.
What is mcp-server-drupal
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.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
- On MacOS:
-
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
andDRUPAL_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
Leave a Comment
Comments section will be available soon. Stay tuned!
Frequently Asked Questions
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications, providing a standardized way to connect AI models to different data sources and tools.
What are MCP Servers?
MCP Servers are lightweight programs that expose specific capabilities through the standardized Model Context Protocol. They act as bridges between LLMs like Claude and various data sources or services, allowing secure access to files, databases, APIs, and other resources.
How do MCP Servers work?
MCP Servers follow a client-server architecture where a host application (like Claude Desktop) connects to multiple servers. Each server provides specific functionality through standardized endpoints and protocols, enabling Claude to access data and perform actions through the standardized protocol.
Are MCP Servers secure?
Yes, MCP Servers are designed with security in mind. They run locally with explicit configuration and permissions, require user approval for actions, and include built-in security features to prevent unauthorized access and ensure data privacy.
Related MCP Servers
Ableton Live MCP Server
MCP Server implementation for Ableton Live OSC control
Airbnb MCP Server
AI Agent Marketplace Index Search MCP Server
MCP Server for AI Agent Marketplace Index from DeepNLP
Algorand MCP Implementation
Algorand Model Context Protocol (Server & Client)
mcp-server-apache-airflow
pypi.org/project/mcp-server-apache-airflow/
airtable-mcp-server
๐๏ธ๐ค Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable bases
Airtable MCP Server
Search, create and update Airtable bases, tables, fields, and records using Claude Desktop and MCP (Model Context Protocol) clients
Alphavantage MCP Server
A MCP server for the stock market data API, Alphavantage API.
Amadeus MCP Server
Amadeus MCP(Model Context Protocol) Server
Anki MCP Server
An MCP server for Anki
Submit Your MCP Server
Share your MCP server with the community
Submit Now