tamasPetki/HeadlessTracker

tamasPetki/HeadlessTracker

от tamaspetki
MCP сервер для агрегации крипто-портфеля: читает балансы бирж, кошельков и рынков предсказаний в режиме read-only. API-ключи хранятся локально и не передаются ИИ-хосту. Полезен инвесторам и трейдер...

headless-tracker

npm version

🤖 This project is being developed and maintained autonomously by Hex, an AI dev agent. Decisions log: decisions.md · Daily build log: daily-log.md · Hex on Bluesky · Solo team. No human in the dev loop.

⚠️ Not financial advice. HeadlessTracker is a portfolio data aggregation tool. For informational purposes only. See DISCLAIMER.md for full text.

A read-only MCP server that lets your AI host (Claude Desktop, Claude Code, Cursor, ChatGPT) see your whole crypto portfolio across exchanges, on-chain wallets, and prediction markets — without ever giving it your API keys, and with no ability to trade or move funds. It reads the numbers; it can't touch the money.

HeadlessTracker portfolio rendered as a dashboard by an AI host — net worth $116,166 across six venues (Bybit, Binance, MetaMask, Solana, Hyperliquid, Polymarket), with asset-class allocation, per-venue holdings, and open Hyperliquid perp positions shown as informational only.

↑ What your AI host renders from HeadlessTracker's data — one question, six venues, one view. The server returns the numbers; the host draws the picture. (Sample data; the visual is what a host renders on top of the tool output.)

npx headless-tracker demo — a sample six-venue portfolio (Bybit, Binance, MetaMask, Solana, Hyperliquid, Polymarket) rendered in the terminal with no accounts and no API keys

↑ And the raw input: real output of npx headless-tracker demo — six venues, no accounts, no API keys. Then ask your AI host about it.

Часто задаваемые вопросы

Инструменты были проиндексированы:
add_custom_token

Добавляет специфичный для проекта ERC-20 токен в список отслеживаемых токенов аккаунта MetaMask. Встроенные популярные токены (USDC, USDT, WETH, WBTC, LINK, DAI) отслеживаются по умолчанию; этот инструмент предназначен для дополнительных токенов, таких как проектные / управляющие токены. Используйте, когда пользователь просит: «отслеживать токен ARB», «добавить UNI в мой кошелек», «мониторить кастомный ERC-20». Данные токена публичны в блокчейне (контракт + символ + десятичные знаки) — НИКАКИХ секретов, НИКАКОГО keychain не требуется. Входные параметры: - account_id: целевой аккаунт MetaMask (например, 'metamask:0xabc...') - chain_id: числовой (1=Ethereum, 137=Polygon, 56=BSC, 8453=Base, 42161=Arbitrum, 10=Optimism) - contract: адрес контракта с префиксом 0x (40 hex-символов) - symbol: от 1 до 20 символов - decimals: целое число от 0 до 36

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

    Целевой ID аккаунта MetaMask (например, 'metamask:0xabc...').

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

    Идентификатор цепочки EVM: 1=Ethereum, 137=Polygon, 56=BSC, 8453=Base, 42161=Arbitrum, 10=Optimism.

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

    Адрес контракта ERC-20: с префиксом 0x, 40 шестнадцатеричных символов. Публичные данные в блокчейне, не секрет.

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

    Десятичные знаки токена (целое число от 0 до 36; большинство ERC-20 используют 18, USDC/USDT используют 6).

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

    Тикер токена: от 1 до 20 символов (например, 'ARB').

add_wallet_address

Добавляет дополнительный адрес кошелька к существующей учетной записи MetaMask или Solana. Используйте, когда пользователь просит: «добавить еще один кошелек», «отслеживать второй адрес», «добавить адрес MetaMask», «добавить адрес Solana». Новый адрес наследует настройки родительской учетной записи (ключ Etherscan + цепи для MetaMask; URL RPC для Solana). Адреса кошельков — публичные ончейн-идентификаторы — НОВЫЕ секреты не сохраняются. Просто обновляет поле addresses[] в записи связки ключей.Входные данные:- account_id: id существующей учетной записи (например, 'metamask:0xabc...' или 'solana:Abc...')- address: EVM-адрес с префиксом 0x и 40 шестнадцатеричными символами для учетных записей MetaMask, или base58 (32-44 символа) для учетных записей Solana

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

    Id существующего аккаунта MetaMask или Solana, к которому нужно добавить адрес (например, 'metamask:0xabc...' или 'solana:Abc...'). Новый адрес наследует настройки родительского аккаунта.

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

    Адрес кошелька для добавления: EVM-адрес вида 0x-hex (40 шестнадцатеричных символов) для аккаунтов MetaMask или base58-адрес (32-44 символа) для аккаунтов Solana. Публичный ончейн-идентификатор, не секрет.

