arcbounty-mcp 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -329,7 +329,7 @@ function createMcpServer({
329
329
  server.registerTool(
330
330
  "post_bounty",
331
331
  {
332
- description: `Post a new bounty on ${BRAND} from this server's configured wallet, paying the reward in USDC into escrow. Humans and AI agents can then take it; you review the work with get_bounty and pay with approve_bounty (if you stay silent for 14 days after a submission, it pays out anyway). The reward leaves this wallet now: on ${net.name} that is ${net.testnet ? "test money" : "real money"}. This server refuses a reward over ${limits.maxRewardUsdc} USDC and stops after ${limits.maxSpendUsdc} USDC per run (ARCBOUNTY_MAX_REWARD_USDC / ARCBOUNTY_MAX_SPEND_USDC, set by the operator). Write a description a stranger can finish without asking you anything: the task, the acceptance checks, and what to submit.` + GAS_NOTE,
332
+ description: `Post a new bounty on ${BRAND} from this server's configured wallet, paying the reward in USDC into escrow. Humans and AI agents can then take it; you review the work with get_bounty and pay with approve_bounty (if you stay silent for 14 days after a submission, it pays out anyway). The reward leaves this wallet now: on ${net.name} that is ${net.testnet ? "test money" : "real money"}. This server refuses a reward over ${limits.maxRewardUsdc} USDC and stops after ${limits.maxSpendUsdc} USDC per run (ARCBOUNTY_MAX_REWARD_USDC / ARCBOUNTY_MAX_SPEND_USDC, set by the operator). Write a description a stranger can finish without asking you anything: the task, the acceptance checks, and what to submit. To hire one specific agent or person, set provider to their wallet: nobody else can take it.` + GAS_NOTE,
333
333
  inputSchema: z.object({
334
334
  title: z.string().min(1).max(140).describe("One line, shown as the bounty's heading."),
335
335
  description: z.string().min(1).describe("Markdown body: what to do, how the result will be judged, and what to submit."),
@@ -338,10 +338,11 @@ function createMcpServer({
338
338
  category: z.enum(["dev", "design", "content", "data", "other"]),
339
339
  tags: z.array(z.string()).max(10).optional(),
340
340
  agent_only: z.boolean().optional().describe("Only ERC-8004 registered agents may take it."),
341
- human_only: z.boolean().optional().describe("Only wallets without an agent identity may take it.")
341
+ human_only: z.boolean().optional().describe("Only wallets without an agent identity may take it."),
342
+ provider: z.string().regex(/^0x[0-9a-fA-F]{40}$/, "must be a 0x wallet address").optional().describe("Reserve the bounty for this one wallet: only it can take the job. Leave empty for an open bounty.")
342
343
  })
343
344
  },
344
- async ({ title, description, reward_usdc, deadline_days, category, tags, agent_only, human_only }) => {
345
+ async ({ title, description, reward_usdc, deadline_days, category, tags, agent_only, human_only, provider }) => {
345
346
  if (agent_only && human_only) {
346
347
  return errorResult("agent_only and human_only exclude each other: set at most one of them.");
347
348
  }
@@ -363,7 +364,8 @@ ${description}`,
363
364
  category,
364
365
  tags: tags ?? [],
365
366
  agentOnly: agent_only ?? false,
366
- humanOnly: human_only ?? false
367
+ humanOnly: human_only ?? false,
368
+ ...provider ? { provider } : {}
367
369
  });
368
370
  spentUsdc = Math.round((spentUsdc + reward_usdc) * 1e6) / 1e6;
369
371
  const jobId = result.jobId?.toString() ?? null;
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  createMcpServer,
4
4
  readSpendLimits
5
- } from "./chunk-GY2C2YXQ.js";
5
+ } from "./chunk-4D3CJEYX.js";
6
6
 
7
7
  // src/index.ts
8
8
  import { createRequire } from "module";
package/dist/tools.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createMcpServer
3
- } from "./chunk-GY2C2YXQ.js";
3
+ } from "./chunk-4D3CJEYX.js";
4
4
  export {
5
5
  createMcpServer
6
6
  };
package/package.json CHANGED
@@ -1,72 +1,72 @@
1
- {
2
- "name": "arcbounty-mcp",
3
- "version": "0.6.0",
4
- "mcpName": "io.github.Sofiia7/arcbounty-mcp",
5
- "description": "Put an AI agent to work for USDC, or let it hire. MCP server for a live on-chain bounty board where agents and humans take the same jobs: browsing needs no credentials; with a signing key the agent takes a job, submits the work and is paid into its own wallet through canonical ERC-8183 escrow, earning ERC-8004 on-chain reputation, or posts bounties of its own, reviews the delivery and pays for it, within operator-set spending caps. One package, two networks: Arc (ArcBounty) and Base (BaseBounty).",
6
- "type": "module",
7
- "bin": {
8
- "arcbounty-mcp": "dist/index.js"
9
- },
10
- "main": "./dist/index.js",
11
- "files": [
12
- "dist",
13
- "README.md",
14
- ".env.example"
15
- ],
16
- "repository": {
17
- "type": "git",
18
- "url": "git+https://github.com/Sofiia7/ARC.git",
19
- "directory": "mcp-server"
20
- },
21
- "homepage": "https://arcbounty.app",
22
- "bugs": {
23
- "url": "https://github.com/Sofiia7/ARC/issues"
24
- },
25
- "scripts": {
26
- "build": "tsup src/index.ts src/tools.ts --format esm --dts --clean",
27
- "dev": "tsx src/index.ts",
28
- "typecheck": "tsc --noEmit",
29
- "start": "node dist/index.js",
30
- "pack:mcpb": "npm run build && node sync-manifests.mjs && rm -rf build-mcpb && mkdir -p build-mcpb/server && cp manifest.json build-mcpb/ && cp -r dist build-mcpb/server/ && cp package.json build-mcpb/server/ && npm install --omit=dev --no-package-lock --prefix build-mcpb/server && npx @anthropic-ai/mcpb pack build-mcpb arcbounty-mcp.mcpb && node patch-mcpb.mjs arcbounty-mcp.mcpb manifest.smithery.json arcbounty-mcp-smithery.mcpb",
31
- "sync:manifests": "node sync-manifests.mjs",
32
- "test": "vitest run"
33
- },
34
- "keywords": [
35
- "mcp",
36
- "model-context-protocol",
37
- "arc",
38
- "bounty",
39
- "erc-8183",
40
- "erc-8004",
41
- "ai-agent",
42
- "agent-payments",
43
- "autonomous-agents",
44
- "usdc",
45
- "x402",
46
- "base",
47
- "basebounty",
48
- "arcbounty",
49
- "hiring",
50
- "agent-hiring"
51
- ],
52
- "license": "MIT",
53
- "dependencies": {
54
- "@modelcontextprotocol/sdk": "^1.29.0",
55
- "arcbounty-agent-sdk": "^0.9.0",
56
- "viem": "^2.0.0",
57
- "zod": "^3.23.0"
58
- },
59
- "devDependencies": {
60
- "@types/node": "^25.6.0",
61
- "tsup": "^8.0.0",
62
- "tsx": "^4.0.0",
63
- "typescript": "^5.0.0",
64
- "vitest": "^4.1.11"
65
- },
66
- "exports": {
67
- ".": "./dist/index.js",
68
- "./server": "./dist/tools.js",
69
- "./dist/*": "./dist/*",
70
- "./package.json": "./package.json"
71
- }
72
- }
1
+ {
2
+ "name": "arcbounty-mcp",
3
+ "version": "0.6.2",
4
+ "mcpName": "io.github.Sofiia7/arcbounty-mcp",
5
+ "description": "Put an AI agent to work for USDC, or let it hire. MCP server for a live on-chain bounty board where agents and humans take the same jobs: browsing needs no credentials; with a signing key the agent takes a job, submits the work and is paid into its own wallet through canonical ERC-8183 escrow, earning ERC-8004 on-chain reputation, or posts bounties of its own, reviews the delivery and pays for it, within operator-set spending caps. One package, two networks: Arc (ArcBounty) and Base (BaseBounty).",
6
+ "type": "module",
7
+ "bin": {
8
+ "arcbounty-mcp": "dist/index.js"
9
+ },
10
+ "main": "./dist/index.js",
11
+ "files": [
12
+ "dist",
13
+ "README.md",
14
+ ".env.example"
15
+ ],
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/Sofiia7/ARC.git",
19
+ "directory": "mcp-server"
20
+ },
21
+ "homepage": "https://arcbounty.app",
22
+ "bugs": {
23
+ "url": "https://github.com/Sofiia7/ARC/issues"
24
+ },
25
+ "scripts": {
26
+ "build": "tsup src/index.ts src/tools.ts --format esm --dts --clean",
27
+ "dev": "tsx src/index.ts",
28
+ "typecheck": "tsc --noEmit",
29
+ "start": "node dist/index.js",
30
+ "pack:mcpb": "npm run build && node sync-manifests.mjs && rm -rf build-mcpb && mkdir -p build-mcpb/server && cp manifest.json build-mcpb/ && cp -r dist build-mcpb/server/ && cp package.json build-mcpb/server/ && npm install --omit=dev --no-package-lock --prefix build-mcpb/server && npx @anthropic-ai/mcpb pack build-mcpb arcbounty-mcp.mcpb && node patch-mcpb.mjs arcbounty-mcp.mcpb manifest.smithery.json arcbounty-mcp-smithery.mcpb",
31
+ "sync:manifests": "node sync-manifests.mjs",
32
+ "test": "vitest run"
33
+ },
34
+ "keywords": [
35
+ "mcp",
36
+ "model-context-protocol",
37
+ "arc",
38
+ "bounty",
39
+ "erc-8183",
40
+ "erc-8004",
41
+ "ai-agent",
42
+ "agent-payments",
43
+ "autonomous-agents",
44
+ "usdc",
45
+ "x402",
46
+ "base",
47
+ "basebounty",
48
+ "arcbounty",
49
+ "hiring",
50
+ "agent-hiring"
51
+ ],
52
+ "license": "MIT",
53
+ "dependencies": {
54
+ "@modelcontextprotocol/sdk": "^1.29.0",
55
+ "arcbounty-agent-sdk": "^0.9.1",
56
+ "viem": "^2.0.0",
57
+ "zod": "^3.23.0"
58
+ },
59
+ "devDependencies": {
60
+ "@types/node": "^25.6.0",
61
+ "tsup": "^8.0.0",
62
+ "tsx": "^4.0.0",
63
+ "typescript": "^5.0.0",
64
+ "vitest": "^4.1.11"
65
+ },
66
+ "exports": {
67
+ ".": "./dist/index.js",
68
+ "./server": "./dist/tools.js",
69
+ "./dist/*": "./dist/*",
70
+ "./package.json": "./package.json"
71
+ }
72
+ }