An MCP server that puts visible limits, a signed action log and a pause button around any trading agent.
It does not replace the agent or the wallet. It adds a portable policy and audit layer that works across agent frameworks, so the limits and the log look the same whichever agent is running.
| Time | Agent | Proposed action | Agent's stated reason | Verdict |
|---|---|---|---|---|
| 09:14 | alpha-swing | Swap 1.2 SOL to USDC on Jupiter | SOL funding turned negative, trimming ex | Approved |
| 09:31 | alpha-swing | Swap 3.0 SOL to JUP on Jupiter | Momentum signal crossed entry threshold | Blocked: per-trade cap 1.5 SOL |
| 10:02 | research-scout | Swap 0.2 SOL to BONK on Raydium | Testing route quality on a thin pool | Blocked: Raydium not on venue allowlist |
| 10:20 | alpha-swing | Swap 0.8 SOL to JTO on Orca | Rebalancing toward allowlist target weig | Approved |
| 10:47 | dca-bot | Swap 25 USDC to SOL on Jupiter | Scheduled daily buy, week 3 of 8 | Approved |
| 11:05 | alpha-swing | Swap 0.5 SOL to USDC at 120 bps slippage | Wants to exit fast before a token unlock | Blocked: slippage ceiling 50 bps |
The parts that do the work.
Built for builders shipping trading or research agents, funds and DAOs testing agent delegation, and individual users who run an agent on their own wallet.
Human-readable limits file with spend caps per day and per trade, asset allowlist, venue allowlist and slippage ceiling
PlannedSigned, append-only action log that records the agent's reason next to each approved or blocked action
PlannedOne-click pause from a web page or Telegram that stops all signing requests immediately
PlannedPublic read-only log link so an owner can show a team or client what the agent did
PlannedMCP server that wraps an existing agent wallet and checks each proposed transaction against a limits file.
Point your agent's MCP client at Harness instead of the wallet. Every proposed transaction is simulated and checked against the limits file before a signature is ever requested from Phantom, Solflare, Backpack or a keypair.
PlannedMCP client config
{
"mcpServers": {
"harness": {
"command": "npx",
"args": ["harness-mcp", "--limits", "./limits.yaml"],
"env": {
"HARNESS_WALLET": "7xKpV3mRb2YtQ8nLd5JfWc4HsAeUo1Xz9q9Vd",
"HARNESS_RPC": "https://api.mainnet-beta.solana.com"
}
}
}
}Human-readable limits file with spend caps per day and per trade, asset allowlist, venue allowlist and slippage ceiling.
One plain file defines spend caps per day and per trade, which assets and venues are allowed, and the slippage ceiling. It is versioned, so every log entry points at the exact rules that applied.
Plannedlimits.yaml (v4)
agent: alpha-swing limits: per_trade: 1.5 SOL per_day: 6 SOL max_slippage_bps: 50 assets: [SOL, USDC, JUP, JTO] venues: [jupiter, orca] on_violation: block_and_log require_reason: true
Signed, append-only action log that records the agent's reason next to each approved or blocked action.
Each approved or blocked action is written with the agent's stated reason, the rule that decided it, and an ed25519 signature chained to the previous entry. Edits or deletions break the chain visibly.
PlannedLatest chained entries
| # | Verdict | Rule hit | Signature | Prev |
|---|---|---|---|---|
| 212 | Approved | all rules passed | 5Kd9...tQ2w | 5Hs1...n7Ac |
| 213 | Blocked | per_trade 1.5 SOL | 3Vme...Lp4x | 5Kd9...tQ2w |
| 214 | Blocked | venue allowlist | 2aRf...b8Yu | 3Vme...Lp4x |
| 215 | Approved | all rules passed | 4Tzc...e1Mj | 2aRf...b8Yu |
| 216 | Approved | all rules passed | 6Nqd...w5Hk | 4Tzc...e1Mj |
One-click pause from a web page or Telegram that stops all signing requests immediately.
Pause from the web page or from Telegram. Harness rejects every pending and future signing request until you resume, and logs who paused and why.
PlannedPause agents
- alpha-swing paused, 2 pending requests rejectedPaused
- Entry 217 signed: paused by owner via TelegramLogged
Public read-only log link so an owner can show a team or client what the agent did.
Create a read-only link to the log. Viewers see actions, reasons, verdicts and Solscan links for approved transactions, never keys or limits you mark private.
PlannedRead-only links
- Northbeam DAO treasury reviewalpha-swing, last 7 days, 3 viewsActive
- Client report for Lena V.dca-bot, full history, 1 viewActive
- Hackathon judgesresearch-scout, expired 2 days agoExpired
It does not replace the agent or the wallet. It adds a portable policy and audit layer that works across agent frameworks, so the limits and the log look the same whichever agent is running.
3 steps from start to first result.
Open by default.
Every screen reads from the same model. Live parts read public onchain data; nothing ever asks your wallet to sign.
Read the docs{
"product": "Harness",
"network": "solana",
"features": [
{
"name": "MCP server that wraps an existing agent wallet a",
"status": "planned"
},
{
"name": "Human-readable limits file with spend caps per d",
"status": "planned"
},
{
"name": "Signed, append-only action log that records the ",
"status": "planned"
},
{
"name": "One-click pause from a web page or Telegram that",
"status": "planned"
}
]
}What works today.
Live features work today. Planned ones are next on the roadmap, in this order.
Questions.
Short answers. The docs have the rest.
What is Harness?
An MCP server that puts visible limits, a signed action log and a pause button around any trading agent. It does not replace the agent or the wallet. It adds a portable policy and audit layer that works across agent frameworks, so the limits and the log look the same whichever agent is running.
What works today?
Harness is in development. Every feature is on the status list with what ships next, and the app opens in a sample workspace so you can see how it will work.
Do I need a wallet?
No. You can explore without one. Connecting a Solana wallet only shares your public address so Harness can read your balances; it never asks you to sign a transaction.
Who is it for?
Builders shipping trading or research agents, funds and DAOs testing agent delegation, and individual users who run an agent on their own wallet.
MCP server that wraps an existing agent wallet and checks each proposed transaction against a limits file.
An MCP server that puts visible limits, a signed action log and a pause button around any trading agent.