get_allocations

Возвращает разбивку распределения портфеля — текущую стоимость в долларах США, сгруппированную по выбранному измерению. Используйте это, когда пользователь спрашивает: «как распределён мой портфель», «разбивка по долям», «какой процент в крипте», «разбивка по сетям», «покажи мою крупнейшую позицию», «концентрация». Доступные группы: - 'asset_class' (по умолчанию): crypto / stock / prediction / cash (cash = стейблкоины типа USDC/USDT + фиат) - 'connector': bybit / metamask / polymarket - 'account': одна строка на каждый настроенный аккаунт - 'chain': сеть EVM (Ethereum / Polygon и т.д.) — имеет смысл только для активов в MetaMask - 'symbol': BTC / ETH / отдельный рынок — лучше всего подходит для анализа концентрации по топ-N Каждая строка группы содержит: label, currentValue (USD), percentOfTotal, holdingCount. Отсортированы по убыванию currentValue. Входные параметры: - by: какое измерение использовать для группировки (см. выше). По умолчанию 'asset_class'. - top: ограничить первыми N строками (например, top: 10 для крупнейших позиций). По умолчанию без ограничения. Возвращает только данные о позициях. Не является финансовой консультацией.

Параметры
  • byenum

    Измерение для группировки стоимости в USD (по умолчанию 'asset_class'). 'chain' имеет смысл только для активов в MetaMask; 'symbol' лучше всего подходит для анализа концентрации топ-N.

  • topinteger

    Ограничивает выборку первыми N строками по значению (например, 10 для самых крупных позиций). Оставьте параметр пустым, чтобы не задавать ограничение.

get_holdings

Возвращает текущие портфельные активы по всем подключённым счетам. Используйте этот инструмент, когда пользователь спрашивает: «что у меня есть», «покажи мой портфель», «текущие позиции», «какой мой баланс», «покажи мои активы», «сколько у меня BTC», или хочет получить снимок позиций в криптовалюте/акциях/рынках прогнозов. Для вопросов, специфичных для Polymarket (какие рынки, исходы, статус разрешения или выкупа), предпочтительнее использовать get_polymarket_positions. Для ранжированного распределения / самых крупных позиций предпочтительнее использовать get_allocations. Каждый актив включает: символ, класс актива (crypto / stock / prediction / cash), количество, текущую цену, стоимость в USD и метаданные, специфичные для коннектора (например, chain для EVM, market title для Polymarket, accountType для Bybit). Входные параметры (все необязательные): - account_id: ограничиться одним счётом, например 'metamask:0xabc123...' или 'bybit:UNIFIED'. Опустите, чтобы запросить ВСЕ настроенные счета. - asset_class: ограничиться одним из 'crypto' / 'stock' / 'prediction' / 'cash'. 'prediction' = условные токены Polymarket; 'cash' = стейблкоины (USDC/USDT) + фиат. Опустите для всех классов. - currency: 'USD' | 'EUR' | 'GBP' | 'HUF'. По умолчанию 'USD'. Если установлено значение, отличное от USD, value/currentPrice/avgCost конвертируются по текущим курсам валют (бесплатное API + запасной вариант). Источник конвертации и время получения (fetchedAt) отображаются в meta.fx. Данные нижележащего коннектора не изменяются — это удобство на уровне отображения для пользователей, мыслящих в EUR/HUF/GBP. Результаты кэшируются для каждого коннектора (криптокошельки 60 с, биржи 120 с, Polymarket 30 с). Используйте инструмент 'refresh_data' сначала, если пользователь явно запрашивает свежие / последние данные. Возвращает только данные о позициях. Не является финансовой рекомендацией.

Параметры
  • account_idstring

    Ограничьте выбор одним аккаунтом по идентификатору, например 'metamask:0xabc123...' или 'bybit:UNIFIED'. Опустите параметр, чтобы запросить ВСЕ настроенные аккаунты. Допустимые идентификаторы берите из list_accounts.

  • asset_classenum

    Ограничьтесь одним классом активов. 'prediction' = условные токены Polymarket; 'cash' = балансы в стейблкоинах/фиатных валютах. Опустите для всех классов.

  • currencyenum

    Отображает валюту для value/currentPrice/avgCost (по умолчанию 'USD'). Значения не в USD конвертируются по актуальному курсу FX; курс и источник отображаются в meta.fx. Только для отображения: базовые данные не изменяются.

