AGENTGUARD

AI Agent Security Posture Report

Target /Users/saikrishnaswaroopvinukonda/Desktop/Ai Agents Middleware/agentguard/demo/demo-corp · Mon, 17 Aug 2026 19:17:20 GMT · 14 files in 0.1s

Generated locally — no data left this machine
Critical100
Risk score / 100
3
Agent workloads
1 in CI pipelines
6
MCP servers
7 tools exposed
2
Destructive tools
7
Exposed credentials
1 shared across agents
2
Unowned agents

Findings by severity

Critical · 10High · 4Medium · 6Info · 121 findings total

Security graph

Who runs what, holding which credentials, reaching which systems. Hover a node to trace its blast radius.

Agent workloadCredentialMCP serverToolSystem destructive path write path
AWS access key Credential: AWS access key OpenAI API key Credential: OpenAI API key Shopify admin token Credential: Shopify admin token Anthropic API key SHARED Credential: Anthropic API key — SHARED Database connection str… Credential: Database connection string infra-automation Agent workload: infra-automation refund-agent LangGraph, Anthropic SDK Agent workload: refund-agent — LangGraph, Anthropic SDK shopify via config MCP server: shopify — via config Shopify FINANCIAL System: Shopify — FINANCIAL hubspot-crm via config MCP server: hubspot-crm — via config HubSpot PII System: HubSpot — PII shopify-admin in code MCP server: shopify-admin — in code get_order READ Tool: get_order — READ refund_order DESTRUCTIVE Tool: refund_order — DESTRUCTIVE delete_customer DESTRUCTIVE Tool: delete_customer — DESTRUCTIVE update_inventory WRITE Tool: update_inventory — WRITE support-copilot Anthropic SDK, MCP SDK Agent workload: support-copilot — Anthropic SDK, MCP SDK postgres via config MCP server: postgres — via config PostgreSQL DATA System: PostgreSQL — DATA gmail via config MCP server: gmail — via config Gmail PII System: Gmail — PII crm-tools in code MCP server: crm-tools — in code search_customer READ Tool: search_customer — READ update_customer WRITE Tool: update_customer — WRITE send_email WRITE Tool: send_email — WRITE

Findings

Critical AWS access key exposed in source code AG-001 · credential-exposure

A AWS access key was found in `main.tf` (line 3). Credentials in source code end up in git history, CI logs, and every clone.

Location: infra-automation / main.tf:3

AKIA3XQ7TL…4W (20 chars)

Fix: Rotate the credential, move it to a secrets manager, and issue per-agent scoped credentials.

Critical Shopify admin token exposed in source code AG-004 · credential-exposure

A Shopify admin token was found in `.mcp.json` (line 7). Credentials in source code end up in git history, CI logs, and every clone.

Location: refund-agent / .mcp.json:7

shpat_9f3b…b7 (26 chars)

Fix: Rotate the credential, move it to a secrets manager, and issue per-agent scoped credentials.

Critical Anthropic API key exposed in source code AG-005 · credential-exposure

A Anthropic API key was found in `agent.py` (line 6). Credentials in source code end up in git history, CI logs, and every clone.

Location: refund-agent / agent.py:6

sk-ant-api…Xq (63 chars)

Fix: Rotate the credential, move it to a secrets manager, and issue per-agent scoped credentials.

Critical Database connection string exposed in source code AG-006 · credential-exposure

A Database connection string was found in `claude_desktop_config.json` (line 7). Credentials in source code end up in git history, CI logs, and every clone.

Location: support-copilot / claude_desktop_config.json:7

postgresql…rs (73 chars)

Fix: Rotate the credential, move it to a secrets manager, and issue per-agent scoped credentials.

Critical Anthropic API key exposed in source code AG-007 · credential-exposure

A Anthropic API key was found in `src/index.ts` (line 4). Credentials in source code end up in git history, CI logs, and every clone.

Location: support-copilot / src/index.ts:4

sk-ant-api…Xq (63 chars)

Fix: Rotate the credential, move it to a secrets manager, and issue per-agent scoped credentials.

Critical Same Anthropic API key shared by 2 agents AG-008 · shared-credential

Credential fingerprint `a63f60af6e57` appears in refund-agent, support-copilot. Shared credentials make agent actions unattributable and multiply blast radius: one leak compromises every agent using it.

Location: refund-agent, support-copilot / refund-agent/agent.py:6 • support-copilot/src/index.ts:4

sk-ant-api…Xq (63 chars)

Fix: Issue one identity per agent so actions are attributable and revocation is surgical.

Critical Secret inline in MCP config for "shopify" AG-012 · credential-exposure

MCP configuration `.mcp.json` passes `SHOPIFY_ACCESS_TOKEN` as a plaintext env value. Anyone with repo access — and any agent that can read the file — holds this credential.

Location: refund-agent / .mcp.json

SHOPIFY_ACCESS_TOKEN=shpat_9f…

Fix: Reference secrets from a manager or OS keychain; never inline them in MCP configs.

Critical MCP server "shopify-admin" exposes 2 destructive tools against Shopify (financial system) AG-014 · destructive-tool

Tools `refund_order`, `delete_customer` can irreversibly modify or move data against Shopify (financial system). Any agent (or prompt-injected agent) connected to this server can invoke them.

Location: refund-agent / mcp_server.py

refund_order, delete_customer

Fix: Gate destructive tools behind approval, split them into a separate restricted server, or scope them out for agents that only need reads.

Critical Agent "refund-agent" combines PII access with financial write permissions AG-016 · toxic-combination

