X402 Git
Server Details
Buy private git repos and agent skills with USDC over x402. Read the manifest free, then pay.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 5 tools
The tools map cleanly to different stages: listing inspection, version/price check, purchase, and entitlement-based download. The only mild overlaps are check_version vs. how_to_buy both reporting latest version/price and purchase vs. fetch_release both returning download URLs, but the descriptions make the acquisition-vs-entitlement distinction clear.
Most tools follow a readable verb_noun pattern: check_version, fetch_release, get_listing. how_to_buy is a phrase and purchase is a bare verb, so the pattern is not perfect, but there is no mixed-case chaos or vague generic naming.
Five tools is well-scoped for a buyer-side x402 server and each tool earns a place in the purchase/download flow. There is no bloat or obvious redundancy.
The core lifecycle is covered: inspect for free, check entitlement/price, buy, and fetch an owned release, with no dead ends. Minor gaps exist around listing search and inspecting non-latest versions, but they are workable for the stated purpose.
Available Tools
5 toolscheck_versionLatest version and this wallet's priceARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The listing slug, e.g. `humanizer`. | |
| owner | Yes | The creator handle, e.g. `adrian`. | |
| wallet_signature | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| owned | No | Only with a wallet signature: the newest version this wallet holds. |
| owner | Yes | |
| latest | Yes | |
| status | Yes | |
| entitled | No | Only with a wallet signature: true when the next fetch is free. |
| price_kind | No | |
| price_micro | Yes | Micro-USDC. `9000000` is $9.00. |
| all_versions | No | |
| published_at | Yes | |
| releases_url | Yes | |
| resource_endpoint | Yes | |
| update_price_micro | Yes | `0` means updates are included for life once bought (FR-16). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, it discloses endpoint binding, cost expectations ('cheap call'), conditional behavior with wallet_signature, and the privacy guarantee that address ownership is never revealed without it. It also enumerates the possible price_kind values, which is valuable runtime context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences carry all the essential information with no filler. The endpoint and core value are front-loaded, and the optional-signature caveat is clearly separated at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the readOnly annotations, an output schema, and full parameter coverage, the description provides everything needed to call and interpret the tool: the path, the data, the optional auth-like parameter, and the privacy boundary. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is already strong. The description adds the key semantic link that wallet_signature changes the response semantics, and it implicitly maps owner/slug to the URL path. This exceeds baseline without needing to compensate for sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation ('Wraps GET /api/v/:owner/:slug') and the exact data it returns: latest version, publication time, and price. It also clarifies the optional wallet_signature mode, which changes the response to include ownership and price_kind, separating it from the listing/purchase sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: 'the cheap call to make before every run.' It also warns that without wallet_signature the API never reveals address ownership, which guides call construction. However, it does not explicitly name sibling alternatives or state when to prefer them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_releaseRe-fetch a version you already ownARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The listing slug, e.g. `humanizer`. | |
| owner | Yes | The creator handle, e.g. `adrian`. | |
| version | Yes | An exact version string, e.g. `1.2.0`. | |
| wallet_signature | Yes | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| version | Yes | |
| expires_at | Yes | |
| download_url | Yes | |
| artifact_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and openWorld annotations, the description adds meaningful behavioral details: the URL is fresh for five minutes, the operation is free forever, entitlement failure returns `not_entitled` rather than a 402, and `wallet_signature` is required for proof of ownership. This is exactly the kind of context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, each carrying useful information: the endpoint, the freshness window, the entitlement semantics, and the auth requirement. The most important behavioral facts are front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with an output schema and clear annotations, the description covers the purpose, entitlement edge case, URL freshness, and authentication prerequisite. An agent has everything needed to call it correctly and understand its result semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters well. The description reiterates that `wallet_signature` is required and ties it to entitlement, but adds little beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action: wrapping `GET /api/r/:owner/:slug/v/:version` to fetch a fresh download URL for a version the wallet already owns. The title and 'Never sells anything' distinguish it from purchase and other sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: use it when the wallet already bought the version, it is free forever, and it works even after the listing is retired. It also explains the `not_entitled` case, making it clear when the tool is not applicable, though it does not name sibling alternatives explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listingRead the public manifestARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The listing slug, e.g. `humanizer`. | |
| owner | Yes | The creator handle, e.g. `adrian`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| owner | Yes | |
| status | Yes | `retired` still reads: holders keep their access (FR-43). |
| version | Yes | |
| computed | Yes | Everything the analyser measured from the artifact. |
| manifest_url | Yes | |
| published_at | No | |
| self_reported | Yes | The creator's own description and trigger hint. |
| artifact_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavioral context beyond annotations: free/no wallet, unauthenticated, only latest passing release, and the namespacing of computed vs self-reported facts. This enriches the readOnlyHint and openWorldHint without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences: endpoint, content inventory, and a key structural note (namespacing). All sentences earn their place, front-loaded with the most decision-relevant facts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only manifest lookup with an output schema present, the description covers cost, auth, content, and data separation. Nothing essential for an agent to decide or invoke correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with examples at 100% coverage. The description only echoes the URL placeholders and adds no new meaning about parameter formats or edge cases, so it rests on the schema's baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('read') and resource ('public manifest'), enumerates the exact content (file tree, sizes, licence, dependencies, security-scan result, release log), and ties it to a distinct use case (pre-purchase). It is unambiguous against siblings like fetch_release and purchase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context ('free, unauthenticated', 'read it before you buy') that signals when to invoke it, but does not explicitly contrast with sibling tools or state when not to use it. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
how_to_buyHow to buy this listing — with or without a walletARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The listing slug, e.g. `humanizer`. | |
| owner | Yes | The creator handle, e.g. `adrian`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| owner | Yes | |
| latest | Yes | |
| status | Yes | |
| mcp_url | Yes | |
| for_sale | Yes | False when retired or when no release has passed the scan; then nothing here can be bought. |
| price_usd | Yes | The same price as dollars, the way the site prints it: `$9`, `$9.50`, `$0`. |
| skill_url | Yes | The full buying procedure, as an Agent Skill. Hand this to an agent that has a wallet. |
| listing_url | Yes | The page. Server-rendered; readable as markdown with `Accept: text/markdown`. |
| price_micro | Yes | Micro-USDC for a new buyer. `9000000` is $9. A wallet that already owns a version is quoted less by `check_version`. |
| manifest_url | Yes | The free public manifest: tree, licence, dependencies, scan. |
| with_a_wallet | Yes | What an agent that can sign EIP-3009 should do. |
| without_a_wallet | Yes | What to tell a person when you cannot sign. |
| resource_endpoint | Yes | The x402 endpoint. GET it to receive the 402; pay it to receive the download. |
| update_price_micro | Yes | `0` means updates are included for life once bought (FR-16). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and openWorldHint, indicating the tool is safe and may produce varying results. The description adds important context: it explains that the tool returns a step-by-step skill for agents with wallets and a raw x402 endpoint, and it clarifies the decision logic for agents that cannot sign transactions. However, it does not detail any side effects or error conditions, but given the annotations, the added context is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence followed by a clear directive. It front-loads the key selling point ('Free, no wallet needed') and packs in all critical details without redundancy. It could be improved by breaking into bullet points, but it is still well-structured for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown here, but indicated), which likely details the return values, so the description doesn't need to. It clearly explains the purposeholistic behavior, including the conditional instructions for agents with/without wallets. The only minor gap is that it doesn't explain what to do if the listing is not for sale, but the description does say it returns whether it is for sale, so that is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover 100% of the parameters, defining `slug` and `owner` with examples. The description does not add further parameter-level detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to provide buying information for a listing. It specifies the exact resources (listing status, version, price, page, skill, endpoint, server URL) it returns. It is distinct from siblings like `get_listing` and `purchase` by focusing on the 'how to buy' information rather than the action itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool: if the user wants to buy without a wallet, answer with `without_a_wallet`; if the agent can sign transactions, follow `with_a_wallet` or call `purchase`. It also names the `purchase` tool as an alternative for those who can sign, providing clear guidance on usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchaseBuy the latest release (x402)AInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The listing slug, e.g. `humanizer`. | |
| owner | Yes | The creator handle, e.g. `adrian`. | |
| quote_id | No | 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 | No | 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 | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses significant behavior beyond annotations: the `isError: true` transport behavior, the meaning of `accepts[0]`, that the server never sees the signing key, the five-minute signed URL expiry, and that access is granted only after a transaction hash. This is far more behavioral detail than the sparse annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense and every sentence contributes to correct use, but it is presented as one long paragraph. The flow would be easier to parse with short sections or bullets for the 402 sequence, payment argument, and success response, so it loses one point for structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and a complex two-phase payment protocol, the description is remarkably complete: it explains the initial 402 response, the signing requirement, all payment input options, the success response contents, URL expiration, settlement metadata, and the zero-price case. An agent has enough context to invoke the tool correctly in each scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even with 100% schema description coverage, the description adds meaningful semantics: how `quote_id` must be echoed from the 402 and how stale values trigger `price_changed`, the meaning of `wallet_signature` for buyer-specific pricing, and the equivalence/precedence between `payment_signature` and `_meta["x402/payment"]`. This goes well beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (purchase the latest release) and the exact resource/endpoint (`GET /api/r/:owner/:slug`), and details the full quote→screen→verify→settle→grant sequence. This distinguishes it from siblings like `check_version` and `fetch_release` because it is the only one that records a purchase and grants access.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit instructions for the two-call flow: call once without payment to receive the 402, sign it, then call again with the payment payload. It also covers the $0-listing shortcut and which argument wins when both payment forms are present. It does not explicitly mention alternatives among siblings, so it misses the full 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
check_version - First observed
fetch_release - First observed
get_listing - First observed
how_to_buy - First observed
purchase
Related MCP Connectors
Marketplace where AI agents buy datasets and API access, pay per call in USDC over x402.
Trust layer for the x402 agent economy: 40 pay-per-call SKUs, USDC on Base, verifiable proofs.
- mcpOAuthai.agentgates
Confidential compute and inference sold to agents over x402 USDC, plus an agent wallet over MCP.
Autonomous AI agent selling pay-per-call skills settled with x402 micropayments (USDC).
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables agents to discover, sample, and pay per call in USDC for live threat intelligence, ZK proof generation, and arbitrage signals via the x402 protocol.MIT
- FlicenseNot gradedqualityCmaintenanceProvides paid and free tools for AI agents to buy from or sell to other agents over x402, including discovering sellers, verifying on-chain payment histories, running test purchases, and registering sellers for audited listings.-
- AlicenseNot gradedqualityBmaintenanceMarketplace of MCP servers and APIs that agents pay for per call in USDC over x402 on Base; connect anonymously, pay only when you callMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and humans to call paid skills—summarization, translation, data extraction, code snippets, analysis, charts, and reports—with x402 USDC micropayments over MCP or HTTP.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.