74trust / 100

Drupal Code Query

by tresbien.tech in Developer tools

MCP serverPassing, checked 5 h ago

Drupal core API changes, contrib usage, upgrade readiness, patch verdicts, code search, SQL.

https://mcp.tresbien.tech/mcp
Tools
17
open to any client
Uptime
100%
last 30 days
Response time
290 ms
452 ms slowest 5%
Last check
Passed
5 h ago, next in 52 min

Scan it nowHow to connect

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to connect

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "drupal-code-query": {
      "type": "http",
      "url": "https://mcp.tresbien.tech/mcp"
    }
  }
}

17 tools

  • check_patches

    Does each composer patch still apply to the release the site installed, and is its fix already in that release? - Send composer_json and composer_lock after composer update. Add patch_files for every patch, a local one read from disk and a URL one fetched by you. Every…

  • describe_dataset

    Learn the dataset before writing SQL for query_dataset. Call it with no arguments first. Returns text. Prefer a typed tool when one answers the question. - No arguments: one line per view, the join map, the four invariants, the causes of empty results, and the recipe index. The…

  • get_change_record

    Return one core change record in full: title, flavour, target version, machine-checkable tracks, linked issues, linked core symbols, and contrib adoption counts. To find records, use list_change_records or the change_record_nids from what_changed. For one symbol's detail, use…

  • list_change_records

    List the core change records (the human write-ups) that target a range of core versions, tagged by flavour and ranked, with counts. For the symbol-level diff, use what_changed. For one record in full, use get_change_record. - Bounds are inclusive. Forms: 11.2, 11.2.x, 11.2.0…

  • list_class_relations

    List the contrib classes that extend, implement or use a core class, interface or trait, one row per edge with file and line, paged. Example: "who subclasses FormBase". Call-site counts: list_symbol_users. The symbol's status: lookup_core_symbol. - target: with or without the…

  • list_projects

    List drupal.org projects after filters, largest install base first, paged. Examples: "top modules without an 11.4 branch", "themes over 10k installs without security coverage". One project: project_profile. Its pending records: project_upgrade_report. - Filters combine: type…

  • list_symbol_users

    List every contrib project using one core symbol, or any symbol in a class of symbols, one row per project, paged, with the matched symbols. lookup_core_symbol answers one symbol with a head of 30. - Pass fqn, or filters: kind, status (deprecated, scheduled_removal, removed)…

  • lookup_core_symbol

    Answer "is this core symbol safe to use, and who still uses it" for one symbol. A name that resolves to nothing returns the catalog entries containing it instead. Every user in pages: list_symbol_users. Changed between versions: what_changed. Code text: search_code. - fqn forms…

  • project_profile

    Answer "what is this contrib project, how big is it, which core versions does it support, what moves with it" for one drupal.org project. Pending change records: project_upgrade_report. Core symbols it calls: list_symbol_users. - project: title, type, status, security, installs…

  • project_upgrade_report

    Answer "is this contrib project ready for a target core version, and what work is left". For one record's detail, use get_change_record. For a symbol's users, use list_symbol_users. - A record applies when it targets the target version or earlier, and a development branch of the…

  • query_dataset

    Run read-only DuckDB SELECTs over the dataset behind the other tools, for a question none of them asks. Call describe_dataset first; it lists the 36 views, their columns, joins and recipes. Prefer a typed tool when one fits. - statements=[…]: up to 5 statements in one call, one…

  • reroll_patch

    Re-roll one composer patch that check_patches reported conflicts or fuzzy: a new diff that applies to the installed release. Call check_patches first for the whole list. Call this once per patch that came back conflicts or fuzzy. - Input: project, version, patch, title, base…

  • scan_composer

    Which of a site's drupal/* packages need a new release for a target core, and which have none? Send composer.lock and composer.json once; do not query one package at a time. The answer is the release scan for every package, plus extra.patches as check_patches items. Constraints…

  • search_code

    Search the source of every indexed contrib project, plus core, for a code pattern: which files, or with by_repo which projects. Who-uses-a-core-symbol counts: list_symbol_users or lookup_core_symbol. - query is a regex. Set literal for exact text with ( [ ] . $ : or a space, and…

  • subsystem_coupling

    Answer "what else tends to fail when a merge request touches this core subsystem" from CI history over about 9,000 core merge requests. With issue_nid: "which subsystems does this issue touch, and what co-fails with them". No arguments: the list of subsystems, the same one…

  • what_changed

    Answer "what changed in the core API between two core versions": symbols added, deprecated and removed, as ranked groups with counts. One symbol: lookup_core_symbol. Human write-ups: list_change_records. Every row of one bucket: flat=true with bucket, paged. Every row of the…

  • wordpal_theme

    Answer "does this WordPress block theme convert to Drupal with WordPal". The WordPal gallery converts every block theme on wordpress.org each night. With slug: one theme and its routes. Without slug: counts by status and the most installed themes. - status (exact, diff, failed)…

Security scan

3 findings

  • Unusually long description in tool:check_patches
    check_patches (check patches) Does each composer patch still apply to the releas…
  • Unusually long description in tool:reroll_patch
    reroll_patch (reroll patch) Re-roll one composer patch that check_patches report…
  • Unusually long description in tool:scan_composer
    scan_composer (scan composer) Which of a site's drupal/* packages need a new rel…

Recent checks

WhenResultHTTPTime
5 h agoPassed200290 ms
15 h agoPassed200285 ms
25 h agoPassed200308 ms
36 h agoPassed200231 ms
46 h agoPassed200335 ms
Show 10 older checks
2 days agoPassed200310 ms
3 days agoPassed200244 ms
3 days agoPassed200386 ms
4 days agoPassed200245 ms
4 days agoPassed200242 ms
4 days agoPassed200401 ms
5 days agoPassed200335 ms
5 days agoPassed200452 ms
6 days agoPassed200237 ms
6 days agoPassed200238 ms