Buy private git repos and agent skills with USDC over x402. Read the manifest free, then pay.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Wraps `GET /api/v/:owner/:slug`. The cheap call to make before every run: the latest version, when it was published, and the price. With `wallet_signature` it also answers what that wallet already owns and what the *next* fetch would cost it — `price_kind` is `new`, `update`, `free` or `owned`. Without one it never reveals what any address owns.
The listing slug, e.g. `humanizer`.
The creator handle, e.g. `adrian`.
An `X-Wallet-Signature` value: `<address>.<nonce>.<signature>`, where the nonce comes from `POST /api/auth/challenge` and the signature is EIP-191 over the challenge message. Single use.
Wraps `GET /api/v/:owner/:slug`. The cheap call to make before every run: the latest version, when it was published, and the price. With `wallet_signature` it also answers what that wallet already owns and what the *next* fetch would cost it — `price_kind` is `new`, `update`, `free` or `owned`. Without one it never reveals what any address owns.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The listing slug, e.g. `humanizer`. |
| owner* | string | The creator handle, e.g. `adrian`. |
| wallet_signature | string | An `X-Wallet-Signature` value: `<address>.<nonce>.<signature>`, where the nonce comes from `POST /api/auth/challenge` and the signature is EIP-191 over the challenge message. Single use. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"owner",
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
},
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
},
"wallet_signature": {
"type": "string",
"description": "An `X-Wallet-Signature` value: `<address>.<nonce>.<signature>`, where the nonce comes from `POST /api/auth/challenge` and the signature is EIP-191 over the challenge message. Single use."
}
}
}Wraps `GET /api/r/:owner/:slug/v/:version`. A fresh five-minute download URL for a version this wallet already bought. Free, forever, including after the listing is retired. Never sells anything: if the wallet does not hold that version it is `not_entitled`, not a 402. `wallet_signature` is required — without a proved wallet there is nobody to be entitled.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The listing slug, e.g. `humanizer`. |
| owner* | string | The creator handle, e.g. `adrian`. |
| version* | string | An exact version string, e.g. `1.2.0`. |
| wallet_signature* | string | An `X-Wallet-Signature` value: `<address>.<nonce>.<signature>`, where the nonce comes from `POST /api/auth/challenge` and the signature is EIP-191 over the challenge message. Single use. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"owner",
"slug",
"version",
"wallet_signature"
],
"properties": {
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
},
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
},
"version": {
"type": "string",
"description": "An exact version string, e.g. `1.2.0`."
},
"wallet_signature": {
"type": "string",
"description": "An `X-Wallet-Signature` value: `<address>.<nonce>.<signature>`, where the nonce comes from `POST /api/auth/challenge` and the signature is EIP-191 over the challenge message. Single use."
}
}
}Wraps `GET /api/label/:owner/:slug`. The free, unauthenticated manifest for a listing's latest passing release: file tree, sizes, licence, dependencies, security-scan result and release log. Costs nothing and needs no wallet, so read it before you buy. Computed facts and the creator's own claims are separately namespaced (`computed` vs `self_reported`).
| Argument | Type | Description |
|---|---|---|
| slug* | string | The listing slug, e.g. `humanizer`. |
| owner* | string | The creator handle, e.g. `adrian`. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"owner",
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
},
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
}
}
}Free, no wallet needed. Returns whether the listing is for sale, its latest version and new-buyer price, the listing page a person can buy on with a browser wallet, the step-by-step skill an agent with a wallet follows, the raw x402 endpoint, and this server's URL. If you cannot sign transactions, answer the person with `without_a_wallet`; if you can, follow `with_a_wallet` or call `purchase`.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The listing slug, e.g. `humanizer`. |
| owner* | string | The creator handle, e.g. `adrian`. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"owner",
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
},
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
}
}
}Wraps `GET /api/r/:owner/:slug` — the same quote → screen → verify → settle → grant sequence, with the purchase recorded as `source: mcp`. Call it once with no payment: you get the x402 `PaymentRequired` body back. It arrives as `isError: true` per the x402 MCP transport, but it is not a failure — it is the price, and `accepts[0]` is the requirement to sign. Sign that EIP-3009 authorization with your own key (this server never sees it) and call again with the payment as the base64 `payment_signature` argument or as `_meta["x402/payment"]`. On success you get the version, the sha256 of the artifact, a signed download URL that expires in five minutes, and the settlement transaction in `_meta["x402/payment-response"]`. Access is granted only after the facilitator returns a transaction hash. A $0 listing returns `granted` on the first call.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The listing slug, e.g. `humanizer`. |
| owner* | string | The creator handle, e.g. `adrian`. |
| quote_id | string | Required for any priced listing: echo `payment_required.extra.quote_id` from the 402 you are paying against. Omitting it on a priced buy is rejected `price_changed`; echoing a stale one is also `price_changed` with a fresh 402. Optional only for $0 listings. |
| wallet_signature | string | Optional `<address>.<nonce>.<signature>`. Send it to be quoted *your* price rather than the new-buyer price; when both are present the payer in the authorization must be the same address. |
| payment_signature | string | A base64 x402 payment payload signed locally against `accepts[0]` from a previous call. Equivalent to `_meta["x402/payment"]`; this argument wins when both are present. Omit both to get the 402. |
Free, no wallet needed. Searches every live listing — private repos, agent skills, prompt packs, toolkits — by what it does: the name, the creator's description and "use this when" line, the computed tags (artifact class, what is inside such as `skills` or `scripts`, languages) and the README. Describe the job in plain words, e.g. `humanize ai writing` or `changelog from git history`; leave `query` empty to list everything. Results are ordered by how many of your words matched and where, then by name — never by sales or popularity. Each result has the `owner` and `slug` the other tools take: read `get_listing` for the file tree and security scan, then `how_to_buy`.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many results to return, 1–25. Default 10; `total` says how many matched. |
| query | string | What you need the code or skill to do, in plain words. Omit or leave empty to list every live listing. |
| max_price_micro | string | Only listings a new buyer can get for at most this much, in micro-USDC: `5000000` is $5, `0` is free only. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "How many results to return, 1–25. Default 10; `total` says how many matched."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "What you need the code or skill to do, in plain words. Omit or leave empty to list every live listing."
},
"max_price_micro": {
"type": "string",
"pattern": "^\\d{1,15}$",
"description": "Only listings a new buyer can get for at most this much, in micro-USDC: `5000000` is $5, `0` is free only."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"owner",
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
},
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
},
"quote_id": {
"type": "string",
"description": "Required for any priced listing: echo `payment_required.extra.quote_id` from the 402 you are paying against. Omitting it on a priced buy is rejected `price_changed`; echoing a stale one is also `price_changed` with a fresh 402. Optional only for $0 listings."
},
"wallet_signature": {
"type": "string",
"description": "Optional `<address>.<nonce>.<signature>`. Send it to be quoted *your* price rather than the new-buyer price; when both are present the payer in the authorization must be the same address."
},
"payment_signature": {
"type": "string",
"description": "A base64 x402 payment payload signed locally against `accepts[0]` from a previous call. Equivalent to `_meta[\"x402/payment\"]`; this argument wins when both are present. Omit both to get the 402."
}
}
}