tech.tresbien/drupal-code-query

MCPcomunidaden línea
v0.42.0tech.tresbienUnknownActualizado hace 27 d

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

Estado del endpointen línea
comprobado hace 12 días · 1043 ms
100 % de las últimas 5 comprobaciones llegaron a este endpoint
Funciona en
ClaudeCursorCopilotChatGPTGemini

Inferido de los transportes que declara este listado (streamable-http). Que un cliente no aparezca aquí no significa que se haya descartado: simplemente Forge no puede confirmarlo.

Indexado automáticamente desde fuentes públicas. Aún sin verificar por su desarrollador en Forge.Reclamar este listado →
hace 27 dÚltima actualización
Paquete
Autortech.tresbien
LicenciaUnknown
Versión0.42.0
Fuentemcp-registry
Estado de confianza
B
60/100Bueno
Solo endpoint alojado: esta evaluación cubre quién lo publica y si responde, no el código que hay detrás. No se aplica análisis de CVE, dependencias ni código fuente, así que nada de lo que aparece aquí certifica que ese código esté limpio.
✓Listado en el índice de Forge+10/10
—Identidad del publicador verificada+0/30
→ Publicador: este listado no tiene ningún repositorio registrado, así que `forge publish` no puede verificar la propiedad de forma automática. Usa «Reclamar este listado» arriba — en Forge lo revisamos a mano.
—Verificación de dominio+0/10
→ Ahora mismo no está disponible para este tipo de listado: hoy la comprobación de dominio solo se ejecuta para paquetes publicados en npm, así que esta fila todavía no se puede conseguir aquí, sea lo que sea lo que haya alojado en el dominio.
✓Análisis de inyección de prompts · limpio+30/30
✓Análisis de ofuscación / exfiltración · limpio+20/20
EstadoIndexado por la comunidad
PublicadorSin verificar
FirmaSin firmar
Dominio—
Procedencia—
DependenciasSin auditar
Superficie de herramientas16 herramientas · 1 privilegiadas
Análisis de seguridad✓ Limpiovlive · hace 12 d¿Qué tan bien funciona este análisis?
PROMPTtool:query_datasetLinks to undeclared domain: api.tresbien.tech
EvaluacionesNinguna
Indexado18 ago 2026

La verificación confirma la identidad del publicador (la propiedad del repo), no la seguridad del código. El análisis de seguridad cubre los CVE conocidos y los scripts de instalación sospechosos.

Herramientas

16 herramientas · 1 privilegiadas
Observado en vivo desde el endpoint del proveedor12d ago

Leído de un handshake MCP real initialize → tools/list contra el endpoint declarado. No se invocó ninguna herramienta: tools/list es la llamada de introspección de solo lectura que el protocolo define para esto. Refleja lo que el servidor anunciaba en ese momento; un endpoint alojado no está fijado a ninguna versión y puede cambiar sin avisar.

  • https://mcp.tresbien.tech/mcp16 herramientas · 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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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. -…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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…

NOTALinks to undeclared domain: api.tresbien.tech
ParámetroTipoDescripción
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_patchprivilegiadaRe-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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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…

ParámetroTipoDescripción
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'…

ParámetroTipoDescripción
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 de 16 herramientas publicaron una descripción.

Los nombres y descripciones de las herramientas los escribe el publicador y se muestran literalmente como texto inerte. Son las cadenas que un cliente MCP pasa al modelo, así que Forge las analiza en busca de patrones de inyección de prompts — cualquier hallazgo aparece junto al análisis de seguridad de arriba. «Privilegiada» es una coincidencia de palabra clave en el nombre de la herramienta, no una auditoría de lo que hace: un nombre inofensivo puede hacer cualquier cosa.

Acerca de

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

Palabras clave
mcp
Alternativas
Comparando superficies de herramientas…

Sin cobertura de dependencias

Esta entrada no publica ningún paquete de npm, así que Forge no tiene un árbol de dependencias para ella. Es una carencia de cobertura, no una afirmación de que no tenga dependencias.