Drupal Code Query
Server Details
Drupal core change records, core symbol lifecycle, and contrib upgrade readiness.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
6 toolsget_change_recordInspect
Return one Drupal core change record in full: its title, flavour, target core version, machine-checkable tracks, linked issue numbers, and how far contrib has adopted it.
Flavour separates work that is forced from work that is offered. coming-break means an API is going away, coming-new-API means one is being added, landed-but-still-relevant means it already shipped, and policy-only means it targets no code and therefore has no adoption to measure.
Adoption is counted over contrib development branches only, because a release tag is a frozen snapshot and says nothing about work still to do. A branch counted as legacy still calls the going-away side; migrated has moved.
Returns counts across every affected project plus a ranked head with the outstanding ones first. Ask for a specific project with a narrower tool rather than raising top_projects.
| Name | Required | Description | Default |
|---|---|---|---|
| nid | Yes | The change record's drupal.org node id, for example 3581981. | |
| top_projects | No | How many impacted projects to return in the ranked head. Defaults to 10, capped at 40. |
Output Schema
| Name | Required | Description |
|---|---|---|
| nid | Yes | |
| url | Yes | |
| title | Yes | |
| flavor | Yes | |
| impact | No | |
| issues | Yes | |
| tracks | Yes | |
| computed_at | Yes | |
| issue_count | Yes | |
| target_version | No |
list_change_recordsInspect
List the Drupal core change records targeting a range of core versions, each tagged with its flavour so a caller can separate work that is forced from work that is merely offered.
A change record is the human write-up of a change: why it happened and what to do about it. For the machine-readable diff of the API surface itself — which symbols were added, deprecated or removed — use what_changed.
Both bounds are inclusive and accept the forms people write: 11.2, 11.2.x, 11.2.0, 11, or 11.x. A bare major covers the whole major.
Flavours: coming-break is an API going away, coming-new-API is one being added, landed-but-still-relevant already shipped. Records that target no core version at all are policy-only and belong to no range, so they never appear here.
Narrow with project to answer a single maintainer's question; each record then also carries how many of that project's development branches are still on the legacy side. Returns the count of every record in range plus a ranked head, newest target version first.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Upper core version bound, inclusive. Same forms as from. A bare major covers every minor of it. | |
| from | Yes | Lower core version bound, inclusive. Write it the way people say it: 11.2, 11.2.x, 11.2.0, 11, or 11.x. A bare major starts at its first minor. | |
| limit | No | How many records to return in the head. Defaults to 15, capped at 40. | |
| project | No | Optional contrib project machine name. Narrows the list to records a development branch of that project still matches. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | |
| from | Yes | |
| total | Yes | |
| project | No | |
| records | Yes | |
| by_flavor | Yes | |
| truncated | Yes |
lookup_core_symbolInspect
Look up one Drupal core symbol and answer whether it is safe to use, and who still uses it.
Returns the catalog entry with its lifecycle fields reported separately, since they do not always agree: a symbol can be deprecated with no removal date, or removed without ever having been deprecated, and internal is a third thing again. The status list names every flag that applies.
Usage is counted over contrib development branches only, so it measures work still to do rather than history. Returns the number of projects and branches using the symbol plus a ranked head, largest install base first.
Change records that touched the symbol are listed with their flavour and node id, so the rationale is one call away rather than a search.
| Name | Required | Description | Default |
|---|---|---|---|
| fqn | Yes | Fully-qualified core symbol name, with or without the leading backslash. Classes, interfaces, methods and functions all work: Drupal\Core\Entity\EntityInterface, or Drupal\Core\Recipe\RecipeRunner::installModule. | |
| top_projects | No | How many using projects to return in the ranked head. Defaults to 10, capped at 30. |
Output Schema
| Name | Required | Description |
|---|---|---|
| usage | No | |
| symbol | Yes | |
| change_records | Yes | |
| change_record_count | Yes |
project_upgrade_reportInspect
Answer whether one contrib project is ready for a target Drupal core version, and what work is left.
A change record applies to the project when it targets that core version or an earlier one and a development branch of the project matched one of its tracks. Each applicable record gets a verdict: outstanding means a branch still calls the going-away side, in_progress means some branches have moved, adopted means they all have.
Returns counts by verdict across every applicable record, then a ranked head of the outstanding ones with file and line evidence from the project's own code, so a caller can go straight to the callsite. Each carries how many other projects are outstanding on the same record, which is what says whether to wait for an upstream fix.
Every entry carries its node id: pass it to get_change_record for the full record.
Counted over development branches only. A release tag cannot be fixed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many outstanding records to return with evidence. Defaults to 8, capped at 15. | |
| project | Yes | Contrib project machine name as it appears on drupal.org, for example webform. | |
| target_version | Yes | Target core version. Write it the way people say it: 11.2, 11.2.x, 11.2.0, 11, or 11.x. A bare major means the end of that major. |
Output Schema
| Name | Required | Description |
|---|---|---|
| axis | Yes | |
| project | Yes | |
| records | Yes | |
| branches | Yes | |
| truncated | Yes | |
| computed_at | Yes | |
| outstanding | Yes | |
| target_version | Yes |
search_contrib_codeInspect
Search the source of every indexed Drupal contrib project, plus core, for a code pattern. Use it to find callers of an API before changing it.
The index classifies Drupal's PHP file extensions — .module, .install, .theme, .engine, .profile, .inc — as PHP, so lang:php matches them and sym: resolves symbols inside them. No language filter is applied for you: add lang:php to narrow to PHP, or leave it off to reach Twig, JavaScript, YAML and the rest.
Returns index-wide match and file counts plus a ranked head of files, each with its repository, path, and matching line numbers. Narrow with the repos argument or a tighter query rather than raising limit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum files to return. Defaults to 20, capped at 50. | |
| query | Yes | Zoekt query. Regex by default, so escape . ( ) $ and other metacharacters. Filters: r:<repo> f:<path regex> lang:<language> b:<branch> sym:<symbol> case:yes. Example: hook_form_alter f:\.module$ | |
| repos | No | Restrict the search to these project machine names. Sent as one query, never one call per project. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hits | Yes | |
| query | Yes | |
| truncated | Yes | |
| total_files | Yes | |
| total_matches | Yes |
what_changedInspect
Diff the Drupal core API surface between two core versions: which symbols were added, which were deprecated, and which were removed.
Both bounds are inclusive and accept the forms people write: 11.2, 11.2.x, 11.2.0, 11, or 11.x. To see one minor alone, pass the same version twice.
The three buckets are independent. A symbol can be added and deprecated in the same range, and a removal usually lands a major or two after its deprecation, so the removed count is not a subset of the deprecated one.
Each bucket returns the full count plus a head ranked by how many contrib projects still call the symbol on a development branch, so the entries that will actually break someone come first. Symbols core marks @internal are counted separately and kept out of the heads: they are not API.
For the human write-up of why a change happened and what to do about it, use list_change_records over the same range.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Upper core version bound, inclusive. Same forms as from. A bare major covers every minor of it. | |
| from | Yes | Lower core version bound, inclusive. Write it the way people say it: 11.2, 11.2.x, 11.2.0, 11, or 11.x. A bare major starts at its first minor. | |
| head | No | How many symbols to return per bucket. Defaults to 8, capped at 20. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | |
| from | Yes | |
| added | Yes | |
| removed | Yes | |
| deprecated | Yes | |
| unplaceable_symbols | No |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
AlicenseAqualityAmaintenanceSoftware end-of-life intelligence for AI agents: EOL dates, support timelines and 0-100 upgrade risk scores for 480+ products. Check whether a version is still supported, score its risk, or audit an entire stack.5MIT- Flicense-qualityBmaintenanceEnables maintaining consistent project documentation and progress logs across development workflows. Provides tools for logging changes, tracking project phases, and keeping architecture docs synchronized with day-to-day development work.1

cafecitoofficial
Alicense-qualityBmaintenanceEnables AI agents to coordinate on a shared repository using commutativity-proven parallel landing and regenerative merge, avoiding rebase conflicts through symbol-level leases.Apache 2.0- Flicense-qualityBmaintenanceProvides breaking changes analysis for libraries across multiple languages, enabling version upgrade planning, dependency audits, and migration reports through MCP tool access and expert workflows.