Skip to main content
Glama

watchdog-mcp

An MCP server for Solana Watchdog and EVM Watchdog. It gives an agent the security checks it needs at the moment it decides: before signing for a program, before approving a contract, before adding a dependency. Each paid call costs cents in USDC and is paid automatically over x402, from a wallet you provide, within limits you set.

Results are checks, not audits.

Tools

Tool

Use it

Price

solana_program_authority

before signing for a Solana program: who can replace its code (single key, Squads multisig with threshold and time lock, DAO, immutable), last deploy, verified build, security.txt

$0.05 (Solana)

evm_contract_control

before approving or depositing on Base / Robinhood Chain: proxy kind, live implementation, who controls upgrades and ownership (key, Safe, timelock), Sourcify verification

$0.05 (Base)

dependency_advisories

before adding a dependency: advisories for a Cargo.lock, package-lock.json or yarn.lock on disk, or a package list

$0.01

scan_repo

before a release: a full scan of a public GitHub repo (Rust/Anchor or Solidity)

$0.50

get_scan_report

status and report of a scan

free

watch_create

to be alerted for 30 days when a program, contract or lockfile changes, by signed webhook

$0.90

watch_status

events of a watch, or cancel it

free

watchdog_wallet

which wallets are set, caps, what was spent

free

An address that holds no program or contract is not charged. A dependency check is settled only once its answer exists.

Related MCP server: agent-toolkit-mcp

Install

Claude Code:

claude mcp add watchdog \
  -e WATCHDOG_SOLANA_PRIVATE_KEY=<base58 key of a Solana wallet holding a little USDC> \
  -e WATCHDOG_EVM_PRIVATE_KEY=<hex key of a Base wallet holding a little USDC> \
  -- npx -y watchdog-mcp

Claude Desktop, Cursor and other clients (mcpServers JSON):

{
  "mcpServers": {
    "watchdog": {
      "command": "npx",
      "args": ["-y", "watchdog-mcp"],
      "env": {
        "WATCHDOG_SOLANA_PRIVATE_KEY": "…",
        "WATCHDOG_EVM_PRIVATE_KEY": "…",
        "WATCHDOG_BUDGET_USD": "5"
      }
    }
  }
}

From a clone of this repository, scripts/add-to-claude-code.sh does the Claude Code step for you: it reads the Solana key from the clipboard, checks it without printing it, and registers the server.

Both keys are optional. Without a key for a chain, its tools return the price and how to pay instead of an answer.

Use a dedicated wallet that holds only what you are willing to spend on checks. No SOL or ETH is needed: the x402 facilitator pays the network fee.

Configuration

Variable

Default

WATCHDOG_SOLANA_PRIVATE_KEY

none

Solana wallet, base58 (as Phantom exports it)

WATCHDOG_EVM_PRIVATE_KEY

none

Base wallet, hex

WATCHDOG_MAX_PER_CALL_USD

1

refuse any single payment above this

WATCHDOG_BUDGET_USD

5

refuse payments beyond this total, per server process

WATCHDOG_SOLANA_RPC_URL

public mainnet

RPC used to build Solana payments

What protects your wallet

Every payment is screened before anything is signed:

  • it must go to the Watchdog merchant wallet of that service, in USDC, on the expected network. A server that asked to be paid elsewhere would be refused;

  • it must fit under the per-call cap and the remaining session budget;

  • scan and watch access tokens are only ever sent back to the Watchdog that issued them.

Keys never appear in tool output or errors, including when a key is malformed or of the wrong chain.

License

MIT

Available Tools

8 tools
dependency_advisoriesKnown advisories for pinned dependenciesA

Use before adding or upgrading a dependency, or to triage a lockfile. Give lockfile_path (a Cargo.lock, package-lock.json or yarn.lock on disk, read locally) or the lockfile text, or a list of up to 100 packages. Rust crates go to Solana Watchdog (RustSec/OSV), npm packages to EVM Watchdog (GitHub/OSV). Only registry packages are checked; workspace and git dependencies are skipped. Costs $0.01 USDC per call (Solana for crates, Base for npm). Settled only if the answer exists.

Inputs: lockfile, packages, ecosystem, lockfile_path.

evm_contract_controlWho can change this EVM contract?A

