mcp-server-drupal
Categories
Language:
TypeScript
Stars:
25
Forks:
1
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
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": ""
}
}
}
}
Example usage with username and password:
{
"mcpServers": {
"mcp-server-drupal": {
"command": "__BINARY_PATH__",
"args": ["--drupal-url", "__DRUPAL_BASE_URL__"],
"env": {
"DRUPAL_AUTH_USER": "",
"DRUPAL_AUTH_PASSWORD": ""
}
}
}
}
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](https://github.com/sigstore/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
Publisher info
Omedia
Omedia provides full-cycle software development and development outsourcing services for clients around the world since 2006.