Serveur MCP

X402 Git

com.x402git/git-x402

Ce que fait ce MCP

Searches, inspects, and purchases private Git repositories and agent skills using USDC payments over x402.

check_version
Latest version and this wallet's price
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.
Lecture seule Accès externe
Schéma d’entrée
{'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.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['owner', 'slug', 'latest', 'published_at', 'price_micro', 'update_price_micro', 'status', 'releases_url', 'resource_endpoint'], 'properties': {'slug': {'type': 'string'}, 'owned': {'type': ['string', 'null'], 'description': 'Only with a wallet signature: the newest version this wallet holds.'}, 'owner': {'type': 'string'}, 'latest': {'type': ['string', 'null']}, 'status': {'enum': ['draft', 'live', 'retired'], 'type': 'string'}, 'entitled': {'type': 'boolean', 'description': 'Only with a wallet signature: true when the next fetch is free.'}, 'price_kind': {'enum': ['new', 'update', 'free', 'owned'], 'type': 'string'}, 'price_micro': {'type': 'string', 'description': 'Micro-USDC. `9000000` is $9.00.'}, 'all_versions': {'type': 'boolean'}, 'published_at': {'type': ['string', 'null']}, 'releases_url': {'type': 'string'}, 'resource_endpoint': {'type': 'string'}, 'update_price_micro': {'type': 'string', 'description': '`0` means updates are included for life once bought (FR-16).'}}, 'additionalProperties': False}
fetch_release
Re-fetch a version you already own
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.
Lecture seule Accès externe
Schéma d’entrée
{'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.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'artifact_sha256', 'download_url', 'expires_at'], 'properties': {'version': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'download_url': {'type': 'string'}, 'artifact_sha256': {'type': 'string'}}, 'additionalProperties': False}
get_listing
Read the public manifest
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`).
Lecture seule Accès externe
Schéma d’entrée
{'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`.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['owner', 'slug', 'version', 'artifact_sha256', 'status', 'manifest_url', 'computed', 'self_reported'], 'properties': {'slug': {'type': 'string'}, 'owner': {'type': 'string'}, 'status': {'enum': ['live', 'retired'], 'type': 'string', 'description': '`retired` still reads: holders keep their access (FR-43).'}, 'version': {'type': 'string'}, 'computed': {'description': 'Everything the analyser measured from the artifact.'}, 'manifest_url': {'type': 'string'}, 'published_at': {'type': ['string', 'null']}, 'self_reported': {'description': "The creator's own description and trigger hint."}, 'artifact_sha256': {'type': 'string'}}, 'additionalProperties': False}
how_to_buy
How to buy this listing — with or without a wallet
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`.
Lecture seule Accès externe
Schéma d’entrée
{'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`.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['owner', 'slug', 'status', 'for_sale', 'latest', 'price_micro', 'price_usd', 'update_price_micro', 'listing_url', 'manifest_url', 'skill_url', 'resource_endpoint', 'mcp_url', 'with_a_wallet', 'without_a_wallet'], 'properties': {'slug': {'type': 'string'}, 'owner': {'type': 'string'}, 'latest': {'type': ['string', 'null']}, 'status': {'enum': ['draft', 'live', 'retired'], 'type': 'string'}, 'mcp_url': {'type': 'string'}, 'for_sale': {'type': 'boolean', 'description': 'False when retired or when no release has passed the scan; then nothing here can be bought.'}, 'price_usd': {'type': 'string', 'description': 'The same price as dollars, the way the site prints it: `$9`, `$9.50`, `$0`.'}, 'skill_url': {'type': 'string', 'description': 'The full buying procedure, as an Agent Skill. Hand this to an agent that has a wallet.'}, 'listing_url': {'type': 'string', 'description': 'The page. Server-rendered; readable as markdown with `Accept: text/markdown`.'}, 'price_micro': {'type': 'string', 'description': 'Micro-USDC for a new buyer. `9000000` is $9. A wallet that already owns a version is quoted less by `check_version`.'}, 'manifest_url': {'type': 'string', 'description': 'The free public manifest: tree, licence, dependencies, scan.'}, 'with_a_wallet': {'type': 'string', 'description': 'What an agent that can sign EIP-3009 should do.'}, 'without_a_wallet': {'type': 'string', 'description': 'What to tell a person when you cannot sign.'}, 'resource_endpoint': {'type': 'string', 'description': 'The x402 endpoint. GET it to receive the 402; pay it to receive the download.'}, 'update_price_micro': {'type': 'string', 'description': '`0` means updates are included for life once bought (FR-16).'}}, 'additionalProperties': False}
purchase
Buy the latest release (x402)
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.
Accès externe
Schéma d’entrée
{'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.'}}}
search_listings
Find repos and agent skills for sale
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`.
Lecture seule Accès externe
Schéma d’entrée
{'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.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'total', 'results'], 'properties': {'query': {'type': 'string'}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many listings matched, before `limit`.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['owner', 'slug', 'description', 'trigger_hint', 'latest', 'price_micro', 'price_usd', 'update_price_micro', 'artifact_class', 'tags', 'inventory', 'matched', 'listing_url', 'manifest_url'], 'properties': {'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': "Computed from the artifact, never from the creator's words."}, 'owner': {'type': 'string'}, 'latest': {'type': 'string', 'description': 'The version a purchase delivers today.'}, 'matched': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The words of your query this listing matched.'}, 'inventory': {'type': ['string', 'null'], 'description': 'Computed, e.g. `1 skill · 9 scripts · 3 test files`.'}, 'price_usd': {'type': 'string'}, 'description': {'type': ['string', 'null'], 'description': "The creator's own blurb. Self-reported, unverified."}, 'listing_url': {'type': 'string'}, 'price_micro': {'type': 'string', 'description': 'Micro-USDC for a new buyer. `9000000` is $9.'}, 'manifest_url': {'type': 'string'}, 'trigger_hint': {'type': ['string', 'null'], 'description': 'The creator\'s "use this when…" line. Self-reported, unverified.'}, 'artifact_class': {'type': ['string', 'null'], 'description': 'Computed: Prompt, Pack, Toolkit, Harness or System.'}, 'update_price_micro': {'type': 'string', 'description': '`0` means updates are included for life once bought (FR-16).'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Ajouté
fetch_release
17 September 2026 12:38
Ajouté
purchase
17 September 2026 12:38
Ajouté
check_version
17 September 2026 12:38
Ajouté
get_listing
17 September 2026 12:38
Ajouté
how_to_buy
17 September 2026 12:38
Ajouté
search_listings
17 September 2026 12:38