Skip to main content
Glama
CallMarcus

SecurityScorecard MCP Server

by CallMarcus

SSC MCP Server

npm version License: MIT

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-mcp and listed in the MCP Registry as io.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

  1. Node.js 20+ - Download

  2. SecurityScorecard API Token - Get from your SecurityScorecard dashboard

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)

%APPDATA%\Claude\claude_desktop_config.json

Claude Desktop (macOS)

~/Library/Application Support/Claude/claude_desktop_config.json

Cursor

~/.cursor/mcp.json (global) or .cursor/mcp.json (project)

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-mcp

On 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:fast

Then 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

security_dashboard

Score, grade, and key security metrics

analyze_security_risks

Issue prioritization and risk analysis

create_improvement_plan

Actionable remediation roadmaps

discover_assets

Asset inventory with security context

analyze_email_security

SPF/DMARC/DKIM analysis

api_discovery

Search 517 API endpoints with hybrid semantic/keyword search

analyze_issue_types

Granular issue type breakdowns

validate_data_completeness

Cross-tool data verification

query_security_data

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

SECURITY_SCORECARD_API_TOKEN

Yes

Your API token

COMPANY_DOMAIN

No

Default domain for queries

DEBUG_MODE

No

Set true for verbose logging

Optional rate limiting and caching:

REQUEST_CACHE_TTL_MS=300000
REQUESTS_PER_INTERVAL=5
REQUEST_INTERVAL_MS=1000

API 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 + embeddings

Development

Build Commands

npm run build:fast   # Recommended - uses esbuild (~130ms)
npm run build        # TypeScript compiler (may OOM on some systems)
npm test             # Run tests

Project 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 JavaScript

Testing

npm test             # Run test suite

Troubleshooting

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:fast

Semantic 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

  1. Double-check the config file location for your client (see Quick Start)

  2. For a from-source install, verify the path to build/index.js is correct

  3. Restart the client completely

  4. 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

Available Tools

9 tools
analyze_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany domain to analyzeexample.com
response_modeNoResponse detail levelminimal

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany domain to analyzeexample.com
focus_factorNoFocus on specific security factorall
response_modeNoResponse detail levelminimal

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNoFocus area: critical (high/critical issues only), all (complete analysis), quick-wins (easy fixes)all
domainNoCompany domain to analyze (e.g., example.com)example.com
response_modeNoResponse detail level: minimal (50-100 tokens), standard (300-500 tokens), detailed (comprehensive)minimal

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by API tag/category (e.g., 'Companies', 'Portfolios', 'Issues')
limitNoMaximum number of results to return
queryYesSearch query for API endpoints (e.g., 'security score', 'vulnerabilities', 'company data')
methodNoFilter by HTTP method
include_schemaNoInclude detailed request/response schema for top result

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany domain to analyzeexample.com
timelineNoTimeline for improvement90-days
target_gradeNoTarget security gradeA
response_modeNoResponse detail levelminimal

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoParent domain to discover assets forexample.com
response_modeNoResponse detail levelminimal
include_risk_detailsNoInclude security risk information

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoDomain to use in endpointexample.com
methodNoHTTP methodGET
endpointYesAPI endpoint to query (e.g., /companies/{domain}/factors)
fetch_allNoFollow 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_onlyNoOnly validate endpoint without calling API

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany domain to analyze (e.g., example.com)example.com
response_modeNoResponse detail level: minimal (10-20 tokens), standard (200-300 tokens), detailed (800+ tokens)minimal

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany domain to validateexample.com
response_modeNoResponse detail levelminimal
expected_asset_countNoExpected number of assets for validation

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 9 tool updatesv2.0.0
    • Changedanalyze_email_security1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_issue_types1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_security_risks1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedapi_discovery1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcreate_improvement_plan1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changeddiscover_assets1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedquery_security_data2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / fetch_all
        Added 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"
        +}
    • Changedsecurity_dashboard1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedvalidate_data_completeness1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. 9 tool updatesv1.1.1
    • First observedanalyze_email_security
    • First observedanalyze_issue_types
    • First observedanalyze_security_risks
    • First observedapi_discovery
    • First observedcreate_improvement_plan
    • First observeddiscover_assets
    • First observedquery_security_data
    • First observedsecurity_dashboard
    • First observedvalidate_data_completeness

TDQS

B3.3/5.0

Scored across 9 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables 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.
    33
    98
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables asking natural language questions about OpenSSF Scorecard security assessments for open source projects.
    4
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides search, detail lookup, and gap listing tools for a security control inventory, enabling natural language queries about control status and gaps.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes BitSight Security Ratings as tools for AI assistants, enabling queries on company security scores, company search, details, vulnerabilities, portfolio, risk vectors, and alerts.
    MIT