X402 Git
Buy private git repos and agent skills with USDC over x402. Read the manifest free, then pay.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"git-x402": {
"url": "https://x402git.com/api/mcp"
}
}
}Remote-Endpunkte
https://x402git.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (6)
🟢search_listings(query, max_price_micro, limit)
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`.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"description": "What you need the code or skill to do, in plain words. Omit or leave empty to list every live listing.",
"type": "string",
"maxLength": 200
},
"max_price_micro": {
"description": "Only listings a new buyer can get for at most this much, in micro-USDC: `5000000` is $5, `0` is free only.",
"type": "string",
"pattern": "^\\d{1,15}$"
},
"limit": {
"description": "How many results to return, 1–25. Default 10; `total` says how many matched.",
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "How many listings matched, before `limit`."
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"slug": {
"type": "string"
},
"description": {
"description": "The creator's own blurb. Self-reported, unverified.",
"type": [
"string",
"null"
]
},
"trigger_hint": {
"description": "The creator's \"use this when…\" line. Self-reported, unverified.",
"type": [
"string",
"null"
]
},
"latest": {
"type": "string",
"description": "The version a purchase delivers today."
},
"price_micro": {
"type": "string",
"description": "Micro-USDC for a new buyer. `9000000` is $9."
},
"price_usd": {
"type": "string"
},
"update_price_micro": {
"type": "string",
"description": "`0` means updates are included for life once bought (FR-16)."
},
"artifact_class": {
"description": "Computed: Prompt, Pack, Toolkit, Harness or System.",
"type": [
"string",
"null"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Computed from the artifact, never from the creator's words."
},
"inventory": {
"description": "Computed, e.g. `1 skill · 9 scripts · 3 test files`.",
"type": [
"string",
"null"
]
},
"matched": {
"type": "array",
"items": {
"type": "string"
},
"description": "The words of your query this listing matched."
},
"listing_url": {
"type": "string"
},
"manifest_url": {
"type": "string"
}
},
"required": [
"owner",
"slug",
"description",
"trigger_hint",
"latest",
"price_micro",
"price_usd",
"update_price_micro",
"artifact_class",
"tags",
"inventory",
"matched",
"listing_url",
"manifest_url"
],
"additionalProperties": false
}
}
},
"required": [
"query",
"total",
"results"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢how_to_buy(owner, slug)
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`.
Eingabe-Schema
{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
},
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
}
},
"required": [
"owner",
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"slug": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"draft",
"live",
"retired"
]
},
"for_sale": {
"type": "boolean",
"description": "False when retired or when no release has passed the scan; then nothing here can be bought."
},
"latest": {
"type": [
"string",
"null"
]
},
"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`."
},
"price_usd": {
"type": "string",
"description": "The same price as dollars, the way the site prints it: `$9`, `$9.50`, `$0`."
},
"update_price_micro": {
"type": "string",
"description": "`0` means updates are included for life once bought (FR-16)."
},
"listing_url": {
"type": "string",
"description": "The page. Server-rendered; readable as markdown with `Accept: text/markdown`."
},
"manifest_url": {
"type": "string",
"description": "The free public manifest: tree, licence, dependencies, scan."
},
"skill_url": {
"type": "string",
"description": "The full buying procedure, as an Agent Skill. Hand this to an agent that has a wallet."
},
"resource_endpoint": {
"type": "string",
"description": "The x402 endpoint. GET it to receive the 402; pay it to receive the download."
},
"mcp_url": {
"type": "string"
},
"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."
}
},
"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"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_listing(owner, slug)
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`).
Eingabe-Schema
{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
},
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
}
},
"required": [
"owner",
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"slug": {
"type": "string"
},
"version": {
"type": "string"
},
"artifact_sha256": {
"type": "string"
},
"published_at": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string",
"enum": [
"live",
"retired"
],
"description": "`retired` still reads: holders keep their access (FR-43)."
},
"manifest_url": {
"type": "string"
},
"computed": {
"description": "Everything the analyser measured from the artifact."
},
"self_reported": {
"description": "The creator's own description and trigger hint."
}
},
"required": [
"owner",
"slug",
"version",
"artifact_sha256",
"status",
"manifest_url",
"computed",
"self_reported"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢check_version(owner, slug, wallet_signature)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
},
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
},
"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."
}
},
"required": [
"owner",
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"slug": {
"type": "string"
},
"latest": {
"type": [
"string",
"null"
]
},
"published_at": {
"type": [
"string",
"null"
]
},
"price_micro": {
"type": "string",
"description": "Micro-USDC. `9000000` is $9.00."
},
"update_price_micro": {
"type": "string",
"description": "`0` means updates are included for life once bought (FR-16)."
},
"status": {
"type": "string",
"enum": [
"draft",
"live",
"retired"
]
},
"releases_url": {
"type": "string"
},
"resource_endpoint": {
"type": "string"
},
"owned": {
"description": "Only with a wallet signature: the newest version this wallet holds.",
"type": [
"string",
"null"
]
},
"entitled": {
"description": "Only with a wallet signature: true when the next fetch is free.",
"type": "boolean"
},
"all_versions": {
"type": "boolean"
},
"price_kind": {
"type": "string",
"enum": [
"new",
"update",
"free",
"owned"
]
}
},
"required": [
"owner",
"slug",
"latest",
"published_at",
"price_micro",
"update_price_micro",
"status",
"releases_url",
"resource_endpoint"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢purchase(owner, slug, payment_signature, wallet_signature, quote_id)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
},
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
},
"payment_signature": {
"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.",
"type": "string"
},
"wallet_signature": {
"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.",
"type": "string"
},
"quote_id": {
"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.",
"type": "string"
}
},
"required": [
"owner",
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢fetch_release(owner, slug, version, wallet_signature)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "The creator handle, e.g. `adrian`."
},
"slug": {
"type": "string",
"description": "The listing slug, e.g. `humanizer`."
},
"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."
}
},
"required": [
"owner",
"slug",
"version",
"wallet_signature"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"version": {
"type": "string"
},
"artifact_sha256": {
"type": "string"
},
"download_url": {
"type": "string"
},
"expires_at": {
"type": "string"
}
},
"required": [
"version",
"artifact_sha256",
"download_url",
"expires_at"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Nachweis