Server

ContrastAPI

Published by UPinar. Transport: HTTPS (remote). Written in python.

Cross-source (2 sources)

Description

Description below is sourced from the LF AAIF MCP registry. MCPowered surfaces the publisher's own words; the publisher is the warrantor of any claims they make.

53 tools, 7 Resources, Sigma rules, email SPF/DMARC, MITRE, CVE/KEV, risk_score. No key.

Tags

Capability Messaging

Tags are derived deterministically from the server's name and description. They drive the filter UI on the catalog directory and the per-target comparison pages.

Provenance

Server id
github/upinar/contrastapi
Repository
upinar/contrastapi
Surfaced by
awesome-mcp-servers , LF AAIF registry
Category
Security

Scan status

Code axis
70 / 100
Higher is fewer findings; see how the code axis is computed.

Last scanned

Source hash 805b0cb35250

Total findings 6 · 1 critical · 0 warning · 5 informational

Checks run Tool description scan , Tool output literal scan , Dependency CVE check , Permission audit

Findings

  • critical permission_audit methodology

    app/codesec/injection.py:83

    Matched os.system(

    Suggested action The server has the shell-exec + network-out + fs-write trifecta. This combination enables data exfiltration via shell. Review the install scope before granting.

    Patterns trifecta

  • informational permission_audit methodology

    app/codesec/injection.py:89

    Matched subprocess.run

    Suggested action The server spawns subprocesses. Review whether this matches the server's documented purpose.

    Patterns subprocess

  • informational permission_audit methodology

    app/codesec/injection.py:83

    Matched os.system(

    Suggested action The server uses shell execution. Prefer execFile/spawn with argument arrays over shell strings. See methodology.

    Patterns shell-exec

  • informational permission_audit methodology

    app/core/mcp_proxy.py:394

    Matched open(_MCP_TOOL_LOG, "a"

    Suggested action The server writes to the filesystem. Verify the server documents which paths it touches.

    Patterns fs-write

  • informational permission_audit methodology

    app/core/notify.py:21

    Matched .read_text(

    Suggested action The server reads from the filesystem. Verify the server documents which paths it accesses.

    Patterns fs-read

  • informational permission_audit methodology

    app/atlas/sync.py:22

    Matched httpx.AsyncClient

    Suggested action The server makes outbound network calls. Verify the documented destination list matches.

    Patterns network-out

What we couldn't check

  • dynamic_tool_descriptions

    Static analysis only sees descriptions hardcoded in source. Servers that compute descriptions at runtime (server-generated tools/list responses) are not covered by Check 1 at v0.

  • ast_indirection

    v0 regex sees only literal description strings. Descriptions assembled by concatenation or pulled through variable indirection evade detection until AST-level extraction lands in v1.

Install configuration

Universal install-config generation across agent clients (Claude Code, Cursor, Windsurf, ChatGPT Apps, Continue, Cline, Zed) is a v0 deliverable. For now, install per the publisher's repository instructions linked above. The auto-generated client-specific configuration block lands here when the install-config generator ships.

Disclaimer

Scan results describe what our static checks found and didn't find at the time of scan. They are not a recommendation, certification, or guarantee. A scanned-clean result is the absence of evidence of malice, not the presence of evidence of integrity. Servers can be compromised after scan. You are responsible for evaluating whether to install any MCP server. See our methodology for what we check, what we can't check, and the limits of static analysis.

MCPowered