Skip to main content
Glama
zaporylie
by zaporylie

drupalorg-mcp

MCP server for drupal.org's public api-d7 REST API. Read-only, no authentication required.

Quick start (Claude Code)

claude mcp add drupalorg -s user -e DRUPALORG_USERNAME=your-username -- npx -y drupalorg-mcp

-e DRUPALORG_USERNAME=... is optional — set it to enable author: "me" in tool calls instead of passing your username every time. Verify with claude mcp list.

Related MCP server: ls-apis-mcp

Tools

  • resolve_project — resolve a project machine name (e.g. commerce) to its numeric project ID.

  • resolve_user — resolve a drupal.org username to its numeric uid.

  • list_issues — list issues, optionally filtered by project, status, priority, category, and/or author. Omit the project to search across all of drupal.org (e.g. "issues I created"). Paginated (50/page).

  • get_issue — full details for a single issue by node ID, including related merge requests and credit metadata.

  • get_issue_comments — all comments for an issue by node ID.

  • list_my_projects — list projects (modules/themes/distributions/core/recipes) owned by a given user. Useful before listing "open issues on my project".

  • get_project_maintainers — list a project's maintainers and their permissions, by machine name.

  • find_maintained_projects — reverse maintainer lookup, scoped to one owner: given a user and an owner (e.g. centarro), returns which of the owner's projects that user maintains. drupal.org has no global user→projects maintainer endpoint, so this scans maintainers.json for every project authored by owner — not usable unscoped across all of drupal.org.

Tools that take an author/username/owner argument accept a username, a numeric uid, or the literal "me" (requires DRUPALORG_USERNAME env var, see below).

Requirements

  • Node.js 18+ (uses global fetch)

Usage

Runs via npx — no install/clone needed, always fetches the latest published version.

Add to other MCP clients

E.g. Claude Desktop's config:

{
  "mcpServers": {
    "drupalorg": {
      "command": "npx",
      "args": ["-y", "drupalorg-mcp"],
      "env": { "DRUPALORG_USERNAME": "your-username" }
    }
  }
}

DRUPALORG_USERNAME is optional — set it to enable author: "me" in tool calls instead of passing your username every time.

Running from a local checkout

For development, or if you'd rather not fetch from npm on every launch:

npm install
node index.js

See CONTRIBUTING.md for the development workflow.

Notes

  • The UA header in index.js identifies this tool to drupal.org's API — update it if you fork/republish under a different repo.

  • All status/priority/category values are translated from drupal.org's internal numeric IDs to readable labels.

Contributing

See CONTRIBUTING.md for development setup, code structure, and publishing steps.


Built with Claude Code — code, docs, CI workflow, and npm packaging were written by Claude in collaboration with the repo owner.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zaporylie/drupalorg-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server