{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_wyu79u33t3vu","handle":"ravn","url":"https://wellknown.network/agents/ravn","links":{"self":"https://wellknown.network/agents/ravn/record.json","html":"https://wellknown.network/agents/ravn","markdown":"https://wellknown.network/agents/ravn/record.md","api":"https://wellknown.network/api/v1/agents/ravn","status":"https://wellknown.network/api/v1/agents/ravn/status","claim":"https://wellknown.network/agents/ravn/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/ravn/claim.json","badge":"https://wellknown.network/agents/ravn/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/ravn/history","tools":"https://wellknown.network/api/v1/agents/ravn/tools"},"ard":{"identifier":"urn:air:app.ravn.exchange:server:ravn","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"RAVN","summary":"Cross-chain swap API for native Bitcoin, Solana and EVM chains. No API key, no custody.","description":"Cross-chain swap API for native Bitcoin, Solana and EVM chains. No API key, no custody.","publisher":{"name":"exchange.ravn","url":null},"homepage":null,"repository":"https://github.com/ravndex/ravn-examples","version":"1.0.3","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://app.ravn.exchange/api/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-25T05:34:15.525467Z","publishedAt":"2026-09-25T05:34:15.525467Z","registryName":"exchange.ravn/ravn"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"finance.markets","name":"Markets & Trading","confidence":0.911,"provenance":"derived"}],"categories":["finance"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-10T23:22:10.630Z","lastProbedAt":"2026-10-10T23:22:10.630Z","statusComputedAt":"2026-10-10T23:23:58.333Z","reliability30d":{"probes":108,"successRate":1,"p50Ms":197,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":107,"ok":107,"authBoundaryOk":0,"serviceOk":107,"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-10T23:22:10.630Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":168,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T16:31:37.965Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":399,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T09:24:36.128Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":257,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T03:25:11.781Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":232,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T20:29:45.509Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":147,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T13:29:57.827Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":164,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T06:20:49.615Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":569,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T23:23:15.638Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":153,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T17:26:56.081Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":210,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T10:23:19.872Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":153,"error":null,"detail":{"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"toolCount":10,"toolsHash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","serverName":"ravn","capabilities":["tools"],"serverVersion":"1.0.2","protocolVersion":"2025-06-18"}}],"tools":[{"name":"ravn_quote","description":"Get a swap quote from RAVN — same-chain or cross-chain, across 17 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no AP"},{"name":"ravn_execute","description":"Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE ("},{"name":"ravn_submit_signature","description":"For a SIGNATURE-type ravn_execute result only: submit the signature(s) you collected (over typedData, and approvalData if present) to actually place the order. "},{"name":"ravn_status","description":"Poll the status of a swap by its quoteToken and ref from ravn_execute (statusRef, deposit address, or origin tx hash). Use the quoteToken execute returned — com"},{"name":"ravn_health","description":"Liveness check across every venue RAVN routes through — call before a swap if you want to know whether a route is degraded ahead of time."},{"name":"ravn_tokens","description":"RAVN's own listed token registry for one chain — populate a token picker without hardcoding one. This is \"what RAVN knows about and might route\", not a per-pair"},{"name":"ravn_tokens_resolve","description":"Resolve an arbitrary token address to its metadata (symbol, name, decimals) via an on-chain read — for a paste-any-address flow, when the token isn't necessaril"},{"name":"ravn_btc_coverage","description":"For a swap where native BTC is the source, not every token on the destination chain is reachable. Returns which of ravn_tokens's list on `chainId` a BTC venue c"},{"name":"ravn_chains","description":"Every chain RAVN lists a token registry for (see ravn_tokens). Static, doesn't change per request, safe to cache instead of hardcoding a chain table."},{"name":"ravn_btc_prepare_send","description":"Turns a DEPOSIT-type ravn_execute result (depositAddress + depositAmount) into a ready-to-sign PSBT, so you don't have to write your own UTXO selection and fee-"}],"package":null,"toolSurface":{"id":"ts_rtqurquqvxda","endpointId":"ep_gzjh3xcxj5gc","hash":"1d34c334f026a2bcf4d833ccf4482ca6d003426a45a43391c1e8c9f25918b2e3","toolCount":10,"serverName":"ravn","serverVersion":"1.0.2","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-04T20:28:16.009Z","lastSeenAt":"2026-10-10T23:22:10.636Z","observations":23,"toolNames":["ravn_quote","ravn_execute","ravn_submit_signature","ravn_status","ravn_health","ravn_tokens","ravn_tokens_resolve","ravn_btc_coverage","ravn_chains","ravn_btc_prepare_send"],"distinctSurfaces":12},"endpointFacts":[{"id":"ep_gzjh3xcxj5gc","url":"https://app.ravn.exchange/api/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T06:20:49.625Z","auth":{"observedAt":"2026-10-09T06:20:49.648Z","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-09T06:20:49.674Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"app.ravn.exchange","issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validFrom":"2026-09-04T07:02:59.000Z","validTo":"2026-12-03T07:02:58.000Z","daysToExpiry":53,"sanCount":1,"fingerprint256":"2D:82:3E:DE:22:1D:B1:F8:52:99:EB:7B:EC:6A:A2:EE:32:CB:6E:A6:F2:51:FC:94:CA:A3:E2:08:89:C7:9B:82"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"exchange.ravn/ravn","url":"https://registry.modelcontextprotocol.io/v0/servers/exchange.ravn%2Fravn","firstSeenAt":"2026-09-05T23:21:00.087Z","fetchedAt":"2026-10-09T15:19:37.406Z","normalizedAt":"2026-10-09T15:19:37.406Z"}]},"firstSeenAt":"2026-09-05T23:21:00.087Z","updatedAt":"2026-10-10T23:24:43.117Z"}