get_pnl

Возвращает агрегированную прибыль/убыток по всем настроенным счетам. Используйте этот инструмент, когда пользователь спрашивает: «как у меня дела», «какая у меня прибыль/убыток», «я в плюсе или минусе», «покажи прибыль», «покажи убытки» или запрашивает любую сводку по портфелю. Возвращаемые поля по каждому счету и по итогу: - currentValue (USD) — текущая стоимость портфеля - costBasis (USD) — сумма avgCost * количество (там, где коннектор это отслеживает) - unrealizedPnl (USD) — currentValue - costBasis (для ещё открытых позиций) - realizedPnl (USD) — уже закрытая P&L из метаданных коннектора - notes — оговорки по каждому коннектору (например, MetaMask не отслеживает стоимость) Входные параметры (необязательные): - account_id: ограничиться одним счётом. - timeframe: '24h' | '7d' | '30d' | 'ytd' | 'all'. Если установлено значение, отличное от 'all', результат включает блок windowDelta, вычисленный на основе исторических цен CoinGecko. ПРЕДУПРЕЖДЕНИЕ О ПРИБЛИЗИТЕЛЬНОСТИ: он оценивает вашу ТЕКУЩУЮ корзину по историческим ценам по сравнению с текущими — он НЕ учитывает сделки внутри окна. Сообщите об этом пользователю честно. Позиции Polymarket и токены без привязки к CoinGecko пропускаются (учитываются в skippedSymbols). Исторические данные бесплатного уровня CoinGecko имеют дневную детализацию, поэтому '24h' = «вчерашнее закрытие». - include_history (boolean, по умолчанию false): также извлекает транзакции и запускает по ним реестр стоимости, возвращая realizedFromHistory по каждому счету + итог. Требует дополнительного обхода для каждого счёта, но даёт честную реализованную прибыль/убыток по токенам, рождённым в цепочке (награды LP, свопы, нативные аирдропы). Токены, пришедшие через перевод в кошелёк (без цены), получают unknownSalesCount, а не завышенный knownRealized — явная честность в отношении того, какую стоимость мы знаем. ПОЛИМАРКЕТ-СПЕЦИФИЧНО: когда include_history=true, realizedPnl для счёта Polymarket заменяется числом, полученным из стоимости сделок. В режиме по умолчанию realizedPnl для Polymarket остаётся null, потому что cashPnl коннектора смешивает реализованную + нереализованную…

Параметры
  • account_idstring

    Ограничьте область действия одним аккаунтом (например, 'bybit:UNIFIED'). Опустите для P&L по всем аккаунтам.

  • currencyenum

    Отображает валюту для всех числовых полей (по умолчанию 'USD'). Валюты, отличные от USD, конвертируются по живому курсу; источник и курс отображаются в meta.fx. Используйте для дашбордов в единой валюте.

  • include_historyboolean

    По умолчанию: false. Когда true, также получает транзакции и ведет реестр себестоимости для точного realizedFromHistory по каждому аккаунту (по одному дополнительному round-trip на каждый). Необходимо для получения реального реализованного P&L Polymarket (иначе null).

  • methodenum

    Метод расчёта себестоимости при include_history=true (по умолчанию 'fifo'). Использует 'average', если пользователь говорит 'average/avg/weighted cost'. Не влияет при include_history=false.

  • timeframeenum

    По умолчанию используется 'all'. Любое значение, отличное от 'all', добавляет блок windowDelta (текущая корзина оцениватся по историческим и теущим ценам CoinGecko). ПРИБЛИЖЕНИЕ: он НЕ учитывает сделки внутри окна; обязательно укажите эту оговорку. Ежедневная детализация, то есть '24h' означает с момента закртия вчерашних торгов. Wait, careful: I used "по умолчанию" - should be "По умолчанию" with capital П. Also any errors. Let me write correctly: "По умолчанию используется 'all'. Любое значение, отличное от 'all', добавляет блок windowDelta (текущая корзина оценивается по историческим и текущим ценам CoinGecko). ПРИБЛИЖЕНИЕ: он НЕ учитывает сделки внутри окна; обязательно укажите эту оговорку. Ежедневная детализация, то есть '24h' означает с момента закрития вчерашних торгов." Need to fix "вчерашних" -> "вчерашних". Also "закрития" -> "закрытия". Let me redo. Actually I'll type carefully. По умолчанию используется 'all'. Любое значение, отличное от 'all', добавляет блок windowDelta (текущая корзина оцениватся по историческим и теущим ценам CoinGecko). ПРИБЛИЖЕНИЕ: он НЕ учитывает сделки внутри окна; обязательно укажите эту оговорку. Ежедневная детализация, то есть '24h' означает с момента закрития вчерашних торгов. But "текущая" not "текущая"? I'll just produce clean text. Also "ПРИБЛИЖЕНИЕ" - keep. Also "НЕ" in caps. Let me produceПо умолчанию использутся 'all'. Любое значение, отличное от 'all', добавляет блок windowDelta (текущая корзина оценивается по историческим и теущим ценам CoinGecko). ПРИБЛИЖЕНИЕ: он НЕ учитывает сделки внутри окна; обязательно укажите эту оговорку. Ежедневная детализация, то есть '24h' означает с момента закрытия вчерашних торгов.

