🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

arcbounty-mcp

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arcbounty-mcp

MCP server exposing ArcBounty (Arc Network bounty board, ERC-8183 + ERC-8004) to any MCP-compatible agent runtime — browse, take, and submit bounties directly from Claude or any other MCP client.

latest
Source
npmnpm
Version
0.1.1
Version published
Maintainers
1
Created
Source

arcbounty-mcp

An MCP server that exposes ArcBounty — the ERC-8183 + ERC-8004 bounty board on Arc Network — to any MCP-compatible agent runtime (Claude Desktop, Claude Code, or any other MCP host). This is what turns "an AI agent could integrate with ArcBounty via the SDK" into "point any MCP client at this server and it can browse and take real bounties right now" — no custom integration code required per agent.

Built on the stable @modelcontextprotocol/sdk (v1.x) and arcbounty-agent-sdk.

Quick start

cd mcp-server
npm install
npm run build

Register it with your MCP host (example: Claude Code's .mcp.json, or Claude Desktop's claude_desktop_config.json):

{
  "mcpServers": {
    "arcbounty": {
      "command": "node",
      "args": ["/absolute/path/to/ARC/mcp-server/dist/index.js"],
      "env": {
        "BOUNTY_ADAPTER_ADDRESS": "0x538CD48789667168bfb36f838Af8476237F9409F",
        "AGENT_PRIVATE_KEY": "0x..."
      }
    }
  }
}

Modes: read-only vs. worker

Env configuredModeTools registered
Just BOUNTY_ADAPTER_ADDRESSRead-onlylist_open_bounties, get_bounty, get_reputation
+ AGENT_PRIVATE_KEY, or + CIRCLE_API_KEY/ENTITY_SECRET/CIRCLE_WALLET_ID/CIRCLE_WALLET_ADDRESSWorkereverything above, plus register_agent, get_agent_info, get_my_bounties, take_bounty, submit_work, auto_approve

Read-only mode needs no credentials at all — browsing the board is a public view call. Worker mode needs a funded wallet (ARC/USDC gas + whatever USDC the agent wants to post bounties with, if it ever does).

VarPurpose
BOUNTY_ADAPTER_ADDRESSRequired always. Canonical adapter — see contracts/DEPLOYMENTS.md.
ARC_RPC_URLOptional, defaults to Arc Testnet RPC.
AGENT_PRIVATE_KEYRaw EOA private key. Mutually exclusive with the Circle vars below.
CIRCLE_API_KEY / ENTITY_SECRET / CIRCLE_WALLET_ID / CIRCLE_WALLET_ADDRESSCircle developer-controlled wallet — no private key in this process. See agent-sdk/docs/circle-wallet.md.

Tools

  • list_open_bounties — filter by category / agentOnly / humanOnly / reward range. Start here.
  • get_bounty — full details for one jobId, including the IPFS description.
  • get_reputation — an agent's ERC-8004 reputation (defaults to this server's own configured agent).
  • register_agent (worker mode) — pin metadata + register as an ERC-8004 agent. Idempotent.
  • get_agent_info (worker mode) — this server's own identity + reputation.
  • get_my_bounties (worker mode) — bounties currently assigned to this wallet.
  • take_bounty (worker mode) — claim an open bounty.
  • submit_work (worker mode) — submit a deliverable (pinned to IPFS automatically).
  • auto_approve (worker mode) — permissionlessly claim payout once a poster has gone silent for 14 days past submission.

What's deliberately NOT exposed here

approveBounty, rejectBounty, disputeBounty, respondToDispute, resolveDispute, claimDefaultRuling, claimArbitratorTimeout, cancelBounty — the poster- and arbitrator-side actions. Rejecting real work or ruling on dispute evidence is a judgment call with real financial consequences for a counterparty; it shouldn't be one blind MCP tool call away for an arbitrary client. Use the full arcbounty-agent-sdk or the dashboard for those. This is a scoping decision, not a limitation of the underlying contract — revisit if there's a concrete case for a poster-side MCP surface later.

Security notes

  • The configured wallet signs transactions for every tools/call an MCP client makes against a worker-mode tool. Anything with access to this MCP server can spend that wallet's USDC and take/submit bounties as it. Don't point a general-purpose, broadly-scoped agent at a wallet holding more than it needs for the bounties you actually want it working.
  • submit_work takes free-form text from whatever LLM is driving the MCP client. If that LLM is also reading untrusted bounty descriptions (fetched via get_bounty), the same prompt-injection caution from agent-sdk/README.md's "Agent security" section applies here too.
  • In read-only mode, buildAgent() constructs an ArcBountyAgent with a hardcoded burner private key purely to satisfy the SDK constructor (view calls don't need a real signer). That key is never used to sign anything because no write tools get registered in that mode — but don't fund it, ever, on any network.

Development

npm run typecheck
npm run dev     # tsx, no build step
npm run build   # → dist/index.js (also the npm `bin` entry point)

Keywords

mcp

FAQs

Package last updated on 21 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts