SecurityScorecard MCP Server
A community-built MCP server that connects to the SecurityScorecard API over stdio, letting any MCP-compatible client (Claude Desktop, Cursor, VS Code, etc.) assess and improve an organization's security posture.
security_dashboard – Get a company's security score, grade, and key metrics
analyze_security_risks – Analyze and prioritize critical vulnerabilities and risk patterns (critical / all / quick-wins focus)
create_improvement_plan – Generate remediation roadmaps toward a target grade (C/B/A) over 30-day, 90-day, or 6-month timelines
discover_assets – Inventory domains and IPs with security context and risk details
analyze_email_security – Break down SPF, DMARC, and DKIM issues per domain
analyze_issue_types – Get granular issue breakdowns by security factor (DNS, application, network, endpoint)
validate_data_completeness – Cross-validate tool results against expected asset counts for accuracy
api_discovery – Search 517 indexed SecurityScorecard API endpoints with hybrid semantic/keyword search, filtered by tag or HTTP method
query_security_data – Make direct, validated API calls with endpoint suggestions, parameter hints, and optional pagination
Token-efficient response modes – Every analysis tool supports minimal, standard, or detailed output
Flexible configuration – Set a default COMPANY_DOMAIN, enable DEBUG_MODE, and tune caching and rate limiting via environment variables
Integrates with the SecurityScorecard API to provide security rating tools, including score and grade retrieval, risk analysis, remediation planning, asset discovery, email security analysis (SPF/DMARC/DKIM), API endpoint discovery, issue type breakdowns, and direct API queries.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SecurityScorecard MCP Servershow me the security grade for example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SSC MCP Server
A community-built, comprehensive Model Context Protocol (MCP) server that integrates with the SecurityScorecard API. It runs over stdio, so it works with any MCP-compatible client — Claude Desktop, Claude Code, Cursor, VS Code, and others. It serves MCP protocol revision 2026-07-28 and stays compatible with 2025-era clients.
Published on npm as
@callmarcus/securityscorecard-mcpand listed in the MCP Registry asio.github.CallMarcus/securityscorecard-mcp.
Disclaimer: This is an independent, community-built open-source project. It is not affiliated with, endorsed by, sponsored by, or associated with SecurityScorecard, Inc. in any way. It is built solely against SecurityScorecard's publicly available API documentation. "SecurityScorecard" and all related names, marks, and logos are trademarks of SecurityScorecard, Inc. and are used here for identification purposes only. You must supply your own API credentials and comply with SecurityScorecard's terms of service.
Quick Start
Prerequisites
Node.js 20+ - Download
SecurityScorecard API Token - Get from your SecurityScorecard dashboard
Option A — Install from npm (recommended)
No clone or build required. The server runs over stdio via npx, so any MCP-compatible client can launch it. npx -y always fetches the latest published version.
Most clients — Claude Desktop, Cursor, Cline, Windsurf, and others — share the same mcpServers JSON. Add this block to the client's MCP config:
{
"mcpServers": {
"security-scorecard": {
"command": "npx",
"args": ["-y", "@callmarcus/securityscorecard-mcp"],
"env": {
"SECURITY_SCORECARD_API_TOKEN": "your-api-token-here",
"COMPANY_DOMAIN": "example.com"
}
}
}
}Where that config file lives:
Client | Config file |
Claude Desktop (Windows) |
|
Claude Desktop (macOS) |
|
Cursor |
|
Replace the credentials with your own, then restart the client.
Claude Code — add it from the CLI instead:
claude mcp add security-scorecard \
--env SECURITY_SCORECARD_API_TOKEN=your-api-token-here \
--env COMPANY_DOMAIN=example.com \
-- npx -y @callmarcus/securityscorecard-mcpOn Windows, wrap the launcher in cmd /c: ... -- cmd /c npx -y @callmarcus/securityscorecard-mcp.
VS Code (Copilot) — uses a servers key with an explicit type, in .vscode/mcp.json:
{
"servers": {
"security-scorecard": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@callmarcus/securityscorecard-mcp"],
"env": {
"SECURITY_SCORECARD_API_TOKEN": "your-api-token-here",
"COMPANY_DOMAIN": "example.com"
}
}
}
}Option B — Run from source (for development)
# Clone the repository
git clone https://github.com/CallMarcus/security-scorecard-mcp.git
cd security-scorecard-mcp
# Install dependencies
npm install
# Build (use build:fast to avoid memory issues)
npm run build:fastThen point your MCP client at the local build. For clients that use the mcpServers format (Claude Desktop, Cursor, …):
{
"mcpServers": {
"security-scorecard": {
"command": "node",
"args": ["/path/to/security-scorecard-mcp/build/index.js"],
"env": {
"SECURITY_SCORECARD_API_TOKEN": "your-api-token-here",
"COMPANY_DOMAIN": "example.com"
}
}
}
}Important: Replace the path and credentials with your actual values, then restart your MCP client. (For Claude Code, run claude mcp add security-scorecard --env SECURITY_SCORECARD_API_TOKEN=your-api-token-here -- node /path/to/security-scorecard-mcp/build/index.js.)
Related MCP server: scorecard_mcp
Available Tools
The server (index.js) provides 9 specialized tools:
Tool | Purpose |
| Score, grade, and key security metrics |
| Issue prioritization and risk analysis |
| Actionable remediation roadmaps |
| Asset inventory with security context |
| SPF/DMARC/DKIM analysis |
| Search 517 API endpoints with hybrid semantic/keyword search |
| Granular issue type breakdowns |
| Cross-tool data verification |
| Direct API access with discovery |
Response Modes
Each tool supports three response modes for token efficiency:
minimal - Quick answers (15-50 tokens)
standard - Overview with context (200-300 tokens)
detailed - Comprehensive analysis (800+ tokens)
Environment Variables
Variable | Required | Description |
| Yes | Your API token |
| No | Default domain for queries |
| No | Set |
Optional rate limiting and caching:
REQUEST_CACHE_TTL_MS=300000
REQUESTS_PER_INTERVAL=5
REQUEST_INTERVAL_MS=1000API Discovery
The server includes hybrid search (semantic + keyword) for finding SecurityScorecard API endpoints:
Use api_discovery to search for "email security"This searches 517 indexed endpoints and returns matching paths with confidence scores, required parameters, and curl examples.
To update the API reference after changes:
npm run api:embed # Regenerate semantic embeddings
npm run api:update # Regenerate docs + embeddingsDevelopment
Build Commands
npm run build:fast # Recommended - uses esbuild (~130ms)
npm run build # TypeScript compiler (may OOM on some systems)
npm test # Run testsProject Structure
src/
index.ts # MCP server (9 tools)
api/client.ts # SecurityScorecard API client
integration/ # API discovery system
docs/api/ # Self-contained API reference
index.jsonl # Endpoint index (517 endpoints)
index-embeddings.json # Semantic search embeddings
build/ # Compiled JavaScriptTesting
npm test # Run test suiteTroubleshooting
Build fails with out of memory
Use the fast build instead:
npm run build:fast"Cannot find module" errors
Reinstall dependencies:
rm -rf node_modules
npm install
npm run build:fastSemantic search degrades to keyword-only (Windows + WSL)
Install for the platform that runs the server. Claude Desktop on Windows
launches the server with Windows node, so if npm install ran under WSL
the native modules (onnxruntime-node, sharp) only have linux binaries —
the embeddings layer fails to load and api_discovery silently degrades to
keyword-only search (results still come back, but confidence scoring is
cruder). Run npm install && npm run build:fast from PowerShell or cmd in
the repo directory instead — or keep two clones, one per platform.
Your client doesn't see the server
Double-check the config file location for your client (see Quick Start)
For a from-source install, verify the path to
build/index.jsis correctRestart the client completely
Sanity-check that the server starts on its own:
npx -y @callmarcus/securityscorecard-mcp(it should launch and wait silently on stdio)
API returns 401 Unauthorized
Your API token is invalid or expired. Get a new one from SecurityScorecard dashboard.
License
MIT
Links
Available Tools
9 toolsanalyze_email_securityEmail Security AnalysisA
📧 EMAIL SECURITY: Analyze SPF, DMARC, DKIM issues with domain-by-domain breakdown and cross-validation. INTELLIGENT RESPONSES: Use 'minimal' for simple counts like 'how many SPF missing?' (10-30 tokens). Use 'standard' for email security overview (200-400 tokens). Use 'detailed' for comprehensive email analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Company domain to analyze | example.com |
| response_mode | No | Response detail level | minimal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses relative token cost per mode (10-30 / 200-400 tokens) and that results are cross-validated, but says nothing about read-only safety, required permissions, rate limits, or what a domain misconfiguration report actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause and every sentence carries information about scope or mode selection. The ALL-CAPS labels and emoji add noise but cost little, and the mode guidance is dense rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters, no output schema, and no annotations, the description covers the analysis scope and mode tradeoffs adequately. It is still thin on what the agent should expect to receive beyond token estimates — no mention of return structure, severity reporting, or what happens with the default 'example.com' domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented and the baseline is 3. The mode explanations do add selection meaning beyond the schema's terse 'Response detail level', but they are invocation guidance rather than semantic enrichment of the field itself, and the domain parameter is left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (email security) and the exact artifacts analyzed — SPF, DMARC, DKIM — plus the output shape (domain-by-domain breakdown with cross-validation). This clearly separates it from generic siblings like analyze_security_risks, though it never explicitly names a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete selection criteria for the response_mode parameter ('minimal' for simple counts, 'standard' for an overview, 'detailed' for comprehensive analysis) with example questions. However, it offers no guidance on when to choose this tool over sibling analysis tools, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_issue_typesIssue Type AnalysisA
🔍 ISSUE BREAKDOWN: Get detailed breakdown of security issues by specific types (SPF, DMARC, patching, etc.). INTELLIGENT RESPONSES: Use 'minimal' for specific counts (20-50 tokens). Use 'standard' for issue type summary (200-300 tokens). Use 'detailed' for comprehensive breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Company domain to analyze | example.com |
| focus_factor | No | Focus on specific security factor | all |
| response_mode | No | Response detail level | minimal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It usefully discloses approximate token budgets per response mode (20-50, 200-300 tokens), which is genuine behavioral context. However, it never states that this is a read-only analysis operation, what permissions are needed, or any rate/scope constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the core purpose before the response-mode guidance. The emoji and ALL-CAPS headers are slightly noisy formatting, but every sentence carries information and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should carry more of the return-value picture; it explains response verbosity but not the structure of the breakdown itself. Combined with the absence of annotations and any sibling routing, the definition is adequate but has clear gaps for a tool in a crowded analysis toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes beyond the schema by mapping each response_mode value to a concrete output size and content shape, adding meaning the enum alone does not convey. domain and focus_factor are left to the schema, which documents them adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Get detailed breakdown of security issues by specific types (SPF, DMARC, patching, etc.)'. The parenthetical examples make the resource concrete. It does not, however, differentiate itself from siblings like analyze_security_risks or analyze_email_security, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful guidance for the response_mode parameter ('minimal' for counts, 'standard' for summary, 'detailed' for full breakdown), which is real usage context. But it offers no guidance on when to choose this tool over the many sibling analysis tools, so tool-level selection is left implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_security_risksSecurity Risk Analysis & PrioritizationC
🚨 SECURITY RISKS: Comprehensive security risk analysis with intelligent prioritization. Analyzes critical vulnerabilities, risk patterns, and provides actionable remediation guidance with flexible response modes.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Focus area: critical (high/critical issues only), all (complete analysis), quick-wins (easy fixes) | all |
| domain | No | Company domain to analyze (e.g., example.com) | example.com |
| response_mode | No | Response detail level: minimal (50-100 tokens), standard (300-500 tokens), detailed (comprehensive) | minimal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only analysis but never confirms it, and says nothing about required permissions, whether it accesses live data, rate limits, or what triggers a failure — only marketing-level claims of 'intelligent prioritization' and 'actionable guidance'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, but padded with an emoji and evaluative filler ('Comprehensive', 'intelligent', 'actionable') that doesn't help an agent decide or invoke. The core purpose is front-loaded, which saves it from being worse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param, read-only-style analysis tool with fully documented schema and no output schema, the description is minimally adequate. It omits the routing information (when this beats sibling analyzers) that matters most given eight siblings in the same space.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (focus, domain, response_mode) including their enum meanings are already documented in the schema. The description adds no parameter-level detail beyond the vague 'flexible response modes', so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (analyze security risks) and enumerates what it covers: critical vulnerabilities, risk patterns, remediation guidance. However, it never distinguishes itself from close siblings like analyze_email_security or security_dashboard, so an agent must guess which analyzer applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, prerequisites, or alternatives are given. Phrases like 'flexible response modes' imply options but never state the conditions under which this tool should be chosen over the many sibling analyzers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_discoverySecurityScorecard API DiscoveryB
Search and discover SecurityScorecard API endpoints. Returns both human-readable summary and structured JSON for programmatic use.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by API tag/category (e.g., 'Companies', 'Portfolios', 'Issues') | |
| limit | No | Maximum number of results to return | |
| query | Yes | Search query for API endpoints (e.g., 'security score', 'vulnerabilities', 'company data') | |
| method | No | Filter by HTTP method | |
| include_schema | No | Include detailed request/response schema for top result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the dual return format (human-readable summary plus structured JSON), which is genuine behavioral information not present in the schema, and 'search' implies a read-only operation. However, it says nothing about auth requirements, result caps beyond the schema's limit, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the core action is front-loaded and the return-format sentence earns its place by clarifying output shape. Nothing is padded, though it is too terse to cover usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 5-parameter, read-only discovery tool with no output schema and no annotations. The schema fully documents inputs, but the description leaves when-to-use and result-handling behavior unaddressed, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so tag, limit, query, method, and include_schema are already fully documented with examples and defaults. The description adds no parameter-level meaning beyond what the schema provides, which is the expected baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Search and discover SecurityScorecard API endpoints'), which is clearly distinct from the security-analytics siblings like analyze_security_risks or query_security_data. It never explicitly names an alternative, so sibling differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this meta-discovery tool versus query_security_data or the other analysis tools, and no mention of prerequisites or what happens when a query returns nothing. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_improvement_planSecurity Improvement PlanB
🎯 IMPROVEMENT PLAN: Generate security improvement recommendations. INTELLIGENT RESPONSES: Use 'minimal' for simple questions like 'what should I fix first?' (50-100 tokens). Use 'standard' for improvement summary (300-500 tokens). Use 'detailed' for full roadmap.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Company domain to analyze | example.com |
| timeline | No | Timeline for improvement | 90-days |
| target_grade | No | Target security grade | A |
| response_mode | No | Response detail level | minimal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses expected output size per mode (50-100, 300-500 tokens), which helps an agent budget context. It does not state whether the operation is read-only, whether it requires prior scan data, or any auth/rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The body is short and front-loaded, but the '🎯 IMPROVEMENT PLAN:' and 'INTELLIGENT RESPONSES:' labels are decorative noise that restate the title and add no information. The three response-mode clauses do earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter, no-output-schema tool, the description covers the response_mode choice adequately but omits the workflow context an agent needs: whether this consumes prior analysis results, whether it is safe/read-only, and how it relates to analyze_security_risks or query_security_data. Minimum viable, with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds real meaning for response_mode by quantifying the token cost and giving a concrete example ('what should I fix first?'). domain, timeline, and target_grade are left entirely to the schema, but that is acceptable at full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Generate security improvement recommendations,' reinforced by the title 'Security Improvement Plan'. It is clear what the tool produces, but it never distinguishes itself from siblings like analyze_security_risks or query_security_data, which an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives detailed guidance on choosing response_mode ('minimal' for simple questions, 'standard' for summary, 'detailed' for full roadmap), which is genuinely useful. However, it offers no guidance on when to use this tool versus the sibling analysis tools, and no prerequisites or sequencing are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_assetsAsset DiscoveryB
🔍 ASSET INVENTORY: Discover domains and IPs with security context and data completeness validation. INTELLIGENT RESPONSES: Use 'minimal' for simple questions like 'how many assets?' (20-50 tokens). Use 'standard' for asset overview (200-400 tokens). Use 'detailed' for comprehensive inventory.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Parent domain to discover assets for | example.com |
| response_mode | No | Response detail level | minimal |
| include_risk_details | No | Include security risk information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It never states that this is a read-only operation, whether any authentication or scope is required, whether results are paginated, or how the 'security context' is sourced. 'Discover' implies a safe read but that is left to inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short overall, but padded with all-caps headers, an emoji, and a self-congratulatory 'INTELLIGENT RESPONSES' label that carry no information. The useful content (mode selection) sits after the fluff rather than being front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, zero-annotation, no-output-schema tool, the description covers response sizing well but omits the operation's safety profile and return shape, and the schema's placeholder default domain ('example.com') is unexplained. Enough to call the tool, but not enough to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond the schema for response_mode: the schema only says 'Response detail level' while the description gives concrete token budgets (20-50 / 200-400 tokens) and matching question types. Domain and include_risk_details still get no extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource ('Discover domains and IPs') and adds scope ('security context and data completeness validation'), so the agent knows this is an asset inventory operation. However it never distinguishes itself from close siblings such as api_discovery or validate_data_completeness, and the 'data completeness validation' phrase actively overlaps with the latter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance for one parameter (which response_mode to pick for which question type), which implies the tool is for inventory/summary queries. It never says when to choose this tool over the sibling discovery or validation tools, so the alternative-selection guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_security_dataSecurity Data QueryC
Direct API access with smart endpoint validation. Uses API discovery to validate endpoints, suggest alternatives, and provide parameter hints.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Domain to use in endpoint | example.com |
| method | No | HTTP method | GET |
| endpoint | Yes | API endpoint to query (e.g., /companies/{domain}/factors) | |
| fetch_all | No | Follow pagination and return every page of a GET list endpoint (capped at 20 pages; a truncation notice is added if the cap is hit) | |
| validate_only | No | Only validate endpoint without calling API |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but discloses only endpoint validation and parameter hints. It omits critical behavioral traits: authentication requirements, side effects of POST/PUT/DELETE, rate limits, error behavior, and whether calls are read-only or destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two front-loaded sentences with no filler, efficiently stating the core mechanism and validation features. It is appropriately sized for a short summary, though the first sentence is vague rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with five parameters, no annotations, and no output schema, yet the description omits essential context: what security data is queried, how authentication works, what happens with mutating methods, and what the return format looks like. It is not complete enough for an agent to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters thoroughly. The description adds only a generic 'parameter hints' phrase, which does not extend parameter meaning beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Direct API access with smart endpoint validation,' which gives a general verb-and-mechanism but does not specify the resource (security data) or distinguish this tool from siblings like api_discovery. An agent can infer it performs API calls, but the actual purpose is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as api_discovery or validate_data_completeness. The description only mentions behavior ('Uses API discovery to validate endpoints'), not usage conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security_dashboardSecurity Dashboard OverviewC
📊 SECURITY STATUS: Get comprehensive security score, grade, and key metrics with intelligent response modes. Supports minimal responses for quick queries and detailed analysis for comprehensive security overviews.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Company domain to analyze (e.g., example.com) | example.com |
| response_mode | No | Response detail level: minimal (10-20 tokens), standard (200-300 tokens), detailed (800+ tokens) | minimal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions response modes and output detail levels, but does not state whether the tool is read-only, what permissions are required, whether there are rate limits, or how the security score is sourced or refreshed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the security status purpose before explaining response modes. It is efficient, though 'comprehensive' appears twice and the response-mode detail partly duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter overview tool with no output schema and no annotations, the description states the output content and response modes, but it omits selection guidance versus siblings and behavioral context such as read-only safety. It is adequate but leaves clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both domain and response_mode are already fully documented in the input schema. The description repeats the concept of response modes but adds no new parameter meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description has a clear verb ('Get') and resource ('security score, grade, and key metrics'), so an agent knows this returns a security dashboard summary. It identifies itself as an overview, but does not explicitly differentiate from sibling tools like query_security_data or analyze_security_risks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives mode-based usage guidance ('minimal responses for quick queries and detailed analysis for comprehensive security overviews'), but this is about the response_mode parameter, not when to choose this tool over its siblings. No alternative tools are named or compared.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_data_completenessData Completeness ValidationB
✅ DATA VALIDATION: Cross-validate tool results for accuracy and completeness. INTELLIGENT RESPONSES: Use 'minimal' for validation status (25 tokens). Use 'standard' for validation summary (200-400 tokens). Use 'detailed' for full data audit.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Company domain to validate | example.com |
| response_mode | No | Response detail level | minimal |
| expected_asset_count | No | Expected number of assets for validation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It usefully discloses output size per mode (25 vs 200-400 tokens), which is genuine behavioral context, but says nothing about whether the operation is read-only, what it costs, or what happens on failed validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with the core action front-loaded. The emoji and the ALL-CAPS 'INTELLIGENT RESPONSES' header are marketing noise that costs a little signal, but nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must explain what validation produces and how the three parameters interact. It covers response_mode well but leaves domain and expected_asset_count semantics and the shape of the validation result unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real value beyond the schema by quantifying what each response_mode returns (25 tokens for minimal, 200-400 for standard, full audit for detailed). It leaves domain and expected_asset_count entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Cross-validate tool results for accuracy and completeness.' An agent can tell this is a validation tool, though the phrase 'tool results' is vague about which inputs it consumes and nothing distinguishes it from siblings like analyze_security_risks or query_security_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the response_mode options but never says when to invoke this tool versus the eight sibling analysis tools, nor what prerequisite data must exist. The 'Use minimal/standard/detailed' lines are parameter guidance, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v2.0.0- Changed
analyze_email_security1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
analyze_issue_types1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
analyze_security_risks1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
api_discovery1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
create_improvement_plan1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
discover_assets1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
query_security_data2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / properties / fetch_allAdded value: +{ + "default": false, + "description": "Follow pagination and return every page of a GET list endpoint (capped at 20 pages; a truncation notice is added if the cap is hit)", + "type": "boolean" +}
- Changed
security_dashboard1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
validate_data_completeness1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
9 tool updates
v1.1.1- First observed
analyze_email_security - First observed
analyze_issue_types - First observed
analyze_security_risks - First observed
api_discovery - First observed
create_improvement_plan - First observed
discover_assets - First observed
query_security_data - First observed
security_dashboard - First observed
validate_data_completeness
TDQS
Scored across 9 tools
Several tools have overlapping analytical purposes: security_dashboard and analyze_security_risks both provide security status and risk overviews; analyze_email_security and analyze_issue_types both cover SPF/DMARC issues. While descriptions differentiate them, an agent may still struggle to pick the right one for a broad query.
Seven of nine tools follow a clear verb_noun pattern (e.g., analyze_security_risks, discover_assets), and all names use snake_case. Two tools (security_dashboard, api_discovery) are noun phrases, which is a minor deviation but still readable.
Nine tools is well-scoped for a SecurityScorecard integration, covering core workflows without redundancy. Each tool appears to earn its place, with no excessive or trivial additions.
The tool set covers security scoring, risk analysis, improvement planning, asset discovery, email security, issue breakdown, validation, and direct API access. Minor gaps exist, such as historical trend analysis or detailed remediation tracking, but core lifecycle operations are present.
Maintenance
Related MCP Connectors
Ask about your Kodem Security data and act on findings in plain language, with your permissions.
Threat intel + your scans/findings/Shield posture. CVE, EPSS, KEV, package vuln lookup, DAST.
Security reviews, threat models over a repo or website, and remediation tracking, in your editor.
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Related MCP Servers
AlicenseBqualityBmaintenanceEnables MCP clients to interact with SentinelOne's cybersecurity platform for security analysis, threat investigation, and asset management through natural language queries. Provides read-only access to alerts, vulnerabilities, misconfigurations, and inventory data.3398MIT- AlicenseNot gradedqualityDmaintenanceEnables asking natural language questions about OpenSSF Scorecard security assessments for open source projects.4Apache 2.0
- FlicenseNot gradedqualityDmaintenanceProvides search, detail lookup, and gap listing tools for a security control inventory, enabling natural language queries about control status and gaps.-
- AlicenseNot gradedqualityDmaintenanceExposes BitSight Security Ratings as tools for AI assistants, enabling queries on company security scores, company search, details, vulnerabilities, portfolio, risk vectors, and alerts.MIT