Haiku-Trading/haiku-mcp-server

Haiku-Trading/haiku-mcp-server

от haiku-trading
MCP-сервер для AI-агентов, выполняющий блокчейн-транзакции через Haiku API: токены, балансы, свопы, поиск доходности и анализ портфеля в 21 сети. Полезен разработчикам DeFi-ботов и автономных агентов.

Haiku MCP Server

An MCP (Model Context Protocol) server that enables AI agents to execute blockchain transactions via the Haiku API.

npm version GitHub

Features

  • Token Discovery: List supported tokens and DeFi assets across 21 blockchain networks
  • Balance Checking: Get wallet balances across all supported chains
  • Trading Quotes: Get quotes for swaps and portfolio rebalancing
  • Transaction Building: Convert quotes to unsigned EVM transactions
  • Wallet Integration: Extract EIP-712 payloads for external wallet signing (Coinbase, AgentKit, Safe, etc.)
  • Self-Contained Execution: Optional end-to-end execution with WALLET_PRIVATE_KEY env var
  • Yield Discovery: Find the highest-yielding DeFi opportunities across protocols and chains, filtered by APY, TVL, and category
  • Portfolio Analysis: Analyze a wallet's holdings and surface context-specific yield opportunities based on what it actually holds

Installation

npm install haiku-mcp-server

Or run directly with npx:

npx haiku-mcp-server

Configuration

Environment Variables
Variable Required Description
HAIKU_API_KEY No Your Haiku API key for higher rate limits. Contact contact@haiku.trade to request one.
HAIKU_BASE_URL No API base URL. Defaults to https://api.haiku.trade/v1
WALLET_PRIVATE_KEY No Private key (0x hex) for self-contained execution via haiku_execute.
RPC_URL_{chainId} No Override RPC URL for a specific chain (e.g., RPC_URL_42161 for Arbitrum).
Инструменты были проиндексированы:
haiku_analyze_portfolio

Анализирует DeFi-портфель кошелька и выявляет релевантные доходные возможности. Возвращает текущие позиции, обогащённые доступными вариантами APY, показателями здоровья залога и контекстно-зависимыми возможностями на основе того, что реально хранится в кошельке. Используйте этот инструмент, когда пользователь спрашивает, что делать с портфелем, или хочет получить совет по оптимизации доходности. Объедините вывод с haiku_discover_yields для получения более широкого рыночного контекста, затем используйте haiku_get_quote для выполнения.

Параметры
  • walletAddressstringобязательный

    Wallet address (0x...) to analyze

haiku_discover_yields

Находит доходные возможности в протоколах DeFi. Возвращает APY, TVL, параметры риска и идентификаторы токенов IID, готовые для haiku_get_quote. Используйте это для ответа на вопросы, например: «лучшие доходы по кредитованию на Arbitrum», «хранилища с самым высоким APY и TVL не менее 1M» или «что я могу сделать с USDC на BNB Chain». Поле iid в результатах можно использовать напрямую в качестве ключа targetWeight в haiku_get_quote.

Параметры
  • categoryenum

    lending=Aave collateral tokens, vault=Yearn/Morpho vaults, lp=Balancer/Uniswap LP, all=every yield-bearing category (default: all)

  • limitnumber

    Maximum number of results (default 20)

  • minApynumber

    Minimum APY filter as a percentage, e.g. 5 means ≥5% APY

  • minTvlnumber

    Minimum TVL filter in USD, e.g. 1000000 means ≥$1M TVL. Use this to filter to established mainstream vaults and exclude low-liquidity pools.

  • networknumber

    Filter by network. Common networks: 42161 (Arbitrum), 8453 (Base), 1 (Ethereum), 137 (Polygon), 10 (Optimism), 56 (BNB Chain)

  • sortByenum

    Sort by APY (default) or TVL, descending

haiku_execute

Выполните котировку. Сначала вызовите haiku_get_quote, затем выберите один из путей: • Путь A — Автономный (установлен WALLET_PRIVATE_KEY): передайте quoteId, sourceChainId, permit2SigningPayload + bridgeSigningPayload (если присутствует в котировке) и approvals. Haiku подписывает Permit2/bridge внутренне, отправляет любые approvals в сеть и транслирует транзакцию. Возвращает хеш транзакции. • Путь B — Внешний кошелёк (без WALLET_PRIVATE_KEY): требуется параметр broadcast: false. Сначала отправьте любые approvals из котировки через ваш MCP-кошелёк (каждый approval — это транзакция {to, data}). Затем, если нужны подписи, вызовите haiku_prepare_signatures → подпишите через MCP-кошелёк → вызовите haiku_execute с quoteId, sourceChainId, полученными подписями и broadcast: false. Возвращает { transaction: { to, data, value, chainId } } — отправьте эту транзакцию через ваш MCP-кошелёк. Всегда передавайте sourceChainId из ответа котировки.

