Watchdog
Who can change a Solana program or EVM contract, dependency advisories, scans. Paid per call (x402).
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
watchdog-mcpclaude mcp add watchdog -e 'WATCHDOG_SOLANA_PRIVATE_KEY=<your watchdog_solana_private_key>' -e 'WATCHDOG_EVM_PRIVATE_KEY=<your watchdog_evm_private_key>' -e 'WATCHDOG_BUDGET_USD=5' -e 'WATCHDOG_MAX_PER_CALL_USD=1' -- npx -y watchdog-mcp@0.1.0
{
"mcpServers": {
"watchdog": {
"command": "npx",
"args": [
"-y",
"watchdog-mcp@0.1.0"
],
"env": {
"WATCHDOG_SOLANA_PRIVATE_KEY": "<your watchdog_solana_private_key>",
"WATCHDOG_EVM_PRIVATE_KEY": "<your watchdog_evm_private_key>",
"WATCHDOG_BUDGET_USD": "5",
"WATCHDOG_MAX_PER_CALL_USD": "1"
}
}
}
}
Environment variables
WATCHDOG_SOLANA_PRIVATE_KEYsecret Base58 key of a dedicated Solana wallet holding a little USDC, to pay Solana Watchdog calls. Optional.WATCHDOG_EVM_PRIVATE_KEYsecret Hex 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.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
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.
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
Frequently asked questions
What is Watchdog?
Who can change a Solana program or EVM contract, dependency advisories, scans. Paid per call (x402).
How do I install Watchdog?
It runs on your machine. In Claude Code: claude mcp add watchdog -e 'WATCHDOG_SOLANA_PRIVATE_KEY=<your watchdog_solana_private_key>' -e 'WATCHDOG_EVM_PRIVATE_KEY=<your watchdog_evm_private_key>' -e 'WATCHDOG_BUDGET_USD=5' -e 'WATCHDOG_MAX_PER_CALL_USD=1' -- npx -y watchdog-mcp@0.1.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Watchdog need an API key?
Yes. It expects WATCHDOG_SOLANA_PRIVATE_KEY, WATCHDOG_EVM_PRIVATE_KEY, which you set in its configuration.
Is Watchdog open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Watchdog?
It is published by OxToF. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.