Skip to main content
Glama
DevInder1

tridentchain-mcp on PyPI

by DevInder1

TridentChain Security

PyPI — tridentchain-security PyPI — tridentchain-mcp PyPI Downloads MCP Registry Python License: MIT Works with Claude · Cursor · VS Code · Windsurf · Zed Docker (ghcr.io)

Local-first vulnerability scanner for project dependencies, developer tools, and IDE extensions.
Uses multi-source intelligence (OSV, NVD, GHSA, Sonatype) with KEV/EPSS prioritization.

No API key required for default usage.

Public repo: https://github.com/DevInder1/supply-chain-scanner-public


Install (plug and play)

pip3 install tridentchain-security
npm install -g @tridentchain/security-cli
tridentchain-security --help

Agents & MCP (Claude, Cursor, VS Code, Windsurf, Zed):

Pick whichever install path fits:

# Option A — pip (needs Python 3.10+)
pip3 install -U "tridentchain-security>=0.1.4" "tridentchain-mcp>=0.1.4"

# Option B — uvx (no manual Python install; uv handles it)
uvx tridentchain-mcp

# Option C — Docker (no Python needed, fully sandboxed)
docker pull ghcr.io/devinder1/tridentchain-mcp:latest
# Then in your MCP config, replace `python3 -m tridentchain_mcp` with:
#   command: docker
#   args: ["run", "--rm", "-i", "-v", "$PWD:/workspace", "ghcr.io/devinder1/tridentchain-mcp:latest"]

What you can do: docs/CAPABILITIES.md
Full guide: docs/INSTALL_AND_USE.md
Cross-platform (macOS / Linux / Windows): docs/CROSS_PLATFORM.md
(PyPI: tridentchain-security · npm: @tridentchain/security-cli)

tridentchain-security --scan all --project-path . --output-dir scanner-output

Related MCP server: GoThreatScope

Use in your own Python app

from scanner import run_scan

summary = run_scan(
    project_path=".",
    scan="all",
    run_profile="full",  # no API key required
    output_dir="scanner-output",
)
print(summary["summary"])

Scan profiles

Profile

Description

full (default)

Project + system + extensions. OSV + NVD without keys.

quick

Faster project-focused scan.

offline

Local advisory DB only, no network.

Power-user

Add GITHUB_TOKEN, NVD_API_KEY, optional SONATYPE_TOKEN for best coverage.


Desktop app (individual application)

No repo clone required if the pip package is installed:

pip3 install tridentchain-security
cd apps/desktop && npm install && npm run start

See apps/desktop/README.md and docs/DISTRIBUTION_VERIFICATION.md.

AI / automation (Claude, OpenAI, Cursor, VS Code, Windsurf, …)

One install, every agent: pip install "tridentchain-security>=0.1.2" tridentchain-mcp

Guide

Description

Agent integrations

Claude · OpenAI · Cursor · VS Code · Windsurf · Zed · MCP · CLI

Capabilities

Everything you can do today

Architecture

MCP + unified tools design

./scripts/setup-agent-mcp.sh cursor   # prints setup for your agent

Phase 2 — Claude MCP: pip install tridentchain-mcp · Setup guide · Plugin

Phase 3 — OpenAI + Cursor: examples/openai/ · Cursor setup · .cursor/mcp.json.example

Phase 4 — VS Code (Anthropic MCP): Open repo → MCP ready · VS Code setup · ./scripts/vscode-mcp-install-link.sh · extension

Phase 5 — Validate: tridentchain-security --validate · MCP validate_after_patch · CAPABILITIES.md

Unified tool layer: from scanner.integrations import execute_tool, get_tool_definitions, to_openai_tools


Development

git clone https://github.com/DevInder1/supply-chain-scanner-public.git
cd supply-chain-scanner-public
python3 -m pip install -e .
tridentchain-security --help
python3 -m unittest scanner.tests.test_matcher_ranges -v

Install & use: docs/INSTALL_AND_USE.md
Cross-platform: docs/CROSS_PLATFORM.md
CLI contract: docs/cli-contract.md
Publishing: docs/PUBLISHING.md


Optional API keys (power users)

Variable

Purpose

NVD_API_KEY

Higher NVD rate limits

GITHUB_TOKEN

GHSA advisories

SONATYPE_TOKEN

Sonatype Guide advisories

Set in .env or environment variables.


License

MIT — see LICENSE

Available Tools

3 tools
scan_fullA

Comprehensive scan covering THREE surfaces in one call that project-only scanners cannot reach: (1) project dependencies (npm, PyPI), (2) OS/system packages (Homebrew on macOS, apt/dnf on Linux), and (3) installed IDE extensions (VS Code marketplace + JetBrains plugins). Use this whenever the user asks for "complete coverage", a "full audit", scanning their "whole machine" or "system", or wants to check IDE extensions — these are a growing attack vector and most other vulnerability scanners miss them entirely. Slower than scan_project; pick scan_project for fast project-only checks. Findings are ranked by EPSS exploit probability and CISA KEV presence so the user sees what attackers are actually using first. Returns JSON plus HTML reports under output_dir.

ParametersJSON Schema
NameRequiredDescriptionDefault
output_dirNo
run_profileNofull
max_findingsNo
project_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, so the description correctly implies a non-destructive scanning operation. The description adds context about output format (JSON + HTML), ranking criteria (EPSS, CISA KEV), and surfaced areas, but does not detail side effects or required permissions beyond what annotations imply.

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 well-structured with numbered points and a comparison. It is front-loaded with the core purpose. However, it could be slightly more concise by removing redundant phrasing like 'these are a growing attack vector' which adds color but not essential instruction.

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?

Given the complexity of the tool (4 parameters, multiple surfaces), the description covers the scanning scope and output format adequately. It lacks parameter details and does not leverage the output schema (though not shown). The comparison with scan_project adds completeness. However, the missing parameter explanations reduce usability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate for missing parameter documentation. However, it only mentions project_path implicitly via the surfaces and output_dir in reports. It does not explain the purpose of output_dir, run_profile, or max_findings, leaving the agent unsure how to set them correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a comprehensive scan covering project dependencies, OS packages, and IDE extensions. It explicitly distinguishes from scan_project by noting that scan_full covers three surfaces that project-only scanners cannot reach.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use this tool (e.g., 'complete coverage', 'full audit') and when to use scan_project instead ('fast project-only checks'). Includes specific user request patterns and a warning about slower speed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_projectA

Scan project dependencies for CVEs and rank findings by REAL-WORLD EXPLOITATION RISK using EPSS (exploit probability) and the CISA KEV (Known Exploited Vulnerabilities) catalog — not just CVSS severity. Best for: when the user wants to know which CVEs to fix FIRST, asks about supply-chain risk in an IDE/conversational context, or wants to pair with validate_after_patch for a confirmed-fix workflow. Covers npm and PyPI manifests + lockfiles. For comprehensive coverage that also includes OS packages and IDE extensions, prefer scan_full. Returns JSON with status, EPSS-ranked findings list, and paths to HTML reports written under output_dir.

ParametersJSON Schema
NameRequiredDescriptionDefault
output_dirNo
run_profileNofull
max_findingsNo
project_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate openWorldHint (external access) and non-destructive. Description adds that it writes HTML reports to output_dir, which is a behavioral side effect. No contradiction with annotations.

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?

Four sentences, front-loaded with purpose and usage. Efficient, but could be slightly tighter. Length is justified by the added context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage, results (JSON+HTML), and alternatives. Output schema exists, so return values are documented elsewhere. Missing parameter descriptions are a minor gap.

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 has 4 parameters with 0% description coverage. Description only explains output_dir (reports written there). Other parameters like run_profile and max_findings are not described, so partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool scans project dependencies for CVEs and ranks by EPSS/KEV risk. It distinguishes from sibling scan_full by noting scope difference (npm/PyPI vs OS packages). Specific verb 'scan' and resource 'project dependencies' are present.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit best-for: wanting to fix CVEs first, supply-chain risk, pairing with validate_after_patch. Also recommends scan_full for broader coverage. Provides clear when-to-use and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_after_patchA
Read-only

Confirm that dependency upgrades actually resolved the CVEs they were supposed to fix. Use this whenever the user says they ran npm update, pip install -U, or applied a patch and wants verification — chain it with two scan_project calls (before/after) or pass two saved scan JSON results. This is unique to TridentChain; most other supply-chain scanners only report findings without a verifiable post-patch loop. Returns resolved_count, remaining_count, new_count, and validation_passed (true only when new findings == 0 and at least one was resolved).

ParametersJSON Schema
NameRequiredDescriptionDefault
baseline_jsonYes
after_patch_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, and openWorldHint. The description adds behavioral details: it compares two inputs and outputs resolved_count, remaining_count, new_count, and validation_passed, with condition for validation_passed. This adds value beyond annotations, but could include more on error behavior or input validation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two sentences, front-loaded with the core purpose, followed by usage guidance and return value explanation. No extraneous information; every sentence is necessary and effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's specific role, the description covers when to use, how to chain with siblings, and what outputs to expect. It is fairly complete but could mention input format expectations (e.g., must be output from scan_project) and handle cases of invalid input.

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 descriptions are absent (0% coverage). The description compensates by explaining that baseline_json and after_patch_json are scan results from before and after patch, and that they should be JSON strings. This provides essential meaning beyond the schema's bare field definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: confirming that dependency upgrades resolved CVEs. It specifies the action (validate), resource (dependency upgrades/CVEs), and distinguishes from siblings by noting uniqueness to TridentChain and referencing chainable usage with scan_project.

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?

Description gives clear when-to-use scenarios (after npm update, pip install -U, or patch application) and how to use it (chain with two scan_project calls or pass saved JSON results). It mentions uniqueness but lacks explicit when-not-to-use 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. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.5
    • First observedscan_full
    • First observedscan_project
    • First observedvalidate_after_patch

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: scan_project for project-only dependencies, scan_full for comprehensive coverage including system and IDE extensions, and validate_after_patch for post-patch verification. Descriptions explicitly differentiate use cases.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: scan_project, scan_full, validate_after_patch. The naming is predictable and descriptive.

Tool Count4/5

With 3 tools, the server is minimal but well-scoped for its vulnerability scanning and validation domain. Each tool earns its place, though the count is on the lower end.

Completeness4/5

The server covers the core workflow: scanning project or full system and validating fixes. Minor gaps exist, such as lacking a tool to configure output paths or list past scans, but the primary use cases are handled.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevInder1/supply-chain-scanner-public'

If you have feedback or need assistance with the MCP directory API, please join our Discord server