Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-27 08:53 UTC

xano-inc / xano-developer-mcp

TypeScriptMIT★ 9 estrellas⑂ 1 forkdesde feb 2026Ver en GitHub ↗

xano-inc/xano-developer-mcp tiene un índice de salud de 56 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Vitality (87/100) y la más baja, Community & Adoption (38/100). Se actualizó por última vez hace 5 días. Una sola persona concentra la mayor parte del trabajo reciente.

56
global / 100
Moderado

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

56
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

Xano, Inc.Organización
4 seguidores9 repositorios públicosdesde ago 2025

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
npm@xano/developer-mcp2.2.4346295hace 6 díasxanomcpmodel-context-protocolxanoscriptdocumentationapiclaudeai

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

87Excelente · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 5 días
13.8/36Cadencia de commits — 20/52 semanas con commits
18/18Volumen de commits — 208 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year208
human_commit_share1
days_since_last_push5
active_weeks_last_year20
Cómo se puntúa
27/27Publica versiones — 8 versiones publicadas
36/36Recencia de las versiones — última versión hace 10 días
27/27Cadencia de publicación — una versión cada ~9,4 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count8
latest_release_tagv2.2.3
releases_from_tagsno
days_since_latest_release10
mean_days_between_releases9,4
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

38En riesgo · 18% del índice global
Cómo se puntúa
14.6/60Estrellas — 9 estrellas
0/25Forks — 1 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks1
stars9
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
Cómo se puntúa
47.2/80Descargas mensuales — 3462 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packages@xano/developer-mcp
dependents
ecosystemsnpm
total_downloads
monthly_downloads3462
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

58Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
1.5/22.5Distribución de commits — el principal contribuyente firma el 93% de los commits
8.1/13.5Amplitud de contribuyentes — 6 contribuyentes
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Datos de entrada utilizados
bus_factor1
contributors_sampled6
top_contributor_share0,934
Cómo se puntúa
46.8/46.8Resolución de issues — 100% de issues cerradas
37.7/38.3Aceptación de PR — 64/65 PR decididos fusionados
1.5/15OpenSSF Scorecard: Code-Review — Found 3/28 approved changesets -- score normalized to 1
Datos de entrada utilizados
merged_prs64
open_issues0
closed_issues1
issue_closed_ratio1
closed_unmerged_prs1
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
5/25Alcance del propietario — 4 seguidores de xano-inc
9.2/25Trayectoria — 9 repos públicos, cuenta de ~0 años
Datos de entrada utilizados
followers4
owner_typeOrganization
is_verified
owner_loginxano-inc
public_repos9
account_age_days345
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 6 días
20/20Historial de versiones — 95 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packages@xano/developer-mcp
ecosystemsnpm
any_deprecatedno
min_days_since_publish6

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

42En riesgo · 20% del índice global
Cómo se puntúa
0/24Flujos de trabajo de CI
24/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 22 out of 22 merged PRs checked by a CI test -- score normalized to 10
Datos de entrada utilizados
has_cino
has_tests
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentación

40En riesgo
Cómo se puntúa
30/30README
0/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
0/10Descripción del repositorio
0/10Topics
10/10Wiki
Datos de entrada utilizados
topics
has_wiki
homepage
has_readme
has_docs_dirno
has_descriptionno

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

45En riesgo · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 22 out of 22 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 3/28 approved changesets -- score normalized to 1
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
0/10Dangerous-Workflow — sin datos
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — sin datos
0/5Pinned-Dependencies — sin datos
5/5SAST — SAST tool is run on all commits
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — sin datos
0/7.5Vulnerabilities — 13 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated13
scorecard_versionv5.5.0
checks_inconclusive5
scorecard_aggregate3,7
Excluidos de la puntuación (sin datos o no aplicable): dangerous_workflow, packaging, pinned_dependencies, signed_releases, token_permissions. Los pesos restantes se han renormalizado.
Cómo se puntúa
35/35Dependencias directas libres de avisos conocidos — ninguna dependencia directa tiene un aviso conocido
7.7/25Dependencias indirectas libres de avisos conocidos — 2 afectados: lodash-es 4.17.23 (high 8.1), @hono/node-server 1.19.15 (moderate 5.9)
33.3/40Sin avisos pendientes — 1 paquete(s) con avisos sin atender más allá de 90 días; el más antiguo publicado hace 116 días
Datos de entrada utilizados
sourceosv
advisories3
affected_packages2
assessed_packages112
unassessed_packages0
affected_by_severityhigh 1, moderate 1
direct_affected_packages0
Se cotejó el cierre de dependencias en tiempo de ejecución de npm:@xano/developer-mcp@2.2.4 —lo que arrastra la instalación del paquete publicado—: 112 paquetes. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

67Moderado · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — src/xanoscript_docs/agents.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 84 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,84
agent_instruction_filessrc/xanoscript_docs/agents.md
agent_instruction_max_bytes8227
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — tsconfig.json
10/10Entorno reproducible — lockfile
10/10Práctica demostrada con agentes — 66 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — sin datos
Datos de entrada utilizados
has_nixno
has_tests
lockfilespackage-lock.json
has_dockerfileno
typed_language
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configstsconfig.json
agent_commit_share0,66
toolchain_manifests
dependency_bot_commit_share0
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Pinned-Dependencies. Los pesos restantes se han renormalizado.
Cómo se puntúa
45/45Código verificable por tipos — TypeScript (tipado estático)
55/55Tamaños de archivo manejables — 0/63 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageTypeScript
largest_source_bytes41.837
source_files_sampled63
oversized_source_files0
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
20/20Servidor MCP
0/40Ejemplos ejecutables
Datos de entrada utilizados
example_dirs
has_mcp_signal
api_schema_files

Datos clave

9estrellas de GitHub
6contribuidores
208commits en los últimos 12 meses
5días desde el último push
8versiones publicadas
1factor bus
0issues abiertas
npmecosistemas de paquetes

Advertencias de recopilación de datos

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Más detalle

OpenSSF Scorecard 3.7 / 10
3.7agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-27 08:53 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests22 out of 22 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 3/28 approved changesets -- score normalized to 1
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
n/dDangerous-Workflowno workflows found
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
n/dPackagingpackaging workflow not detected
n/dPinned-Dependenciesno dependencies found
10SASTSAST tool is run on all commits
0Security-Policysecurity policy file not detected
n/dSigned-Releasesno releases found
n/dToken-PermissionsNo tokens found
0Vulnerabilities13 existing vulnerabilities detected
Dependencias directas 4
RegistroPaqueteRestricción de versiónManifiesto
npm@modelcontextprotocol/sdk^1.26.0package.json
npm@xano/xanoscript-language-server^12.8.0package.json
npmminimatch^10.1.2package.json
npmzod^4.0.0package.json
Todas las dependencias 209

Conjunto completo de dependencias resueltas según el grafo de dependencias de GitHub: 4 paquetes directos y 205 indirectos (transitivos). El cierre transitivo es completo cuando el repositorio incluye un lockfile.

RegistroPaqueteVersiónRelación
npm@modelcontextprotocol/sdk1.26.0directa
npm@xano/xanoscript-language-server12.8.0directa
npmminimatch10.2.5directa
npmzod4.3.6directa
npm@chevrotain/cst-dts-gen11.2.0indirecta
npm@chevrotain/gast11.2.0indirecta
npm@chevrotain/regexp-to-ast11.2.0indirecta
npm@chevrotain/types11.2.0indirecta
npm@chevrotain/utils11.2.0indirecta
npm@esbuild/aix-ppc640.27.3indirecta
npm@esbuild/android-arm0.27.3indirecta
npm@esbuild/android-arm640.27.3indirecta
npm@esbuild/android-x640.27.3indirecta
npm@esbuild/darwin-arm640.27.3indirecta
npm@esbuild/darwin-x640.27.3indirecta
npm@esbuild/freebsd-arm640.27.3indirecta
npm@esbuild/freebsd-x640.27.3indirecta
npm@esbuild/linux-arm0.27.3indirecta
npm@esbuild/linux-arm640.27.3indirecta
npm@esbuild/linux-ia320.27.3indirecta
npm@esbuild/linux-loong640.27.3indirecta
npm@esbuild/linux-mips64el0.27.3indirecta
npm@esbuild/linux-ppc640.27.3indirecta
npm@esbuild/linux-riscv640.27.3indirecta
npm@esbuild/linux-s390x0.27.3indirecta
npm@esbuild/linux-x640.27.3indirecta
npm@esbuild/netbsd-arm640.27.3indirecta
npm@esbuild/netbsd-x640.27.3indirecta
npm@esbuild/openbsd-arm640.27.3indirecta
npm@esbuild/openbsd-x640.27.3indirecta
npm@esbuild/openharmony-arm640.27.3indirecta
npm@esbuild/sunos-x640.27.3indirecta
npm@esbuild/win32-arm640.27.3indirecta
npm@esbuild/win32-ia320.27.3indirecta
npm@esbuild/win32-x640.27.3indirecta
npm@hono/node-server1.19.14indirecta
npm@jridgewell/sourcemap-codec1.5.5indirecta
npm@rollup/rollup-android-arm-eabi4.60.3indirecta
npm@rollup/rollup-android-arm644.60.3indirecta
npm@rollup/rollup-darwin-arm644.60.3indirecta
npm@rollup/rollup-darwin-x644.60.3indirecta
npm@rollup/rollup-freebsd-arm644.60.3indirecta
npm@rollup/rollup-freebsd-x644.60.3indirecta
npm@rollup/rollup-linux-arm-gnueabihf4.60.3indirecta
npm@rollup/rollup-linux-arm-musleabihf4.60.3indirecta
npm@rollup/rollup-linux-arm64-gnu4.60.3indirecta
npm@rollup/rollup-linux-arm64-musl4.60.3indirecta
npm@rollup/rollup-linux-loong64-gnu4.60.3indirecta
npm@rollup/rollup-linux-loong64-musl4.60.3indirecta
npm@rollup/rollup-linux-ppc64-gnu4.60.3indirecta
npm@rollup/rollup-linux-ppc64-musl4.60.3indirecta
npm@rollup/rollup-linux-riscv64-gnu4.60.3indirecta
npm@rollup/rollup-linux-riscv64-musl4.60.3indirecta
npm@rollup/rollup-linux-s390x-gnu4.60.3indirecta
npm@rollup/rollup-linux-x64-gnu4.60.3indirecta
npm@rollup/rollup-linux-x64-musl4.60.3indirecta
npm@rollup/rollup-openbsd-x644.60.3indirecta
npm@rollup/rollup-openharmony-arm644.60.3indirecta
npm@rollup/rollup-win32-arm64-msvc4.60.3indirecta
npm@rollup/rollup-win32-ia32-msvc4.60.3indirecta
npm@rollup/rollup-win32-x64-gnu4.60.3indirecta
npm@rollup/rollup-win32-x64-msvc4.60.3indirecta
npm@types/chai5.2.3indirecta
npm@types/deep-eql4.0.2indirecta
npm@types/estree1.0.8indirecta
npm@types/minimatch5.1.2indirecta
npm@types/node22.19.9indirecta
npm@vitest/expect3.2.6indirecta
npm@vitest/mocker3.2.6indirecta
npm@vitest/pretty-format3.2.6indirecta
npm@vitest/runner3.2.6indirecta
npm@vitest/snapshot3.2.6indirecta
npm@vitest/spy3.2.6indirecta
npm@vitest/utils3.2.6indirecta
npmaccepts2.0.0indirecta
npmajv8.20.0indirecta
npmajv-formats3.0.1indirecta
npmassertion-error2.0.1indirecta
npmbalanced-match4.0.4indirecta
npmbody-parser2.2.2indirecta
npmbrace-expansion5.0.6indirecta
npmbytes3.1.2indirecta
npmcac6.7.14indirecta
npmcall-bind-apply-helpers1.0.2indirecta
npmcall-bound1.0.4indirecta
npmchai5.3.3indirecta
npmcheck-error2.1.3indirecta
npmchevrotain11.2.0indirecta
npmcontent-disposition1.0.1indirecta
npmcontent-type1.0.5indirecta
npmcookie0.7.2indirecta
npmcookie-signature1.2.2indirecta
npmcors2.8.6indirecta
npmcross-spawn7.0.6indirecta
npmdebug4.4.3indirecta
npmdeep-eql5.0.2indirecta
npmdepd2.0.0indirecta
npmdunder-proto1.0.1indirecta
npmee-first1.1.1indirecta
npmencodeurl2.0.0indirecta
npmes-define-property1.0.1indirecta
npmes-errors1.3.0indirecta
npmes-module-lexer1.7.0indirecta
npmes-object-atoms1.1.1indirecta
npmesbuild0.27.3indirecta
npmescape-html1.0.3indirecta
npmestree-walker3.0.3indirecta
npmetag1.8.1indirecta
npmeventsource3.0.7indirecta
npmeventsource-parser3.0.6indirecta
npmexpect-type1.3.0indirecta
npmexpress5.2.1indirecta
npmexpress-rate-limit8.5.1indirecta
npmfast-deep-equal3.1.3indirecta
npmfast-uri3.1.2indirecta
npmfdir6.5.0indirecta
npmfinalhandler2.1.1indirecta
npmforwarded0.2.0indirecta
npmfresh2.0.0indirecta
npmfsevents2.3.3indirecta
npmfunction-bind1.1.2indirecta
npmget-intrinsic1.3.0indirecta
npmget-proto1.0.1indirecta
npmgopd1.2.0indirecta
npmhas-symbols1.1.0indirecta
npmhasown2.0.2indirecta
npmhono4.12.25indirecta
npmhttp-errors2.0.1indirecta
npmiconv-lite0.7.2indirecta
npminherits2.0.4indirecta
npmip-address10.2.0indirecta
npmipaddr.js1.9.1indirecta
npmis-promise4.0.0indirecta
npmisexe2.0.0indirecta
npmjose6.1.3indirecta
npmjs-tokens9.0.1indirecta
npmjson-schema-traverse1.0.0indirecta
npmjson-schema-typed8.0.2indirecta
npmlodash-es4.18.1indirecta
npmloupe3.2.1indirecta
npmmagic-string0.30.21indirecta
npmmath-intrinsics1.1.0indirecta
npmmedia-typer1.1.0indirecta
npmmerge-descriptors2.0.0indirecta
npmmime-db1.54.0indirecta
npmmime-types3.0.2indirecta
npmms2.1.3indirecta
npmnanoid3.3.11indirecta
npmnegotiator1.0.0indirecta
npmobject-assign4.1.1indirecta
npmobject-inspect1.13.4indirecta
npmon-finished2.4.1indirecta
npmonce1.4.0indirecta
npmparseurl1.3.3indirecta
npmpath-key3.1.1indirecta
npmpath-to-regexp8.4.2indirecta
npmpathe2.0.3indirecta
npmpathval2.0.1indirecta
npmpicocolors1.1.1indirecta
npmpicomatch4.0.4indirecta
npmpkce-challenge5.0.1indirecta
npmpostcss8.5.14indirecta
npmproxy-addr2.0.7indirecta
npmqs6.15.2indirecta
npmrange-parser1.2.1indirecta
npmraw-body3.0.2indirecta
npmrequire-from-string2.0.2indirecta
npmrollup4.60.3indirecta
npmrouter2.2.0indirecta
npmsafer-buffer2.1.2indirecta
npmsend1.2.1indirecta
npmserve-static2.2.1indirecta
npmsetprototypeof1.2.0indirecta
npmshebang-command2.0.0indirecta
npmshebang-regex3.0.0indirecta
npmside-channel1.1.0indirecta
npmside-channel-list1.0.0indirecta
npmside-channel-map1.0.1indirecta
npmside-channel-weakmap1.0.2indirecta
npmsiginfo2.0.0indirecta
npmsource-map-js1.2.1indirecta
npmstackback0.0.2indirecta
npmstatuses2.0.2indirecta
npmstd-env3.10.0indirecta
npmstrip-literal3.1.0indirecta
npmtinybench2.9.0indirecta
npmtinyexec0.3.2indirecta
npmtinyglobby0.2.15indirecta
npmtinypool1.1.1indirecta
npmtinyrainbow2.0.0indirecta
npmtinyspy4.0.4indirecta
npmtoidentifier1.0.1indirecta
npmtype-is2.0.1indirecta
npmtypescript5.9.3indirecta
npmundici-types6.21.0indirecta
npmunpipe1.0.0indirecta
npmvary1.1.2indirecta
npmvite7.3.3indirecta
npmvite-node3.2.4indirecta
npmvitest3.2.6indirecta
npmvscode-jsonrpc8.2.0indirecta
npmvscode-languageserver9.0.1indirecta
npmvscode-languageserver-protocol3.17.5indirecta
npmvscode-languageserver-textdocument1.0.12indirecta
npmvscode-languageserver-types3.17.5indirecta
npmwhich2.0.2indirecta
npmwhy-is-node-running2.3.0indirecta
npmwrappy1.0.2indirecta
npmzod-to-json-schema3.25.1indirecta
Avisos de dependencias 2

