{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_2vhqa8b6y37x","handle":"drupal-code-query","url":"https://wellknown.network/agents/drupal-code-query","links":{"self":"https://wellknown.network/agents/drupal-code-query/record.json","html":"https://wellknown.network/agents/drupal-code-query","markdown":"https://wellknown.network/agents/drupal-code-query/record.md","api":"https://wellknown.network/api/v1/agents/drupal-code-query","status":"https://wellknown.network/api/v1/agents/drupal-code-query/status","claim":"https://wellknown.network/agents/drupal-code-query/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/drupal-code-query/claim.json","badge":"https://wellknown.network/agents/drupal-code-query/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:mcp.tresbien.tech:server:drupal-code-query","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Drupal Code Query","summary":"Drupal core API changes, contrib usage, upgrade readiness, patch verdicts, code search, SQL.","description":"Drupal core API changes, contrib usage, upgrade readiness, patch verdicts, code search, SQL.","publisher":{"name":"tech.tresbien","url":null},"homepage":"https://mcp.tresbien.tech","repository":null,"version":"0.39.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.tresbien.tech/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-02T22:40:57.311131Z","publishedAt":"2026-09-02T22:40:57.311131Z","registryName":"tech.tresbien/drupal-code-query"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":1,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.51,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.51,"provenance":"derived"}],"categories":["commerce","content","data","dev"]},"observed":{"status":"live","statusReason":"Responded 6h ago.","lastOkAt":"2026-09-07T18:21:08.376Z","lastProbedAt":"2026-09-07T18:21:08.376Z","statusComputedAt":"2026-09-07T18:23:44.619Z","reliability30d":{"probes":2,"successRate":1,"p50Ms":18},"latestObservations":[{"at":"2026-09-07T18:21:08.376Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":19,"error":null,"detail":{"tools":[{"name":"check_patches","description":"Does each composer patch still apply to the release the site installed, and is its fix already in that release?\n- Send composer_json and composer_lock after com"},{"name":"describe_dataset","description":"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.\n- No a"},{"name":"get_change_record","description":"Return one core change record in full: title, flavour, target version, machine-checkable tracks, linked issues, linked core symbols, and contrib adoption counts"},{"name":"list_change_records","description":"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, u"},{"name":"list_class_relations","description":"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 Fo"},{"name":"list_projects","description":"List drupal.org projects after filters, largest install base first, paged. Examples: \"top modules without an 11.4 branch\", \"themes over 10k installs without sec"},{"name":"list_symbol_users","description":"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 "},{"name":"lookup_core_symbol","description":"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 instea"},{"name":"project_profile","description":"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"},{"name":"project_upgrade_report","description":"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, u"},{"name":"query_dataset","description":"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 29 views, thei"},{"name":"reroll_patch","description":"Re-roll one composer patch that check_patches reported conflicts: a 3-way merge of the patch onto the installed release, returned as a new diff. Call check_patc"},{"name":"scan_composer","description":"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 packa"},{"name":"search_code","description":"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: l"},{"name":"subsystem_coupling","description":"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 s"},{"name":"what_changed","description":"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_sy"}],"toolCount":16,"serverName":"drupal-code-query","capabilities":["tools"],"serverVersion":"0.39.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T10:22:16.837Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":18,"error":null,"detail":{"tools":[{"name":"check_patches","description":"Does each composer patch still apply to the release the site installed, and is its fix already in that release?\n- Send composer_json and composer_lock after com"},{"name":"describe_dataset","description":"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.\n- No a"},{"name":"get_change_record","description":"Return one core change record in full: title, flavour, target version, machine-checkable tracks, linked issues, linked core symbols, and contrib adoption counts"},{"name":"list_change_records","description":"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, u"},{"name":"list_class_relations","description":"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 Fo"},{"name":"list_projects","description":"List drupal.org projects after filters, largest install base first, paged. Examples: \"top modules without an 11.4 branch\", \"themes over 10k installs without sec"},{"name":"list_symbol_users","description":"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 "},{"name":"lookup_core_symbol","description":"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 instea"},{"name":"project_profile","description":"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"},{"name":"project_upgrade_report","description":"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, u"},{"name":"query_dataset","description":"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 29 views, thei"},{"name":"reroll_patch","description":"Re-roll one composer patch that check_patches reported conflicts: a 3-way merge of the patch onto the installed release, returned as a new diff. Call check_patc"},{"name":"scan_composer","description":"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 packa"},{"name":"search_code","description":"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: l"},{"name":"subsystem_coupling","description":"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 s"},{"name":"what_changed","description":"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_sy"}],"toolCount":16,"serverName":"drupal-code-query","capabilities":["tools"],"serverVersion":"0.39.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"check_patches","description":"Does each composer patch still apply to the release the site installed, and is its fix already in that release?\n- Send composer_json and composer_lock after com"},{"name":"describe_dataset","description":"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.\n- No a"},{"name":"get_change_record","description":"Return one core change record in full: title, flavour, target version, machine-checkable tracks, linked issues, linked core symbols, and contrib adoption counts"},{"name":"list_change_records","description":"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, u"},{"name":"list_class_relations","description":"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 Fo"},{"name":"list_projects","description":"List drupal.org projects after filters, largest install base first, paged. Examples: \"top modules without an 11.4 branch\", \"themes over 10k installs without sec"},{"name":"list_symbol_users","description":"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 "},{"name":"lookup_core_symbol","description":"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 instea"},{"name":"project_profile","description":"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"},{"name":"project_upgrade_report","description":"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, u"},{"name":"query_dataset","description":"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 29 views, thei"},{"name":"reroll_patch","description":"Re-roll one composer patch that check_patches reported conflicts: a 3-way merge of the patch onto the installed release, returned as a new diff. Call check_patc"},{"name":"scan_composer","description":"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 packa"},{"name":"search_code","description":"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: l"},{"name":"subsystem_coupling","description":"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 s"},{"name":"what_changed","description":"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_sy"}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"tech.tresbien/drupal-code-query","url":"https://registry.modelcontextprotocol.io/v0/servers/tech.tresbien%2Fdrupal-code-query","firstSeenAt":"2026-09-07T09:23:07.572Z","fetchedAt":"2026-09-07T09:23:07.572Z","normalizedAt":"2026-09-07T09:23:07.572Z"}]},"firstSeenAt":"2026-09-07T09:23:07.572Z","updatedAt":"2026-09-07T18:24:00.544Z"}