This workload can read personal data (HubSpot) and write to financial systems (Shopify, Shopify). A single prompt injection here reaches both.

Workload: refund-agent

Fix: Split into two agents with separate identities, or gate the financial-write path behind human approval.

Critical Secret inline in MCP config for "postgres" AG-019 · credential-exposure

MCP configuration `claude_desktop_config.json` passes `DATABASE_URL` as a plaintext env value. Anyone with repo access — and any agent that can read the file — holds this credential.

Location: support-copilot / claude_desktop_config.json

DATABASE_URL=postgres…

Fix: Reference secrets from a manager or OS keychain; never inline them in MCP configs.

High OpenAI API key exposed in env file AG-002 · credential-exposure

A OpenAI API key was found in `.env` (line 1). Env files are frequently committed or copied between machines; verify this file is git-ignored and rotate if it ever left the machine.

Location: refund-agent / .env:1

sk-proj-Tq…7u (40 chars)

Fix: Rotate the credential, move it to a secrets manager, and issue per-agent scoped credentials.

High Shopify admin token exposed in env file AG-003 · credential-exposure

A Shopify admin token was found in `.env` (line 2). Env files are frequently committed or copied between machines; verify this file is git-ignored and rotate if it ever left the machine.

Location: refund-agent / .env:2

shpat_9f3b…b7 (26 chars)

Fix: Rotate the credential, move it to a secrets manager, and issue per-agent scoped credentials.

High Write-capable tools on "shopify-admin" carry no MCP annotations AG-015 · annotation-drift

3 write/destructive-shaped tools are declared without `readOnlyHint`/`destructiveHint` annotations. Clients and gateways that gate on annotations will treat these as unknown risk — or worse, assume they are safe.

Location: refund-agent / mcp_server.py

refund_order, delete_customer, update_inventory

Fix: Declare MCP tool annotations, then verify declared behavior matches actual behavior (annotation drift).

High Write-capable tools on "crm-tools" carry no MCP annotations AG-021 · annotation-drift

2 write/destructive-shaped tools are declared without `readOnlyHint`/`destructiveHint` annotations. Clients and gateways that gate on annotations will treat these as unknown risk — or worse, assume they are safe.

Location: support-copilot / src/crm-server.ts

update_customer, send_email

Fix: Declare MCP tool annotations, then verify declared behavior matches actual behavior (annotation drift).

Medium Agent workload "infra-automation" has no declared owner AG-009 · ownership

No CODEOWNERS entry and no attributable commit author. When this agent misbehaves at 2am, nobody knows who to page.

Workload: infra-automation

Fix: Assign an owning team in CODEOWNERS and register the agent in your inventory.

Medium Third-party MCP server "shopify" runs unpinned via npx AG-011 · supply-chain

`npx -y @thirdparty/shopify-mcp-server` pulls and executes an external package at runtime. The postmark-mcp incident (Sep 2025) showed a benign MCP server turning malicious in a point release.

Location: refund-agent / .mcp.json

npx -y @thirdparty/shopify-mcp-server

Fix: Pin exact versions, vendor the server, or route it through a vetted internal registry.

Medium Third-party MCP server "hubspot-crm" runs unpinned via npx AG-013 · supply-chain

`npx -y hubspot-mcp` pulls and executes an external package at runtime. The postmark-mcp incident (Sep 2025) showed a benign MCP server turning malicious in a point release.

Location: refund-agent / .mcp.json

npx -y hubspot-mcp

Fix: Pin exact versions, vendor the server, or route it through a vetted internal registry.

Medium Agent workload "refund-agent" has no declared owner AG-017 · ownership

No CODEOWNERS entry and no attributable commit author. When this agent misbehaves at 2am, nobody knows who to page.

Workload: refund-agent

Fix: Assign an owning team in CODEOWNERS and register the agent in your inventory.

Medium Third-party MCP server "postgres" runs unpinned via uvx AG-018 · supply-chain

`uvx mcp-server-postgres` pulls and executes an external package at runtime. The postmark-mcp incident (Sep 2025) showed a benign MCP server turning malicious in a point release.

Location: support-copilot / claude_desktop_config.json

uvx mcp-server-postgres

Fix: Pin exact versions, vendor the server, or route it through a vetted internal registry.

Medium Third-party MCP server "gmail" runs unpinned via npx AG-020 · supply-chain

`npx -y @thirdparty/gmail-mcp-server` pulls and executes an external package at runtime. The postmark-mcp incident (Sep 2025) showed a benign MCP server turning malicious in a point release.

Location: support-copilot / claude_desktop_config.json

npx -y @thirdparty/gmail-mcp-server

Fix: Pin exact versions, vendor the server, or route it through a vetted internal registry.

Info CI pipeline in "infra-automation" runs Claude Code autonomously AG-010 · ci-agent

Workflow `.github/workflows/nightly-fix.yml` invokes Claude Code. CI agents run with repository credentials and no human in the loop — include them in your agent inventory.

Location: infra-automation / .github/workflows/nightly-fix.yml

Claude Code

Fix: Scope CI agent permissions to the minimum and log its actions like any production agent.

Agent inventory

Agent workloadFrameworksModelsMCP serversCredentialsOwner
infra-automation 0 1 unowned
refund-agent LangGraph, Anthropic SDK, FastMCP, LangChain claude-sonnet-4-5 (Anthropic) 3 4 unowned
support-copilot Anthropic SDK, MCP SDK, LangChain claude-sonnet-4-5 (Anthropic) 3 2 @demo-corp/support-platform (CODEOWNERS)