Параметры
  • approvalsobject[]

    approvals from haiku_get_quote. Self-contained mode only: haiku broadcasts these on-chain before the swap. In external wallet mode (broadcast: false), do not pass these — broadcast each approval {to, data} via your wallet MCP before calling haiku_execute.

  • bridgeSigningPayloadobject

    bridgeSigningPayload from haiku_get_quote (cross-chain only, for self-contained signing)

  • broadcastboolean

    If true (default), broadcasts tx. If false, returns unsigned tx.

  • permit2Signaturestring

    Pre-signed Permit2 signature (external wallet mode)

  • permit2SigningPayloadobject

    permit2SigningPayload from haiku_get_quote (for self-contained signing)

  • quoteIdstringобязательный

    Quote ID from haiku_get_quote

  • sourceChainIdnumber

    Chain ID of the source token (from haiku_get_quote). Recommended — if omitted, the server will attempt to recover it from the signing payloads or session cache, but passing it explicitly is safer.

  • userSignaturestring

    Pre-signed bridge intent signature (external wallet mode)

haiku_get_balances

Получает балансы токенов для адреса кошелька. По умолчанию запрашивает данные по всем поддерживаемым цепочкам. Передайте chainIds для частичного обновления — запрашиваются только указанные цепочки, это быстрее и полезно после свопа, когда нужны обновлённые балансы только для исходной и целевой цепочек. Возвращает балансы, цены в USD, общую стоимость портфеля и категоризированные позиции (токены, обеспечение, долг, хранилища). walletAddress необязателен, если в окружении задан WALLET_PRIVATE_KEY.

Параметры
  • chainIdsnumber[]

    Optional list of chain IDs to fetch balances for. When provided, only those chains are queried (partial refresh). Example: [42161, 8453] to re-fetch only Arbitrum and Base after a cross-chain swap. Common chain IDs: 1 (Ethereum), 42161 (Arbitrum), 8453 (Base), 137 (Polygon), 10 (Optimism), 56 (BNB Chain), 80094 (Berachain). Omit to fetch all chains.

  • walletAddressstring

    Wallet address (0x...) or ENS name. Omit to auto-derive from WALLET_PRIVATE_KEY.

haiku_get_quote

Получает котировку для свопа токенов или ребалансировки портфеля. Возвращает ожидаемые результаты, комиссии, оценки газа и все необходимые разрешения. Если требуются подписи (Permit2 или мост), в ответ включаются полезные нагрузки для подписи EIP-712. Два пути выполнения после получения котировки: • Путь A — автономный (установлен WALLET_PRIVATE_KEY): вызывает haiku_execute с quoteId, sourceChainId, permit2SigningPayload + bridgeSigningPayload (если присутствует в этом ответе) и approvals. Haiku подписывает и транслирует автоматически — возвращает хеш транзакции. • Путь B — внешний кошелек (wallet MCP, требуется broadcast: false): (1) сначала транслирует все разрешения {to, data} через wallet MCP; (2) вызывает haiku_prepare_signatures с quoteId, если нужны подписи — подписывает через wallet MCP; (3) вызывает haiku_execute с quoteId, sourceChainId, signatures и broadcast: false — возвращает { transaction: { to, data, value, chainId } } — транслирует транзакцию через wallet MCP.

Параметры
  • inputPositionsobjectобязательный

    Map of token IID to amount. IID format: "<chain-slug>:<token-address>". Supported chain slugs: arb=Arbitrum(42161), base=Base(8453), eth=Ethereum(1), poly=Polygon(137), opt=Optimism(10), bsc=BNB Chain(56), avax=Avalanche(43114), gnosis=Gnosis(100), sonic=Sonic(146), worldchain=World Chain(480), scroll=Scroll(534352), lisk=Lisk(1135), sei=Sei(1329), bera=Berachain(80094), bob=BOB(60808), hype=Hyperliquid(999), katana=Katana(747474), monad=Monad(143), plasma=Plasma(9745), uni=Unichain(130), ape=ApeChain(33139), megaeth=MegaETH(4326). Example: { "arb:0x82aF49447D8a07e3bd95BD0d56f35241523fBab1": "1.5" }

  • receiverstring

    Receiving wallet address. Required when WALLET_PRIVATE_KEY is not set — must be provided explicitly. When WALLET_PRIVATE_KEY is set, auto-derived from it if omitted.

  • slippagenumber

    Max slippage as decimal (e.g., 0.003 for 0.3%). Default: 0.003

  • targetWeightsobjectобязательный

    Map of output token IID to weight (sum to 1). Example: { "arb:0xaf88...": 0.5, "arb:0xFd08...": 0.5 }

haiku_get_tokens

Получает поддерживаемые токены и DeFi-позиции для торговли. Включает обычные токены, залог/долг Aave, доходные хранилища (yield vaults) и LP-токены. Используйте фильтр категорий, чтобы сузить результаты (например, 'collateral' для Aave aTokens). Возвращает IID токенов (уникальные идентификаторы), символы, названия, цены и информацию о сети. Используйте формат IID (chainSlug:tokenAddress) при указании токенов в других инструментах.

Параметры
  • categoryenum

    Filter by token category: 'token' (vanilla tokens), 'collateral' (Aave aTokens), 'varDebt' (Aave debt tokens), 'vault' (Yearn/Morpho vaults), 'weightedLiquidity' (Balancer LP), 'concentratedLiquidity' (Uniswap V3 LP). Omit to return all categories.

  • networknumber

    Filter tokens by network. Common networks: 42161 (Arbitrum), 8453 (Base), 1 (Ethereum), 137 (Polygon), 10 (Optimism), 56 (BSC)

haiku_prepare_signatures

Внешний путь подписи кошелька — используйте его вместо передачи полезных нагрузок подписи напрямую в haiku_execute, когда WALLET_PRIVATE_KEY не установлен или когда подпись обрабатывает MCP кошелька (Coinbase Payments MCP, wallet-agent и т.д.). Извлекает и нормализует полезные нагрузки EIP-712 из котировки в стандартный формат, который может использовать signTypedData любого кошелька. Передавайте quoteId (предпочтительно) — сервер получает полную котировку из кэша сессии. В качестве альтернативы передайте полный объект quoteResponse, если quoteId недоступен. После внешней подписи передайте permit2Signature и/или userSignature в haiku_execute.

Параметры
  • quoteIdstring

    Quote ID from haiku_get_quote (preferred — server resolves the full quote from session cache)

  • quoteResponseobject

    Full response from haiku_get_quote (fallback when quoteId is unavailable)

Похожие MCP-сервера

alchemy/alchemy-mcp-server

alchemy/alchemy-mcp-server

официальный

MCP-сервер для AI-агентов, работающий с блокчейн-данными Alchemy. Позволяет запрашивать цены токенов, NFT, историю транзакций и балансы на нескольких сетях, а также отправлять транзакции и выполнят...

TypeScript88
tumf/web3-mcp

tumf/web3-mcp

MCP-сервер для доступа к блокчейн данным через Ankr Advanced API. Поддерживает Ethereum, BSC, Polygon и другие сети. Позволяет получать NFT метаданные, балансы токенов, транзакции и статистику блоков. Полезен разработчикам Web3 и DeFi-приложений.

Python9
IndigoProtocol/cardano-mcp

IndigoProtocol/cardano-mcp

MCP сервер для работы с блокчейном Cardano из AI-агентов и систем автоматизации. Предоставляет инструменты для подписи транзакций, проверки балансов, стейкинга и управления криптокошельком. Полезен разработчикам и пользователям Cardano, интегрирующим ИИ.

TypeScript4
debridge-finance/debridge-mcp

debridge-finance/debridge-mcp

официальный

MCP сервер deBridge для ИИ-агентов: выполняет кросс-чейн и внутрисетевые свопы, оценивает комиссии и торгует на основных блокчейнах. Упрощает взаимодействие агентов с DeFi, ускоряя развертывание торговых сценариев.

TypeScript32
kukapay/defi-yields-mcp

kukapay/defi-yields-mcp

MCP сервер для AI-агентов с фильтрацией и анализом DeFi-доходностей из DefiLlama. Анализирует APY, 30-дневное среднее и прогнозы. Включает готовый промпт. Помогает находить выгодные yield-возможности.

Python16
bankless/onchain-mcp

bankless/onchain-mcp

официальный

MCP-сервер для доступа к on-chain данным через Bankless API. Позволяет AI-моделям читать контракты, получать события и транзакции на разных сетях. Полезен разработчикам блокчейн-приложений и AI-аге...

TypeScript80
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин