tech.tresbien/drupal-code-query

MCPcommunautéen ligne
v0.42.0tech.tresbienUnknownMis à jour il y a 27 j

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

État de l’endpointen ligne
vérifié il y a 12 jours · 1043 ms
100 % des dernières 5 vérifications ont atteint cet endpoint
Fonctionne dans
ClaudeCursorCopilotChatGPTGemini

Déduit des transports déclarés par cette annonce (streamable-http). Un client absent de cette liste n’est pas écarté pour autant — c’est simplement quelque chose que Forge ne peut pas confirmer.

Indexé automatiquement depuis des sources publiques. Pas encore vérifié par son développeur sur Forge.Revendiquer cette annonce →
il y a 27 jDernière mise à jour
Paquet
Auteurtech.tresbien
LicenceUnknown
Version0.42.0
Sourcemcp-registry
Statut de confiance
B
60/100Bon
Endpoint hébergé uniquement : cette évaluation porte sur qui le publie et s’il répond, pas sur le code qui tourne derrière. Aucune analyse de CVE, de dépendances ou de code source ne s’applique ; rien ici ne garantit donc que ce code est sain.
✓Listé dans l’index Forge+10/10
—Identité de l’éditeur vérifiée+0/30
→ Éditeur : aucune référence de dépôt n’est enregistrée pour cette annonce, `forge publish` ne peut donc pas vérifier la propriété automatiquement. Utilisez « Revendiquer cette annonce » ci-dessus — Forge les examine à la main.
—Vérification de domaine+0/10
→ Actuellement indisponible pour ce type d’annonce — la vérification de domaine ne s’exécute aujourd’hui que pour les paquets adossés à npm, cette ligne ne peut donc pas encore être obtenue ici, quel que soit le contenu hébergé sur le domaine.
✓Analyse d’injection de prompt · propre+30/30
✓Analyse d’obfuscation / exfiltration · propre+20/20
StatutIndexé par la communauté
ÉditeurNon vérifié
SignatureNon signé
Domaine—
Provenance—
DépendancesNon audité
Surface d’outils16 outils · 1 privilégiés
Analyse de sécurité✓ Proprevlive · il y a 12 jQuelle est l’efficacité de cette analyse ?
PROMPTtool:query_datasetLinks to undeclared domain: api.tresbien.tech
ÉvaluationsAucune
Indexé18 août 2026

La vérification confirme l’identité de l’éditeur (la propriété du dépôt), pas la sûreté du code. L’analyse de sécurité couvre les CVE connues et les scripts d’installation suspects.

Outils

16 outils · 1 privilégiés
Observé en direct depuis l’endpoint du fournisseur12d ago

Lu depuis un véritable échange MCP initialize → tools/list contre l’endpoint déclaré. Aucun outil n’a été invoqué — tools/list est l’appel d’introspection en lecture seule que le protocole prévoit pour cela. Cela reflète ce que le serveur annonçait à cet instant ; un endpoint hébergé n’est figé sur aucune version et peut changer sans préavis.

  • https://mcp.tresbien.tech/mcp16 outils · 1043 ms
check_patchesDoes 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 extra.patches entry is checke…

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 extra.patches entry is checke…

ParamètreTypeDescription
itemsnull | arrayUp to 50 patches to check. Each item has project, version, patch and title. project: webform or drupal/webform; drupal or core for Drupal core. version: the in…
composer_jsonstringThe contents of composer.json. Send the text; this server cannot read your filesystem. Its extra.patches becomes the item list, one item per patch.
composer_lockstringThe contents of composer.lock. It gives the installed version of each patched package.
patches_filestringThe text of the patches file, for a site on cweagans/composer-patches 2.x that keeps its patches out of composer.json. The path is in its own extra.composer-pa…
patches_lockstringThe text of patches.lock.json, which 2.x of the patch manager writes and applies from. Send it to judge what the site actually applies: it answers alone, over…
patch_filesobjectThe text of every patch the site declares, keyed by the source as written: a path (patches/x.patch) or its base name, or the URL. Fetch a URL patch yourself an…
target_corestringCore the added code is checked against: a minor (11.4 or 11.4.x) or a release (11.4.5). A minor with no core release in the data is refused, and so is a major…
describe_datasetLearn 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 invariants: dev-bran…

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 invariants: dev-bran…

