npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@iqai/mcp-near-intents

v0.0.11

Published

An MCP server for NEAR intents swap using the Defuse Protocol one-click SDK.

Readme

NEAR Intents MCP Server

An MCP server for NEAR intents using the Defuse Protocol one-click SDK. This server provides tools for cross-chain token swaps through NEAR's intent-based architecture.

Features

  • GET_NEAR_SWAP_TOKENS: Discover available tokens for swaps
  • GET_NEAR_SWAP_SIMPLE_QUOTE: Get basic swap quotes without addresses
  • GET_NEAR_SWAP_FULL_QUOTE: Get complete quotes with deposit addresses
  • EXECUTE_NEAR_SWAP: Execute swaps by submitting deposit transactions
  • CHECK_NEAR_SWAP_STATUS: Check the status of swap executions

User Flow

This server supports a complete 5-step user flow:

  1. [DISCOVERY] Use GET_NEAR_SWAP_TOKENS to discover available tokens
  2. [STEP 1] Use GET_NEAR_SWAP_SIMPLE_QUOTE to check swap rates without addresses
  3. [STEP 2] Use GET_NEAR_SWAP_FULL_QUOTE to get deposit address when ready to swap
  4. [STEP 3] User sends funds to the deposit address (external action)
  5. [STEP 4] Use EXECUTE_NEAR_SWAP to submit deposit transaction hash
  6. [STEP 5] Use CHECK_NEAR_SWAP_STATUS to monitor swap progress until completion

Prerequisites

  • Node.js >= 16
  • pnpm >= 8
  • A JWT token from the Defuse Protocol (for authentication)

Configuration

Set the following environment variables:

# Optional: Custom API endpoint (defaults to https://1click.chaindefuser.com)
export NEAR_SWAP_API_URL="https://1click.chaindefuser.com"

# Required: JWT token for authentication
export NEAR_SWAP_JWT_TOKEN="your-jwt-token-here"

Usage

Running the Server

# Start the MCP server
pnpm start

# Or run directly
node dist/index.js

Available Tools

1. GET_NEAR_SWAP_TOKENS

Discover available tokens for swaps. Returns token metadata including blockchain, contract address, current USD price, symbol, decimals, and price update timestamp.

Parameters: None

2. GET_NEAR_SWAP_SIMPLE_QUOTE

Get a basic quote for a cross-chain token swap without requiring addresses. Perfect for checking swap rates and fees before committing.

Parameters:

  • originAsset: string - Origin asset identifier (e.g., 'nep141:arb-0xaf88d065e77c8cc2239327c5edb3a432268e5831.omft.near')
  • destinationAsset: string - Destination asset identifier
  • amount: string - Amount to swap (in base units)
  • swapType?: "EXACT_INPUT" | "EXACT_OUTPUT" - Type of swap (default: "EXACT_INPUT")
  • slippageTolerance?: number - Slippage tolerance in basis points (default: 100 = 1%)
  • quoteWaitingTimeMs?: number - Time to wait for quote in milliseconds (default: 3000)

3. GET_NEAR_SWAP_FULL_QUOTE

Get a complete quote with deposit address for a cross-chain token swap. Requires recipient and refund addresses.

Parameters:

  • originAsset: string - Origin asset identifier
  • destinationAsset: string - Destination asset identifier
  • amount: string - Amount to swap (in base units)
  • recipient: string - Recipient address
  • swapType?: "EXACT_INPUT" | "EXACT_OUTPUT" - Type of swap (default: "EXACT_INPUT")
  • recipientType?: "DESTINATION_CHAIN" | "INTENTS" - Recipient address type (default: "DESTINATION_CHAIN")
  • refundTo?: string - Refund address (optional)
  • refundType?: "ORIGIN_CHAIN" | "INTENTS" - Refund address type (default: "ORIGIN_CHAIN")
  • slippageTolerance?: number - Slippage tolerance in basis points (default: 100 = 1%)
  • dry?: boolean - Whether this is a dry run (default: false)
  • depositType?: "ORIGIN_CHAIN" | "INTENTS" - Deposit type (default: "ORIGIN_CHAIN")
  • deadline?: string - Deadline in ISO format (default: 1 hour from now)
  • referral?: string - Referral identifier (optional)
  • quoteWaitingTimeMs?: number - Time to wait for quote in milliseconds (default: 3000)

4. EXECUTE_NEAR_SWAP

Execute a swap by submitting a deposit transaction hash after sending funds to the deposit address.

Parameters:

  • txHash: string - Transaction hash of the deposit transaction
  • depositAddress: string - Deposit address for the swap

5. CHECK_NEAR_SWAP_STATUS

Check the execution status of a swap. Returns swap state and detailed transaction information.

Parameters:

  • depositAddress: string - Deposit address to check status for

Example Usage

1. Discovering Available Tokens

{}

2. Getting a Simple Quote

{
  "originAsset": "nep141:arb-0xaf88d065e77c8cc2239327c5edb3a432268e5831.omft.near",
  "destinationAsset": "nep141:sol-5ce3bf3a31af18be40ba30f721101b4341690186.omft.near",
  "amount": "1000000000000000000",
  "swapType": "EXACT_INPUT",
  "slippageTolerance": 100
}

3. Getting a Full Quote with Deposit Address

{
  "originAsset": "nep141:arb-0xaf88d065e77c8cc2239327c5edb3a432268e5831.omft.near",
  "destinationAsset": "nep141:sol-5ce3bf3a31af18be40ba30f721101b4341690186.omft.near",
  "amount": "1000000000000000000",
  "recipient": "13QkxhNMrTPxoCkRdYdJ65tFuwXPhL5gLS2Z5Nr6gjRK",
  "recipientType": "DESTINATION_CHAIN",
  "refundTo": "0x2527D02599Ba641c19FEa793cD0F167589a0f10D",
  "refundType": "ORIGIN_CHAIN",
  "slippageTolerance": 100,
  "dry": false
}

4. Executing a Swap

{
  "txHash": "0x1234567890abcdef...",
  "depositAddress": "0xabcdef1234567890..."
}

5. Checking Status

{
  "depositAddress": "0xabcdef1234567890..."
}

Token Names vs Token IDs

When users provide simple token names (e.g., 'ETH', 'USDC'), use GET_NEAR_SWAP_TOKENS first to discover the exact token IDs required by the API. The API expects full token identifiers like 'nep141:arb-0xaf88d065e77c8cc2239327c5edb3a432268e5831.omft.near'.

Authentication

This server requires a JWT token for authentication with the Defuse Protocol API. Make sure to set the NEAR_SWAP_JWT_TOKEN environment variable before running the server.

Error Handling

The server provides detailed error messages for common issues:

  • Missing JWT token
  • Invalid request parameters
  • API connection errors
  • Invalid asset identifiers

Development

# Clone the repository
git clone https://github.com/IQAIcom/mcp-near-intents.git
cd mcp-near-intents

# Watch for changes during development
pnpm watch

# Format code
pnpm format

# Lint code
pnpm lint

Related Resources