get_polymarket_positions

Возвращает позиции на рынке предсказаний Polymarket, сгруппированные по событиям, когда это возможно. Используйте этот инструмент, когда пользователь спрашивает о своих ставках на Polymarket конкретно: 'show my Polymarket positions', 'how am I doing on Polymarket', 'what bets do I have', 'show my prediction market positions', 'election bets', 'sports bets' и т.д. Для общих запросов о портфеле, которые упоминают Polymarket вместе с криптовалютами/акциями, используйте get_holdings (с необязательным фильтром asset_class='prediction'). Каждая позиция включает: - market title (понятный человеку вопрос, например 'Will X win the 2024 election?') - outcome ('Yes' / 'No' / имя конкретного кандидата) - quantity (условные токены, каждый стоимостью от 0 до 1 USDC) - currentPrice (от 0 до 1, текущая подразумеваемая вероятность рынка) - currentValue (в USD), avgCost (USD за токен), cashPnl (реализованная + нереализованная прибыль/убыток) - redeemable (true, если рынок разрешён и вы можете получить выплату) - mergeable (true, если вы можете объединить токены Yes+No для гарантированного получения USDC) - endDate (когда рынок разрешается) Входные параметры (необязательные): - account_id: ограничивает одним аккаунтом Polymarket (если у вас их несколько). - group_by_event: 'true' (по умолчанию) группирует исходы Yes+No для одного рынка; 'false' возвращает одну строку на актив. - resolved_only: 'true' возвращает только позиции, доступные для получения (рынки, которые разрешились). По умолчанию 'false' возвращает всё. Возвращает только данные о позициях. Не является финансовой консультацией.

Параметры
  • account_idstring

    Ограничьте одним аккаунтом Polymarket, если настроено несколько. Опустите, чтобы применить ко всем.

  • group_by_eventboolean

    По умолчанию true: группирует исходы «Да» и «Нет» одного рынка в одну строку события. Установите false для одной строки на актив/исход.

  • resolved_onlyboolean

    По умолчанию false (возвращает все позиции). Значение true возвращает только позиции, подлежащие погашению, на рынках, которые уже разрешились.

get_transactions

Возвращает историю транзакций (торги, депозиты, выводы, комиссии, переводы токенов ERC-20) по настроенным аккаунтам. Используйте это, когда пользователь спрашивает: «какие торги я совершал», «покажи мои транзакции», «история транзакций», «недавние покупки», «недавние продажи», «покажи мои депозиты», «когда я купил X», «что я делал на этой неделе» и т.д.Каждая транзакция включает: - type: trade / buy / sell / deposit / withdraw / fee / interest / reward / transfer / resolve - symbol, quantity, price (за единицу на момент транзакции) - fee + feeCurrency - timestamp (ISO 8601) - metadata (специфичные для коннектора: chain, hash, market и т.д.) Входные параметры (опционально): - account_id: ограничить одним аккаунтом. - since: сокращение ('24h', '7d', '30d', '90d') ИЛИ время в эпохальных миллисекундах (например, 1700000000000). По умолчанию: примерно последние 50 транзакций по каждому аккаунту независимо от даты. Ограничения покрытия (V0): - Bybit: полный журнал транзакций - MetaMask: переводы нативных цепочек + переводы токенов ERC-20 (USDC, USDT и т.д.) - Polymarket: торги BUY/SELL из эндпоинта /trades (до ~1000 последних). Возвращает только данные транзакций. Не является финансовой консультацией.

Параметры
  • account_idstring

    Ограничь область одним аккаунтом (например, 'metamask:0xabc...'). Опусти для всех аккаунтов.

  • sincestring

    Нижняя граница времени: сокращенная запись ('24h', '7d', '30d', '90d') или миллисекунды с начала эпохи в виде строки (например, '1700000000000'). Опустите, чтобы получить примерно последние 50 транзакций по аккаунту независимо от даты.

list_accounts

Выводит список настроенных аккаунтов PORTFOLIO TRACKER (Bybit exchange / Binance exchange / MetaMask wallets / Polymarket / Solana wallets / Hyperliquid) без раскрытия учётных данных. Используйте, когда пользователь спрашивает: «какие аккаунты трекера настроены», «покажи мои портфельные аккаунты», «список моих подключений к биржам», «какие криптобиржи подключены», «какие кошельки я отслеживаю», «какие адреса я отслеживаю». Возвращает: id, connectorId (bybit | binance | metamask | polymarket | solana | hyperliquid), label, createdAt и специфичные для коннектора публичные метаданные (например, chainIds и addresses для MetaMask, accountType для Bybit, address для Solana/Hyperliquid, key fingerprint для Binance). Учётные данные НИКОГДА не возвращаются — они остаются в системной связке ключей. НЕ вызывайте этот инструмент, когда пользователь имеет в виду: учётные записи email, социальных сетей, GitHub, облачных сервисов, системных пользователей ОС или любые другие «аккаунты» из другой предметной области или MCP-сервера. Это именно подключения к биржам/кошелькам headless-tracker.

Параметры
  • connectorenum

    Фильтрует аккаунты одного коннектора. Если не указано, перечисляет все настроенные аккаунты.

list_custom_tokens

Перечисляет пользовательские ERC-20 токены, отслеживаемые аккаунтами MetaMask. Публичные данные; секретной информации нет. Используйте, когда пользователь спрашивает: 'какие пользовательские токены я отслеживаю', 'показать мои проектные токены'. Входные данные (необязательно): account_id для фильтрации по одному аккаунту.

Параметры
  • account_idstring

    Фильтрует по одному идентификатору аккаунта MetaMask. Если не указан, выводит список пользовательских токенов по всем аккаунтам.

refresh_data

Инвалидирует кэш PORTFOLIO TRACKER (активы и транзакции Bybit/Binance/MetaMask/Polymarket/Solana/Hyperliquid) и принудительно выполняет новый запрос к вышестоящим API при следующем вызове. Используйте это, когда пользователь просит: «обновить портфель», «обновить мои активы», «получить последние цены портфеля», «загрузить свежие данные портфеля», «проверить текущие курсы криптовалют», «мои балансы устарели», «принудительно обновить», «мои данные устарели» или подразумевает, что требуется актуальность в реальном времени ДЛЯ ТРЕКЕРА. Опционально можно ограничить область действия одним коннектором (bybit, binance, metamask, polymarket, solana, hyperliquid). Без области действия инвалидирует всё, что связано с трекером. НЕ вызывайте этот инструмент, если пользователь имеет в виду: обновление веб-страницы, обновление OAuth-токена, обновление кэша браузера, обновление данных с MCP-сервера, не связанного с трекером. Он инвалидирует только SQLite-кэш headless-tracker. После вызова воспользуйтесь get_holdings или другим инструментом для данных, чтобы фактически получить свежие данные — refresh_data только помечает кэш как устаревший, сам по себе не запускает получение данных.

Параметры
  • connectorenum

    Ограничивает инвалидацию кэша одним коннектором. Если параметр опущен, инвалидирует кэшированные остатки и транзакции кажого трекер-коннектора.

remove_account

Удаляет аккаунт из AccountStore И его учётные данные из системной связки ключей ОС. ОДНОСТОРОННЯЯ операция. Интерфейс Settings требует явного подтверждения пользователя перед вызовом. Используйте, когда пользователь запрашивает: 'remove the Bybit account', 'отключить Polymarket', 'забыть этот кошелек'. Входные данные: - account_id: id аккаунта для удаления (например, 'bybit:UNIFIED', 'metamask:0xabc...'). Возвращает: ok, removedAccountId; или ошибку, если аккаунт не найден.

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

    Идентификатор аккаунта для удаления (например, 'bybit:UNIFIED', 'metamask:0xabc...'). НЕОБРАТИМО: удаляет аккаунт и его учетные данные из связки ключей. Сначала подтвердите действие у пользователя.

remove_custom_token

Удаляет пользовательский ERC-20 токен из списка отслеживаемых токенов аккаунта MetaMask. Использует публичные данные on-chain, без взаимодействия с хранилищем ключей. Применяется, когда пользователь просит: «перестать отслеживать ARB», «удалить этот токен из MetaMask», «отписаться от токена проекта». Входные данные: - account_id: целевой аккаунт MetaMask (например, 'metamask:0xabc...') - chain_id: числовой ID сети (1=Ethereum, 137=Polygon, 56=BSC, 8453=Base, 42161=Arbitrum, 10=Optimism) - contract: адрес контракта с префиксом 0x (40 hex-символов) Возвращает ok или ошибку not_found, если токен не отслеживался для этого аккаунта и сети.

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

    Целевой ID аккаунта MetaMask (например, 'metamask:0xabc...').

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

    ID EVM-сети, на которой отслеживается токен: 1=Ethereum, 137=Polygon, 56=BSC, 8453=Base, 42161=Arbitrum, 10=Optimism.

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

    Адрес контракта ERC-20 для исключения из отслеживания: с префиксом 0x, 40 шестнадцатеричных символов.

render_dashboard

Отображает интерактивную панель PORTFOLIO TRACKER в виде MCP-приложения (живая UI-панель): для криптоактивов, P&L, рынков предсказаний, ончейн-кошельков. Используйте этот инструмент, когда пользователь просит: 'show my portfolio dashboard', 'open my dashboard', 'render the portfolio panel' или хочет получить живую интерактивную сводку активов / еженедельный обзор портфеля / аудит рисков. Три вкладки (Portfolio / Weekly / Risk) с переключателем валюты (USD/EUR/GBP/HUF) и кнопкой обновления. iframe самостоятельно вызывает инструменты (get_holdings / get_pnl / get_allocations / get_transactions / get_polymarket_positions / refresh_data), когда пользователь нажимает на вкладки или кнопку обновления. После открытия дополнительные запросы от вас не требуются. Если хост не отображает MCP-приложения, инструмент всё равно возвращает текстовое подтверждение, но пользователь не увидит живого интерфейса. НЕ вызывайте этот инструмент, когда пользователь имеет в виду другой тип панели (деплои Vercel, ошибки Sentry, метрики Grafana, активность на GitHub, события аналитики и т.д.). Это панель портфеля headless-tracker. Если запрос неоднозначен, попросите пользователя уточнить, какую именно панель он имеет в виду. Входные параметры (оба необязательны): - currency: 'USD' | 'EUR' | 'GBP' | 'HUF'. Начальная валюта отображения. Пользователь может переключать в режиме реального времени. - tab: 'portfolio' | 'weekly' | 'risk'. Начальная активная вкладка. Пользователь может переключать в режиме реального времени.

Панель управления портфелем

Параметры
  • currencyenum

    Начальная валюта отображения для дашборда (по умолчанию 'USD'). Пользователь может переключать её на лету в панели.

  • tabenum

    Изначально активная вкладка (по умолчанию 'portfolio'). Пользователь может переключать вкладки в панели в реальном времени.

render_settings

Отображает панель настроек PORTFOLIO TRACKER в виде приложения MCP (интерактивная UI-панель) — графическая альтернатива настройке через CLI для headless-tracker (подключения Bybit / MetaMask / Polymarket). Используйте, когда пользователь просит: 'открой мои настройки портфеля', 'добавь аккаунт Bybit', 'подключи мой кошелёк MetaMask к трекеру', 'покажи мои аккаунты трекера', 'удали это подключение к бирже', 'добавь пользовательский ERC-20 токен', 'добавь ещё один адрес кошелька для отслеживания'. Четыре вкладки: - Accounts: список настроенных аккаунтов трекера только для чтения с кнопками Remove (диалог подтверждения без возможности отмены). - Add Account: формы для Bybit / MetaMask / Polymarket с явным уведомлением о безопасности. - Wallets: добавление дополнительного адреса кошелька к существующему аккаунту трекера MetaMask. - Custom Tokens: список + добавление/удаление ERC-20 токенов по цепочкам. НЕ вызывайте этот инструмент, когда пользователь имеет в виду: настройки приложения (Claude Desktop / VS Code / браузер), системные параметры, настройки ОС, настройки аккаунта на сайтах, настройки профиля, настройки уведомлений, тему/внешний вид или любые другие настройки UI из другого MCP-сервера. Это именно панель настройки портфельного трекера headless-tracker. Если запрос неоднозначный (просто 'открой настройки'), уточните, какие настройки. ПОВЕДЕНЧЕСКИЙ КОНТРАКТ ДЛЯ ВАС (LLM): Если пользователь вставляет учётные данные прямо в чат, направляйте его к этому интерфейсу настроек, а не вызывайте setup_connector со встроенными значениями — форма не допускает секреты в текст диалога. После того как пользователь воспользуется формой, результат работы инструмента — косметическое подтверждение; НЕ повторяйте и не перефразируйте любые учётные данные, которые могут появиться в диалоге. Входные параметры (необязательные): - tab: 'accounts' | 'add-account' | 'wallets' | 'tokens' — начальная активная вкладка.

Настройки

Параметры
  • tabenum

    Начальная активная вкладка (по умолчанию «accounts»). Пользователь может переключать вкладки прямо в панели.

setup_connector

Создаёт новую учётную запись, записывая учетные данные ТОЛЬКО ДЛЯ ЧТЕНИЯ в системную связку ключей. Используйте, когда пользователь запрашивает: 'добавить аккаунт Bybit', 'подключить Binance', 'подключить мой кошелёк MetaMask', 'настроить Polymarket', 'подключить мой кошелёк Solana', 'отслеживать мой Hyperliquid', 'добавить мой кошелёк Hyperliquid', 'добавить новую биржу'. КОНТРАКТ ПОВЕДЕНИЯ ДЛЯ ВАС (LLM): - После успешного выполнения этого инструмента подтвердите пользователю ТОЛЬКО метку учётной записи и account_id. - НИКОГДА не повторяйте, не записывайте, не перефразируйте и не воспроизводите значения учётных данных (apiKey, apiSecret, etherscanApiKey) в своём ответе. - Если пользователь вставляет учётные данные прямо в чат, предложите ему использовать форму в интерфейсе настроек (инструмент render_settings) — форма не включает секреты в историю переписки. Учётные данные проверяются через вышестоящее API перед сохранением; при неудачной проверке ничего не записывается. Хранилище: системная связка ключей (macOS Keychain / Linux Secret Service / Windows Credential Vault) через @napi-rs/keyring. Тот же путь, что и в процессе настройки через CLI. Все шесть коннекторов по замыслу используют учётные данные ТОЛЬКО ДЛЯ ЧТЕНИЯ (Bybit только 'Read', Binance только 'Enable Reading', Etherscan — это токен с ограничением частоты для публичных данных, прокси-кошелёк Polymarket уже публичный, адреса Solana/Hyperliquid — это публичные ончейн-идентификаторы — Hyperliquid вообще не требует ключа или подписи). Входные данные (требуется один из bybit / binance / metamask / polymarket / solana / hyperliquid): - bybit: { apiKey, apiSecret, accountType: 'UNIFIED'|'CONTRACT'|'SPOT'|'FUND' (основной, он же ID учётной записи), accountTypes?: массив дополнительных типов для распределения (например, ['FUND'] вместе с UNIFIED, чтобы отслеживались балансы фондового кошелька) } - binance: { apiKey, apiSecret, includeFutures (необязательный bool, по умолчанию false), recvWindow (необязательный ms) } - metamask: { address, etherscanApiKey, chainIds (number[]), trackCommonTokens (bool), hasEtherscanPro (bool) } - polymarket: { proxyWallet (0x...), sizeThreshold…

Параметры
  • binanceobject

    Учётные данные Binance (обязательны, когда connector='binance'). API-ключ/секрет только для чтения.

  • bybitobject

    Учётные данные Bybit (требуются при connector='bybit'). API-ключ/секрет только для чтения + тип аккаунта.

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

    Какой коннектор настроить. Укажите соответствующий объект учётных данных ниже (например, для connector='bybit' требуется объект 'bybit'). Все учётные данные изначально доступны ТОЛЬКО ДЛЯ ЧТЕНИЯ.

  • hyperliquidobject

    Конфиг Hyperliquid (обязателен при connector='hyperliquid'). Публичный адрес EVM; ключ и подпись не требуются.

  • metamaskobject

    Конфигурация MetaMask/EVM (обязательна при connector='metamask'). Публичный адрес + ключ ограничения запросов Etherscan + сети.

  • polymarketobject

    Конфигурация Polymarket (обязательна, когда connector='polymarket'). Публичный адрес прокси-кошелька; секретный ключ не требуется.

  • solanaobject

    Конфигурация Solana (обязательна при connector='solana'). Публичный адрес base58, без секретного ключа.

1.0.17основная
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0

Выберите клиент, чтобы установить tamasPetki/HeadlessTracker:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "tamaspetki-headlesstracker-0oybh3xz6k": {
      "args": [
        "-y",
        "headless-tracker"
      ],
      "command": "npx"
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "tamaspetki-headlesstracker-0oybh3xz6k": {
      "args": [
        "-y",
        "headless-tracker"
      ],
      "command": "npx"
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "tamaspetki-headlesstracker-0oybh3xz6k": {
      "type": "stdio",
      "args": [
        "-y",
        "headless-tracker"
      ],
      "command": "npx"
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"tamaspetki-headlesstracker-0oybh3xz6k\",\"type\":\"stdio\",\"args\":[\"-y\",\"headless-tracker\"],\"command\":\"npx\"}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "tamaspetki-headlesstracker-0oybh3xz6k": {
      "args": [
        "-y",
        "headless-tracker"
      ],
      "command": "npx"
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add tamaspetki-headlesstracker-0oybh3xz6k -- npx -y headless-tracker

Либо через JSON-конфиг:

claude mcp add-json tamaspetki-headlesstracker-0oybh3xz6k "{\"args\":[\"-y\",\"headless-tracker\"],\"command\":\"npx\"}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add tamaspetki-headlesstracker-0oybh3xz6k -- npx -y headless-tracker

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.tamaspetki-headlesstracker-0oybh3xz6k]
command = "npx"
args = ["-y", "headless-tracker"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите tamasPetki/HeadlessTracker, а в поле команды запуска — строку ниже:
npx -y headless-tracker

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "tamaspetki-headlesstracker-0oybh3xz6k": {
      "args": [
        "-y",
        "headless-tracker"
      ],
      "command": "npx"
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "tamaspetki-headlesstracker-0oybh3xz6k": {
      "args": [
        "-y",
        "headless-tracker"
      ],
      "command": "npx",
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например tamaspetki-headlesstracker-0oybh3xz6k.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: tamaspetki-headlesstracker-0oybh3xz6k
    command: npx
    args:
      - "-y"
      - "headless-tracker"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "tamaspetki-headlesstracker-0oybh3xz6k": {
      "args": [
        "-y",
        "headless-tracker"
      ],
      "command": "npx"
    }
  }
}

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

blockrunai/blockrun-mcp

blockrunai/blockrun-mcp

официальный

от blockrunai

BlockRun MCP — сервер реал-тайм данных для Claude: рынки, исследования, X/Twitter и крипто без API ключей. Оплата за вызов из USDC-кошелька, подходит трейдерам и аналитикам.

TypeScript⭐ 391
demwick/polymarket-agent-mcp

demwick/polymarket-agent-mcp

от demwick

MCP сервер для Polymarket: 48 инструментов для анализа, копи-трейдинга и бэктестинга. Используется трейдерами и аналитиками для автоматизации работы на рынках предсказаний.

TypeScript⭐ 16
Bybit MCP

Bybit MCP

официальный

от bybit-exchange

MCP-сервер предоставляет 206 инструментов для Bybit: рыночные данные, торговлю и WebSocket-стримы, включая управление аккаунтом. Интегрируется с Claude, Cursor, VS Code. Режим read-only без API-ключа.

TypeScript⭐ 40
tunedforai/x402-mcp

tunedforai/x402-mcp

от tunedforai

Анализирует крипторынок на 20 биржах: снапшоты, ордерфлоу, макрорежим и риски адресов. Работает без API-ключа, бесплатно.

JavaScript⭐ 1
PaulieB14/graph-polymarket-mcp

PaulieB14/graph-polymarket-mcp

от paulieb14

MCP сервер для запроса данных рынка предсказаний Polymarket через The Graph и REST API. Дает AI агентам 31 инструмент: поиск рынков, цены, стаканы, P&L, open interest и статусы разрешения. Часть да...

TypeScript⭐ 4
Haiku-Trading/haiku-mcp-server

Haiku-Trading/haiku-mcp-server

от haiku-trading

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

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

Лука Никитин