Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>Flyingduck Security AssistantNew to Visual Studio Code? Get it now.
Flyingduck Security Assistant

Flyingduck Security Assistant

Flyingduck

|
1 install
| (0) | Free
Flags vulnerable Python dependencies and hardcoded secrets as you (or your coding agent) write code. Includes an MCP server for coding agents.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Flyingduck Security Assistant

A VS Code extension and bundled MCP server that flag vulnerable Python dependencies and hardcoded secrets while you, or your coding agent, write code.

  • Plugin: watches requirements.txt, pyproject.toml, uv.lock, poetry.lock, Pipfile.lock and requirements.lock, and scans the files you are going to commit for secrets. Findings appear as diagnostics, hovers and a "Flyingduck Security" panel in the Explorer. It catches changes made by hand, by agents and by CLI tools.
  • MCP server: exposes two advisory tools, check_dependencies and check_secrets, so agents can check before they write.

Privacy: source code never leaves the machine. Only {name, version, ecosystem} is sent for CVE lookups. Secret scanning is fully local.

Getting started

  1. Install the extension. Secret detection works immediately, with no account needed.
  2. A one-time prompt (and the Flyingduck: Sign in status bar item) asks you to sign in. Paste your API token from the Flyingduck portal. It is verified with Flyingduck before it is saved.
  3. You're done:
    • CVE checks start, and the workspace is rescanned.
    • VS Code's agent mode gets the Flyingduck MCP tools automatically.
    • Other agents on this machine can share the same sign-in (see below).

The token is stored in VS Code's secret storage and mirrored to ~/.flyingduck/credentials.json (readable only by you). The MCP server reads it from there, so no MCP config ever contains a token. To rotate or sign out, click the status bar item (Update token / Sign out); the change applies everywhere.

When a token expires or is revoked:

  • The first rejected check (HTTP 401/403) turns the status bar item into Flyingduck: Token expired and shows one Update Token notification.
  • Packages that couldn't be checked are marked "not checked". Agents get the same explanation from the MCP tools, so they can tell you.
  • Updating the token re-verifies it, rescans the workspace and restarts the MCP server.
  • If the token carries an expiry date (JWT exp), you're warned about 7 days ahead. The gateway defaults to production, so nothing needs configuring.

Signing out removes the token from this machine (secret storage and ~/.flyingduck/credentials.json) and restarts the MCP server, so agents lose access at the same time:

  • Packages already checked keep their cached results. New or changed packages are marked "not checked".
  • Secret scanning keeps working; it is local. Only pattern-set updates stop.
  • Telemetry stops.
  • The token itself stays valid on the server until it expires or an admin revokes it.

The Flyingduck Security panel

Findings are grouped by category, each with a count and per-severity breakdown:

  • SCA
    • Direct: what your manifest (requirements.txt / pyproject.toml) declares, at the declared version. If the lockfile is out of sync and resolves a different version, that version keeps its warning on the lockfile line but is not listed here a second time.
    • Transitive: packages only in the lockfile.
    • Unpinned: declarations without an exact version.
  • Secrets: one entry per secret found, with vendor, pattern and line. The matched value is never shown.

The Actions menu (▶ in the panel's title bar) lists everything you can trigger by hand:

Action What it does
Scan Workspace for Secrets Scans every file you would commit (see below). Also available on the Secrets row.
Copy MCP Server Config (other agents) See "MCP server for other coding agents".
Sign In / Update Token / Sign Out Shown according to whether you are signed in.

When files are scanned for secrets

Trigger Files scanned
Workspace opens Every file open in an editor tab, including restored tabs VS Code has not loaded yet
You open a file That file
A file is saved, or changes on disk (agent, CLI, git) That file; only the changed lines are matched
Actions → Scan Workspace for Secrets Every file in the workspace, every line, including files nobody opened or edited this session. Cancel stops before the next file; results found so far are kept.

Always skipped:

  • Gitignored files. Findings are about what will be committed. Every .gitignore from the repository root down applies, plus .git/info/exclude, even when the workspace is a subfolder of the repo. Your global git excludes file (core.excludesFile) is not read.
  • Environment, dependency and build folders (.venv, node_modules, ...), and binary files.
  • Files over 2 MB.

MCP server for other coding agents

Run Flyingduck: Copy MCP Server Config (other agents) and paste the result into the agent's MCP settings:

{
  "mcpServers": {
    "flyingduck-security": {
      "command": "node",
      "args": ["C:/Users/<you>/.flyingduck/bin/mcp-server.js"]
    }
  }
}

The command fills in your absolute path; MCP clients don't expand ~. ~/.flyingduck/bin/mcp-server.js is a stable launcher that the extension updates on every activation, so agent configs keep working across extension updates. Requires Node.js 18+ on PATH.

Optional env var Use
FLYINGDUCK_TOKEN CI/headless: a token without signing in (overrides the credentials file)
FLYINGDUCK_API_BASE_URL Testing against a non-production gateway
FLYINGDUCK_HOME / FLYINGDUCK_CACHE_DIR Relocate ~/.flyingduck / its cache

Current limitations

  • Python (PyPI) dependencies only.
  • Secret detection uses 20 built-in vendor-prefixed patterns (AWS, GitHub, Slack, Stripe, OpenAI, private keys and more).
  • Sign-in is by pasting an API token from the Flyingduck portal.

Support

Questions or problems: support@flyingduck.io

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft