{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_e2hzbx9zf5aj","handle":"ghostswap","url":"https://wellknown.network/agents/ghostswap","links":{"self":"https://wellknown.network/agents/ghostswap/record.json","html":"https://wellknown.network/agents/ghostswap","markdown":"https://wellknown.network/agents/ghostswap/record.md","api":"https://wellknown.network/api/v1/agents/ghostswap","status":"https://wellknown.network/api/v1/agents/ghostswap/status","claim":"https://wellknown.network/agents/ghostswap/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/ghostswap/claim.json","badge":"https://wellknown.network/agents/ghostswap/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/ghostswap/history","tools":"https://wellknown.network/api/v1/agents/ghostswap/tools"},"ard":{"identifier":"urn:air:mcp.ghostswap.io:server:ghostswap","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"GhostSwap MCP server","summary":"Remote MCP server to list coins, quote, create and track no-KYC crypto swaps. No API key.","description":"Remote MCP server to list coins, quote, create and track no-KYC crypto swaps. No API key.","publisher":{"name":"ghostswap.io","url":"https://ghostswap.io"},"homepage":"https://ghostswap.io","repository":"https://github.com/ghostswap1/ghostswap-agents","version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.ghostswap.io/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://mcp.ghostswap.io/sse","type":"mcp_sse","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"ard":{"type":"application/mcp-server-card+json","metadata":null,"identifier":"urn:air:ghostswap.io:server:ghostswap-mcp","artifactUrl":"https://ghostswap.io/.well-known/mcp/server-card.json","representativeQueries":["swap bitcoin to monero without kyc","get a quote for eth to xmr","create a crypto swap without an account","check the status of my ghostswap swap","exchange zcash no kyc"]},"updatedAt":"2026-06-07T13:35:22.731049Z","publishedAt":"2026-06-07T13:35:22.731049Z","registryName":"io.github.ghostswap1/mcp"},"attribution":{"kind":"ard_catalog","name":"ard_catalog","repoUrl":"mcp_registry","summary":"ard_catalog","version":"mcp_registry","description":"ard_catalog","homepageUrl":"ard_catalog","publisherUrl":"ard_catalog","publisherName":"ard_catalog"}},"derived":{"capabilities":[{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.859,"provenance":"derived"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.525,"provenance":"derived"}],"categories":["commerce","dev"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-09T23:29:14.832Z","lastProbedAt":"2026-10-09T23:29:14.832Z","statusComputedAt":"2026-10-09T23:31:08.033Z","reliability30d":{"probes":113,"successRate":0.9558,"p50Ms":557,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":113,"ok":108,"authBoundaryOk":0,"serviceOk":108,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-09T23:29:14.832Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":494,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T16:33:21.050Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":700,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T10:22:28.239Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":614,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T03:23:45.714Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":484,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T20:24:48.486Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":544,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T14:22:22.924Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":470,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T07:26:28.707Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":577,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T01:22:01.539Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":494,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T18:26:06.962Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":889,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T12:31:10.154Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":545,"error":null,"detail":{"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"toolCount":6,"toolsHash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","serverName":"ghostswap-partners","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"list_currencies","description":"List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. [\"btc\",\"eth\",\"ltc\"])."},{"name":"get_pair","description":"Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes."},{"name":"validate_address","description":"Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter "},{"name":"get_quote","description":"Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode=\"fixed\" locks the rate and return"},{"name":"create_swap","description":"Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass "},{"name":"get_swap","description":"Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC r"}],"package":null,"toolSurface":{"id":"ts_shpne6s9rwek","endpointId":"ep_j263349bfcmw","hash":"ed384d2f1a2c97243ddd27ce97bef79b4a2f46edcda583bfb3a088568f4e1509","toolCount":6,"serverName":"ghostswap-partners","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T14:25:19.119Z","lastSeenAt":"2026-10-09T23:29:14.823Z","observations":100,"toolNames":["list_currencies","get_pair","validate_address","get_quote","create_swap","get_swap"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_j263349bfcmw","url":"https://mcp.ghostswap.io/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-06T17:26:36.055Z","auth":{"observedAt":"2026-10-06T17:26:36.070Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-06T17:26:36.085Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"ghostswap.io","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-03T06:38:12.000Z","validTo":"2027-01-01T07:37:51.000Z","daysToExpiry":83,"sanCount":3,"fingerprint256":"19:34:D8:E5:BC:6C:FF:74:45:BB:0B:97:67:A9:09:63:3E:71:3A:07:79:40:FA:F1:4F:3B:80:05:87:FE:0B:51"}},{"id":"ep_bxua2nm44spe","url":"https://mcp.ghostswap.io/sse","type":"mcp_sse","factsCheckedAt":"2026-09-27T20:28:18.722Z","auth":null,"tls":{"observedAt":"2026-09-27T20:28:18.738Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"ghostswap.io","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-08-04T23:39:08.000Z","validTo":"2026-11-03T00:38:36.000Z","daysToExpiry":23,"sanCount":3,"fingerprint256":"35:FE:DE:1E:1F:4E:B9:81:15:28:39:8E:3C:E7:A2:43:33:6D:06:9C:78:52:26:30:53:D2:FE:8D:14:71:07:8C"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.ghostswap1/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.ghostswap1%2Fmcp","firstSeenAt":"2026-09-06T15:21:15.112Z","fetchedAt":"2026-10-07T12:22:02.049Z","normalizedAt":"2026-10-07T12:22:02.049Z"},{"source":"ard_catalog","key":"urn:air:ghostswap.io:server:ghostswap-mcp","url":"https://ghostswap.io/.well-known/ai-catalog.json","firstSeenAt":"2026-10-05T16:21:28.989Z","fetchedAt":"2026-10-05T16:21:28.989Z","normalizedAt":"2026-10-05T16:21:28.989Z"}]},"firstSeenAt":"2026-09-06T15:21:15.112Z","updatedAt":"2026-10-09T23:31:50.117Z"}