Use before approving a token, depositing into, or signing for a contract on Base or Robinhood Chain. Detects the proxy kind (EIP-1967 transparent, UUPS, beacon, legacy zeppelinos, EIP-1167 clone, diamond, EIP-7702), the live implementation, and follows the upgrade controller and owner to the end: one key, a Safe (threshold of owners), a timelock (delay). Sourcify verification for the address and the implementation. Costs $0.05 USDC on Base, paid over x402 from WATCHDOG_EVM_PRIVATE_KEY. An address with no code is not charged.

Inputs: address (required), chain.

get_scan_reportStatus and report of a paid scanA
Read-only

Free. Returns the status of a scan started with scan_repo and, once done, its JSON report.

Inputs: jobId (required), ecosystem (required), accessToken (required).

scan_repoSecurity scan of a public GitHub repoA

Use before a release or an integration: scans a public GitHub repo for advisories on its exact pinned dependencies (split into what ships on-chain and what is tooling), build hygiene, and code leads for known bug classes with file:line. ecosystem 'solana' for Rust/Anchor programs, 'evm' for Solidity (Foundry/Hardhat). Costs $0.50 USDC (Solana or Base). Waits up to wait_seconds for the report; otherwise returns jobId and accessToken for get_scan_report. A scan, not an audit.

Inputs: repo (required), ecosystem (required), wait_seconds.

solana_program_authorityWho can change this Solana program?A

Use before signing a transaction for, or depositing into, a Solana mainnet program. Answers who can replace its code: immutable, a single key, a Squads v4 multisig (threshold, members and time lock read on-chain, the vault re-derived as proof), Squads v3 or SPL Governance; plus the last deploy date, OtterSec verified build, embedded security.txt and severity-ranked flags. Costs $0.05 USDC on Solana, paid over x402 from WATCHDOG_SOLANA_PRIVATE_KEY. An address that holds no program is not charged.

Inputs: programId (required).

watch_createGet alerted when a program, contract or lockfile changesA

Use to be told, for 30 days, when something you rely on changes: a Solana program (programId: authority, multisig rules, code upgrade, lost verification), an EVM contract (address + chain: new implementation, controller or owner, weaker Safe or timelock), or a lockfile (lockfile_path: any new advisory). Hourly checks; each change is POSTed to your https webhook, signed with x-watchdog-signature: sha256=HMAC(secret, body). Costs $0.90 USDC for the period (Solana for programs and Cargo.lock, Base for contracts and npm lockfiles). Returns watchId, secret and accessToken, each shown once.

Inputs: webhook (required), chain, address, programId, +1 more.

watchdog_walletPayment setup and spendA
Read-only

Free. Shows which payment wallets this server is configured with (addresses only), the per-call cap, the session budget, what was spent, and the price of each tool.

Inputs: no named parameters.

watch_statusEvents of a watchB
Destructive

Free. Lists what a watch has seen (also kept when the webhook was down), or cancels it with cancel: true.

Inputs: watchId (required), ecosystem (required), accessToken (required), cancel.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 8 tools

    Disambiguation4/5

    Most tools target distinct resources and actions, with clear chain-specific separation (Solana vs EVM). However, dependency_advisories and scan_repo both check dependency vulnerabilities and could be confused when an agent just needs a lockfile check, though descriptions clarify the difference.

    Naming Consistency3/5

    All names use snake_case, but verb styles are mixed: some are verb_noun (get_scan_report, scan_repo, watch_create), while others are noun phrases (solana_program_authority, evm_contract_control, dependency_advisories, watchdog_wallet). The set is readable but lacks a predictable pattern.

    Tool Count5/5

    8 tools is well-scoped for a paid blockchain security scanning and monitoring service. Each tool has a clear role, and the paired start/status tools (scan_repo/get_scan_report, watch_create/watch_status) earn their place.

    Completeness4/5

    Core CRUD-like lifecycle is covered for watches (create, status, cancel) and scans (start, retrieve report). Minor gaps exist: there is no way to cancel an in-progress scan or list past scans/jobs, but agents can work around these limitations.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      On-chain Solana token safety for trading agents — traces coordinated wallet funding, same-block Jito bundles, serial-rug deployers and live coordinated dumps into one Exit-Liquidity Risk verdict before a swap. Free tier, then $0.02 USDC/query via x402.
      1
      53 npm
      2
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Provides coding agents with 19 pay-per-call developer utilities, npm supply-chain security checks, and Base blockchain lookups, paid via USDC on Base using x402. No API key needed—payment acts as authentication.
      84 npm
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to perform pay-per-call security verification of wallets, tokens, contracts, dApps, agents, and more via a remote endpoint with no installation.
      2
      MIT