Instalar npm:@xano/developer-mcp@2.2.4 arrastra 112 paquetes, directos y transitivos: 2 tienen avisos conocidos, de los cuales 0 son dependencias directas.

PaqueteVersiónRelaciónGravedadAvisosCorregido en
lodash-es4.17.23indirectaalta24.18.0
@hono/node-server1.19.15indirectamoderada12.0.5

Un aviso significa que la versión registrada en el grafo de dependencias cae dentro del rango afectado de un aviso. No se analiza la alcanzabilidad, y el grafo incluye fijaciones de desarrollo y prueba: un hallazgo puede referirse al utillaje y no al software distribuido.

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 987,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Shell": 2333,
        "JavaScript": 4398,
        "TypeScript": 485821
      },
      "pushed_at": "2026-07-21T23:15:00Z",
      "created_at": "2026-02-05T18:12:40Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-21T23:15:05Z",
      "description": null,
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://www.xano.com/",
      "name": "Xano, Inc.",
      "type": "Organization",
      "login": "xano-inc",
      "company": null,
      "location": null,
      "followers": 4,
      "avatar_url": "https://avatars.githubusercontent.com/u/226722434?v=4",
      "created_at": "2025-08-15T14:13:01Z",
      "is_verified": null,
      "public_repos": 9,
      "account_age_days": 345
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.2.3",
          "kind": "patch",
          "published_at": "2026-07-16T18:02:14Z"
        },
        {
          "tag": "v2.2.2",
          "kind": "patch",
          "published_at": "2026-07-09T18:54:56Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2026-06-01T23:14:35Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2026-06-01T22:12:21Z"
        },
        {
          "tag": "v2.0.5",
          "kind": "patch",
          "published_at": "2026-06-01T20:56:46Z"
        },
        {
          "tag": "v2.0.4",
          "kind": "patch",
          "published_at": "2026-05-20T18:11:11Z"
        },
        {
          "tag": "v2.0.1",
          "kind": "patch",
          "published_at": "2026-05-14T20:34:04Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2026-05-11T16:45:03Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "0cbfc16c6c937dc9a7a555118858bc5ca7d81aa4",
          "body": "… lookup (DEV-6594) (#67)\n\n* feat: add Xano expression language docs with filter reference and per-filter lookup (DEV-6594)\n\n- New `expressions` topic documenting the Xano expression language:\n  context variables, operators (incl. strict ===/!==), auto-flattening\n  paths, [condition] array filtering\n[…]\ncomes a real problem, syncing\nbelongs in an automated pipeline at the source.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Xano expression language docs, filter reference, and per-filter…",
          "author_name": "Brice",
          "author_login": "bearded-xano",
          "committed_at": "2026-07-21T23:15:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8096b71d149051e1f4a463618c0e3d1997c9ee74",
          "body": "Adds server.json so the package can be listed in the official MCP\nregistry, plus the mcpName field in package.json that the registry uses\nto verify npm package ownership.\n\n- server.json: io.github.xano-inc/xano-developer-mcp, npm stdio package\n  entry, and the OAuth-protected remote at https://mcp.x\n[…]\n\n- package.json: add mcpName, bump 2.2.3 -> 2.2.4 so a build containing\n  mcpName exists on npm for the registry to verify against\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add MCP registry server.json and bump to 2.2.4 (#66)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-07-20T18:15:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8c844d9977029a39647633689512fb2f09442548",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): bump version to 2.2.3",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-07-16T18:01:15Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fcbc868f8f7c98b4fc37b62ea36412f74e529722",
          "body": "… (#65)\n\nXanoScript has no `db.delete`, `db.delete_all`, or fluent\n`db.<table>.query()...delete()` — all fail to parse. The valid delete\noperations are `db.del` (single record), `db.bulk.delete` (many by\n`where`), and `db.truncate` (whole table).\n\n- Fix two invalid `cleanup_old_sessions` task exampl\n[…]\nelete-syntax.test.ts, 10\n  tests) covering valid/invalid forms and guarding every shipped doc\n  example against bad delete syntax.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: correct XanoScript delete syntax in docs and examples (DEV-7447)…",
          "author_name": "kristakrebsxano",
          "author_login": "kristakrebsxano",
          "committed_at": "2026-07-16T17:57:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5148ec7a52d06a4b90f4baf4ee415db54979bf3a",
          "body": "… (#63)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "DEV-7449: bump xanoscript-language-server to 12.8.0 (hash index type)…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-07-16T17:57:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0c29acde0e1129e624db73ff7e4a4855a2f10714",
          "body": "The sandbox environment requires a paid plan — the Free (build) plan\ncannot provision one. The CLI docs and README incorrectly described it\nas \"free-tier friendly / available without paid plan,\" which misled\nagents into routing Free users to the sandbox. Correct every sandbox\nreference across the cli_docs topics and README to state paid-only.\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix CLI docs: sandbox is paid-only, not free-tier (#64)",
          "author_name": "kristakrebsxano",
          "author_login": "kristakrebsxano",
          "committed_at": "2026-07-16T17:57:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "17d7bf60ceac8f835856bd1660d42ddbc86dcce7",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): bump version to 2.2.2",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-07-09T18:28:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "75da92e0ac953e37c4aa14e8f0f05ee3868b1a2b",
          "body": "- Add new `knowledge` topic: knowledge list/get commands, frontmatter\n  format (inclusion field + mode aliases), on-disk layout, and sync via\n  workspace/sandbox push/pull\n- function: document new `function run` command (run by name, --data/\n  --json/--stdin input, schema check, exit codes)\n- worksp\n[…]\nflag to unit_test run (now sent to the API)\n- tenant: add snapshot create/list/swap/delete commands\n- start: add knowledge to command categories\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(cli): sync cli_docs with CLI v1.0.5",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-07-09T18:28:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8b93971ff626f7a050b4ea15562e27a87047b002",
          "body": "* feat: add xano_knowledge_list and xano_knowledge_get MCP tools\n\nExpose the new `xano knowledge list`/`knowledge get` CLI subcommands as MCP tools so agents can discover and read a workspace's skills, docs, and agents.md. Adds a shared execFile-based CLI-invocation helper (src/lib/run_xano_cli.ts),\n[…]\n the CLI itself. Drops the now-unused execFile-based CLI-invocation helper.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add xano_knowledge_list and xano_knowledge_get MCP tools (#61)",
          "author_name": "Izzy",
          "author_login": "xano-izzy",
          "committed_at": "2026-07-02T17:55:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c72a41005bda49e3b4a444e2c1c938e28c024d69",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' of github.com:xano-inc/xano-developer-mcp",
          "author_name": "bearded-xano",
          "author_login": "bearded-xano",
          "committed_at": "2026-06-29T17:25:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16abceddd849824155a5f1349faa54fc97fa264f",
          "body": null,
          "is_bot": false,
          "headline": "2.2.2-beta.1",
          "author_name": "bearded-xano",
          "author_login": "bearded-xano",
          "committed_at": "2026-06-29T17:25:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed7cb7339f34a38cbfa3ecb543c21ef4fdc6f870",
          "body": "…#60)\n\n* docs(xanoscript): note validation is syntax-only and push is additive\n\nTwo generalized insights for first-time agents, written terse for AI:\n\n- essentials.md: validation is syntax-only — a `valid` result can still fail at\n  runtime, so always validate -> push -> run.\n- tables.md + cli_docs \n[…]\ng, static-host, deploy) for discoverability.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n* update static template path\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: AI-facing doc improvements (validation, push, static hosting) (…",
          "author_name": "Brice",
          "author_login": "bearded-xano",
          "committed_at": "2026-06-29T17:21:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9e5788cce551b9782746f995bef8ff54729ff04a",
          "body": "2.2.1 stable was rolled back; the version number is burned on npm,\nso the beta line continues as 2.2.2-beta.0.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: move version back to beta track (2.2.2-beta.0)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-06-10T20:27:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3ebd924b8670def0ac734d2e602fd0bcb68b6b6d",
          "body": "…-7190) (#59)\n\n* docs: distinguish expression vs lambda (JS) higher-order filters (DEV-7190)\n\nAudit of the pipe filters in cloud-client/x2 confirmed XanoScript has two\ndisjoint higher-order filter families that AI assistants were mixing up:\n\n- map/filter/some/every/find/findIndex/reduce take inline \n[…]\nnpm audit: 0 vulnerabilities. Build + 218/218 tests + parser smoke test pass.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: distinguish expression vs lambda (JS) higher-order filters (DEV…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-06-10T20:10:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "670b8606f2cb3edc574cacda53184517efe2445b",
          "body": "…(#58)\n\n* docs(cli): document one-shot --code auth flow for scripts and agents\n\nRewrite the auth topic around the new non-interactive login added in\nxano-inc/cli#21: --code/XANO_AUTH_CODE, -i matching by name/ID/URL,\nnon-interactive defaults, and --json output. Add an explicit AI-agent\nsetup workflo\n[…]\n-code flow instead of\n  bare `xano auth` (which blocks on a browser callback)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(cli): document one-shot --code auth flow for scripts and agents …",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-06-10T17:44:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b1cef4bc5098130eecb13228d1e82b51341dad03",
          "body": "…e) (#57)\n\n* docs(cli): document piped-stdin code in --no-browser auth flow, sync with CLI v1.0.3-beta.9\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n* chore: bump version to 2.2.1-beta.2\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(cli): sync cli_docs with CLI v1.0.3-beta.9 (stdin-piped auth cod…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-06-09T21:48:51Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c598bf4ac7e5d31ce372aefe9a5733e0aedefa47",
          "body": "…a.0 (#56)\n\nSync the xano_cli_docs topics with CLI changes since v1.0.2-beta.3:\n\n- auth: --no-browser headless login flow; -i/-w/-b/-p pre-select flags\n  with \"\" empty-value semantics\n- profile: new `profile use` command and project-local profile.yaml\n  (no secrets, parent-dir discovery, active-targ\n[…]\ns auth mention, profile.yaml precedence, refreshed\n  static_host category description\n\nAlso sync package-lock.json version (was stale at 2.0.5).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(cli): sync cli_docs with CLI v1.0.3-beta.8 and bump to 2.2.1-bet…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-06-09T20:28:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d601640dc198cbba690d5ef8ee51f167fd0cf617",
          "body": "Add native Xano file-uploads documentation and wire up topic aliases at runtime; bump docs to 2.3.0 / npm to 2.2.0.",
          "is_bot": false,
          "headline": "docs: file uploads topic + runtime alias resolution (#55)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-06-01T23:14:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fca22bd19d5a3ea668e1ce5854f1b8e26efd466b",
          "body": "Clarify that api.call/task.call/tool.call (tools.md) and the workflow-test\ncall functions belong in tools and workflow tests respectively, steering AI\ncodegen away from emitting them in API endpoints, functions, and tasks.\nPoints to function.run for calling functions from a regular stack.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: scope call statements to their home primitive (#54)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-06-01T22:11:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a89e1124504e0cf8a08b9a95721678133d61bc35",
          "body": "…cts (#53)\n\n* perf(docs): stop auto-bundling tier digests and re-tune topic priorities\n\nThe xanoscript_docs file_path mode auto-included the survival and working\ntier digests (applyTo \"**/*.xs\") alongside the granular topics they\nduplicate, and several construct docs had no priority so they loaded l\n[…]\nize reference (actual ~8KB).\n\nAll 211 tests pass.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(docs): compact no-arg index + single source of truth for tier fa…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-06-01T22:03:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fbb2364fd2c65e789a37df6177c8c83be018ba2e",
          "body": "Make the backend-managed `guid` field guidance lean and directive-first\nfor AI consumers (single bolded line in README and syntax, dropping the\nredundant construct enumeration and code block). Bump package version to\n2.0.5 and docs version to 2.1.1.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(release): tighten guid field docs and bump to 2.0.5 (#52)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-06-01T20:56:13Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c8efaa1ba9e5e154d1e5d4d4b9135e32715c7862",
          "body": "… 2.0.4 (#51)\n\n- syntax.md System Context table synced with cloud-frontend env vars page (added $release, $platform, $debugger; removed $webflow)\n- syntax.md Request Context table given a Type column to match; removed unverified $remote_port/$remote_host\n- syntax.md: noted that user-defined env vars\n[…]\nmd & apis.md: path-param examples now use a static prefix (e.g., `get_one/{id}`) to avoid collisions\n- package.json: 2.0.3 → 2.0.4\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(release): sync system env vars, document public API URL, bump to…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-20T18:10:53Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1bff856200750980aaf4b841579dba8c51ed4a6b",
          "body": "Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): bump version to 2.0.3 (#50)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-18T17:28:00Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3c728e234128d2e3de95aadab549c31d50650911",
          "body": "Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(deps): update @xano/xanoscript-language-server to ^12.4.0 (#49)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-18T17:21:51Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9c64b6549e0ef3bb09010e3ed53e5e6cc8bc00c3",
          "body": "…arkers (#48)\n\n* docs(cli): sync cli_docs with latest CLI and document safety markers\n\nVerified each topic against `xano --help` output from CLI v1.0.2-beta.3:\n- branch list: add missing --backups flag\n- release push: remove nonexistent -b/--branch flag\n- static_host build get: correct positional ar\n[…]\nse deploy` to [IMPORTANT] list.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\n\n* Update version\n\n---------\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(cli): sync cli_docs with CLI v1.0.2-beta.3 and document safety m…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-15T22:14:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "86f448b592afd2ba7484921d65c6ec73a28d8b0d",
          "body": "* chore(deps): update @xano/xanoscript-language-server to ^12.3.0\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\n\n* chore: bump version to 2.0.1 for release\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(deps): update @xano/xanoscript-language-server to ^12.3.0 (#47)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-14T20:33:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d7caea0647dbf161449ad3ce7a62fa1716d04a3d",
          "body": "Resolves 13 of 18 audit findings via transitive dependency bumps in\npackage-lock.json (no package.json changes). Affected packages include\nhono, @hono/node-server, express-rate-limit, ajv, fast-uri, ip-address,\npath-to-regexp, picomatch, postcss, qs, rollup, and vite.\n\nThe remaining 5 high-severity \n[…]\nernally as a\nparser dependency and does not expose `_.template`/`_.unset`/`_.omit` to\nattacker-controlled input from this package.\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(deps): npm audit fix to resolve 13 vulnerabilities (#46)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-11T18:54:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2e5d6d35dd3844a93bdad6c640f5e466363a8474",
          "body": "v2.0.0: McpServer migration, Zod source-of-truth, xano_ tool namespace",
          "is_bot": false,
          "headline": "Merge pull request #45 from xano-inc/justin/v2-mcp-server-refactor",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-11T16:43:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e00102a7b917b4775f2ceb019dd7243ca40c74c9",
          "body": "- xano-init: allowed-tools and inline references now use xano_* tool\n  names under the mcp__xano__ prefix (matches the recommended client\n  config in the README)\n- xanoscript-docs-expert: cross-references in SKILL.md and\n  doc-conventions.md updated from xanoscript_docs({...}) to\n  xano_xanoscript_d\n[…]\nuidance now points at toolSpecs +\n  defineTool/dispatch instead of the removed *ToolDefinition exports\n  and toolDefinitions array\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update skill references for v2 tool names and exports",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-11T16:42:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fca580a6152359c530baf0d266a037b6a3191139",
          "body": "Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump version to 2.0.0 for release",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-11T16:37:34Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a59d6fd855c69b518ee27b38483abdedd31fa1ea",
          "body": "Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump version to 2.0.0-beta.0 for npm beta tag",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-11T16:30:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b223db837673b005341d4297abe9be43eb0f295e",
          "body": "…ports\n\n- Add tsconfig.build.json that excludes **/*.test.ts; build script uses\n  it and wipes dist first so stale artifacts from old layouts (api_docs,\n  templates, xanoscript_docs_auto, *.test.js) can't leak into the\n  published tarball\n- README upgrade notes now cover the removed individual *Tool\n[…]\ntion\n\nThe default tsconfig still includes tests so typecheck and editors keep\nvalidating them — only the build output is narrowed.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Stop shipping test files in dist; document removed *ToolDefinition ex…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-10T20:09:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3845ee324247ee0b4a551e563c52f25cfeb2f696",
          "body": "…nitization\n\n- Declare zod ^4.0.0 in dependencies (was only transitive via SDK)\n- Wrap registerTool/registerResource handlers in try/catch so handler\n  exceptions return structured tool errors instead of transport failures\n- Strip $schema and additionalProperties from emitted JSON Schema; mark\n  Too\n[…]\nivation; McpServer InMemoryTransport\n  registration smoke test; warnings-count contract; field-name mention\n  in validation errors\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Address PR review: zod dep, error handling, typed dispatch, schema sa…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-10T19:55:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "15b64cb23ce76b9ac912c4ee6d1c0b1a05400c1c",
          "body": "All five MCP tools now share a consistent `xano_` prefix:\n\n- validate_xanoscript → xano_validate_xanoscript\n- xanoscript_docs    → xano_xanoscript_docs\n- meta_api_docs      → xano_meta_api_docs\n- cli_docs           → xano_cli_docs\n- mcp_version        → xano_version\n\nImproves discoverability when ma\n[…]\nBreaking change: MCP clients referencing tools by name must update.\nREADME \"Upgrading from 1.x to 2.0\" documents the rename table.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Normalize tool names under xano_ namespace",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-10T19:36:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e80bcb30cce3f9ea32345352d397cadccaed492c",
          "body": "BREAKING: handleTool is now async and returns Promise<ToolResult>.\n\n- Server moved from low-level Server to McpServer with registerTool /\n  registerResource. Schemas are derived from Zod via z.toJSONSchema, so\n  the wire-level JSON Schema can never drift from the runtime parser.\n- New tools/define_t\n[…]\nZod schema before reaching the handler.\n- validate_xanoscript success results now include a warnings count in\n  structuredContent.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "v2.0.0: Migrate MCP server to McpServer + Zod source-of-truth schemas",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-05-10T19:30:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2fbae12d2fae045b436f50bcae42beb4d3709590",
          "body": "Collapse multi-line where clauses in docs (1.0.75)",
          "is_bot": false,
          "headline": "Merge pull request #44 from xano-inc/docs/where-clause-single-line",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-23T22:37:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a2328d8665c145b943e3feca7408e998391ce6a",
          "body": "Multi-line `where` clauses with `&&` continuation across lines were\nmisleading as canonical examples. Collapse all six affected snippets\n(addons, syntax, tasks, tools, security x2) onto a single line.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Collapse multi-line where clauses in docs and bump to 1.0.75",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-23T22:36:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "96df0c91a6928943830c6d4a1a1d3e3048c6afb3",
          "body": "Audit and fix CLI docs against xano-inc/cli source",
          "is_bot": false,
          "headline": "Merge pull request #43 from xano-inc/docs/cli-accuracy-audit",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-20T18:30:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c34426698e1609e168e8783c247be52097ae0ec",
          "body": "Ran a 15-agent audit comparing every cli_docs topic against the actual\nCLI source at github.com/xano-inc/cli and corrected discrepancies so\neach topic now faithfully reflects the shipped commands.\n\nHighlights:\n- profile edit: restored documentation for --access_token, --instance_origin,\n  --account_\n[…]\nget/create/edit/\n  delete/set_live\n- README: CLI topic table synced with registry (removed deleted `run`\n  topic, added `sandbox`)\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Audit and fix CLI docs against xano-inc/cli source",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-20T18:26:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e54c892d25212a773a6185a574f7d5e691cae117",
          "body": "Bump version to 1.0.73",
          "is_bot": false,
          "headline": "Merge pull request #42 from xano-inc/version/1.0.73",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-16T17:36:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b69bd6e65cd787c3ee478e6aaf67804d8f56c66f",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Update debugging documentation",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-16T17:36:33Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6b515a24f82e03c15626d1a5710e1b937aadfd2f",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Bump version to 1.0.73",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-16T17:34:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "11a7fb864e8ba86a281f213db1c12c262fdf3d70",
          "body": null,
          "is_bot": false,
          "headline": "Inc to 1.0.72",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-16T15:59:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "06c0e07511a2fb25534929118628945a5409b27a",
          "body": "Document xano-init skill install in README",
          "is_bot": false,
          "headline": "Merge pull request #41 from xano-inc/docs/init-skill-readme",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-16T15:59:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da60e5ec9e1d4b99a58378622a18bb55d5341a73",
          "body": "Splits the Xano Skills section into two audiences: Claude Code users\nworking inside this repo (already set up via .claude/skills/, zero\ninstall) and users on other agents or projects who need the npx\nskills add command. Also surfaces the newly-shipped\nxanoscript-docs-expert skill.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Clarify README skills section for in-repo vs. external install",
          "author_name": "lowcodelockyy",
          "author_login": "lowcodelockyy",
          "committed_at": "2026-04-15T23:56:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6ac82f48a7280b0de3577f15b3c400757555d95e",
          "body": "Ships xanoscript-docs-expert under skills/ so it can be installed via\nthe Agent Skills CLI alongside xano-init, and mirrors xano-init into\n.claude/skills/ so Claude Code picks it up automatically when working\nin this repo.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Distribute xano-init and xanoscript-docs-expert skills",
          "author_name": "lowcodelockyy",
          "author_login": "lowcodelockyy",
          "committed_at": "2026-04-15T23:53:38Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2787dbe1e1534036f283ea686d1dab251c51f11c",
          "body": "Adds a concise \"Xano Skills\" section to the README covering the\nrecommended `npx skills add` command, multi-agent install, and how\nto invoke the skill once loaded.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Document xano-init skill install in README",
          "author_name": "lowcodelockyy",
          "author_login": "lowcodelockyy",
          "committed_at": "2026-04-15T23:08:54Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4eb1e5dd1a77309866afa377caa76525c3f9c4b1",
          "body": null,
          "is_bot": false,
          "headline": "Inc package.json to release skill",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-15T22:52:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3f13e79769ac25683f49a61644fc5fb8d808e4b",
          "body": "Add xano-init skill for workspace discovery",
          "is_bot": false,
          "headline": "Merge pull request #40 from xano-inc/init-skill",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-15T22:50:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8385a970aeb26cfa4efbc7afa1df6f9bc6932b2",
          "body": "Introduces a guided setup skill that profiles a Xano workspace to build a\ndevelopment playbook centered on the sandbox workflow.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add xano-init skill for workspace discovery",
          "author_name": "lowcodelockyy",
          "author_login": "lowcodelockyy",
          "committed_at": "2026-04-15T22:43:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "68c7c54d337059aaa58aaa777c48c0aa97117bea",
          "body": "Add severity support to validation diagnostics",
          "is_bot": false,
          "headline": "Merge pull request #39 from xano-inc/feat/validation-severity-support",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-13T21:51:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56d5ef7998305e2a72c164ad0ca05d20d9124606",
          "body": "Upgrade to xanoscript-language-server v12 which includes severity on\ndiagnostics. The validator now processes both parser.errors (ERROR) and\nparser.warnings (WARNING), with warnings no longer marking code as\ninvalid. Also removes deleted run/schema doc topics from tests.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add severity support to validation diagnostics",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-13T21:50:22Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a97e522e3dd96fd728d843f1eef83337d77b2e43",
          "body": "Add dblink input type docs",
          "is_bot": false,
          "headline": "Merge pull request #38 from xano-inc/docs/dblink-input-type",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-13T21:00:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4be1ca4264d56433db4a536984475635cf726e17",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add dblink input type docs, remove run/schema docs",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-13T20:51:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c7985360ca421aa1eabe3a1f997954d6422e5e79",
          "body": "Add API route collision documentation",
          "is_bot": false,
          "headline": "Merge pull request #37 from xano-inc/docs/api-route-collisions",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-09T21:40:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "970d1149db7fdf45ca3f5201b0ddaa0e5415774f",
          "body": "Xano routing does not cascade, so bare wildcard segments like\n{workspace_id} collide with literal paths at the same position.\nDocument this behavior and recommend prefixing wildcards with a\nliteral segment.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add route collision docs for API wildcard paths",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-09T21:39:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2fb08a4e522b730e1098889051f2e0f913286a44",
          "body": "Expand comments section with placement examples",
          "is_bot": false,
          "headline": "Merge pull request #36 from xano-inc/docs/expand-comments-section",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-08T20:09:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c3239bdfb198f68282c487960efd60e0c491c84",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Expand comments section with placement examples",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-08T20:09:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e59dff2148aa678da85128a5fb87f79986ebb14a",
          "body": null,
          "is_bot": false,
          "headline": "Update package.json",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-07T21:48:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd6c97cae858dab815e9f0fe4d80e249d0d94605",
          "body": "Add publish:beta and publish:latest npm scripts",
          "is_bot": false,
          "headline": "Merge pull request #35 from xano-inc/chore/publish-beta-scripts",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-07T21:46:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "379fa156a79fab367bf8a09057e396b031462c69",
          "body": "Mirrors the workflow from xano-inc/cli: bump-version.sh handles\nbeta/patch bumps and check-publish-tag.sh guards against publishing\nprerelease versions without --tag.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add publish:beta and publish:latest npm scripts",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-07T20:13:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e8b5d6b9d89a8767527ae1266c18e769c6e79e12",
          "body": "…t-practice\n\nAdd schema ordering best practice to tables docs",
          "is_bot": false,
          "headline": "Merge pull request #34 from xano-inc/chore/tables-schema-ordering-bes…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-03T19:38:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83dad57f0ac42e902826e814687d5ff192769c1a",
          "body": "Document the recommendation to add new fields to the bottom of the\nschema block. Reorder examples to follow this convention. Bump version\nto 1.0.65.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add schema ordering best practice to tables docs",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-03T19:37:24Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6d1fc34d2909c844927e0d831a52e84ca2e56b69",
          "body": "Audit doc file paths for consistency with workspace structure",
          "is_bot": false,
          "headline": "Merge pull request #33 from xano-inc/chore/audit-doc-file-paths",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-02T20:05:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ba33d8bba6aa7d6999ecc27a3798ee7504f9e53",
          "body": "Functions can have subdirectory nesting (e.g., function/some/path/util.xs),\nso the glob pattern needs ** to match at any depth.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Use function/**/*.xs glob to support nested function paths",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-02T20:04:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b23af22660ec78c18816a0539f518f2822f74852",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Bump version to 1.0.64",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-02T19:53:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1cb8ea417ef6ab5f04bc1b5467e1f0a3124bfea0",
          "body": "- Plural → singular folder names: tables/ → table/, apis/ → api/,\n  functions/ → function/, tasks/ → task/, addons/ → addon/\n- AI constructs under ai/ prefix: agent/ → ai/agent/, tool/ → ai/tool/,\n  mcp_server/ → ai/mcp_server/\n- Triggers per-construct instead of unified: triggers/ → */trigger/,\n  a\n[…]\nltime/trigger/ entries\n- Updated applyTo in all 24 doc files, docs_index.json, skill references,\n  source code examples, and tests\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Audit and fix all doc file paths to match actual workspace structure",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-02T19:51:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7450f38c8ed1b77fc62ca64db875b8b0c2116064",
          "body": "…erver\n\nBump @xano/xanoscript-language-server to 11.12.0",
          "is_bot": false,
          "headline": "Merge pull request #31 from xano-inc/chore/bump-xanoscript-language-s…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-01T18:31:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbf8bf58eef174e00b1e9b5ccce009e5ad437fd4",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Bump @xano/xanoscript-language-server to 11.12.0 and version to 1.0.63",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-01T18:30:34Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "de7d075092cb199b9751f0bff19421e6c6be6d80",
          "body": "…erver\n\nBump xanoscript-language-server to 11.11.0",
          "is_bot": false,
          "headline": "Merge pull request #30 from xano-inc/chore/bump-xanoscript-language-s…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-01T17:24:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c6fcb39f2192d3bd674c2596d1a1e88f122a9ba",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Bump @xano/xanoscript-language-server to 11.11.0 and version to 1.0.62",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-04-01T17:23:23Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a5c5c72948e17f977a71985f9baf78afbba02c14",
          "body": "Add CLI docs for new commands and update README",
          "is_bot": false,
          "headline": "Merge pull request #29 from xano-inc/xanojustin/update-cli-docs",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-20T16:40:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a4e809f9889ec621896cd001db1aeb132cb7fe2",
          "body": "…ommands\n\nAdd 7 new CLI documentation topics (auth, release, tenant, unit_test,\nworkflow_test, platform, update) and update 8 existing topics with new\nflags, commands, and related_topics cross-references. Update README with\nthe new available topics. Bump version to 1.0.61.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add CLI docs for auth, release, tenant, tests, platform, and update c…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-20T16:29:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ded8fe84f398a4bfe060e039f522d4bbb91b4cd6",
          "body": "Fix broken topic references and add Related Topics",
          "is_bot": false,
          "headline": "Merge pull request #28 from xano-inc/fix/docs-topic-references",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-12T16:42:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1dfb94a34cc4d69b152ffc36103d86a8a33c6bb0",
          "body": "- Use fully qualified paths (integrations/redis) instead of bare names (redis) in README sub-topics\n- Fix functions.md referencing \"testing\" instead of \"unit-testing\"\n- Add all missing topics to survival.md Available Topics list\n- Add syntax sub-topics to README Core Language table\n- Add Related Topics sections to middleware, branch, workspace, schema, realtime, debugging docs\n- Bump version to 1.0.60\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix broken topic references and add missing Related Topics sections",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-12T16:42:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fc633825d92c31c0c9d8b9f5ccbdcab12b82f3b2",
          "body": "Add tiered doc delivery and dedup for low-end AI models",
          "is_bot": false,
          "headline": "Merge pull request #27 from xano-inc/feat/docs-tiered-delivery-and-dedup",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-05T21:53:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c9988117dd7b92bb6bfa12d47e125ab4c7b6977",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Bump version to 1.0.59",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-05T21:53:29Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8644450477fe44fdb94160647835c2ab942a42a2",
          "body": "…ters\n\nAdd tier and max_tokens parameters to the root README tool docs,\nadd survival/working entries to Available Topics and MCP Resources tables,\nadd tier examples, and add Tiers section to xanoscript_docs README index.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Update documentation to include survival/working tiers and new parame…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-05T21:52:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "eab88929f6c702aabb972b9d1b10a7d9b10fb040",
          "body": "… models\n\n- Add survival (~800 tokens) and working (~3500 tokens) documentation tiers\n- Add max_tokens budget parameter for context-aware topic loading\n- Add priority-based topic ordering in docs_index.json\n- Fix extractQuickReference() to include Common Mistakes sections\n- Add token estimates to index mode output\n- Deduplicate content across 28 documentation files (286KB → 237KB)\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add tiered documentation delivery and deduplicate docs for low-end AI…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-05T21:52:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3da392b240d60932db7c82ee965297891a37da93",
          "body": "…-server-11.8.2\n\nBump @xano/xanoscript-language-server to 11.8.2",
          "is_bot": false,
          "headline": "Merge pull request #26 from xano-inc/chore/update-xanoscript-language…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-03T22:23:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a62ed7351cb463074d662aa86551f3d2849ee122",
          "body": "Update @xano/xanoscript-language-server from ^11.6.5 to ^11.8.2 and\nbump package version to 1.0.58. All 184 tests pass.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Bump @xano/xanoscript-language-server to 11.8.2 and version to 1.0.58",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-03-03T22:23:30Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c987fec71ba5416a211669c580d4ea8753b7435a",
          "body": "…advanced\n\nArchitecture improvements and advanced MCP features (iterations 5 & 6)",
          "is_bot": false,
          "headline": "Merge pull request #25 from xano-inc/feat/iteration-5-6-architecture-…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T20:57:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9009f885fb6c0e248303048a6b0a7482ba39b641",
          "body": "Sync documentation with current codebase: replace cheatsheet/quickstart\nwith essentials topic, add syntax sub-topics (string-filters,\narray-filters, functions), document index mode and exclude_topics\nparameter, update project structure and test coverage sections, and\nfix docs_index.json reference in documentation structure.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Update README to reflect iteration 5/6 changes",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T20:56:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0636b96549f11f35d0f50d25799ea611d65b5260",
          "body": "Iteration 5 - Architecture & Code Quality:\n- Unify path resolution: remove duplicate getXanoscriptDocsPath from index.ts\n- Add content caching with Map<string, string> for doc file reads and version\n- Expand test coverage: 2 new test files (tools/index.test.ts, tools/xanoscript_docs.test.ts)\n- Add r\n[…]\nnitions with structuredContent\n  in tool responses for programmatic client access\n\nTests: 184 total (all passing), TypeScript compiles cleanly.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Architecture improvements and advanced MCP features (iterations 5 & 6)",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T20:51:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f943a4f7520c76a279a6a0c48f339da35535e953",
          "body": "Reduce doc redundancy: consolidate essentials, split syntax sub-topics",
          "is_bot": false,
          "headline": "Merge pull request #24 from xano-inc/feat/iteration-4-reduce-redundancy",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T20:23:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd5f855c7d7ea6852d87dc984f4121a96a1750a0",
          "body": "…x into sub-topics\n\n- Merge cheatsheet.md and quickstart.md into essentials.md (34% size reduction)\n- Split syntax.md (37.9KB → 17.2KB core + 3 on-demand sub-topics)\n  - syntax/string-filters.md: string filters, regex, encoding, security filters\n  - syntax/array-filters.md: array filters, functional\n[…]\nct, bitwise functions\n- Update topic registry, tests, tool descriptions, and cross-references\n- Update docs_index.json with new topic structure\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Reduce doc redundancy: consolidate cheatsheet+quickstart, split synta…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T20:10:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4782684b2ed06f533a5f02fdcd3f108501a4c511",
          "body": "Fix doc content quality: backticks, commas, incorrect operations, stale refs",
          "is_bot": false,
          "headline": "Merge pull request #23 from xano-inc/fix/iteration-3-doc-content-quality",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T19:30:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0c10170fe9825af71e3359cb10148770007fff9",
          "body": "…le refs\n\n- Remove unnecessary backticks from conditional examples (syntax.md, quickstart.md)\n- Clarify backtick expression mode in syntax.md Expressions section\n- Fix comma rules: db.del multi-line without commas (cheatsheet.md), throw\n  block comma removed (quickstart.md), expanded Common Mistake \n[…]\n.md)\n- Remove stale line number references from README.md and security.md\n- Remove duplicate storage.s3_put/s3_get entries from docs_index.json\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix doc content quality: backticks, commas, incorrect operations, sta…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T19:28:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4e29aff93bbb311a5a5df08226dcfb59df433f20",
          "body": "Reduce context window usage for file_path doc lookups",
          "is_bot": false,
          "headline": "Merge pull request #22 from xano-inc/feat/iteration-2-context-efficiency",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T19:06:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d71e96eeb201feb637a50c5501a1e90e001dfc8",
          "body": "- Narrow applyTo patterns: remove realtime, schema, streaming, addons,\n  and integrations from broad functions/apis globs (topic-only now)\n- Add exclude_topics parameter so AIs can skip already-loaded topics\n- Default to quick_reference mode for file_path (87% size reduction)\n- Update tests for narrowed patterns and new features\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Reduce context window usage for file_path doc lookups",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T19:05:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fda0c1a4a74235ac9bed87bc2a1fe6e7fcb09026",
          "body": "…ments\n\nFix doc bugs, add tool annotations, and improve error handling",
          "is_bot": false,
          "headline": "Merge pull request #21 from xano-inc/fix/iteration-1-bugs-and-improve…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T18:43:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ca6953ee4d551979c6737797d8bddae529f17ce",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "style: improve foreach formatting in quickstart.md",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T18:42:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9124e71bcdd89e0e3c101332ca2a08d11f771b7a",
          "body": "…ation\n\n- Fix db.delete → db.del in quickstart CRUD table\n- Fix # → // comments in unit-testing.md code blocks\n- Fix each ($items as $item) → foreach standard syntax in quickstart\n- Fix |uuid → security.create_uuid in debugging.md and security.md\n- Add MCP tool annotations (readOnlyHint, etc.) to al\n[…]\nings in readXanoscriptDocsV2\n- Remove unreachable \"Error: Invalid parameters\" return\n- Fix workspace.xs test to use workspace/workspace.xs path\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix doc bugs, add tool annotations, enum validation, and error propag…",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-26T18:22:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "02779f8f3b8722eb086d843fb4ab05a076b5fb35",
          "body": null,
          "is_bot": false,
          "headline": "Inc package version",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-20T23:29:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36b3edd039fe75f25a02b56ea20f8ba6023e59b1",
          "body": "docs: clarify $input prefix required, $var prefix optional for stack variables",
          "is_bot": false,
          "headline": "Merge pull request #20 from xano-inc/docs/input-variable-access-rules",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-20T23:29:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "107b5298ccdc0d2ceda0c40d5ab37694d588cee7",
          "body": "…variables\n\nAdd explicit documentation across syntax.md, quickstart.md, and the\nskill reference explaining that input fields must always be accessed as\n$input.fieldname, while stack variables declared with var can be\nreferenced as either $var.name or the bare shorthand $name.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: clarify $input prefix required, $var prefix optional for stack …",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-20T23:23:51Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f0f9cba8dbc1ed9b010646c8fd66b01f7a082b02",
          "body": "docs: add $index to reserved variable names",
          "is_bot": false,
          "headline": "Merge pull request #19 from xano-inc/docs/add-index-reserved-variable",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-20T23:04:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "258074b46a53e645bc9e08b83bb1f17ea55ff6ef",
          "body": "Replaces \\$index with \\$idx in loop examples across docs and skill\nreferences to avoid using the newly reserved variable name.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update examples to use \\$idx now that \\$index is reserved",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-20T23:03:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ffec1eddba83149835c7641d3a5b97e488920410",
          "body": "Adds \\$index to all reserved variable name lists across documentation and\nthe validator, reflecting its special role as the loop iteration counter\nin for loops.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add \\$index to reserved variable names",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-20T22:59:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c6f6834b6ad9aaeb0d701b9b1028d317758154fa",
          "body": null,
          "is_bot": false,
          "headline": "Inc package",
          "author_name": "Justin Albrecht",
          "author_login": "xanojustin",
          "committed_at": "2026-02-20T21:58:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 8,
      "commits_last_year": 208,
      "latest_release_at": "2026-07-16T18:02:14Z",
      "latest_release_tag": "v2.2.3",
      "releases_from_tags": false,
      "days_since_last_push": 5,
      "active_weeks_last_year": 20,
      "days_since_latest_release": 10,
      "mean_days_between_releases": 9.4
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": false,
      "has_contributing": false,
      "health_percentage": 25,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@xano/developer-mcp",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "xano",
            "mcp",
            "model-context-protocol",
            "xanoscript",
            "documentation",
            "api",
            "claude",
            "ai"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@xano/developer-mcp",
          "is_deprecated": false,
          "latest_version": "2.2.4",
          "repository_url": "https://github.com/xano-inc/xano-developer-mcp",
          "versions_count": 95,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 5,
          "monthly_downloads": 3462,
          "first_published_at": "2026-02-05T18:56:13.631000Z",
          "latest_published_at": "2026-07-20T18:16:07.074000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        }
      ]
    },
    "popularity": {
      "forks": 1,
      "stars": 9,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-04-20",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_forks": 1
      },
      "star_history": null,
      "open_issues_and_prs": 1
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 41837,
      "source_files_sampled": 63,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "src/xanoscript_docs/agents.md"
      ],
      "agent_instruction_max_bytes": 8227
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "lodash-es",
            "direct": false,
            "version": "4.17.23",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 8.1,
            "advisory_ids": [
              "GHSA-f23m-r3pf-42rh",
              "GHSA-r5fr-rjxr-66jc"
            ],
            "fixed_version": "4.18.0",
            "advisory_count": 2,
            "oldest_advisory_days": 116
          },
          {
            "name": "@hono/node-server",
            "direct": false,
            "version": "1.19.15",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.9,
            "advisory_ids": [
              "GHSA-frvp-7c67-39w9"
            ],
            "fixed_version": "2.0.5",
            "advisory_count": 1,
            "oldest_advisory_days": 5
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 1,
          "moderate": 1
        },
        "advisory_count": 3,
        "affected_count": 2,
        "assessed_count": 112,
        "malicious_count": 0,
        "assessed_package": "npm:@xano/developer-mcp@2.2.4",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@modelcontextprotocol/sdk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.26.0"
        },
        {
          "name": "@xano/xanoscript-language-server",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^12.8.0"
        },
        {
          "name": "minimatch",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.1.2"
        },
        {
          "name": "zod",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@modelcontextprotocol/sdk",
            "direct": true,
            "version": "1.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xano/xanoscript-language-server",
            "direct": true,
            "version": "12.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": true,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "4.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/cst-dts-gen",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/gast",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/regexp-to-ast",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/types",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/utils",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@hono/node-server",
            "direct": false,
            "version": "1.19.14",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/minimatch",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "22.19.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-formats",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "body-parser",
            "direct": false,
            "version": "2.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "6.7.14",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "5.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "check-error",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "chevrotain",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "content-disposition",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "cookie-signature",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "cors",
            "direct": false,
            "version": "2.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "deep-eql",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "depd",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ee-first",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "encodeurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "escape-html",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "etag",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "eventsource",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "eventsource-parser",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "express",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "express-rate-limit",
            "direct": false,
            "version": "8.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "finalhandler",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "forwarded",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fresh",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hono",
            "direct": false,
            "version": "4.12.25",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ip-address",
            "direct": false,
            "version": "10.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ipaddr.js",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-promise",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jose",
            "direct": false,
            "version": "6.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-typed",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash-es",
            "direct": false,
            "version": "4.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "loupe",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "media-typer",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-descriptors",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.11",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "parseurl",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "pathval",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "pkce-challenge",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.14",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-addr",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.15.2",
            "ecosystem": "npm"
          },
          {
            "name": "range-parser",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "raw-body",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.60.3",
            "ecosystem": "npm"
          },
          {
            "name": "router",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "send",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "serve-static",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "setprototypeof",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-map",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-weakmap",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "3.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-literal",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.15",
            "ecosystem": "npm"
          },
          {
            "name": "tinypool",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyspy",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "toidentifier",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-is",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "unpipe",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "7.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "vite-node",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-jsonrpc",
            "direct": false,
            "version": "8.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-languageserver",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-languageserver-protocol",
            "direct": false,
            "version": "3.17.5",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-languageserver-textdocument",
            "direct": false,
            "version": "1.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-languageserver-types",
            "direct": false,
            "version": "3.17.5",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "zod-to-json-schema",
            "direct": false,
            "version": "3.25.1",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 209,
        "direct_count": 4,
        "indirect_count": 205
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 1,
        "merged_prs": 64,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 1,
        "closed_unmerged_prs": 1
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "xanojustin",
          "commits": 185,
          "avatar_url": "https://avatars.githubusercontent.com/u/132400351?v=4"
        },
        {
          "type": "User",
          "login": "lowcodelockyy",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/152480932?v=4"
        },
        {
          "type": "User",
          "login": "bearded-xano",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/168130497?v=4"
        },
        {
          "type": "User",
          "login": "nocodebackend",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/75691803?v=4"
        },
        {
          "type": "User",
          "login": "kristakrebsxano",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/223342255?v=4"
        },
        {
          "type": "User",
          "login": "xano-izzy",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/186202090?v=4"
        }
      ],
      "contributors_sampled": 6,
      "top_contributor_share": 0.934
    },
    "quality_signals": {
      "has_ci": false,
      "has_tests": true,
      "ci_workflows": [],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "22 out of 22 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 1,
            "reason": "Found 3/28 approved changesets -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": null,
            "reason": "no dependencies found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "13 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "0cbfc16c6c937dc9a7a555118858bc5ca7d81aa4",
        "ran_at": "2026-07-27T08:53:12Z",
        "aggregate_score": 3.7,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-26T14:02:23Z",
      "oldest_open_prs": [
        {
          "number": 62,
          "created_at": "2026-07-08T20:30:50Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-21T23:15:00Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/xano-inc/xano-developer-mcp",
    "host": "github.com",
    "name": "xano-developer-mcp",
    "owner": "xano-inc"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 56,
      "inputs": {
        "security": 45,
        "vitality": 87,
        "community": 38,
        "governance": 58,
        "engineering": 42
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 87,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "commits_last_year": 208,
              "human_commit_share": 1,
              "days_since_last_push": 5,
              "active_weeks_last_year": 20
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "20/52 weeks with commits",
                "points": 13.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 20
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "208 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 208
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 8,
              "latest_release_tag": "v2.2.3",
              "releases_from_tags": false,
              "days_since_latest_release": 10,
              "mean_days_between_releases": 9.4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "8 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 10 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~9.4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 9.4
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 38,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 15,
            "inputs": {
              "forks": 1,
              "stars": 9,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "9 stars",
                "points": 14.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 59,
            "inputs": {
              "packages": [
                "@xano/developer-mcp"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 3462
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "3,462 downloads/month across npm",
                "points": 47.2,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 3462,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 58,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 19,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 6,
              "top_contributor_share": 0.934
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 93% of commits",
                "points": 1.5,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 93
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "6 contributors",
                "points": 8.1,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "merged_prs": 64,
              "open_issues": 0,
              "closed_issues": 1,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 1
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "64/65 decided PRs merged",
                "points": 37.7,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 64,
                      "decided": 65
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 3/28 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "followers": 4,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "xano-inc",
              "public_repos": 9,
              "account_age_days": 345
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "4 followers of xano-inc",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 4,
                      "login": "xano-inc"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "9 public repos, account ~0 yr old",
                "points": 9.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 9
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@xano/developer-mcp"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 6
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 6 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "95 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 95
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "at_risk",
        "name": "Engineering Quality",
        "value": 42,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "has_ci": false,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "22 out of 22 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "at_risk",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 45,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "dangerous_workflow",
                    "packaging",
                    "pinned_dependencies",
                    "signed_releases",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 37,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 13,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 5,
              "scorecard_aggregate": 3.7
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "22 out of 22 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 3/28 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "13 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "good",
            "name": "Dependency advisories",
            "note": "Matched the npm:@xano/developer-mcp@2.2.4 runtime dependency closure — what installing the published package pulls in — 112 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@xano/developer-mcp@2.2.4",
                  "assessed": 112
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 76,
            "inputs": {
              "source": "osv",
              "advisories": 3,
              "affected_packages": 2,
              "assessed_packages": 112,
              "unassessed_packages": 0,
              "affected_by_severity": "high 1, moderate 1",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "2 affected: lodash-es 4.17.23 (high 8.1), @hono/node-server 1.19.15 (moderate 5.9)",
                "points": 7.7,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 2,
                      "packages": "lodash-es 4.17.23 (high 8.1), @hono/node-server 1.19.15 (moderate 5.9)"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 116 days ago",
                "points": 33.3,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 1,
                      "oldest": 116
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 112,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 67,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.84,
              "agent_instruction_files": [
                "src/xanoscript_docs/agents.md"
              ],
              "agent_instruction_max_bytes": 8227
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "src/xanoscript_docs/agents.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "src/xanoscript_docs/agents.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "84 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 84,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 59,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "tsconfig.json"
              ],
              "agent_commit_share": 0.66,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "66 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 66,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 41837,
              "source_files_sampled": 63,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/63 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 63,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "critical",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T08:53:29.183055Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/x/xano-inc/xano-developer-mcp.svg",
  "full_name": "xano-inc/xano-developer-mcp",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasnpm.