mcp-l402-directory
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-l402-directorysearch for AI APIs that accept Lightning payments"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-l402-directory
An MCP (Model Context Protocol) server that exposes the satring.com L402/x402 service directory as tools for AI agents.
Agents using Claude, Cursor, Windsurf, or any MCP-compatible client can discover and query 100+ Lightning-paywalled and stablecoin-gated APIs without needing to know their URLs in advance.
Tools
search_l402_services — search for paywalled APIs by keyword
list_l402_services_by_category — browse by category (ai-ml, data, finance, identity, media, search, social, storage, tools)
get_l402_service — get full details for a specific service
get_recently_added_services — discover newly listed APIs
get_verified_services — filter to domain-verified services only
Related MCP server: Agent Directory MCP Server
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"l402-directory": {
"command": "npx",
"args": ["mcp-l402-directory"]
}
}
}Usage with other MCP clients
npx mcp-l402-directoryThe server communicates via stdio.
What is L402?
L402 is a protocol that uses Bitcoin Lightning micropayments for API authentication — no API keys, no accounts, no OAuth. Pay a few sats, get access. Learn more.
Source
Built by Satoshi — an autonomous AI agent running on a Lightning node in Idaho. Dispatch server: dispatches.mystere.me.
Available Tools
6 toolsget_l402_serviceA
Get full details for a specific L402/x402 service by its slug identifier, including endpoint URL, pricing, protocol, payment address, and verification status.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Service slug (e.g. 'satoshi-dispatches', 'satring-service-health-analytics') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It usefully lists the return contents (endpoint URL, pricing, protocol, payment address, verification status), which tells the agent what kind of information it will receive, but it does not mention behavior on missing slugs, authentication requirements, or response format.
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?
A single sentence, tightly structured and front-loaded with the action and resource before listing the key detail fields. Every part adds useful information 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 one-parameter fetch tool with low complexity, the description covers the core purpose and previews expected output fields. The absence of an output schema is partially compensated by listing return contents, though error behavior and exact response structure are not described. Overall, it is sufficient for an agent to call it correctly.
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 already fully documents the single parameter 'slug' with examples, and the description adds only 'by its slug identifier', which restates the schema. Since schema description coverage is 100%, baseline 3 is appropriate; the description provides little additional meaning beyond the 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?
States a specific verb ('Get full details'), a specific resource ('L402/x402 service'), and the exact lookup mechanism ('by its slug identifier'). This clearly distinguishes it from search/list-style sibling tools and tells an agent exactly what to expect.
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 implies the tool is used when you already have a service slug, but it does not explicitly state when to use this versus sibling tools like search_l402_services or get_service_descriptor. It provides clear context for the intended use case but no when-not-to-use guidance or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recently_added_servicesA
Get the most recently added L402/x402 services in the directory — useful for discovering new paywalled APIs as they launch.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| protocol | No | Filter by protocol (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the ordering behavior ('most recently added') but does not describe the result shape, pagination behavior, any auth constraints, or whether the protocol filter applies exact or union matching. This is a meaningful gap for a tool with no annotation hints.
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, front-loaded sentence that names the action, resource, and use case without redundancy. Every word earns its place, and there is no filler or restatement of the tool name.
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 low-complexity, read-only lookup with two optional parameters and 100% schema coverage, the description plus schema provides enough context for an agent to select and call the tool. It lacks an explicit return-value description because no output schema exists, but that is not critical for invocation.
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 input schema already documents both parameters thoroughly: 'limit' has a default and meaning, and 'protocol' has an explicit enum. The description adds no additional parameter-level semantics, so the high schema coverage justifies the baseline score.
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 operation ('Get'), the resource ('L402/x402 services in the directory'), and the distinguishing scope ('most recently added'). It also adds the use-case nuance of discovering new paywalled APIs, which separates it from sibling tools like search, category listing, and single-service lookup.
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 phrase 'useful for discovering new paywalled APIs as they launch' provides clear context for when to use this tool. It does not explicitly name alternatives or exclusion conditions, but the intended use case is evident enough for an agent to select it over category/search/list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_descriptorA
Fetch the machine-readable service descriptor for an L402/x402 service. Returns the full descriptor including endpoints, billing details, request/response schemas, stale times, error codes, refund policies, and test endpoints. Use this when you need structured metadata about how to call and pay for an API — billing units, pricing, failure semantics, and preflight verification.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Service slug from the directory (e.g., 'satoshi-dispatches'). Used to look up the service URL if service_url is not provided. | |
| service_url | No | Base URL of the service (e.g., 'https://dispatches.mystere.me'). The descriptor will be fetched from {service_url}/.well-known/l402-descriptor.json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses that the tool fetches a remote descriptor and returns comprehensive details such as endpoints, billing, schemas, errors, refunds, and test endpoints. It does not discuss failure modes or network dependencies, but the core behavior is clearly conveyed.
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 compact, front-loaded with the main action and resource, and each sentence earns its place. It avoids boilerplate and immediately tells the agent what the tool does, what it returns, and when to use it.
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 description is largely complete for a fetch-style tool: it states the resource, return contents, and intended use case. The main gap is that it does not explicitly say one of slug or service_url must be provided, though the schema descriptions strongly imply that; this is a minor invocation ambiguity rather than a fundamental shortfall.
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 3. The tool description itself adds little about slug or service_url beyond what the schema already says, though the schema descriptions are rich and cover both parameters and their relationship.
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 opens with a specific verb and resource: 'Fetch the machine-readable service descriptor for an L402/x402 service.' It enumerates the descriptor contents, making it clearly distinct from sibling tools that list, search, or get high-level service information.
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 provides a clear 'Use this when...' statement: structured metadata about how to call and pay for an API. It does not explicitly mention when not to use it or name an alternative tool, but the use case is concrete enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verified_servicesA
Get only domain-verified L402/x402 services — these have proven ownership of their domain and are more trustworthy for agent payments.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| category | No | Optional category filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only explains that results are filtered to domain-verified services and gives a trust rationale; it does not disclose response shape, pagination behavior, auth requirements, rate limits, or other operational details.
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, front-loaded sentence with no filler. It communicates the core selection behavior and the trust rationale efficiently.
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 only optional parameters and a clear purpose, making the description reasonably usable. However, there is no output schema and the description does not explain what the returned data looks like or how results are ordered/paginated, so some context 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 of 3 applies. The description adds no additional meaning for the 'limit' or 'category' parameters beyond what the input schema already states.
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 uses a specific verb and resource: 'Get only domain-verified L402/x402 services.' It clearly identifies the filtering scope and differentiates this tool from sibling search/list tools by emphasizing the domain-verified trust criterion.
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 implies this tool is for agents needing trustworthy services for payments, but it does not explicitly say when to choose it over alternatives like search_l402_services or list_l402_services_by_category. The use case is hinted at rather than stated as clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_l402_services_by_categoryA
List all available L402/x402 paywalled API services in a category. Categories: ai-ml, data, finance, identity, media, search, social, storage, tools.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default 10, max 50) | |
| category | Yes | Service category slug | |
| protocol | No | Filter by payment protocol (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. 'List' and 'available' indicate a read-only, availability-filtered operation, which is useful, but the description does not disclose pagination behavior, output shape, ordering, or whether all services are included regardless of verification status. It is not misleading, but it adds only modest behavioral context beyond the verb itself.
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 compact and front-loaded with the core action and target resource. The category enumeration is helpful for quick scanning but largely duplicates the schema enum, so it is slightly less efficient than a fully non-redundant description.
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 simple filtered-list tool, the description covers the main purpose and even lists the controlled vocabulary. However, with no output schema and no annotations, it leaves output fields, pagination/limit behavior, and the precise relationship to sibling search/list tools unspecified. This is adequate for a basic call but not fully complete for an agent choosing among several similar list tools.
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 category, limit, and protocol with descriptions and enums. The description's only parameter-related contribution is repeating the category enum values, which adds no new semantics beyond what the schema 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 uses a specific verb ('List') with a clear resource ('L402/x402 paywalled API services') and a specific scope ('in a category'), then enumerates the allowed categories. This makes the tool's purpose unambiguous and distinguishes it from the get/search sibling tools at a glance.
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 clearly implies this is for browsing services by category, but it never explicitly states when to prefer this over search_l402_services, get_verified_services, or get_recently_added_services. No alternatives or exclusions are mentioned, so the agent must infer the intended use from the name and context rather than from guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_l402_servicesA
Search the L402/x402 service directory for paywalled APIs. Returns services matching a query string — use this to find Lightning-gated or stablecoin-gated APIs for data, AI/ML, finance, identity, search, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query, e.g. 'bitcoin price', 'sentiment analysis', 'image generation' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It clearly implies a read-only search and states the result concept, but it does not clarify matching behavior (exact/fuzzy), result limits, or whether authentication is needed. This is acceptable for a simple search but leaves some behavior implicit.
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?
One sentence delivers all key information: resource, domain, query behavior, and use case. No filler, and the essential search semantics appear before the illustrative category list.
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 one-parameter search tool with no output schema, the description gives the essential invocation context, but remains vague about the shape of returned services (full objects vs summaries) and any pagination or limits. The lack of result details is a notable gap given no output schema.
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 input schema already documents the single query parameter with 100% coverage, so the description needs to add little. It reinforces that the query is a search string and gives example values, which matches but does not go beyond the 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 uses a specific verb ('Search') with a concrete resource ('L402/x402 service directory') and a clear outcome ('Returns services matching a query string'). This is readily distinguishable from sibling tools such as list_l402_services_by_category and get_l402_service.
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 scenario for when this tool is appropriate: finding Lightning-gated or stablecoin-gated APIs by query across multiple categories. It does not explicitly contrast with list_l402_services_by_category or get_l402_service, so it stops short of 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.
6 tool updates
v1.1.0- First observed
get_l402_service - First observed
get_recently_added_services - First observed
get_service_descriptor - First observed
get_verified_services - First observed
list_l402_services_by_category - First observed
search_l402_services
TDQS
Scored across 6 tools
Most tools have clearly distinct purposes: search, category listing, recent additions, verified services, and descriptor retrieval. The only mild overlap is between get_l402_service and get_service_descriptor, but their descriptions clarify human-readable details vs. machine-readable metadata.
All tool names follow a consistent snake_case verb_noun pattern, with verbs like search, list, and get. The naming style is uniform and predictable across the entire set.
Six tools is an appropriate scope for a read-only directory server covering search, filtering, and detail retrieval. Each tool serves a clear purpose without redundancy or bloat.
The tool surface covers the full directory workflow: searching, listing by category, retrieving service details, browsing recent additions, filtering verified services, and fetching machine-readable descriptors. No obvious gaps exist for this read-only directory use case.
Maintenance
Related MCP Connectors
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Pay-per-action access to APIs and MCP tools over Lightning L402 and Base USDC x402.
AgencyAI's public MCP for service discovery and AI-readiness assessment.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server that enables AI agents to make autonomous Bitcoin Lightning Network payments using the L402 protocol. Agents can pay for API access, purchase resources, and complete transactions without human intervention — invoice comes in, sats go out, done.179MIT
- AlicenseNot gradedqualityDmaintenanceMCP Server for agent and service discovery — register, search, rate, and manage AI agents and services in a local directory.6 npmMIT
- AlicenseAqualityFmaintenanceMCP server that gives AI agents Lightning payments, L402 API access, trust verification, and service discovery.116 npmMIT
- AlicenseNot gradedqualityFmaintenanceMCP server for the x402 protocol that lets AI agents discover and call payment-gated HTTP APIs automatically.82 npmApache 2.0