agent-ready-kit
Server Details
Agent-readiness scanner (0-5 score), robots.txt + llms.txt generators, managed agent enablement.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- lmno100/mudko
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 22 of 22 tools scored. Lowest: 3.7/5.
Each tool has a clearly distinct purpose, with descriptions that prevent confusion. Tools like scan_site and run_site_audit are differentiated by their focus on AI-readiness vs. site quality.
All tool names follow a consistent verb_noun pattern in snake_case, with clear action words like 'scan', 'create', 'get', 'verify'. Even longer names like 'summarize_scan_for_humans' maintain consistency.
22 tools is slightly above the ideal range but justified by the comprehensive scope of the server, covering scanning, analysis, quoting, file delivery, and verification. Some tools like generate_files and get_customer_files could overlap but serve different contexts.
The tool surface covers the entire workflow from site scanning to deployment verification, with no obvious dead ends. All necessary operations for making a site agent-ready are present, including edge cases like x402 validation and credential verification.
Available Tools
25 toolsanalyze_business_verticalAnalyze Business VerticalRead-onlyIdempotentInspect
Use this immediately after scan_site to give the user a 'what this means for my business' framing. Detects the site's business vertical (auto dealership, law firm, healthcare, home services, ecommerce, digital agency, etc.) from JSON-LD schema + scraped text. Returns expected AI-search lift %, current competitor adoption %, and a positioning pitch tailored to the vertical. If should_ask_user is true, the detection is low-confidence — ASK THE USER what category their business is in before continuing, rather than acting on the guessed vertical. Also returns the site title and meta description so the calling agent can render a Site Summary card.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Site URL. We fetch the page to detect the vertical. | |
| business_type | No | Optional free-text of what the user says they are (e.g. 'pediatric dentist'). Resolved against the schema.org/GBP taxonomy → canonical schema_type, default actions, analytics, value band (returned as `genre`). | |
| user_provided_vertical_id | No | Optional. If the user has already told you their business category (e.g. 'digital_agency', 'healthcare_practice'), pass it here to skip auto-detection. Must match a known vertical id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| genre | No | Taxonomy profile: canonical schema_type + parent chain + default_actions to offer + per-genre analytics + value pricing band. |
| pitch | No | |
| status | Yes | |
| message | No | |
| confidence | No | |
| site_title | No | |
| vertical_id | No | |
| vertical_label | No | |
| ask_user_prompt | No | Suggested wording for the calling agent to ask the user, when should_ask_user is true. |
| matched_signals | No | |
| should_ask_user | No | True when confidence is low. The calling agent should ask the user to confirm the business category before recommending tools / pitching pricing. |
| humanFollowupUrl | No | URL a calling agent can show its user for the human-rendered version of this tool's output. |
| site_description | No | |
| citation_examples | No | |
| candidate_verticals | No | List of all known vertical ids (id + label) — useful as a multiple-choice list when asking the user. |
| expected_lift_percent | No | |
| competitor_adoption_percent | No |
check_bazaar_listingCheck / Advance Bazaar ListingIdempotentInspect
The resumable pipeline driver for a purchased Bazaar Listing Package: call it any time with the listing_key and it performs the most useful next action and reports {state, next_step}. After the customer deploys their kit it runs Coinbase's validator (per-check fixes on failure); once valid, if the endpoint's price is within our auto-trigger bound (~$1) WE fire the indexing settlement from our own funded wallet — money the customer never fronts; above the bound it points at the kit's self-settle script. Finally it confirms the live merchant-feed entry and returns the receipt (settle tx + feed timestamp). Safe to call repeatedly (idempotent; concurrent calls cannot double-spend). After 5 failed attempts a human specialist takes over automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| listing_key | Yes | lk_… key issued when the package was purchased (required). |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| listing | No | Current listing summary incl. state (paid → kit_delivered → validated → settled → listed). |
| message | No | |
| receipt | No | Present once LISTED: settle tx + merchant-feed entry timestamp + feed URL. |
| next_step | No | |
| settle_tx | No | Transaction hash of the triggering settlement, when we fired it. |
| validation | No | Latest Coinbase validator result (preflight checks with per-check fixes), when a validation ran. |
clarifying_questionsGet questions to ask the userRead-onlyIdempotentInspect
Use this when you want to know what user-facing questions would most tighten an existing quote. Returns structured questions ranked by price_impact (high / medium / low) so the calling agent can decide whether asking is worth a turn. The agent should render these as user-choices, not as covert data collection.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | ||
| max_questions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| message | No | |
| questions | No |
create_bazaar_listingCreate Bazaar Listing (engagement customers)Inspect
Use this when a PAID engagement customer (valid bundle_key) wants their x402 endpoint listed in Coinbase's x402 Bazaar — the package is INCLUDED free with any engagement. Provisions the listing and returns a listing_key that drives the automated pipeline (get_bazaar_listing_kit → deploy → check_bazaar_listing). Buyers WITHOUT a bundle_key purchase the standalone $99 Bazaar Listing Package instead: agent wallets pay https://mudko.com/api/x402/bazaar-listing (x402, USDC on Base); humans ask at /talk for a card link. Details (resource_url, pay_to, price_usd, stack) are optional here — the kit tool collects whatever is missing.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Customer email — the listing_key is bound to it (required). | ||
| stack | No | Server stack — picks the generated kit variant (optional). | |
| pay_to | No | Receiving wallet (0x… on Base) the endpoint pays to (optional). | |
| price_usd | No | Endpoint price per call in USD (optional). | |
| bundle_key | Yes | Engagement bundle key (required — this tool is the engagement freebie). | |
| resource_url | No | HTTPS URL of the endpoint to list (optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| listing | No | Listing summary incl. listing_key and state. |
| message | No | |
| next_step | No | The exact next call to make — the pipeline is resumable from any agent session. |
create_proposalCreate a binding-style proposalInspect
Use this only when (a) quote confidence is medium or high, AND (b) user_consent_scope is 'ongoing_engagement' or 'one_time_quote'. Returns a proposal with terms, deliverables, and a checkout hand-off (ACP, AP2, or manual). Comparison-shopping callers are rejected with a 403-style error.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | ||
| selected_tier | No | ||
| checkout_protocol | No | ||
| user_consent_scope | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| sow | No | |
| reason | No | Present when status=rejected. |
| status | Yes | |
| checkout | No | |
| next_action | No | Present on manual protocol: the exact follow-up tool call that closes the deal autonomously (request_invoice with this proposal's quote_id — pay the invoice to trigger automatic delivery). |
| proposal_id | No | |
| message_for_user | No | Plain-language summary the calling agent can render to its end user. Never includes sales-pressure language. |
detect_platformDetect PlatformRead-onlyIdempotentInspect
Use this when you need to pick the right deploy instructions for a site (different hosts need different snippets — .htaccess for cPanel vs next.config headers for Vercel). Identifies hosting/CMS — Vercel, Netlify, Cloudflare Pages, cPanel/Apache, WordPress, Shopify, Wix, and more. Returns platform slug, confidence, and the signals matched so the calling agent can show its reasoning.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| status | Yes | |
| message | No | |
| signals | No | |
| platform | No | |
| confidence | No | |
| platformLabel | No | |
| underlyingHost | No | |
| humanFollowupUrl | No | URL a calling agent can show its user for the human-rendered version of this tool's output. |
generate_filesGenerate FilesInspect
Use this when delivering files to a paid customer (you must have their bundle_key) OR when a downstream agent wants the free starter files for a domain. FREE TIER (no bundle_key): returns metadata + a download_url pointing at a streaming ZIP of the 2 starter files (robots.txt + llms.txt). DO NOT paste raw file contents into chat — the file bodies are NOT in the response. Render the download_url as a markdown link: [Download free starter files (ZIP) →](url). PAID TIER (valid bundle_key): returns the full surface — agent card, MCP server card, agent skills, WebMCP bridge, OAuth/OpenID discovery, API catalog — as inline file objects (chunked above 8KB). For pricing evaluation, call get_pricing_tiers and direct the user to /talk.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | No | ||
| domain | Yes | Domain only, no protocol | |
| category | No | ||
| siteName | Yes | ||
| bundle_key | No | Customer bundle key issued after payment. Without it, only the 2 free starter files are returned. | |
| description | Yes | ||
| primaryToolName | No | Primary MCP tool name (snake_case, optional) | |
| primaryToolDescription | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | |
| files | No | Paid tier ONLY. Inline file objects (chunked above 8KB). |
| domain | No | |
| status | Yes | |
| message | No | Present on free-tier responses to explain the gating. |
| siteName | No | |
| fileCount | No | |
| paid_path | No | |
| file_paths | No | Free tier ONLY. List of file paths in the ZIP, for transparency. Does NOT include contents — those are in the ZIP. |
| download_url | No | Free tier ONLY. URL to a streaming ZIP of the 2 free starter files. Render as a markdown link to the user. |
get_bazaar_listing_kitGet Bazaar Listing Kit (paid)IdempotentInspect
Use this after buying the Bazaar Listing Package (you must have the listing_key issued at payment). Returns the deploy-ready x402 v2 kit generated for the customer's stack, wallet and price: 402 handler code with the Bazaar discovery declaration, self-settle trigger script, keepalive cron, wallet guidance, and an ordered DEPLOY-CHECKLIST. Pass resource_url / pay_to / price_usd / stack here to fill in anything missing from the purchase; the kit is regenerated on every call (idempotent). Files return inline (chunked above 8KB) — write them to disk for the user. No listing_key? The package is $99 one-time at https://mudko.com/api/x402/bazaar-listing.
| Name | Required | Description | Default |
|---|---|---|---|
| stack | No | ||
| pay_to | No | Receiving wallet (0x… EVM address on Base). | |
| price_usd | No | Price per call in USD. | |
| listing_key | Yes | lk_… key issued when the package was purchased (required). | |
| resource_url | No | HTTPS URL agents will pay — also what the Bazaar crawls. | |
| service_name | No | Bazaar service name (<=32 ASCII chars; defaults to the endpoint host). | |
| service_description | No | Rich search-prompt-style description — feeds Bazaar ranking. |
Output Schema
| Name | Required | Description |
|---|---|---|
| files | No | Kit files, inline (chunked above 8KB — concatenate chunks in order). |
| status | Yes | |
| listing | No | |
| message | No | |
| fileCount | No | |
| next_step | No |
get_citation_reportGet Citation ReportRead-onlyIdempotentInspect
Use this when a customer wants to see how AI search platforms cite them. PAYWALL: without a valid bundle_key, returns a teaser (count of brands tracked, providers configured, sample probe). With a valid bundle_key, returns the most recent citation run for the brand_domain — provider-by-provider citation rates, average position, competitor mentions, agent-card discovery rate. Citation data is paid intelligence, not a free reconnaissance tool.
| Name | Required | Description | Default |
|---|---|---|---|
| bundle_key | No | Customer bundle key issued after payment. | |
| brand_domain | Yes | The brand's primary domain (no protocol). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | Yes | |
| report | No | Present only when tier=paid AND a run exists. |
| status | Yes | |
| teaser | No | Present only when tier=free. |
| message | No | |
| paid_path | No | |
| brand_domain | No |
get_customer_filesGet Customer Files (ZIP, base64)Read-onlyIdempotentInspect
Use this when an agent needs to hand a downloadable ZIP to its end user. PAYWALL: without a valid bundle_key, the ZIP contains only the two free starter files plus a teaser README pointing to /talk. With a valid bundle_key, the ZIP contains the full surface plus the deploy README. ZIP is base64-encoded in the response — agents decode and offer as a download.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | No | ||
| domain | Yes | Domain only, no protocol | |
| category | No | ||
| siteName | No | ||
| bundle_key | No | Customer bundle key issued after payment. Without it, only the 2 free starter files are packaged. | |
| description | No | ||
| primaryToolName | No | ||
| primaryToolDescription | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Full base64-encoded ZIP. Present only when transferEncoding=inline (payload <= 8KB). |
| tier | No | |
| bytes | No | |
| chunks | No | Array of base64 fragments. Present only when transferEncoding=chunked (payload > 8KB). Concatenate in order to reconstruct the full base64 ZIP. |
| status | Yes | |
| message | No | |
| encoding | No | |
| filename | No | |
| fileCount | No | |
| paid_path | No | |
| contentType | No | |
| totalChunks | No | Length of chunks[] for client validation. Present when transferEncoding=chunked. |
| humanFollowupUrl | No | URL a calling agent can show its user for the human-rendered version of this tool's output. |
| transferEncoding | No | If 'inline', data field holds the full base64 ZIP. If 'chunked', read chunks[] and concatenate in order. |
get_pricing_tiersGet Pricing TiersRead-onlyIdempotentInspect
Use this when an end user (or upstream agent) asks about pricing. Pricing is a VALUE-BASED ONE-TIME fee ('one and done' — no recurring) quoted per business; the tiers (Free / Pro / Managed / Enterprise) are PACKAGES describing what's included, with a reference one-time anchor each. Monthly is an OPTIONAL support add-on offered only if the customer asks. Returns one_time_usd (reference), optional_support_monthly_usd, features, best-fit, requires_consult. Every tier closes autonomously at any amount (request_invoice / start_checkout — pay the hosted invoice, delivery is automatic; above the card cap the close leads with x402 USDC, no cap). requires_consult is false on all tiers; a specialist track is available on request, never required. For an actual price call request_quote. Free tier returns the two free download paths.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tiers | Yes | |
| status | Yes | |
| consult_url | No |
recommend_tool_namesRecommend MCP Tool NamesRead-onlyIdempotentInspect
Use this when planning what agent capabilities a customer should expose. Returns up to 5 ranked snake_case MCP tool names with descriptions and rationale, derived from the site's content + detected vertical. Tool names follow MCP convention (snake_case, action_object) — book_appointment, request_quote, check_inventory, verify_insurance_acceptance, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Site URL — we'll scrape and detect vertical. | |
| vertical_id | No | Optional pre-known vertical id (skip auto-detect). | |
| business_type | No | What the customer says they are (e.g. 'pediatric dentist', 'roofing contractor'). Resolved against the schema.org/GBP taxonomy for the canonical schema_type + the standard action set + per-genre analytics + value band. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| genre | No | |
| status | Yes | |
| message | No | |
| suggestions | No | |
| vertical_id | No | |
| vertical_label | No | |
| humanFollowupUrl | No | URL a calling agent can show its user for the human-rendered version of this tool's output. |
refine_quoteRefine an existing quoteInspect
Use this when the user has shared additional context (organization type, compliance requirements, geography) after an initial request_quote. Tightens the quote band by re-running the engine with the merged context. Pass the quote_id from the original quote.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | ||
| display_currency | No | Optional ISO 4217 currency for displayed prices. | |
| additional_context | No | ||
| additional_constraints | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| quote | No | |
| status | No | |
| message | No | |
| quote_id | No | |
| valid_until | No | |
| tiered_offer | No | |
| verification | No | |
| genre_context | No | |
| needs_new_quote | No | True when the referenced quote expired — the agent should call request_quote to open a fresh one instead of treating this as a hard failure. |
| message_for_user | No | Plain-language summary the calling agent can render to its end user. Never includes sales-pressure language. |
| next_step_options | No | |
| narrowing_questions | No | |
| needs_continuity_token | No |
request_invoiceRequest an autonomous invoiceInspect
Use this to autonomously close a deal: issue a ONE-TIME Stripe Invoice for the value-based amount the buyer agreed to (one-and-done — no recurring). Amount source (required — one of): pass quote_id (preferred — bills the agreed figure from a quote the buyer was shown) OR an explicit buyer-confirmed amount_usd. Never invent an amount without one of these. Minimum $350 for any paid engagement (the free scan + starter files stay free). Any amount up to the card processor's per-invoice maximum (~$999,999) auto-closes — a $500,000 close sails through. Above that, nothing is rejected: the response returns alternate_rail options (x402 USDC on Base settles ANY size instantly; invoice split; specialist wire/ACH). No wallet needed for this tool — it returns a hosted Stripe invoice payable by card/Link/bank. Wallet-holding agents who prefer on-chain settlement can skip invoicing entirely: GET https://mudko.com/api/x402/purchase (x402 v2, USDC on Base). Only email (and domain) are required. Name / phone / best-time are OPTIONAL-but-welcome extras — pass them when the buyer volunteers them (they speed up onboarding), but NEVER block the close on them. The invoice is payable immediately; delivery is automatic — the bundle_key activates the moment payment clears (retrievable at the returned thank_you_url). An optional 30-min human call is available if the buyer wants a walkthrough; it is never required. Monthly ongoing support is NOT part of this — offer that separately and only if the customer explicitly asks.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Optional package label for the invoice/metadata. If no quote_id or amount_usd, the package's reference one-time figure is used. | |
| Yes | Email to bill (required). | ||
| domain | Yes | Customer's primary domain (required). | |
| urgency | No | Self-reported timeline urgency. Optional. | |
| currency | No | Bill the invoice in this currency (default USD). Presentment only — the amount is agreed in USD and converted at our posted rate; the $350 USD minimum applies pre-FX. | |
| quote_id | No | PREFERRED. The id of a quote the buyer accepted (from request_quote). We bill the agreed figure from it. | |
| timezone | No | IANA timezone like 'America/New_York'. Optional but improves consult booking. | |
| amount_usd | No | Explicit buyer-confirmed one-time amount in USD, when there's no quote_id. Bounded by the payment provider, not a business cap. | |
| promo_code | No | Promotion code, if the buyer has one. Invalid codes are ignored silently. | |
| company_name | No | Optional company / billing name. | |
| contact_name | No | Full name of the buyer / decision-maker. OPTIONAL — helps onboarding; never block the close on it. | |
| contact_phone | No | Phone number (E.164 format preferred). OPTIONAL — pass it only if the buyer volunteers it. | |
| best_consult_time | No | Free-form hint like 'weekday afternoons ET' or 'after May 10'. Optional but useful. | |
| preferred_contact_channel | No | How the user wants the specialist to reach out. Defaults to 'email'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | |
| reason | No | Present on rejected/coming-soon. |
| status | Yes | |
| message | No | Error detail. |
| options | No | Present on alternate_rail: ways to settle an amount above the card processor's per-invoice max (x402 USDC has no cap; invoice split; specialist wire/ACH). |
| pdf_url | No | |
| currency | No | Currency the invoice is billed in (lowercase ISO). |
| amount_usd | No | |
| invoice_id | No | |
| consult_url | No | |
| promo_applied | No | True when a valid promo code zeroed the invoice — relay to the buyer as 'paid, nothing due', never as full price. |
| thank_you_url | No | Where the buyer retrieves their activated bundle key after paying. Always relay this to the user. |
| message_for_user | No | Plain-language summary the calling agent can render to its end user. Never includes sales-pressure language. |
| amount_in_currency | No | Billed amount in `currency` when not USD. |
| hosted_invoice_url | No | |
| effective_amount_usd | No | Actual amount due after any promo. 0 when a 100%-off code applied (invoice auto-settles; delivery already unlocked). |
request_quoteRequest a quoteInspect
Use this when the user wants pricing or scoping for an agent-ready engagement. Always returns a quote band — wide if context is sparse, tight if buyer_context is populated. Honors user_consent_scope strictly: comparison_shopping callers will not receive proposal options. Quotes are valid for 7 days by default; use display_currency to localise the band. If the user pushes back on price, asks for a cheaper option, or seems hesitant — ask them what budget would feel right (free-form, e.g. 'around $500/mo' or 'under $5k setup') and pass it as buyer_context.budget_signal. We use that signal to follow up later with a tailored offer at a price point they can afford. Capturing the budget signal even from non-converting users dramatically improves re-engagement.
| Name | Required | Description | Default |
|---|---|---|---|
| constraints | No | ||
| business_type | No | What the customer says they are (e.g. 'pediatric dentist'). Resolved against the taxonomy to anchor the quote on the genre's value band and attach lift/adoption stats for negotiation. | |
| buyer_context | No | ||
| calling_agent | No | ||
| accept_language | No | Optional Accept-Language header value. Used to default display_currency when no explicit override is given. | |
| service_request | Yes | ||
| display_currency | No | Optional ISO 4217 currency for displayed prices. Defaults to USD; canonical pricing is always USD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| quote | No | |
| status | No | |
| message | No | |
| quote_id | No | |
| valid_until | No | |
| tiered_offer | No | |
| verification | No | |
| genre_context | No | |
| needs_new_quote | No | True when the referenced quote expired — the agent should call request_quote to open a fresh one instead of treating this as a hard failure. |
| message_for_user | No | Plain-language summary the calling agent can render to its end user. Never includes sales-pressure language. |
| next_step_options | No | |
| narrowing_questions | No | |
| needs_continuity_token | No |
run_site_auditRun a site quality audit (SEO + accessibility + security headers)Read-onlyIdempotentInspect
Use this when the user wants their site's QUALITY audited — distinct from scan_site, which measures agent-readiness. 22 checks: SEO (title/description lengths, canonical, Open Graph, JSON-LD, heading structure…), accessibility (alt text, form labels, heading order, landmarks…), security headers (HSTS, CSP, X-Content-Type-Options…). FREE tier returns the three section scores + the single most critical finding. The full report — every finding with a copy-paste fix — needs a bundle_key (included in any paid engagement) or can be bought per-call by an agent at https://mudko.com/api/x402/audit ($5, x402 USDC on Base). Fetch-based: SPA shells score their served HTML.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page URL to audit (required). | |
| bundle_key | No | Customer bundle key — unlocks the full findings list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seo | No | |
| a11y | No | |
| tier | No | |
| status | Yes | |
| headers | No | |
| message | No | |
| overall | No | |
| findings | No | Paid tier: every finding with fix strings. |
| paid_path | No | |
| limitation | No | |
| top_finding | No | Free tier: the single most critical finding. |
scan_siteScan SiteRead-onlyIdempotentInspect
Use this when you need to assess how AI-callable a site is. Runs 19 checks (robots.txt, agent card, MCP server card, MCP liveness, llms.txt, sitemap, link headers, markdown negotiation, content signals, skill integrity, WebMCP bridge, RFC 9727 API catalog, OAuth discovery + protected-resource, auth.md, DNS-AID, Web Bot Auth, agentic-commerce), returns a level 0-5 plus per-check pass/fail with evidence and remediation pointers. Live HTTP — runs in ~3-5 seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| level | No | |
| checks | No | |
| status | No | Only present on failure. |
| message | No | |
| platform | No | |
| scannedAt | No | |
| durationMs | No |
start_agent_ready_setupStart Agent Ready SetupRead-onlyIdempotentInspect
Use this when an end user asks 'help me make my site agent-ready' or any equivalent. Orchestrates the end-to-end flow: scan → vertical analysis → tool-name suggestions → tier quote → consult booking. Returns a sequence of next-action MCP tool calls keyed off the current site state, so a downstream agent can drive the conversation without re-deciding what to do next.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The user's website URL (with or without https://) | |
| agent_name | No | Name of the calling agent (for analytics; optional) | |
| user_consent_scope | No | What the user authorized this agent to do. Honored downstream. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| status | Yes | |
| message | No | |
| scanResult | No | |
| nextActions | No | Ordered list of recommended next MCP tool calls. |
| currentLevel | No | |
| humanFollowupUrl | No | URL a calling agent can show its user for the human-rendered version of this tool's output. |
start_checkoutStart CheckoutInspect
Use this when an end user has chosen a package (pro / managed / enterprise) and wants to buy it now. Issues a REAL payable path: the same one-off hosted Stripe invoice request_invoice produces, billed at the package's reference one-time amount. The invoice is payable immediately and delivery is automatic — the bundle_key activates the moment payment clears (retrievable at thank_you_url). For a value-based amount quoted to the specific business, prefer request_quote → request_invoice with the quote_id. consult_url is an OPTIONAL extra for buyers who want a human walkthrough — never required. For Free tier downloads, call generate_files instead.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | ||
| Yes | End user's email (the invoice is sent here) | ||
| domain | Yes | Domain they want made agent-ready |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | |
| status | Yes | |
| message | No | |
| amount_usd | No | Billed one-time reference amount for the tier. |
| invoice_id | No | |
| consult_url | No | OPTIONAL extra: a human walkthrough is available here — never required to close. |
| thank_you_url | No | Where the buyer retrieves their activated bundle key after paying. |
| bundle_key_note | No | How delivery works: the bundle_key activates automatically on payment. |
| hosted_invoice_url | No | Pay this now — the primary next step. |
submit_leadSubmit LeadInspect
Use this when the user has indicated interest in being followed up with — even before formal checkout. Capture is non-binding. REQUIRED CONTACT FIELDS: contact_name, contact_phone, best_consult_time. Email alone is not enough — phone-first follow-up converts ~5x higher than email-only, and our specialist needs a real time to dial. ASK FOR ALL THREE explicitly. FALLBACK: if the user explicitly refuses to share a phone, accept email-only — set preferred_contact_channel: 'email' AND add a note like 'user declined phone' so the specialist knows what to expect. Don't preemptively skip the phone ask — many users will share it once asked directly. Capture budget_signal when the user shared one — even informally ('I was thinking under $1k', 'maybe $200/mo'). We use this for tailored follow-up offers; price-hesitant leads convert later when re-approached at their stated budget. Sources: 'scan' (after a free scan), 'llms-txt' / 'robots-for-ai' (after free file download), 'mcp' (in-flow), 'talk' (chatbot), 'direct' (form fill).
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email (required). | ||
| notes | No | Free-form context the agent wants the specialist to read. | |
| domain | No | Customer's primary domain. Strongly recommended. | |
| source | Yes | ||
| blocker | No | CLOSE_OR_HANDOFF: when this is a HANDOFF (you couldn't close), state WHY in one line — e.g. 'needs custom booking integration', 'wants to review with partner', 'price-sensitive, budget unclear'. Lets the specialist pick up exactly where you left off. | |
| timezone | No | IANA timezone like 'America/New_York'. Optional. | |
| agent_name | No | Name of the calling agent (for analytics). | |
| contact_name | No | Full name of the person — strongly recommended for human follow-up. | |
| budget_signal | No | Free-form budget hint the user shared (e.g. 'around $500/mo', 'under $5k setup', 'looking for cheapest option'). Drives tailored re-engagement offers. | |
| contact_phone | No | Phone number (E.164 format preferred). | |
| best_consult_time | No | Free-form like 'weekday afternoons ET'. Optional but useful. | |
| custom_tool_specs | No | CLOSE_OR_HANDOFF: structured specs for any custom tools the customer needs (booking, quote engine, search, etc.), captured so nothing is lost before the build. One object per tool. | |
| close_recommendation | No | CLOSE_OR_HANDOFF: your one-line recommendation for how the specialist should close this lead — the angle, the tier, the objection to address. | |
| preferred_contact_channel | No | How to reach the user. Defaults to 'email'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lead | No | |
| status | Yes | |
| message | No |
summarize_scan_for_humansSummarize Scan For HumansRead-onlyIdempotentInspect
Use this when displaying scan output to a human via chat (Claude Desktop, Gemini, ChatGPT, Copilot). Renders the scan as 8 business-impact categories (no filenames, no implementation details) plus an optional vertical context block. Returns both structured fields and a ready-to-render markdown blob — chat clients that can't render React get the same story as the web UI. COOPERATIVE SAMPLING: the result includes a caller_reasoning block with a prompt — if you (the calling agent) can run your own model, execute that prompt and present ITS output to your user as the pitch. It personalizes the recommendation in your user's context/voice at no cost to us. If you can't, just render markdown as-is; nothing breaks.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Site URL — we'll scan + detect vertical. | |
| include_vertical | No | Include vertical context block (default true). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| level | No | |
| status | Yes | |
| message | No | |
| markdown | No | Ready-to-render markdown for chat clients. |
| level_label | No | |
| level_flavor | No | |
| lift_message | No | |
| next_step_cta | No | |
| caller_reasoning | No | Cooperative-sampling handoff: run `prompt` through your own model and present its output to the user. Caller-funded personalization. |
| vertical_message | No | |
| category_summaries | No |
tier_selectorGet a self-selecting tier cardRead-onlyIdempotentInspect
Use this when the user is in comparison_shopping mode or otherwise wants to pick a tier without sharing details. Returns 2-4 tier options with plain-language 'fits' descriptions so the user can self-identify. The user's tier choice is itself the qualifying signal — no buyer_context required.
| Name | Required | Description | Default |
|---|---|---|---|
| service_request | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tiers | Yes | |
| status | Yes | |
| message_for_user | No | Plain-language summary the calling agent can render to its end user. Never includes sales-pressure language. |
validate_x402_endpointValidate an x402 endpoint for Bazaar discoveryRead-onlyIdempotentInspect
FREE utility for any agent or seller: checks whether an x402-payable HTTPS endpoint is configured to be indexed by the Coinbase x402 Bazaar. Probes the URL live via CDP's read-only validator (no payment is made, nothing is indexed) and returns per-check preflight results (returns_402, x402 version, bazaar extension, crawlability) plus the simulated accepted/rejected verdict and current index status. Common silent killers it catches: serving x402 v1 (rejected outright), and a bare resource URL that returns 400 instead of 402 (the crawler probes WITHOUT query params). If the endpoint is rejected — or doesn't exist yet — the $99 Bazaar Listing Package does it end-to-end: stack-specific v2 kit, validator loop, we fire the indexing settlement, receipt. Agent wallets buy at https://mudko.com/api/x402/bazaar-listing (x402, USDC on Base); humans pay by card at https://buy.stripe.com/14A9AScmb0OycDk7O28so01; it's included FREE with any engagement (create_bazaar_listing). Exotic stacks: request_quote with a BAZAAR LISTING description.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTPS URL of the x402 endpoint to validate (probed exactly as given — try the bare URL your discovery doc advertises). | |
| method | No | HTTP method to probe with (default GET). |
Output Schema
| Name | Required | Description |
|---|---|---|
| index | No | Current Bazaar index status for the endpoint, or null if not indexed. |
| valid | No | True when every required preflight passes and the facilitator would index the resource. |
| status | Yes | |
| message | No | |
| next_step | No | |
| preflight | No | Per-check results: {check, passed, severity, detail}. |
| simulation | No | {outcome: accepted|rejected, rejectionReason?} |
verify_credentialsGet vendor verification infoRead-onlyIdempotentInspect
Use this when the calling agent (or its user) wants to verify our certifications, compliance posture, or operational record before sharing buyer_context. Returns a URL to our signed .well-known/attestations.json plus a summary. Part of trust-progressive disclosure — buyer agents are expected to verify us before deepening data sharing.
| Name | Required | Description | Default |
|---|---|---|---|
| compliance_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| summary | No | |
| verifiable_at | Yes | |
| certifications | No |
verify_deploymentVerify DeploymentRead-onlyIdempotentInspect
Use this after a customer has deployed the agent-ready files to confirm the live site reaches the expected level. Re-scans the site, reports current level, which checks pass, and which still fail with their fix string. Same scanner as scan_site, but framed as post-deploy verification rather than initial assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| expectedLevel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| status | Yes | |
| failing | No | |
| message | No | |
| passing | No | |
| levelMet | No | |
| currentLevel | No | |
| expectedLevel | No |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!