gadgethumans-mcp 1.2.1 → 1.2.3
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.
- package/README.md +51 -17
- package/index.js +6 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,19 +1,43 @@
|
|
|
1
1
|
# gadgethumans-mcp
|
|
2
2
|
|
|
3
|
-
MCP server for the **GadgetHumans API Hub**:
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
MCP server for the **GadgetHumans API Hub**: one endpoint that answers the small factual questions an
|
|
4
|
+
agent asks constantly — is this email deliverable, who owns this domain, what does this page say, is
|
|
5
|
+
this token a honeypot, did this price move — over 236 tools covering web search and page reads, Base
|
|
6
|
+
token safety, prediction markets, OCR, ENS, DNS/WHOIS/IP, crypto prices, geocoding and text utilities,
|
|
7
|
+
plus a free cross-bazaar x402 search.
|
|
8
|
+
|
|
9
|
+
The tool list is fetched live from `https://api.gadgethumans.com/mcp` at startup, so every tool arrives
|
|
10
|
+
with its real parameter schema, its real price and its description. `tools/list` returns the **23 routes
|
|
11
|
+
you can actually buy** (priced rows + free tools) rather than all 236 schemas — a planner chooses badly
|
|
12
|
+
from an unbounded menu, and the extra schemas cost context on every turn. The full catalogue is at
|
|
13
|
+
`https://api.gadgethumans.com/mcp?all=1`.
|
|
14
|
+
|
|
15
|
+
## Use it from Hermes
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
# ~/.hermes/config.yaml
|
|
19
|
+
mcp_servers:
|
|
20
|
+
gadgethumans:
|
|
21
|
+
url: https://api.gadgethumans.com/mcp
|
|
22
|
+
```
|
|
6
23
|
|
|
7
|
-
|
|
8
|
-
|
|
24
|
+
There is a ready-made skill at
|
|
25
|
+
`https://github.com/gadgethumans-dev/api-hub/blob/main/skills/gadgethumans-api-hub/SKILL.md` — it tells
|
|
26
|
+
an agent which route answers which question, what each costs, and what to check before paying anything.
|
|
9
27
|
|
|
10
|
-
##
|
|
28
|
+
## Free first
|
|
11
29
|
|
|
12
|
-
**
|
|
30
|
+
**25 calls/day per IP, no signup, no key.** The MCP door and the REST door share that trial, so the first
|
|
31
|
+
call of the day just answers. Prices are listed per tool in `tools/list` (`price_usd`), in the OpenAPI
|
|
32
|
+
document, and in the 402 body.
|
|
13
33
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
34
|
+
## Two ways to pay once the trial is spent
|
|
35
|
+
|
|
36
|
+
**1. Card — works in any MCP client, no wallet.** Pick a pack and pay by card:
|
|
37
|
+
|
|
38
|
+
- `$5` — 500 calls: <https://buy.stripe.com/5kQfZhen07SUbW00Z7abK0Q>
|
|
39
|
+
- `$20` — 2,500 calls: <https://buy.stripe.com/aFaeVd7YCehi8JO6jrabK0R>
|
|
40
|
+
- `$15/month` — 1,500 calls a month: <https://buy.stripe.com/6oUbJ15Qu1uw6BG23babK0S>
|
|
17
41
|
|
|
18
42
|
The purchase returns an `api_key`. Set it and restart:
|
|
19
43
|
|
|
@@ -21,10 +45,10 @@ The purchase returns an `api_key`. Set it and restart:
|
|
|
21
45
|
export GADGETHUMANS_API_KEY=gh_...
|
|
22
46
|
```
|
|
23
47
|
|
|
24
|
-
**2. x402 — USDC on Base, only if your client can sign the payment itself
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
header
|
|
48
|
+
**2. x402 — USDC on Base, only if your client can sign the payment itself.** Pay a pack URL directly and
|
|
49
|
+
the 200 response returns the key, or pay per call: an unpaid call returns `HTTP 402` with an x402
|
|
50
|
+
`accepts[]` challenge (also in the `Payment-Required` header). Settle it and retry with an `X-PAYMENT`
|
|
51
|
+
header. USDC on Base, chainId 8453.
|
|
28
52
|
|
|
29
53
|
This package never asks for a wallet private key — it is a proxy, and signing belongs in the client that
|
|
30
54
|
owns the key.
|
|
@@ -55,10 +79,20 @@ npx -y gadgethumans-mcp
|
|
|
55
79
|
"env": { "GADGETHUMANS_API_KEY": "gh_..." } } } }
|
|
56
80
|
```
|
|
57
81
|
|
|
58
|
-
##
|
|
82
|
+
## What it is good for
|
|
83
|
+
|
|
84
|
+
| Question | Tool | Price |
|
|
85
|
+
|---|---|---|
|
|
86
|
+
| Is this email real / deliverable? | `email_lookup` | `$0.01` |
|
|
87
|
+
| Who owns this domain? | `whois` | `$0.01` |
|
|
88
|
+
| What does this page say? | `get_url` | `$0.01` |
|
|
89
|
+
| Is this token a honeypot? | `token_verdict` | `$0.01` |
|
|
90
|
+
| Did this page/price/DNS change? | `changed` | `$0.01` |
|
|
91
|
+
| DNS records | `dns_lookup` | `$0.01` |
|
|
92
|
+
| Terminal text from an image or PDF | `ocr` | `$0.002` |
|
|
59
93
|
|
|
60
|
-
|
|
61
|
-
|
|
94
|
+
`changed` is stateless — you pass back the hash you got last time, so polling costs one call and stores
|
|
95
|
+
nothing server-side.
|
|
62
96
|
|
|
63
97
|
## Links
|
|
64
98
|
|
package/index.js
CHANGED
|
@@ -26,7 +26,7 @@ const REST_BASE = process.env.GADGETHUMANS_REST || "https://api.gadgethumans.com
|
|
|
26
26
|
|
|
27
27
|
// A 402 is the moment a caller decides whether we are real. Give it a ready-to-run
|
|
28
28
|
// proof call instead of a pricing lecture: most tool names are the REST route's own
|
|
29
|
-
// slug, so the same tool can be answered free (
|
|
29
|
+
// slug, so the same tool can be answered free (25/day per IP) with ?trial=1.
|
|
30
30
|
function trialUrl(name, args) {
|
|
31
31
|
if (!/^[a-z0-9][a-z0-9._-]{0,60}$/i.test(name || "")) return "";
|
|
32
32
|
const qs = new URLSearchParams();
|
|
@@ -35,11 +35,14 @@ function trialUrl(name, args) {
|
|
|
35
35
|
qs.set(k, String(v));
|
|
36
36
|
}
|
|
37
37
|
qs.set("trial", "1");
|
|
38
|
-
|
|
38
|
+
// MCP tool names use underscores; the paid routes are hyphenated. Without this the "free
|
|
39
|
+
// proof call" we hand a caller at the 402 moment answers 404 Unknown endpoint.
|
|
40
|
+
const slug = name.replace(/_/g, "-");
|
|
41
|
+
return `${REST_BASE}/${slug}?${qs.toString()}`;
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
const server = new Server(
|
|
42
|
-
{ name: "gadgethumans-mcp", version: "1.2.
|
|
45
|
+
{ name: "gadgethumans-mcp", version: "1.2.3" },
|
|
43
46
|
{ capabilities: { tools: {} } }
|
|
44
47
|
);
|
|
45
48
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gadgethumans-mcp",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "MCP server for the GadgetHumans API: 226 tools in one install (ocr, ens, token safety, translate, sentiment, whois, hash, geocode, dns, weather, vat, timezone, ip, search, and a free x402 catalogue search ranked by measured 30-day call volume). Prepaid credits key or x402 USDC on Base.",
|
|
5
5
|
"mcpName": "com.gadgethumans/gadgethumans-mcp",
|
|
6
6
|
"type": "module",
|