ParamètreTypeDescription
viewstringOne view name. Returns its columns with types and descriptions, an example filter, and the joins into it. Leave empty for the overview.
viewsnull | arrayUp to 8 views at once, documented one after the other in one call.
recipestringOne recipe id from the overview's index. Returns a ready-to-run query_dataset statement with its placeholders explained.
get_change_recordReturn 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 lookup_core_symbol. -…

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 lookup_core_symbol. -…

ParamètreTypeDescription
nid*integerThe change record's drupal.org node id, for example 3581981.
top_projectsintegerHow many impacted projects to return in the ranked head. Defaults to 10, capped at 40.
list_change_recordsList 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, 11, 11.x. A bare major…

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, 11, 11.x. A bare major…

ParamètreTypeDescription
from*stringLower core version bound, inclusive: 11.2, 11.2.x, 11.2.0, 11, or 11.x. A bare major (11) covers every minor of it.
to*stringUpper core version bound, inclusive. Same forms as from.
projectstringOptional contrib project machine name. Narrows the list to records a development branch of that project still matches.
limitintegerRecords in the head, 1 to 40 (default 15). Above the cap the call is refused.
list_class_relationsList 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 leading backslash. An…

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 leading backslash. An…

ParamètreTypeDescription
target*stringThe core class, interface or trait, with or without the leading backslash: DrupalCoreFormFormBase.
rel_kindstringextends, implements, or uses_trait; any when absent.
projectstringRestrict to one project machine name.
per_projectintegerEdges shown per project on a page, 1 to 50 (default 3). Each row has project_edges, the project's full count.
limitintegerRows per page, 1 to 100 (default 50).
offsetintegerSkip this many rows in the same ranked order. Pass the previous page's next_offset.
list_projectsList 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, min_installs, security…

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, min_installs, security…

ParamètreTypeDescription
typestringFilter: project_module, project_theme, project_distribution, project_general, project_theme_engine, project_translation.
min_installsintegerFilter: reported install base at or above this.
securitystringFilter: security advisory coverage: covered, not-covered, revoked.
core_minorstringFilter: a core minor in 11.4.x form. Keeps projects where the newest release on some development branch declares support for it. With missing=true, keeps proje…
missingbooleanInvert core_minor: keep projects whose development branches do not declare it.
erastringFilter: d8plus (Drupal 8+ code) or pre_d8, on any development branch.
member_ofstringFilter: keep only members of this root project's composer requires walk, for example cms.
max_depthnull | integerWith member_of: drop members further than this many requires away, 1 or more.
limitintegerProjects per page, 1 to 100 (default 50).
offsetintegerSkip this many projects in the same ranked order. Pass the previous page's next_offset.
list_symbol_usersList 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), subsystem, removal_in…

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), subsystem, removal_in…

ParamètreTypeDescription
fqnstringOne core symbol, as lookup_core_symbol takes it. Pass this or a filter.
kindstringFilter: one symbol kind (function, method, class, library, hook, service …).
statusstringFilter: deprecated | scheduled_removal (still present) | removed (gone).
subsystemstringFilter: a core subsystem (Entity API, Views), case-insensitive. subsystem_coupling with no arguments lists them.
removal_instringFilter: removal stamp in this core minor (13.0). With status=scheduled_removal: still present, going away then.
deprecated_instringFilter: symbols deprecated in this core minor (11.4).
limitintegerProjects per page, 1 to 100 (default 50).
offsetintegerSkip this many projects. Pass the previous next_offset.
symbolsintegerSymbols per project row, 1 to 30 (default 10), heaviest first.
matchedintegerMatched symbols listed on the envelope, 1 to 50 (default 20).
lookup_core_symbolAnswer "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: a namespaced name w…

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: a namespaced name w…

ParamètreTypeDescription
fqn*stringCore symbol name, or part of one. A namespaced name with or without the leading backslash (DrupalCoreEntityEntityInterface, DrupalCoreRecipeRecipeRunner::insta…
top_projectsintegerHow many using projects to return in the ranked head. Defaults to 10, capped at 30.
candidatesintegerWhen the name resolves to no symbol: how many catalog entries containing it to return, 1 to 50 (default 10).
kindstringRestrict candidates to one symbol kind (class, method, function, hook, library, service …).
project_profileAnswer "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. installs_by_version…

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. installs_by_version…

ParamètreTypeDescription
project*stringdrupal.org project machine name, e.g. webform. The composer name drupal/webform is accepted.
releasesintegerReleases to list, newest first, 1 to 30 (default 10). release_count says how many exist.
includenull | arrayOptional sections: trend (monthly install series per release line) and related (full requires / required_by / co_installed lists, replacing the related summary…
monthsintegerWith include trend: months of history, 1 to 120 (default 36), ending at the latest month in the data.
dependentsintegerWith include related: dependents per page in required_by, 1 to 100 (default 20).
dependents_offsetintegerWith include related: dependents to skip. Pass required_by.next_offset from the previous call.
project_upgrade_reportAnswer "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 project matched one…

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 project matched one…

ParamètreTypeDescription
project*stringContrib project machine name as it appears on drupal.org, for example webform. The composer name drupal/webform is accepted. Packages from other vendors are no…
target_version*stringTarget core version: 11.2, 11.2.x, 11.2.0, 11, or 11.x. A bare major (11) covers every minor of it.
limitintegerOutstanding records to return with evidence, 1 to 15 (default 8). Above the cap the call is refused.
query_datasetRun 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 31 views, their columns, joins and recipes. Prefer a typed tool when one fits. - statements=[…]: up to 5 statements in one call, one result or error each…

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 31 views, their columns, joins and recipes. Prefer a typed tool when one fits. - statements=[…]: up to 5 statements in one call, one result or error each…

NOTELinks to undeclared domain: api.tresbien.tech
ParamètreTypeDescription
sqlstringOne DuckDB SELECT over the views describe_dataset lists. SHOW TABLES, DESCRIBE <view> and FROM-first syntax also work. No semicolon, one statement. Use stateme…
statementsnull | arrayUp to 5 statements in one call. Results come back in order under results, each with its own rows or error. The byte budget is shared. Use this instead of sql f…
max_rowsintegerRows to return per statement, 1 to 500 (default 100). The result byte budget may cut a wide result sooner. truncated says so either way.
reroll_patchprivilégié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. patch is the diff text…

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. patch is the diff text…

ParamètreTypeDescription
project*stringdrupal.org machine name (webform) or composer name (drupal/webform); drupal or core for Drupal core.
version*stringThe composer version installed, e.g. 1.13.0 or 11.4.5.
patch*stringUnified diff text. This service downloads nothing, so fetch a URL patch yourself and send what came back. With the index lines git diff writes, it is merged on…
titlestringOptional, echoed back.
basestringOptional. The release the site had before the upgrade. Its commit sha from composer.lock (source.reference), or its composer version: 6.1.0 when version is 6.2…
target_corestringCore the added code is checked against: a minor (11.4 or 11.4.x) or a release (11.4.5). A minor with no core release in the data is refused, and so is a major…
drop_testsnull | booleanOptional. Leave it out and the re-roll drops every file the release package omits, read from the release's own archive. false keeps every hunk, for a site inst…
resolutionsnull | arrayDecisions for the conflicted regions of a previous call on the same project, version and patch, one entry per region. region: the index in that file's conflict…
scan_composerWhich 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 are read by 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 are read by composer…

ParamètreTypeDescription
composer_jsonstringThe contents of composer.json (require, require-dev, extra.patches). Send the text; this server cannot read your filesystem. Optional; without it there are no…
composer_lock*stringThe text of composer.lock. A real lock is too big to paste: send its path (composer.lock) instead. The answer is then the curl command that uploads the files f…
patches_filestringThe text of the patches file, for a site on cweagans/composer-patches 2.x that keeps its patches out of composer.json. The path is in its own extra.composer-pa…
patches_lockstringThe text of patches.lock.json, which 2.x of the patch manager writes and applies from. Send it to judge what the site actually applies: it answers alone, over…
target_corestringCore to move to: a minor (11.4), a release (11.4.5), or latest for the newest core the site's own constraint allows. Leave empty to scan against the core the s…
patchesbooleanJudge the site's patches in the same call: each one against the release its package would install for target_core. Returns a verdict per patch instead of items…
patch_filesobjectThe text of every patch the site declares, keyed by the source as written: a path (patches/x.patch) or its base name, or the URL. Only needed with patches:true…
installed_coreobjectWhat each installed release requires of core, keyed by composer name. Read it from the site's own vendor directory: composer show -f json <pkg>, or the drupal/…
search_codeSearch 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 put r: f: lang: cas…

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 put r: f: lang: cas…

ParamètreTypeDescription
query*stringCode to find, a regex unless literal is true. Filters may be inline when literal is false, else in filters. Example: hook_form_alter f:.module$
literalbooleantrue: query is matched as exact text. Use it for text with ( [ ] $ . such as #[Hook(. With literal, filters go in filters.
filtersstringZoekt filters appended as written: r:<repo regex> f:<path regex> lang:<language> b:<branch> sym:<symbol> case:yes.
reposnull | arrayRestrict to these projects, by machine name, in one query.
limitintegerFiles to return, default 20, cap 50. Ignored with by_repo.
by_repobooleanReturn repos as (repo, file_count) instead of files. Pulls up to 1000 files; total_files is the ceiling.
subsystem_couplingAnswer "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 core_symbol.subsystem and…

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 core_symbol.subsystem and…

ParamètreTypeDescription
subsystemstringA core subsystem (Views, Entity API) or a path bucket (module:views, core_lib:Entity). Leave both subsystem and issue_nid empty to get the list of subsystems.
issue_nidintegerA drupal.org core issue nid: reports the subsystems its merge request touches, then the coupling edges from each.
min_liftnumberKeep edges with lift at or above this (default 0.05).
min_co_failintegerKeep edges seen in at least this many merge requests (default 3).
limitintegerEdges to return, 1 to 50 (default 20). count says how many pass the floors.
what_changedAnswer "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 whole diff: the result'…

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 whole diff: the result'…

ParamètreTypeDescription
from*stringLower core version bound, inclusive: 11.2, 11.2.x, 11.2.0, 11, 11.x. Upgrading from 11.2 means from=11.3.
to*stringUpper bound, inclusive, same forms.
headintegerGroups per bucket, 1 to 5 (default 5). Ignored when flat is true.
kindstringRestrict to one symbol kind (method, class, function, hook, service, library …). Applies to counts too.
min_projects_usingintegerDrop symbols fewer than this many contrib projects call on a development branch. Applies to counts too.
offsetintegerSkip this many groups per bucket (grouped) or rows (flat), in ranked order. Flat: pass the previous page's next_offset.
flatbooleantrue: one bucket as flat symbol rows, paged, instead of three buckets of ranked groups. Needs bucket.
bucketstringWith flat: which side of the diff to list, added, deprecated, or removed. One bucket per call.
limitintegerWith flat: rows per page, 1 to 100 (default 50). A page of very long fqns may come back shorter. next_offset always says where the next page starts.

16 outils sur 16 ont publié une description.

Les noms et descriptions d’outils sont écrits par l’éditeur et affichés tels quels, comme du texte inerte. Ce sont les chaînes qu’un client MCP transmet à un modèle, alors Forge y recherche des motifs d’injection de prompt — tout constat apparaît avec l’analyse de sécurité ci-dessus. « Privilégié » est une correspondance de mot-clé sur le nom de l’outil, pas un audit de ce qu’il fait : un nom anodin peut tout de même tout faire.

À propos

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

Mots-clés
mcp
Alternatives
Comparaison des surfaces d’outils…

Aucune couverture des dépendances

Cette entrée ne publie aucun paquet npm : Forge n'a donc pas d'arbre de dépendances pour elle. C'est une lacune de couverture — pas une affirmation qu'elle n'a aucune dépendance.