SkillTriage
Scan AI agent skills, MCP server packages and MCP configs before you install them. Static analysis.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"skilltriage": {
"url": "https://skilltriage.moorai.dev/mcp"
}
}
}Puntos de conexión remotos
https://skilltriage.moorai.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (4)
🟢scan_package(ref)
Download one published package and run static analysis on its code with MoorAI's open-source engine. npm and PyPI packages also get ten MCP pre-install checks on their registry metadata, a reputation score and a known-compromised release check. Static analysis only: the package is never installed and the server is never run. Returns a verdict (CLEAN, CAUTION, REVIEW, DO-NOT-INSTALL or NAME-NOT-PUBLISHED), content-free findings (threat ids, categories, file paths, hashes; never file contents) and a permalink. The package name and version are sent to its registry. A completed analysis is reused for 24 hours; a new one can take a minute and runs one at a time.
Esquema de entrada
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"maxLength": 300,
"description": "npm:<name>[@version], pypi:<name>[==version] or github:<owner>/<repo>/<path>[@ref] (a folder, not a whole repository)"
}
},
"required": [
"ref"
],
"additionalProperties": false
}🟢scan_mcp_config(text, filename)
Check a pasted MCP client config (.mcp.json, claude_desktop_config.json, mcp.json, Codex config.toml). Reports each npm or PyPI launch by its position and how its version is pinned (exact, @latest, a tag or range, none), flags releases on the known-compromised list, and runs static analysis over the text. Server names, package names, arguments, env and header values are never returned or stored; remove secrets before sending anyway. Static analysis only; nothing is run or fetched. Returns a verdict (CLEAN, CAUTION, REVIEW, DO-NOT-INSTALL or NAME-NOT-PUBLISHED), the pinning advice and a permalink.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 1000000,
"description": "The config file's text"
},
"filename": {
"type": "string",
"maxLength": 100,
"description": "The config's filename, ending in .json or .toml (default .mcp.json)"
}
},
"required": [
"text"
],
"additionalProperties": false
}🟢scan_skill(text, filename)
Scan one agent skill or instruction file (SKILL.md, AGENTS.md, a tool.json, any text file) with MoorAI's open-source engine. Static analysis only; nothing is run. The text is written to a temporary directory, scanned and deleted; only its hash, the verdict and content-free findings are kept. Returns a verdict (CLEAN, CAUTION, REVIEW, DO-NOT-INSTALL or NAME-NOT-PUBLISHED), the findings and a permalink.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 1000000,
"description": "The file's text"
},
"filename": {
"type": "string",
"maxLength": 100,
"description": "The file's name, which sets how it is analysed (default SKILL.md)"
}
},
"required": [
"text"
],
"additionalProperties": false
}🟢lookup_verdict(ecosystem, name, version)
Look up the verdict the public catalogue has published for an MCP server package on npm or PyPI. Returns found:false when the catalogue has no published verdict for that name; that is not a clean result. Nothing is downloaded or scanned. This request names the package to the server; to match without naming it, download /api/reputation-feed.json and match on your side.
Esquema de entrada
{
"type": "object",
"properties": {
"ecosystem": {
"type": "string",
"enum": [
"npm",
"pypi"
],
"description": "The package registry"
},
"name": {
"type": "string",
"maxLength": 214,
"description": "The package name"
},
"version": {
"type": "string",
"maxLength": 100,
"description": "Optional: the version you plan to install; the reply says whether the published verdict is for it"
}
},
"required": [
"ecosystem",
"name"
],
"additionalProperties": false
}Comunidad
Evidencia