Getting Started with SecCheck
SecCheck is a hosted MCP server. You connect your AI client to it once, and from then on the client's agent can search and load security playbooks whenever a task calls for one.
There are two ways to run it:
- Hosted (recommended) — connect to
https://mcp.cert-ix.com/seccheckover the network. Nothing to install; always on the current corpus. - Local (stdio) — run the
security-skills-mcpbinary next to your agent for a fully offline setup. The local build is not a public download today — see Option 2.
Prerequisites
- An MCP-capable client: Claude Code, Claude Desktop, Cursor, VS Code (with an MCP extension), or any client that speaks streamable-HTTP MCP.
- A SecCheck API key — free, self-service, no Cert-IX account required.
Request one at cert-ix.com/tools/seccheck-mcp:
confirm your email address and the key arrives by email. A free key is the
Community edition and lasts 90 days; before it expires you receive an email
with a renewal link, and the same key keeps working. It is sent as a
Bearertoken on every request, so treat it like a password — see Security & data handling.
The hosted endpoint requires an API key. Requests without a valid
Authorization: Bearer <key> header are rejected with 401. Your key also
carries your edition — see Editions.
Option 1 — Hosted endpoint
Claude Code (CLI)
Add the server with the claude mcp command:
claude mcp add --transport http seccheck https://mcp.cert-ix.com/seccheck \
--header "Authorization: Bearer YOUR_API_KEY"
Verify it registered and the tools are visible:
claude mcp list
You should see seccheck with seven tools: list_sources, search_skills,
load_skill, list_skill_resources, read_skill_resource, license_status,
and get_attribution.
Claude Desktop / Cursor / generic MCP client
Add an entry to your client's MCP configuration. Most clients accept a streamable-HTTP server block like this:
{
"mcpServers": {
"seccheck": {
"type": "http",
"url": "https://mcp.cert-ix.com/seccheck",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Restart the client after saving. The exact file location varies by client
(Claude Desktop uses claude_desktop_config.json; Cursor uses its MCP settings
panel) — the server block above is the part that matters.
Sanity check with curl
The endpoint is a standard MCP server, so you can confirm reachability and auth
with a raw initialize call:
curl -sS -D- https://mcp.cert-ix.com/seccheck \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-06-18",
"capabilities":{},
"clientInfo":{"name":"curl","version":"1.0"}}}'
A 200 with a JSON-RPC result means auth and connectivity are good. A 401
means the key is missing or wrong; a 429 means you have hit the rate limit
(see Security & data handling).
mcp-session-id headerSecCheck's hosted transport is session-based. The initialize response
carries an mcp-session-id header, and every subsequent request must send it
back:
-H "mcp-session-id: mcp-session-<uuid-from-initialize>"
Without it, follow-up calls fail with 400 Invalid session ID. MCP clients
handle this for you — it only matters when you are probing by hand with curl.
Option 2 — Local (stdio)
The local build is not distributed publicly yet. If you need SecCheck in an air-gapped or high-assurance environment, talk to your Cert-IX account team. The configuration below applies once you have the binary.
For air-gapped or high-assurance work, run the server locally over stdio. The binary carries the corpus, so it needs no network at all.
{
"mcpServers": {
"seccheck": {
"command": "security-skills-mcp",
"env": {
"SKILLS_LICENSE": "/etc/cert-ix/seccheck.license"
}
}
}
}
| Setting | Purpose |
|---|---|
SKILLS_ROOT (-root) | Directory holding the skill repositories, when running against on-disk sources instead of the embedded corpus. |
SKILLS_LICENSE (-license) | Path to a signed offline licence file. Absent or unverifiable ⇒ Community edition. |
SKILLS_AUDIT_LOG (-audit-log) | Append tool-call audit records here (Enterprise). |
SKILLS_USAGE (-usage) | Write usage metering here (Enterprise). |
Check what the local instance resolved before wiring an agent to it:
security-skills-mcp -stats
It prints the indexed skill count per library and the active edition to stderr, then exits.
- Entitlements. Hosted, your edition comes from your API key and is resolved by the Cert-IX edge on every request. Local, it comes from a signed licence file read once at start-up.
- MCP resources. The local stdio server additionally exposes every playbook
as an MCP resource under
skill://<source>/<name>, so clients with a resource picker can browse the library directly. The hosted endpoint exposes tools only; usesearch_skills+load_skillinstead.
The seven tools, their parameters and their responses are identical in both modes.
First call
Once connected, ask your agent something like:
"We think someone is Kerberoasting our AD. Find the detection playbook and walk me through it."
The agent will call search_skills(query="kerberoasting", category="defensive"),
get back cybersecurity/detecting-kerberoasting-attacks, load it with
load_skill, and follow the procedure in it — when the hunt applies, the
telemetry it needs first (EDR, SIEM, forwarded Windows Security event logs), and
ordered steps from a hypothesis to validated, documented findings, mapped to the
relevant MITRE ATT&CK techniques.
That is the whole point: the agent's next steps come from a written hunting procedure — one you can open and check — instead of from improvisation.
Continue to the Tools reference for the full parameter set of each tool, or Agent workflows for the search → load → follow discipline.
Questa pagina ti è stata utile?