Référence des outils
SecCheck expose sept outils. Tous sont en lecture seule — ils recherchent du contenu et le renvoient ; aucun ne modifie votre projet, vos systèmes ni le moindre état côté serveur. Aucun n'effectue d'appel sortant : chaque réponse provient du corpus embarqué dans le serveur.
| Outil | En une ligne |
|---|---|
list_sources | Quelles bibliothèques existent, quelle taille, quelle couverture ? |
search_skills | Trouver des playbooks par mot-clé, catégorie, référentiel ou étiquette. |
load_skill | Lire un playbook complet. |
list_skill_resources | Quels fichiers embarqués accompagnent un playbook ? (Pro) |
read_skill_resource | Lire un script / payload / référence embarqué. (Pro) |
license_status | Que débloque mon identifiant ? |
get_attribution | Licences tierces et notices obligatoires. |
Le contrat de réponse
Chaque outil renvoyant des données structurées répond en exactement deux lignes :
<LIGNE DE VERDICT — énonce le résultat en toutes lettres>
<charge utile JSON compacte sur une ligne>
C'est délibéré. Un modèle lit la première ligne : celle-ci doit donc porter la
réponse. Les préfixes distincts — FOUND, NO MATCH, AVAILABLE, RESOURCES,
EDITION, ATTRIBUTION — sont ce qui permet à un agent de distinguer « rien ne
correspond à votre requête » de « cela n'existe pas », ce qui fait la
différence entre une nouvelle tentative et une conclusion erronée.
load_skill et read_skill_resource font exception : ils renvoient le document
lui-même, puisque c'est lui, la réponse.
Les échecs reviennent sous forme de résultats d'outil commençant par
error: , et non d'erreurs de protocole JSON-RPC — les modèles se remettent bien
mieux d'un résultat d'outil lisible que d'une panne au niveau du transport.
list_sources
Liste les bibliothèques de skills, leur nombre de skills et la répartition par catégorie. Appelez-le en premier pour voir ce que le serveur contient réellement.
Paramètres — aucun.
Renvoie
AVAILABLE: 857 playbooks across 3 libraries (43 compliance, 745 defensive, 69 offensive). Edition: community.
{
"total_skills": 857,
"by_category": { "compliance": 43, "defensive": 745, "offensive": 69 },
"sources": [
{
"key": "cybersecurity",
"label": "Cybersecurity Skills",
"description": "817-skill offensive+defensive library, mapped to MITRE ATT&CK/ATLAS/D3FEND, NIST CSF/AI-RMF, and F3.",
"skill_count": 817,
"categories": { "compliance": 13, "defensive": 745, "offensive": 59 },
"available": true,
"unlocked": true
},
{ "key": "grc", "label": "GRC & Compliance Skills", "skill_count": 30, "categories": { "compliance": 30 }, "unlocked": true },
{ "key": "pentesterflow", "label": "PentesterFlow CLI Skills", "skill_count": 10, "categories": { "offensive": 10 }, "unlocked": true }
],
"edition": "community"
}
Seules les sources que votre identifiant débloque sont listées — un pack de skills privé ou sur mesure qui ne vous a pas été accordé n'apparaît tout simplement pas.
search_skills
Recherche dans toutes les bibliothèques débloquées et renvoie des correspondances compactes. C'est le point d'entrée de presque toutes les tâches : trouver le playbook, puis le charger.
Paramètres — tous facultatifs. Les filtres sont combinés par ET.
| Nom | Requis | Description |
|---|---|---|
query | ➖ | Mots-clés en texte libre, p. ex. dns exfiltration, kerberoasting, GDPR data subject rights. |
source | ➖ | Restreindre à une bibliothèque : cybersecurity, grc, pentesterflow. |
category | ➖ | offensive (red team/pentest), defensive (blue team/DFIR), compliance (GRC/réglementaire). |
framework | ➖ | Libellé de référentiel, p. ex. MITRE ATT&CK, NIST CSF, GDPR, PCI DSS, ISO 27001. |
tag | ➖ | Une étiquette de frontmatter, p. ex. splunk, kubernetes, active-directory. |
limit | ➖ | Nombre maximal de résultats. Défaut 20, maximum 100. |
Omettre query et ne passer que des filtres est un appel de listage valide —
par exemple « tous les playbooks de conformité de la bibliothèque GRC ».
Exemple
{ "query": "kerberoasting", "limit": 3 }
Renvoie
FOUND: 3 playbook(s). Load the most relevant with load_skill(id).
{
"count": 3,
"results": [
{
"id": "cybersecurity/detecting-kerberoasting-attacks",
"name": "detecting-kerberoasting-attacks",
"source": "cybersecurity",
"category": "defensive",
"frameworks": ["MITRE ATT&CK", "NIST CSF", "MITRE D3FEND"],
"tags": ["threat-hunting", "kerberoasting", "credential-access", "kerberos", "t1558"],
"description": "Detect Kerberoasting attacks by monitoring for anomalous Kerberos TGS requests targeting service accounts with SPNs for offline password cracking."
},
{
"id": "cybersecurity/exploiting-kerberoasting-with-impacket",
"category": "offensive",
"frameworks": ["MITRE ATT&CK", "NIST CSF", "MITRE D3FEND"],
"description": "Perform Kerberoasting attacks using Impacket's GetUserSPNs to extract and crack Kerberos TGS tickets for Active Directory service accounts."
}
// …
]
}
Les descriptions sont tronquées à 300 caractères — assez pour que l'agent choisisse, pas assez pour remplacer le chargement du playbook.
Comment les résultats sont classés. Les correspondances sont notées par jeton de requête et triées par score décroissant, afin que le playbook le plus pertinent arrive en tête :
| Où le jeton correspond | Score |
|---|---|
| Le nom du skill, exactement | +100 |
| N'importe où dans le nom du skill | +5 |
| Une étiquette | +3 |
| Un libellé de référentiel | +3 |
| Le sous-domaine | +2 |
| La description | +1 |
Comme la notation est additive sur les jetons, une longue requête en langage
naturel renvoie toujours quelque chose — souvent faiblement lié. Si la
description du premier résultat ne correspond pas clairement à la tâche,
restreignez avec category ou framework plutôt qu'en ajoutant des mots.
Quand vraiment rien ne correspond, la ligne de verdict est explicite :
NO MATCH: no playbook matched this query. Try broader keywords, or drop the source/category/framework filters — the library is not exhaustive of all security work.
load_skill
Renvoie le playbook SKILL.md complet pour un identifiant renvoyé par
search_skills — en général quand l'utiliser, ses prérequis et ses étapes, ainsi
que les critères de vérification ou de validation qu'il comporte le cas
échéant.
Paramètres
| Nom | Requis | Description |
|---|---|---|
id | ✅ | Identifiant de skill au format <source>/<name>, p. ex. cybersecurity/analyzing-dns-logs-for-exfiltration. |
Renvoie — le document Markdown lui-même, frontmatter compris.
Lorsqu'un playbook embarque des ressources, un pied de page est ajouté. En Community, ce pied de page est limité au décompte et ne divulgue ni chemins ni tailles de fichiers :
---
_3 runnable bundled resource(s) ship with this skill; unlock them with a Pro license (read_skill_resource)._
Avec Pro ou Enterprise, il devient l'inventaire complet (chemins et tailles), les
mêmes données que renvoie
list_skill_resources.
Erreurs
error: unknown skill id "cybersecurity/does-not-exist" (use search_skills to find valid ids)
Prenez toujours l'identifiant depuis search_skills plutôt que de le deviner à
partir d'un nom de skill vu ailleurs.
list_skill_resources
Liste les fichiers de référence, scripts et payloads embarqués qui accompagnent un playbook — chemins relatifs et tailles.
En Community, cet appel renvoie une error: expliquant la restriction. Les 857
playbooks restent libres en recherche et en chargement ; c'est le matériel
exécutable qui est sous licence.
Paramètres
| Nom | Requis | Description |
|---|---|---|
id | ✅ | Identifiant de skill issu de search_skills. |
Renvoie
RESOURCES: 3 bundled file(s) ship with grc/iso27001. Fetch one with read_skill_resource.
{
"id": "grc/iso27001",
"resources": [
{ "path": "references/annex-a-2013.md", "size": 7753 },
{ "path": "references/annex-a-2022.md", "size": 10131 },
{ "path": "references/control-mapping.md", "size": 7001 }
]
}
read_skill_resource
Lit un fichier de ressource embarqué accompagnant un playbook.
Même restriction que list_skill_resources.
Paramètres
| Nom | Requis | Description |
|---|---|---|
id | ✅ | Identifiant de skill issu de search_skills. |
path | ✅ | Un chemin relatif tel que renvoyé par list_skill_resources, p. ex. references/standards.md ou payloads/jinja2.txt. |
Renvoie — le contenu du fichier.
Les chemins sont résolus strictement à l'intérieur du répertoire propre au skill, et les liens symboliques ne sont jamais listés ni servis : un chemin de ressource ne peut donc pas servir à lire quoi que ce soit en dehors du playbook auquel il appartient.
license_status
Indique votre édition active et exactement quelles sources et capacités votre identifiant débloque. Utile lorsqu'un outil renvoie une erreur de restriction inattendue.
Paramètres — aucun.
Renvoie
EDITION: community — playbooks only.
{
"tier": "community",
"unlocked_sources": { "cybersecurity": true, "grc": true, "pentesterflow": true },
"bundled_resources": false,
"audit_log": false,
"usage_metering": false,
"status": "Hosted: capabilities are provisioned on your Cert-IX API key"
}
Ces valeurs décrivent l'appelant, pas l'opérateur. En hébergé, elles sont résolues à partir de votre clé API par la bordure Cert-IX à chaque requête — voir Sécurité et traitement des données.
get_attribution
Renvoie l'attribution et la licence tierces de chaque bibliothèque embarquée, y compris les textes complets des licences. C'est la notice que vous devez reproduire si vous redistribuez ce contenu.
Paramètres — aucun.
Renvoie
ATTRIBUTION: 3 third-party sources, redistributed under their own permissive licences.
{
"notice": "This product redistributes third-party skill content under the licences below. All rights of the original authors are retained. Full licence texts are included.",
"sources": [
{ "source": "cybersecurity", "upstream": "Anthropic-Cybersecurity-Skills", "author": "mahipal (community project)", "license": "Apache-2.0", "homepage": "https://github.com/mukul975/Anthropic-Cybersecurity-Skills" },
{ "source": "grc", "upstream": "Claude-Skills-Governance-Risk-and-Compliance", "author": "Hemant Naik (Sushegaad)", "license": "MIT", "homepage": "https://github.com/Sushegaad/Claude-Skills-Governance-Risk-and-Compliance" },
{ "source": "pentesterflow", "upstream": "PentesterFlow", "author": "PentesterFlow", "license": "Apache-2.0", "homepage": "https://github.com/pentesterflow/agent" }
],
"license_texts": { "cybersecurity": "Apache License…", "grc": "MIT License…", "pentesterflow": "Apache License…" }
}
Un identifiant SPDX et une page d'accueil sont une référence, pas une notice — le texte complet accompagne donc la réponse, plutôt que d'attendre de vous que vous alliez chercher le dépôt amont.
Matrice des capacités
| Outil | Community | Pro | Enterprise |
|---|---|---|---|
list_sources | ✅ | ✅ | ✅ |
search_skills | ✅ | ✅ | ✅ |
load_skill | ✅ | ✅ | ✅ |
list_skill_resources | — | ✅ | ✅ |
read_skill_resource | — | ✅ | ✅ |
license_status | ✅ | ✅ | ✅ |
get_attribution | ✅ | ✅ | ✅ |
Voir Flux de travail des agents pour raccorder tout cela à la boucle d'un agent, afin qu'il prenne un playbook par défaut au lieu d'improviser.
Cette page vous a-t-elle été utile ?