Skip to main content
Glama

ravn-mcp-glama

ravn-mcp-glama MCP server

Local/stdio MCP server for RAVN — cross-chain swap execution across 12 venues and 16 chains, including native (non-wrapped) Bitcoin as either source or destination. No signup, no API key, 0% protocol fee.

This is a secondary distribution channel. RAVN's primary MCP server is hosted and needs no install at all:

{
  "mcpServers": {
    "ravn": {
      "type": "streamable-http",
      "url": "https://app.ravn.exchange/api/mcp"
    }
  }
}

This package exists for clients and directories that need to build and run an MCP server from source rather than connect to a remote URL — it's a thin client over the same public REST API (docs.ravn.exchange, openapi.json) any integrator already calls. Every tool call here makes a real HTTP request to production. There is no separate logic, no internal RAVN code, and nothing here that isn't already public.

Install

git clone https://github.com/ravndex/ravn-mcp-glama
cd ravn-mcp-glama
npm install
npm run build
{
  "mcpServers": {
    "ravn": {
      "command": "node",
      "args": ["/path/to/ravn-mcp-glama/dist/index.js"]
    }
  }
}

Related MCP server: Relay Protocol MCP Server

Tools

Tool

What it does

ravn_quote

Best-priced route across all 12 venues for a given pair/amount

ravn_execute

Turn a quote into a signable transaction, typed data, or a deposit address

ravn_status

Normalized swap status (pending → processing → success)

ravn_health

Which venues are live right now

ravn_btc_prepare_send

Builds a ready-to-sign PSBT for a Bitcoin-source deposit — runs entirely locally against mempool.space's public API, no RAVN server involved

Custody

RAVN never holds funds and this server never asks for a private key. ravn_execute returns a payload for you to sign — a transaction to broadcast, typed data to sign, or a deposit address to send to.

MIT licensed.

Available Tools

5 tools
ravn_btc_prepare_sendPrepare a signable Bitcoin transaction for a RAVN DEPOSITA
Read-only

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-estimation code. Fetches your UTXOs and the current network fee rate from mempool.space (public, no auth). RAVN never sees or touches a private key — sign the returned PSBT with your own wallet and broadcast it yourself. Only one signer is ever needed (unlike PSBT flows that require coordinating signatures across multiple UTXO-holding wallets), because every RAVN BTC-source venue resolves to a plain single-recipient payment. Runs entirely locally against mempool.space — no RAVN server involved.

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoDefaults to mainnet
toAddressYesdepositAddress from ravn_execute
amountSatsYesdepositAmount from ravn_execute, in satoshis
fromAddressYesYour Bitcoin address holding the UTXOs to spend — native SegWit (bc1q…) or Taproot (bc1p…) only
feeRateSatsPerVbNoOmit to use mempool.space's current halfHourFee estimate

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly discloses that it fetches UTXOs and fee rates from mempool.space, that no private key is seen or touched, and that no RAVN server is involved. This is consistent with the readOnlyHint annotation and gives an agent a clear model of the external dependency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded, but the description becomes repetitive: mempool.space is mentioned twice and the 'no RAVN server involved' sentence largely duplicates the earlier privacy statement. The signer-count digression adds little operational value for a single-recipient payment.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It supplies the necessary workflow context: deposit result to PSBT, then sign and broadcast yourself, with an optional fee-rate override. Since no output schema is present, a little more detail about the exact PSBT output format could improve completeness, but 'ready-to-sign PSBT' is likely sufficient for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Every parameter is already covered in the JSON Schema, and the free-text description reinforces the most important mappings: toAddress is depositAddress and amountSats is depositAmount. It also adds useful constraints such as fromAddress accepting native SegWit or Taproot and feeRateSatsPerVb defaulting to mempool.space's halfHourFee.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action: turning a DEPOSIT-type ravn_execute result into a ready-to-sign PSBT. It gives the exact input mapping (depositAddress + depositAmount) and clearly distinguishes this preparation step from the broader quote/execute/status/health workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly positions the tool as the step after ravn_execute for DEPOSIT flows and says it eliminates the need for custom UTXO selection and fee estimation. It does not explicitly enumerate cases where this tool should not be used, though none of the sibling tools appear to provide PSBT preparation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ravn_executeExecute a RAVN swap quoteA

