accueil / serveurs / Dev & Code / io.github.IsaiahDupree/devstack-mcp
io.github.IsaiahDupree/devstack-mcp
serveur MCP (Model Context Protocol) · devstack 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.IsaiahDupree/devstack-mcp est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.IsaiahDupree/devstack-mcp » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 10 outils
- get_dependency_graph≈ 310 tokens
The fully resolved dependency graph for one exact package version, via deps.dev. Returns a flat nodes[] array plus integer-index edges[] (walk from/to to rebuild the tree). Each node carries relation (self | direct | indirect) and a direct boolean; node[0] is always the queried root (relation: self). Node order is NOT stable — look nodes up by name/relation, never by positional index. system is case-insensitive and lowercased (npm, pypi, cargo, go, maven, nuget). version is REQUIRED (a graph is resolved for one exact version).
Paramètres, retour & exemple (3)
Paramètresname· string · requis
Package name / id.system· string · requis · npm | pypi | cargo | go | maven | nuget
Package system / ecosystem for deps.dev. Case-insensitive, lowercased server-side.version· string · requis
Exact version to resolve (e.g. 18.2.0). Required.
Exemple d'appel{"name": "get_dependency_graph", "arguments": {"name": "texte", "system": "npm", "version": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_downloads≈ 200 tokens
Download statistics for a package. Only npm (via api.npmjs.org) and PyPI (via pypistats.org) support this; any other registry returns 400 not_supported. npm returns a period window with downloads, start, and end; PyPI returns last_day, last_week, and last_month totals.
Paramètres, retour & exemple (2)
Paramètresname· string · requis
Package name.registry· string · requis · npm | pypi
Target registry. Only npm and pypi expose download stats.
Exemple d'appel{"name": "get_downloads", "arguments": {"name": "texte", "registry": "npm"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_ecosystems_package≈ 228 tokens
Full normalized metadata for one package on one of 50+ registries, via ecosyste.ms — including the fields v1 registries can't give you: dependentReposCount and dependentPackagesCount (reverse dependencies), ecosystem, and vulnerabilityCount. Scoped/namespaced names are handled automatically. Returns 404 if the package does not exist on that ecosystem.
Paramètres, retour & exemple (2)
Paramètresname· string · requis
Package name / id.ecosystem· string · requis
Target ecosyste.ms ecosystem slug (e.g. npm, pypi, cargo, rubygems).
Exemple d'appel{"name": "get_ecosystems_package", "arguments": {"name": "texte", "ecosystem": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_insights≈ 320 tokens
Health and security insights for a package's source project, via deps.dev. Returns the linked source repository, GitHub stars/forks/openIssues, licenses, resolved dependencyCount, security advisories, and the full OSSF Scorecard (ossfScore 0..10 plus the per-check breakdown). Omit version to use the registry default version — note deps.dev's default is a MOVING target and an unverified default mirror may have no computed scorecard (ossfScore: null); pin version for a stable, scorecard-backed result. system is lowercased (npm, pypi, cargo, go, maven, …).
Paramètres, retour & exemple (3)
Paramètresname· string · requis
Package name / id.system· string · requis · npm | pypi | cargo | go | maven | nuget
Package system / ecosystem for deps.dev. Case-insensitive, lowercased server-side.version· string · optionnel
Exact version. Omit for the (moving) registry default version.
Exemple d'appel{"name": "get_insights", "arguments": {"name": "texte", "system": "npm"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_package≈ 302 tokens
Full normalized details for one package by registry + name, in a single unified Package shape across npm, PyPI, Docker Hub, and the VS Code Marketplace. name handles scoped npm ids (e.g. @types/node), Docker namespaces (e.g. library/nginx or a bare nginx for official images), and VS Code publisher.extension ids. With registry=all the request fans out to every registry in parallel and returns a packages array (missing registries are silently dropped); otherwise a single package is returned.
Paramètres, retour & exemple (2)
Paramètresname· string · requis
Package name / id. Supports scoped npm ids (@scope/pkg), Docker namespaces (ns/name or a bare name for official images), and VS Code publisher.extension ids.registry· string · requis · npm | pypi | docker | vscode | all
Target registry. "all" fans out to every registry and merges results.
Exemple d'appel{"name": "get_package", "arguments": {"name": "texte", "registry": "npm"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_versions≈ 233 tokens
List published versions (npm/PyPI), image tags (Docker Hub, most recent 25), or extension versions (VS Code) for a package. registry=all is NOT supported here — pick a single registry. Each item carries version and released, plus registry-specific extras (files for PyPI, size for Docker tags).
Paramètres, retour & exemple (2)
Paramètresname· string · requis
Package name / id (scoped npm ids, Docker namespaces, and VS Code publisher.extension ids supported).registry· string · requis · npm | pypi | docker | vscode
Target registry. "all" is not supported here — pick one.
Exemple d'appel{"name": "get_versions", "arguments": {"name": "texte", "registry": "npm"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_vulnerabilities≈ 320 tokens
Known vulnerabilities (CVE / GHSA / PYSEC / GO advisories) for a package, via OSV.dev. Pass version to filter to advisories affecting that exact version, or omit it for the package's full advisory history. Each result carries the OSV id, cross-id aliases, a severity word grade (LOW|MODERATE|HIGH|CRITICAL), the cvss vector string, affectedRanges with fixed-version events, references, and cwes. A clean package returns count: 0 with an empty list (not an error). ecosystem is CASE-SENSITIVE — use OSV's spelling (npm, PyPI, Go, crates.io, Maven, NuGet, RubyGems, …). Use scan_vulnerabilities_batch for lockfile batch scans.
Paramètres, retour & exemple (3)
Paramètresname· string · requis
Package name.version· string · optionnel
Exact version to filter advisories to. Omit for full history.ecosystem· string · requis
OSV ecosystem, CASE-SENSITIVE (e.g. npm, PyPI, Go, crates.io, Maven, NuGet, RubyGems).
Exemple d'appel{"name": "get_vulnerabilities", "arguments": {"name": "texte", "ecosystem": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - scan_vulnerabilities_batch≈ 293 tokens
Scan many packages in one call — ideal for a whole lockfile. Pass a queries[] array (max 100) of { ecosystem, name, version? }; results are returned positionally aligned, one row per query, each with a count and a hydrated vulns[] array. Advisories are de-duplicated and hydrated across the batch. ecosystem is CASE-SENSITIVE (OSV spelling).
Paramètres, retour & exemple (1)
Paramètresqueries· array · requis
Up to 100 { ecosystem, name, version? } queries, ideal for a whole lockfile.
Exemple d'appel{"name": "scan_vulnerabilities_batch", "arguments": {"queries": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_ecosystems≈ 271 tokens
Look a package name up across 50+ registries at once, via ecosyste.ms. This is an EXACT-name lookup (not fuzzy full-text): q=react returns the react package everywhere it exists (npm, cargo, nuget, pub, bower, …), each as a normalized ecosystemsPackage with reverse-dependency counts. Pass ecosystem to narrow to one registry. Results carry dependentReposCount, dependentPackagesCount, and vulnerabilityCount.
Paramètres, retour & exemple (3)
Paramètresq· string · requis
Exact package name to look up across registries.limit· integer · optionnel
Max results. Clamped to 1-50. Default 20.ecosystem· string · optionnel
Narrow to one ecosystem (e.g. pypi, npm, cargo). Omit to search all.
Exemple d'appel{"name": "search_ecosystems", "arguments": {"q": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_packages≈ 277 tokens
Search a registry for packages matching q. registry=all fans out to npm, Docker Hub, and the VS Code Marketplace and merges the results. PyPI has no public search API, so registry=pypi returns 400 not_supported — look a PyPI package up by name via get_package instead. Results are normalized PackageSummary items (npm adds a relevance score; Docker adds isOfficial).
Paramètres, retour & exemple (3)
Paramètresq· string · requis
Search query.limit· integer · optionnel
Max results per registry. Clamped to 1-50. Default 20.registry· string · requis · npm | pypi | docker | vscode | all
Target registry. "all" fans out to npm, Docker, and VS Code and merges results. pypi returns not_supported.
Exemple d'appel{"name": "search_packages", "arguments": {"q": "texte", "registry": "npm"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».