@humanops/mcp-server 0.2.0 → 0.2.1

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.
Files changed (3) hide show
  1. package/README.md +146 -0
  2. package/dist/index.js +1 -1
  3. package/package.json +3 -3
package/README.md ADDED
@@ -0,0 +1,146 @@
1
+ # @humanops/mcp-server
2
+
3
+ MCP server for AI agents to dispatch real-world tasks to verified human operators.
4
+
5
+ HumanOps bridges the gap between AI capabilities and physical-world actions. When your agent needs something done in the real world — verifying a business address, filling out a form, solving a CAPTCHA, procuring an API key — it dispatches a task to a verified human operator through this MCP server.
6
+
7
+ ## Installation
8
+
9
+ ```json
10
+ {
11
+ "mcpServers": {
12
+ "humanops": {
13
+ "command": "npx",
14
+ "args": ["@humanops/mcp-server"],
15
+ "env": {
16
+ "HUMANOPS_API_KEY": "your-api-key"
17
+ }
18
+ }
19
+ }
20
+ }
21
+ ```
22
+
23
+ ## Environment Variables
24
+
25
+ | Variable | Required | Description |
26
+ |----------|----------|-------------|
27
+ | `HUMANOPS_API_KEY` | Yes | Your HumanOps API key |
28
+ | `HUMANOPS_API_URL` | No | API base URL (default: `https://api.humanops.io`) |
29
+ | `HUMANOPS_SANDBOX` | No | Set to `true` for sandbox mode |
30
+
31
+ ## Available Tools
32
+
33
+ ### Physical Tasks
34
+
35
+ | Tool | Description |
36
+ |------|-------------|
37
+ | `search_operators` | Find available operators near a location |
38
+ | `post_task` | Create a physical task (verification, photo, delivery, inspection) |
39
+
40
+ ### Digital Tasks (Tier 1)
41
+
42
+ | Tool | Description |
43
+ |------|-------------|
44
+ | `dispatch_digital_task` | Create a remote digital task |
45
+ | `list_digital_categories` | List available categories with pricing |
46
+
47
+ Categories: `CAPTCHA_SOLVING`, `FORM_FILLING`, `BROWSER_INTERACTION`, `CONTENT_REVIEW`, `DATA_VALIDATION`
48
+
49
+ ### Credential Tasks (Tier 2, E2EE)
50
+
51
+ | Tool | Description |
52
+ |------|-------------|
53
+ | `dispatch_credential_task` | Create an encrypted credential delivery task |
54
+ | `retrieve_credential` | Decrypt and retrieve delivered credentials |
55
+
56
+ Categories: `ACCOUNT_CREATION`, `API_KEY_PROCUREMENT`, `PHONE_VERIFICATION`, `SUBSCRIPTION_SETUP`
57
+
58
+ Credential tasks use end-to-end encryption (P-256 ECDH + AES-256-GCM). The server never sees plaintext credentials.
59
+
60
+ ### Task Management
61
+
62
+ | Tool | Description |
63
+ |------|-------------|
64
+ | `get_task_result` | Get task status, proof, and verification result |
65
+ | `check_verification_status` | Check AI Guardian verification status |
66
+ | `cancel_task` | Cancel a pending/accepted task (refunds escrowed funds) |
67
+ | `list_tasks` | List your tasks with optional status filter |
68
+
69
+ ### Payments (USDC)
70
+
71
+ | Tool | Description |
72
+ |------|-------------|
73
+ | `get_deposit_address` | Get your USDC deposit address |
74
+ | `fund_account` | Verify a USDC deposit (Base, Polygon, Ethereum, Arbitrum) |
75
+ | `get_balance` | Check deposit and escrow balances |
76
+ | `request_payout` | Request operator payout |
77
+
78
+ ## Example Usage
79
+
80
+ ### Dispatch a physical verification task
81
+
82
+ ```
83
+ post_task({
84
+ title: "Verify business is open",
85
+ description: "Visit 123 Main St and confirm the restaurant is operating",
86
+ location: { lat: 40.7128, lng: -74.0060, address: "123 Main St, New York, NY" },
87
+ reward_usd: 15,
88
+ deadline: "2026-02-08T18:00:00Z",
89
+ proof_requirements: ["photo of storefront", "photo of business hours sign"],
90
+ task_type: "VERIFICATION"
91
+ })
92
+ ```
93
+
94
+ ### Dispatch a digital task
95
+
96
+ ```
97
+ dispatch_digital_task({
98
+ title: "Fill out vendor registration form",
99
+ description: "Complete the vendor registration at example.com/register",
100
+ digital_category: "FORM_FILLING",
101
+ reward_usd: 12,
102
+ deadline: "2026-02-08T12:00:00Z",
103
+ proof_requirements: ["screenshot of confirmation page"],
104
+ digital_instructions: "1. Go to example.com/register\n2. Fill in company details\n3. Submit and screenshot confirmation"
105
+ })
106
+ ```
107
+
108
+ ### Dispatch a credential task (E2EE)
109
+
110
+ ```
111
+ dispatch_credential_task({
112
+ title: "Create API account on DataService",
113
+ description: "Sign up for a free account and retrieve the API key",
114
+ digital_category: "API_KEY_PROCUREMENT",
115
+ reward_usd: 20,
116
+ deadline: "2026-02-08T12:00:00Z",
117
+ proof_requirements: ["screenshot of account dashboard"],
118
+ digital_instructions: "1. Go to dataservice.io/signup\n2. Create account\n3. Navigate to API keys\n4. Generate and submit the key"
119
+ })
120
+ // Returns { task_id, private_key } — save the private_key!
121
+
122
+ // Later, retrieve the credential:
123
+ retrieve_credential({ task_id: "...", private_key: "..." })
124
+ // Returns { credential: "sk-abc123..." }
125
+ ```
126
+
127
+ ## Task Lifecycle
128
+
129
+ 1. **PENDING** — Task created, funds escrowed
130
+ 2. **ACCEPTED** — Operator picked up the task
131
+ 3. **SUBMITTED** — Operator submitted proof
132
+ 4. **VERIFIED** / **REJECTED** — AI Guardian reviewed the proof
133
+ 5. **COMPLETED** — Task finished, operator paid
134
+
135
+ ## Security
136
+
137
+ - All inputs validated with Zod schemas
138
+ - SSRF protection on callback URLs
139
+ - API key sent only to `*.humanops.io` (configurable)
140
+ - Redirects blocked to prevent key exfiltration
141
+ - Credential tasks use client-side E2EE (server never sees plaintext)
142
+ - Single-read credential retrieval (cleared after first read)
143
+
144
+ ## License
145
+
146
+ MIT
package/dist/index.js CHANGED
@@ -521,7 +521,7 @@ const ALL_TASK_TYPES = [
521
521
  ];
522
522
  const server = new Server({
523
523
  name: "humanops",
524
- version: "0.2.0",
524
+ version: "0.2.1",
525
525
  }, {
526
526
  capabilities: { tools: {} },
527
527
  });
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@humanops/mcp-server",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "mcpName": "io.github.thepianistdirector/humanops",
5
5
  "description": "MCP server for AI agents to dispatch real-world tasks to verified human operators via HumanOps",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "bin": {
9
- "humanops-mcp": "./dist/index.js"
9
+ "@humanops/mcp-server": "dist/index.js"
10
10
  },
11
- "files": ["dist/*.js", "dist/*.d.ts"],
11
+ "files": ["dist/*.js", "dist/*.d.ts", "README.md"],
12
12
  "scripts": {
13
13
  "start": "node dist/index.js",
14
14
  "dev": "tsx watch src/index.ts",