Turn a quoteToken from ravn_quote into an execution payload. Returns one of three shapes (executionType): TRANSACTION (sign and broadcast yourself), SIGNATURE (sign, RAVN submits), or DEPOSIT (send the input asset to a given address). RAVN never takes custody of funds — you always sign or send from your own wallet. TRANSACTION and SIGNATURE may also include an approval — an ERC-20 approve() you must broadcast and wait to be MINED before the transaction/signature, or it fails (reverts on TRANSACTION; on SIGNATURE the order is accepted and silently never fills). Only present when the sold token needs it — omitted for native-coin sells and already-approved tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNoYour RAVN API key, if you have one — raises your rate limit (see https://docs.ravn.exchange/tools/get-api-key)
quoteTokenYesThe quoteToken returned by ravn_quote
refundAddressNoLate-bound refund recipient if the swap fails
destinationAddressNoLate-bound output recipient, for venues that need it at execution time rather than quote time

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is highly transparent about side effects: it may require an approval transaction, the approval must be mined before proceeding, failure modes are described for both TRANSACTION and SIGNATURE types, and it explicitly states RAVN never takes custody. This matches the annotations and gives the agent important behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but each sentence carries important operational detail, such as approval mining, failure modes, and non-custodial behavior. It is somewhat repetitive with the approval explanation, but the structure remains clear and purposeful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description does a strong job of explaining the possible return shapes, the meaning of executionType, the approval requirement, and failure behavior. It provides enough context for an agent to understand what will happen and what actions may be required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters, and the description adds useful semantics for refundAddress and destinationAddress by labeling them as late-bound. It also explains the apiKey's purpose and links to documentation. This goes beyond the schema without being redundant.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: turning a quoteToken from ravn_quote into an execution payload. It explicitly identifies the source of the input and distinguishes the execution action from quote creation, making its role obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context by referencing ravn_quote and explaining the three execution types. It does not explicitly contrast with sibling tools like ravn_status or ravn_btc_prepare_send, but the intended flow is clear and adequately guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ravn_healthCheck RAVN venue healthA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint and openWorldHint annotations already indicate this is a safe, non-mutating read. The description adds purpose but does not disclose any additional behavioral traits beyond the annotations (e.g., no mention of caching, latency, or failure semantics). It does not contradict the annotations, so a baseline score is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence with a clear benefit clause. It wastes no words and immediately conveys the tool's purpose and usage context. The structure is perfectly scannable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully covers the tool's role in the overall RAVN workflow (pre-swap health check), enough for an agent to decide when to invoke it. Given the tool's simplicity (no params, no output schema), nothing essential is omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no properties, and the description adds no parameter details (correctly, since there are none). With no parameters, the schema coverage is effectively complete, and the description does not need to elaborate. No information is missing, so a neutral baseline is suitable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a liveness check across all venues RAVN routes through, using a specific verb ('check') and a specific resource ('venue health'). It distinguishes itself from the sibling swap/quote/execute/status tools by focusing on proactive route degradation detection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to call before a swap to know whether a route is degraded ahead of time, giving both a clear trigger (before swap) and a concrete benefit. This implicitly tells the agent when not to use it (e.g., during execution) and separates it from the execution-oriented siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ravn_quoteGet a RAVN swap quoteA
Read-only

Get a swap quote from RAVN — same-chain or cross-chain, across 16 chains including native (non-wrapped) Bitcoin and Solana as source or destination. Free, no API key or payment required. Returns a quoteToken; pass it to ravn_execute to get a signable/broadcastable execution payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNoYour RAVN API key, if you have one — raises your rate limit (see https://docs.ravn.exchange/tools/get-api-key)
inputTokenYesToken contract address, or 0xEeeeeEeeeEeEeeEeEeEeeeEEeeeeEeeeeeeeEEeE for the chain's native coin
inputAmountYesPositive integer string, in the input token's smallest unit (no decimals)
outputTokenYesToken contract address, or 0xEeeeeEeeeEeEeeEeEeEeeeEEeeeeEeeeeeeeEEeE for the chain's native coin
rankingModeNobest_output (default) picks the highest net output; fastest picks the quickest-settling quote within slippageBps
slippageBpsNoMax acceptable slippage in basis points
userAddressYesAddress the input asset will be sent from
inputChainIdYesNumeric chain id, e.g. 1=Ethereum, 8453=Base, -1=Bitcoin, -2=Solana — see ravn_health for the live venue list
outputChainIdYesNumeric chain id, e.g. 1=Ethereum, 8453=Base, -1=Bitcoin, -2=Solana — see ravn_health for the live venue list
refundAddressNoWhere to refund the input asset if the swap fails — defaults to userAddress
destinationAddressNoWhere output should land, if different from userAddress

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states it is free and requires no API key, adding useful behavioral context beyond the readOnlyHint annotation. It also explicitly says it returns a quoteToken and directs the user to ravn_execute, making the behavior and next steps transparent. No contradictions with annotations exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, one sentence with a clear structure. It front-loads the primary action (get a swap quote), then provides key attributes (cross-chain, 16 chains, native Bitcoin/Solana, free), and ends with the output and follow-up step. Every word adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, no output schema), the description adequately explains the tool's role, what it returns (a quoteToken), and how to use that output with ravn_execute. It does not describe the quote structure or error cases, but that information is not necessary for basic invocation since parameters are fully documented. The description covers the essential context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The main description does not add additional parameter-level clarifications beyond what the schema already provides. It reinforces the overall purpose but does not enhance understanding of individual parameters, so a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: obtaining a swap quote from RAVN, including same-chain and cross-chain across 16 chains. It specifies the resource (RAVN), the action (get a quote), and the scope, and it distinguishes itself from ravn_execute by explaining that the returned quoteToken is passed to ravn_execute for execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage pattern: call this tool to get a quote, then pass the quoteToken to ravn_execute. It also notes that no API key is required, which is a practical prerequisite. However, it does not explicitly mention alternative tools like ravn_health or when not to use this tool, but the main flow is clear enough for an agent to know when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ravn_statusCheck RAVN swap statusA
Read-only

Poll the status of a swap by its quoteToken and the ref returned by ravn_execute (deposit address for DEPOSIT venues, statusRef for SIGNATURE venues). Status is authoritative where the venue exposes it; some venues (Rift, Jupiter, Bebop, 0x Gasless) report 'unknown' honestly rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesdeposit address (DEPOSIT venues) or statusRef (SIGNATURE venues) from ravn_execute
apiKeyNoYour RAVN API key, if you have one — raises your rate limit (see https://docs.ravn.exchange/tools/get-api-key)
quoteTokenYesThe quoteToken from ravn_quote — the venue is decoded from it

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates safety, and the description adds useful behavioral nuance by noting that status may be 'unknown' for some venues and that the tool reports honestly rather than guessing. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, uses two tight sentences, and contains no redundant or unnecessary wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter set and lack of output schema, the description fully covers the tool's purpose, input sources, and important venue-specific edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters and their meanings; the description mostly restates the same information about quoteToken and ref. It adds little beyond the schema, so it stays at the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it polls swap status using a quoteToken and a ref from ravn_execute, and distinguishes this from the related quote, execute, health, and BTC prepare tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context for when to call the tool, namely after ravn_execute, and explains how to interpret unknown statuses. It does not explicitly state when not to use it, but the usage context is strong enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv1.0.0
    • First observedravn_btc_prepare_send
    • First observedravn_execute
    • First observedravn_health
    • First observedravn_quote
    • First observedravn_status

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: quote, execute, status, health, and BTC-specific preparation. No overlap or ambiguity between them.

Naming Consistency5/5

All tools follow a consistent ravn_<action> pattern, using clear verb-based names (quote, execute, status, health, btc_prepare_send).

Tool Count5/5

Five tools is a well-scoped set for a swap API, covering the essential user-facing operations without unnecessary bloat.

Completeness4/5

The core swap flow (quote, execute, status) plus health and BTC-specific preparation is well covered. A cancel/refund operation could be a minor addition, but the existing set handles the primary use cases.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables cross-chain cryptocurrency swap quotes and operations using the deBridge DLN protocol. Provides read-only access to swap estimates, supported chains, token information, and order status tracking across multiple blockchain networks.
    1
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables cross-chain bridging, multi-chain token swaps, and real-time pricing across over 50 blockchain networks using the Relay Protocol REST API. It allows users to browse thousands of tokens, generate quotes, and monitor transaction status directly through natural language.
    9
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Free DEX aggregator API that returns executable swap calldata across 46 EVM chains. No API key required. Single GET request returns ready-to-sign transactions for any token pair.
    22
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ravndex/ravn-mcp-glama'

If you have feedback or need assistance with the MCP directory API, please join our Discord server