From 8dcbddc38fdde5f2554a3c4164748f6c0d7a44cb Mon Sep 17 00:00:00 2001 From: Dan Barr <6922515+danbarr@users.noreply.github.com> Date: Fri, 9 Oct 2026 11:20:36 -0400 Subject: [PATCH] Enable security scans for nine MCP servers Replace startup scan bypasses with mock credentials where needed. Document Sentry's issue-status false positive and Perplexity's expected API data flow in the security allowlists. Signed-off-by: Dan Barr <6922515+danbarr@users.noreply.github.com> --- npx/chrome-devtools-mcp/spec.yaml | 2 -- npx/clarity-mcp-server/spec.yaml | 3 +-- npx/graphlit-mcp-server/spec.yaml | 2 -- npx/heroku-mcp-server/spec.yaml | 2 -- npx/perplexity-ask/spec.yaml | 20 ++++++++++++++++++-- npx/phoenix-mcp/spec.yaml | 2 -- npx/sentry-mcp-server/spec.yaml | 17 +++++++++++++++-- uvx/mcp-neo4j-aura-manager/spec.yaml | 10 ++++++++-- uvx/mcp-neo4j-cypher/spec.yaml | 13 +++++++++++-- 9 files changed, 53 insertions(+), 18 deletions(-) diff --git a/npx/chrome-devtools-mcp/spec.yaml b/npx/chrome-devtools-mcp/spec.yaml index 8b1a749c..6fe5bd45 100644 --- a/npx/chrome-devtools-mcp/spec.yaml +++ b/npx/chrome-devtools-mcp/spec.yaml @@ -18,8 +18,6 @@ provenance: repository_ref: "refs/heads/main" security: - # Server requires a running Chrome instance to connect to - cannot complete startup in CI - insecure_ignore: true allowed_issues: - code: "AITech-1.1" reason: "False positive - the evaluate_script tool allows JavaScript evaluation in browser pages which is core DevTools debugging functionality. The LLM analyzer flags this as prompt injection but it is legitimate browser automation capability, not malicious instruction manipulation. YARA did not flag this tool." diff --git a/npx/clarity-mcp-server/spec.yaml b/npx/clarity-mcp-server/spec.yaml index 22f6929d..9e590d31 100644 --- a/npx/clarity-mcp-server/spec.yaml +++ b/npx/clarity-mcp-server/spec.yaml @@ -19,5 +19,4 @@ provenance: repository_ref: "refs/heads/main" security: - # Server requires --clarity_api_token to start - cannot be scanned in CI - insecure_ignore: true + allowed_issues: [] diff --git a/npx/graphlit-mcp-server/spec.yaml b/npx/graphlit-mcp-server/spec.yaml index 0888b70c..e43a2841 100644 --- a/npx/graphlit-mcp-server/spec.yaml +++ b/npx/graphlit-mcp-server/spec.yaml @@ -18,8 +18,6 @@ provenance: repository_ref: "refs/heads/main" security: - # Server requires GRAPHLIT_JWT_SECRET and other credentials to start - cannot be scanned in CI - insecure_ignore: true allowed_issues: - code: "AITech-1.1" reason: "False positive - extractText tool legitimately processes arbitrary user text through LLM for JSON data extraction. The text input is the data to be extracted from, not an attempt to manipulate LLM instructions. This is core functionality for structured data extraction from unstructured content." diff --git a/npx/heroku-mcp-server/spec.yaml b/npx/heroku-mcp-server/spec.yaml index 28ee3160..d5265675 100644 --- a/npx/heroku-mcp-server/spec.yaml +++ b/npx/heroku-mcp-server/spec.yaml @@ -21,8 +21,6 @@ provenance: # YARA analyzer found no issues. LLM analyzer flagged tools that perform legitimate # operations for the Heroku Platform MCP server by Salesforce/Heroku. security: - # Server requires HEROKU_API_KEY to start - cannot be scanned in CI - insecure_ignore: true allowed_issues: - code: "AISubtech-12.1.2" tool: "create_app" diff --git a/npx/perplexity-ask/spec.yaml b/npx/perplexity-ask/spec.yaml index de22f1f2..bf9b5254 100644 --- a/npx/perplexity-ask/spec.yaml +++ b/npx/perplexity-ask/spec.yaml @@ -18,5 +18,21 @@ provenance: repository_ref: "refs/heads/main" security: - # Server requires PERPLEXITY_API_KEY to start - cannot complete startup in CI - insecure_ignore: true + # Mock credentials allow tool discovery without a live service. + mock_env: + - name: PERPLEXITY_API_KEY + value: "mock-perplexity-api-key-for-scanning" + description: "Perplexity API key - mock value for security scanning" + allowed_issues: + - code: "AITech-8.2" + reason: | + Accepted data flow - YARA flags perplexity_ask, perplexity_research, + and perplexity_reason for sending conversation messages to an external + API. These tools explicitly provide Perplexity-hosted answers, research, + and reasoning. performAgentResponse maps caller-supplied message roles + and content into the request input and sends it to the authenticated + Perplexity Agent API (api.perplexity.ai by default, configurable via + PERPLEXITY_BASE_URL). This is the advertised service operation, not + hidden collection of local files or credentials. Users must only pass + conversation content they intend to share with Perplexity. Verified in + v1.3.0 (dist/server.js performAgentResponse and makeApiRequest). diff --git a/npx/phoenix-mcp/spec.yaml b/npx/phoenix-mcp/spec.yaml index 6041b04d..012d9b7e 100644 --- a/npx/phoenix-mcp/spec.yaml +++ b/npx/phoenix-mcp/spec.yaml @@ -21,8 +21,6 @@ provenance: # No security issues flagged by scanner for version 2.3.2 # Previous allowlist entries (AITech-8.2, AITech-9.1) removed as they are no longer flagged security: - # Server requires PHOENIX_API_KEY and PHOENIX_BASE_URL to start - cannot be scanned in CI - insecure_ignore: true allowed_issues: - code: "AITech-1.1" tool: "add-dataset-examples" diff --git a/npx/sentry-mcp-server/spec.yaml b/npx/sentry-mcp-server/spec.yaml index 663ea729..e80bb144 100644 --- a/npx/sentry-mcp-server/spec.yaml +++ b/npx/sentry-mcp-server/spec.yaml @@ -26,9 +26,22 @@ provenance: # Security allowlist for known false positives security: - # Server requires SENTRY_ACCESS_TOKEN to start - cannot be scanned in CI - insecure_ignore: true + # Mock credentials allow tool discovery without a live service. + mock_env: + - name: SENTRY_ACCESS_TOKEN + value: "mock-sentry-access-token-for-scanning" + description: "Sentry access token - mock value for security scanning" allowed_issues: + - code: "AITech-1.1" + tool: "update_issue" + reason: | + False positive - YARA flags the update_issue description's instructions + to "ignore an issue" and "then ignore it again with the new rule" as + prompt injection. These describe Sentry's ignored issue status and + ignore-mode transitions, not instructions to disregard agent policies. + The handler validates the requested status and ignore options and calls + the authenticated Sentry issue-update API. Verified in v0.42.0 + (dist/index.js update_issue and buildIgnoreUpdate). - code: "AITech-9.1" reason: | YARA flags the search_docs tool with "command injection" (AISubtech-9.1.4) due to diff --git a/uvx/mcp-neo4j-aura-manager/spec.yaml b/uvx/mcp-neo4j-aura-manager/spec.yaml index a11580e7..159f0f6e 100644 --- a/uvx/mcp-neo4j-aura-manager/spec.yaml +++ b/uvx/mcp-neo4j-aura-manager/spec.yaml @@ -19,5 +19,11 @@ provenance: # Security configuration security: - # Server requires Neo4j Aura API credentials to start - cannot be scanned in CI - insecure_ignore: true + # Mock credentials allow tool discovery without a live service. + mock_env: + - name: NEO4J_AURA_CLIENT_ID + value: "mock-aura-client-id-for-scanning" + description: "Neo4j Aura client ID - mock value for security scanning" + - name: NEO4J_AURA_CLIENT_SECRET + value: "mock-aura-client-secret-for-scanning" + description: "Neo4j Aura client secret - mock value for security scanning" diff --git a/uvx/mcp-neo4j-cypher/spec.yaml b/uvx/mcp-neo4j-cypher/spec.yaml index 289551f9..917f2fe5 100644 --- a/uvx/mcp-neo4j-cypher/spec.yaml +++ b/uvx/mcp-neo4j-cypher/spec.yaml @@ -17,6 +17,15 @@ provenance: repository_uri: "https://github.com/neo4j-contrib/mcp-neo4j" repository_ref: "refs/tags/mcp-neo4j-cypher-v0.3.1" -# Security: Server requires NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD to start - cannot be scanned in CI security: - insecure_ignore: true + # Mock credentials allow tool discovery without a live service. + mock_env: + - name: NEO4J_URI + value: "bolt://127.0.0.1:1" + description: "Unreachable Neo4j endpoint; tool discovery does not connect - mock value for security scanning" + - name: NEO4J_USERNAME + value: "neo4j" + description: "Neo4j username - mock value for security scanning" + - name: NEO4J_PASSWORD + value: "mock-neo4j-password-for-scanning" + description: "Neo4j password - mock value for security scanning"