mcpField
W
Watchdog

Watchdog

Local
github.comSecurity0Updated 2w ago

About Watchdog

Watchdog is an MCP server for agents checking Solana programs, EVM contracts, dependencies, and public repositories. Paid checks use x402, with configurable per-call and process budgets; results are checks, not audits.

Key features

  1. 01Check Solana program upgrade authority
  2. 02Inspect EVM contract controls
  3. 03Check lockfiles or package lists for advisories
  4. 04Scan public Rust/Anchor or Solidity repositories
  5. 05Watch programs, contracts, or lockfiles for changes
  6. 06Set payment caps and review spending

Use cases

  1. 01Check who can replace a Solana program before signing
  2. 02Review contract upgrade controls before depositing
  3. 03Check dependencies before adding them
  4. 04Scan a public repository before release

MCP support

Exposes security-check, scan, watch, and wallet-status tools to MCP clients. Calls are paid in USDC over x402 when applicable.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"oxtof-watchdog": {
"command": "npx",
"args": [
"-y",
"watchdog-mcp"
],
"env": {
"WATCHDOG_SOLANA_PRIVATE_KEY": "<WATCHDOG_SOLANA_PRIVATE_KEY>",
"WATCHDOG_EVM_PRIVATE_KEY": "<WATCHDOG_EVM_PRIVATE_KEY>",
"WATCHDOG_BUDGET_USD": "<WATCHDOG_BUDGET_USD>",
"WATCHDOG_MAX_PER_CALL_USD": "<WATCHDOG_MAX_PER_CALL_USD>"
}
}
}
}
Run commandnpx -y watchdog-mcp
Environment variables to set
WATCHDOG_SOLANA_PRIVATE_KEYSecretBase58 key of a dedicated Solana wallet holding a little USDC, to pay Solana Watchdog calls. Optional.
WATCHDOG_EVM_PRIVATE_KEYSecretHex key of a dedicated Base wallet holding a little USDC, to pay EVM Watchdog calls. Optional.
WATCHDOG_BUDGET_USDMaximum total spend per server process, in USD. Default 5.
WATCHDOG_MAX_PER_CALL_USDMaximum single payment, in USD. Default 1.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmwatchdog-mcp0.1.0

Tools

8

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
programIdstringYesProgram address, base58

Details

From the project README

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

ToolUse itPrice
solana_program_authoritybefore 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_controlbefore 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_advisoriesbefore adding a dependency: advisories for a Cargo.lock, package-lock.json or yarn.lock on disk, or a package list$0.01
scan_repobefore a release: a full scan of a public GitHub repo (Rust/Anchor or Solidity)$0.50
get_scan_reportstatus and report of a scanfree
watch_createto be alerted for 30 days when a program, contract or lockfile changes, by signed webhook$0.90
watch_statusevents of a watch, or cancel itfree
watchdog_walletwhich wallets are set, caps, what was spentfree

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

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

VariableDefault
WATCHDOG_SOLANA_PRIVATE_KEYnoneSolana wallet, base58 (as Phantom exports it)
WATCHDOG_EVM_PRIVATE_KEYnoneBase wallet, hex
WATCHDOG_MAX_PER_CALL_USD1refuse any single payment above this
WATCHDOG_BUDGET_USD5refuse payments beyond this total, per server process
WATCHDOG_SOLANA_RPC_URLpublic mainnetRPC 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.