Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Transports: stdio vs HTTP
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI → MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE ↗ (opens in a new tab)
  • llms.txt ↗ (opens in a new tab)
  • Catalog JSON ↗ (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub ↗ (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. Browse
  3. @agentfund MCP
  4. vs HeadlessTracker
Side-by-Side Model Context Protocol Comparison

@agentfund MCP vs HeadlessTracker

In-depth architectural comparison of the @agentfund MCP and HeadlessTracker MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.

At a Glance & Executive Verdict

@agentfund MCP
Finance & Fintech · Local stdio
Quality: 63/100 (Good) | Auth: other
HeadlessTracker
Finance & Fintech · Local stdio
Quality: 60/100 (Good) | Auth: other
Verdict Summary: Choose @agentfund MCP if you need specialized Finance & Fintech tools running via a local process. Choose HeadlessTracker if your workspace requires Finance & Fintech integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.

Which MCP Server Should You Choose?

@agentfund MCP logo

Choose @agentfund MCP when:

  • You need dedicated capabilities in the Finance & Fintech domain.
  • You prefer local stdio subprocess transport architecture.
  • Your security boundary fits: other (Free / Open Source).
  • Primary tools included: list_projects, get_project, register_agent.
Explore @agentfund MCP Details
HeadlessTracker logo

Choose HeadlessTracker when:

  • You need dedicated capabilities in the Finance & Fintech domain.
  • You prefer local stdio subprocess transport architecture.
  • Your security boundary fits: other (Free / Open Source).
  • Primary tools included: get_holdings, refresh_data, get_pnl.
Explore HeadlessTracker Details

Feature & Specification Comparison

Specification
@agentfund MCP logo
@agentfund MCP
@agentfund
Finance & Fintech
HeadlessTracker logo
HeadlessTracker
tamasPetki
Finance & Fintech
SummaryFundraising infrastructure for AI agents on Solana — campaigns, x402 donations, and on-chain reputation. MCP tools for registering agents, creating campaigns, and donating via the x402 pay-to-call flow, backed by Anchor programs (agentregistry, escrow, reputation). npx -y @agentfund/mcpLocal-first crypto portfolio aggregation across exchanges (Bybit, Binance), EVM and Solana wallets, and Polymarket. Read-only credentials stored in your OS keychain, no hosted service. Data aggregation only, not financial advice. Install with npx headless-tracker.
Category & Scope

Tools & Capabilities Breakdown

@agentfund MCP Tools (9)

list_projects
List fundraising projects on AgentFund. Use this to discover active campaigns to contribute to, or to check the status of recent ones. Each project may include a repoUrl — follow it to inspect the project's code before contributing (see get_project for the full evaluate flow). Read-only — no wallet or signing required. Backed by GET /projects on the AgentFund REST API.
get_project
Fetch full detail for one project — goal, raised amount, status, deadline — plus its milestones and current vote counts. Use this before deciding to contribute or vote. If the project has a repoUrl, fetch that repository and inspect the actual code before deciding — the description is creator-supplied and unverified. Also vet the creator via get_agent_profile. Read-only, backed by GET /projects/:id and GET /projects/:id/milestones.
register_agent
Register the calling wallet as an AgentFund agent (creates an on-chain AgentAccount PDA). Do this once before create_project (which returns 409 agent_not_registered for unregistered wallets) and ideally before contribute/vote so on-chain reputation accrues to your identity. Provide either a pre-pinned metadataUri, or raw name/description/avatar for the API to pin to IPFS for you. Returns an UNSIGNED, base64-encoded Solana transaction (`unsignedTx`) built by the AgentFund API — it does not touch your private key and nothing is broadcast yet. To complete the action: (1) base64-decode `unsignedTx` into a Solana Transaction/VersionedTransaction, (2) sign it locally with your own Solana keypair, (3) base64-encode the signed transaction and POST it to `/tx/send` on the AgentFund REST API as `{ signedTx }`, which returns the broadcast `signature`. Optionally poll `GET /tx/:signature` for confirmation. Never send a private key to this MCP server or the REST API. Backed by POST /tx/build/register_agent.

Ready-to-Paste Client Configurations

Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).

@agentfund MCP Configuration
mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "-agentfund-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@agentfund/mcp"
      ]
    }
  }
}
HeadlessTracker Configuration
mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "tamaspetki-headlesstracker": {
      "command": "npx",
      "args": [
        "-y",
        "headless-tracker"
      ]
    }
  }
}

Frequently Asked Questions

@agentfund MCP is categorized under Finance & Fintech and uses a local stdio subprocess. In contrast, HeadlessTracker belongs to Finance & Fintech using local stdio subprocess. Select @agentfund MCP when you need capabilities focused on finance & fintech and HeadlessTracker when you require tools for finance & fintech.

More alternatives to @agentfund MCPMore alternatives to HeadlessTrackerFinance & Fintech category hub

Related MCP Server Comparisons

Popular comparisons with @agentfund MCP

  • Mossgate MCP logo@agentfund MCP vs Mossgate MCP
  • Mcptoon logo@agentfund MCP vs Mcptoon
  • Agentscoin MCP logo@agentfund MCP vs Agentscoin MCP
  • Sol MCP logo@agentfund MCP vs Sol MCP

Popular comparisons with HeadlessTracker

  • Tonnode MCP logoHeadlessTracker vs Tonnode MCP
Finance & Fintech
Finance & Fintech
Quality signal63/100 (Good)60/100 (Good)
Transport ProtocolLocal Subprocess (stdio)Local Subprocess (stdio)
Auth Requirementotherother
Pricing ModelFree / Open SourceFree / Open Source
Required Env VarsNone requiredNone required
Compatible Clients
Claude DesktopCursorWindsurfClineVS Code
Claude DesktopCursorWindsurfClineVS Code
Install path signalnpx · highnpx · high
Engagement & Health 9 views 0 copies 0 upvotes 5 stars 2 views 0 copies 0 upvotes 5 stars
Verified / OfficialCommunity ListingCommunity Listing
Open full listingView @agentfund MCP ListingView HeadlessTracker Listing
create_project
Launch a new fundraising campaign on AgentFund (creates an on-chain project PDA). Use this when an agent wants to start raising SOL or USDC toward a goal, optionally with staged milestones that gate fund release by vote. Returns an UNSIGNED, base64-encoded Solana transaction (`unsignedTx`) built by the AgentFund API — it does not touch your private key and nothing is broadcast yet. To complete the action: (1) base64-decode `unsignedTx` into a Solana Transaction/VersionedTransaction, (2) sign it locally with your own Solana keypair, (3) base64-encode the signed transaction and POST it to `/tx/send` on the AgentFund REST API as `{ signedTx }`, which returns the broadcast `signature`. Optionally poll `GET /tx/:signature` for confirmation. Never send a private key to this MCP server or the REST API. Backed by POST /tx/build/create_project.
contribute
Contribute (donate) SOL or USDC to an existing AgentFund project — transfers from the calling agent's wallet into the project's escrow PDA once signed and sent. Use this after finding a project via list_projects/get_project that an agent wants to fund. Returns an UNSIGNED, base64-encoded Solana transaction (`unsignedTx`) built by the AgentFund API — it does not touch your private key and nothing is broadcast yet. To complete the action: (1) base64-decode `unsignedTx` into a Solana Transaction/VersionedTransaction, (2) sign it locally with your own Solana keypair, (3) base64-encode the signed transaction and POST it to `/tx/send` on the AgentFund REST API as `{ signedTx }`, which returns the broadcast `signature`. Optionally poll `GET /tx/:signature` for confirmation. Never send a private key to this MCP server or the REST API. Backed by POST /tx/build/contribute.
vote
Cast a vote (support or oppose) on whether a specific project milestone should release its escrowed funds to the creator. Use this after reviewing a project's milestone proof via get_project. One vote per agent wallet per milestone. Returns an UNSIGNED, base64-encoded Solana transaction (`unsignedTx`) built by the AgentFund API — it does not touch your private key and nothing is broadcast yet. To complete the action: (1) base64-decode `unsignedTx` into a Solana Transaction/VersionedTransaction, (2) sign it locally with your own Solana keypair, (3) base64-encode the signed transaction and POST it to `/tx/send` on the AgentFund REST API as `{ signedTx }`, which returns the broadcast `signature`. Optionally poll `GET /tx/:signature` for confirmation. Never send a private key to this MCP server or the REST API. Backed by POST /tx/build/vote.
get_agent_profile
Look up an AgentFund agent's profile by Solana wallet address: reputation score, projects created, total contributed, and history. Use this to vet a project creator or a fellow contributor before contributing or voting. Read-only, backed by GET /agents/:pubkey.
get_platform_stats
Get live AgentFund platform-wide stats: total raised, active project count, registered agent count, and total transaction count. Use this for a quick pulse check on the platform, e.g. before deciding whether to launch a new campaign. Read-only, no input required, backed by GET /stats.
build_transaction
Generic escape hatch for building an unsigned Solana transaction for any AgentFund action (e.g. 'create_project', 'contribute', 'vote', 'release_milestone', 'refund') when you need direct control over the exact action name and params, rather than using the dedicated create_project/contribute/vote tools. Returns an UNSIGNED, base64-encoded Solana transaction (`unsignedTx`) built by the AgentFund API — it does not touch your private key and nothing is broadcast yet. To complete the action: (1) base64-decode `unsignedTx` into a Solana Transaction/VersionedTransaction, (2) sign it locally with your own Solana keypair, (3) base64-encode the signed transaction and POST it to `/tx/send` on the AgentFund REST API as `{ signedTx }`, which returns the broadcast `signature`. Optionally poll `GET /tx/:signature` for confirmation. Never send a private key to this MCP server or the REST API. Backed by POST /tx/build/:action.

HeadlessTracker Tools (15)

get_holdings
Returns current portfolio holdings across all connected accounts. Use this when the user asks: 'what do I own', 'show my portfolio', 'current positions', 'what's my balance', 'show my holdings', 'how much BTC do I have', or wants any snapshot of crypto/stock/prediction-market positions. For Polymarket-specific questions (which markets, outcomes, resolution or redeemable status), prefer get_polymarket_positions. For a ranked split / biggest positions, prefer get_allocations. Each holding includes: symbol, asset class (crypto / stock / prediction / cash), quantity, current price, USD value, and connector-specific metadata (e.g. chain for EVM, market title for Polymarket, accountType for Bybit). Inputs (all optional): - account_id: scope to one account, e.g. 'metamask:0xabc123...' or 'bybit:UNIFIED'. Omit to query ALL configured accounts. - asset_class: scope to one of 'crypto' / 'stock' / 'prediction' / 'cash'. 'prediction' = Polymarket conditional tokens; 'cash' = stablecoins (USDC/USDT) + fiat. Omit for all classes. - currency: 'USD' | 'EUR' | 'GBP' | 'HUF'. Default 'USD'. When set to anything other than USD, value/currentPrice/avgCost are converted via live FX rates (free API + fallback). The conversion source and fetchedAt are surfaced in `meta.fx`. Underlying connector data is unchanged — this is a display-layer convenience for users thinking in EUR/HUF/GBP. Results are cached per-connector (crypto wallets 60s, exchanges 120s, Polymarket 30s). Use 'refresh_data' tool first if the user explicitly asks for fresh / latest data. Returns position data only. Not financial advice.
refresh_data
Invalidates the PORTFOLIO TRACKER cache (Bybit/Binance/MetaMask/Polymarket/Solana/Hyperliquid holdings + transactions) and forces a fresh fetch from upstream APIs on the next call. Use this when the user asks: 'refresh my portfolio', 'update my holdings', 'get the latest portfolio prices', 'fetch fresh portfolio data', 'check current crypto prices', 'my balances look stale', 'force an update', 'my data is outdated', or implies real-time freshness is required FOR THE TRACKER. Optionally scope to a single connector (bybit, binance, metamask, polymarket, solana, hyperliquid). Without a scope, invalidates everything tracker-related. DO NOT call this tool when the user means: refreshing a webpage, refreshing an OAuth token, refreshing browser cache, refreshing data from a non-tracker MCP server. It only invalidates the headless-tracker SQLite cache. After calling this, follow up with get_holdings or another data tool to actually fetch the fresh data — refresh_data only marks the cache as stale, it does not trigger fetches on its own.
get_pnl
Returns aggregate profit/loss across all configured accounts. Use this when the user asks: 'how am I doing', 'what's my P&L', 'am I up or down', 'show profit', 'show losses', or wants any portfolio performance summary. Returned fields per account and across the total: - currentValue (USD) — current portfolio value - costBasis (USD) — sum of avgCost * quantity (where the connector tracks it) - unrealizedPnl (USD) — currentValue - costBasis (for positions still held) - realizedPnl (USD) — already-closed P&L from connector metadata - notes — caveats per connector (e.g. MetaMask doesn't track cost basis) Inputs (optional): - account_id: scope to one account. - timeframe: '24h' | '7d' | '30d' | 'ytd' | 'all'. When set to anything other than 'all', the result includes a `windowDelta` block computed from CoinGecko historical prices. APPROXIMATION CAVEAT: it values your CURRENT basket at historical prices vs current prices — it does NOT account for trades within the window. Communicate this honestly to the user. Polymarket positions and tokens without a CoinGecko mapping are skipped (counted in `skippedSymbols`). CoinGecko free-tier historical is daily granularity, so '24h' = 'yesterday's close'. - include_history (boolean, default false): also pulls transactions and runs a cost-basis ledger over them, returning `realizedFromHistory` per account + total. Costs an extra round-trip per account but unlocks honest realized PnL on tokens born on-chain (LP rewards, swaps, native airdrops). Tokens that arrived via wallet transfer-in (no price) get `unknownSalesCount` not inflated knownRealized — explicit honesty about what cost basis we know. POLYMARKET-SPECIFIC: when include_history=true, the Polymarket account's realizedPnl is replaced by the cost-basis-from-/trades number. Default mode leaves Polymarket realizedPnl null because the connector's cashPnl mixes realized + unrealized — set include_history=true to get the real realized number. - method ('fifo' | 'average', default 'fifo'): cost basis method used when include_history=true. FIFO consumes oldest lot first per sell; Average Cost pools all priced acquisitions and sells out at the running average. If the user mentions 'average cost' / 'avg cost' / 'weighted', use 'average'. Both methods preserve the 'honest unknown' rule: any sell drawing from an unpriced deposit/transfer returns realizedPnl=null, NOT a fabricated number. Has NO effect when include_history=false. - currency ('USD' | 'EUR' | 'GBP' | 'HUF', default 'USD'): when set to anything other than USD, ALL numeric fields (currentValue, costBasis, realizedPnl, unrealizedPnl, windowDelta numbers, realizedFromHistory.knownRealized) are converted via live FX rates. The fx.source + fetchedAt are surfaced in `meta.fx`. Use this for currency-consistent rendering when the user asked their dashboard to be in HUF/EUR/GBP — otherwise per-tab currencies will mismatch. Returns position data only. Not financial advice.
get_polymarket_positions
Returns Polymarket prediction-market positions, grouped by event when possible. Use this when the user asks about their Polymarket bets specifically: 'show my Polymarket positions', 'how am I doing on Polymarket', 'what bets do I have', 'show my prediction market positions', 'election bets', 'sports bets', etc. For general portfolio queries that mention Polymarket alongside crypto/stocks, prefer get_holdings (with optional asset_class='prediction' filter). Each position includes: - market title (human-readable question, e.g. 'Will X win the 2024 election?') - outcome ('Yes' / 'No' / specific candidate name) - quantity (conditional tokens held, each worth 0-1 USDC) - currentPrice (0-1, market's current implied probability) - currentValue (USD), avgCost (USD per token), cashPnl (realized + unrealized) - redeemable (true if market resolved and you can claim payout) - mergeable (true if you can merge Yes+No tokens for guaranteed USDC) - endDate (when the market resolves) Inputs (optional): - account_id: scope to one Polymarket account (if you have multiple). - group_by_event: 'true' (default) groups Yes+No outcomes for the same market; 'false' returns one row per asset. - resolved_only: 'true' returns only redeemable positions (markets that have resolved). Default 'false' returns everything. Returns position data only. Not financial advice.
get_transactions
Returns transaction history (trades, deposits, withdrawals, fees, ERC-20 token transfers) across configured accounts. Use this when the user asks: 'what trades did I make', 'show my transactions', 'transaction history', 'recent buys', 'recent sells', 'show my deposits', 'when did I buy X', 'what did I do this week', etc. Each transaction includes: - type: trade / buy / sell / deposit / withdraw / fee / interest / reward / transfer / resolve - symbol, quantity, price (per-unit at time of transaction) - fee + feeCurrency - timestamp (ISO 8601) - metadata (connector-specific: chain, hash, market, etc.) Inputs (optional): - account_id: scope to one account. - since: shorthand ('24h', '7d', '30d', '90d') OR epoch ms (e.g. 1700000000000). Default: ~last 50 transactions per account regardless of date. Coverage caveats (V0): - Bybit: full transaction log - MetaMask: native chain transfers + ERC-20 token transfers (USDC, USDT, etc.) - Polymarket: BUY/SELL trades from the /trades endpoint (up to ~1000 most recent). Returns transaction data only. Not financial advice.
get_allocations
Returns portfolio allocation breakdown — current USD value grouped by a chosen dimension. Use this when the user asks: 'how is my portfolio split', 'allocation breakdown', 'what % is in crypto', 'chain breakdown', 'show my biggest position', 'concentration'. Groups available: - 'asset_class' (default): crypto / stock / prediction / cash (cash = stablecoins like USDC/USDT + fiat) - 'connector': bybit / metamask / polymarket - 'account': one row per configured account - 'chain': EVM chain (Ethereum / Polygon / etc.) — only meaningful for MetaMask holdings - 'symbol': BTC / ETH / individual market — best for top-N concentration analysis Each group row includes: label, currentValue (USD), percentOfTotal, holdingCount. Sorted descending by currentValue. Inputs: - by: which dimension to group by (see above). Default 'asset_class'. - top: limit to top N rows (e.g. top: 10 for biggest positions). Default no limit. Returns position data only. Not financial advice.
list_accounts
Lists configured PORTFOLIO TRACKER accounts (Bybit exchange / Binance exchange / MetaMask wallets / Polymarket / Solana wallets / Hyperliquid) without exposing credentials. Use when the user asks: 'what tracker accounts are configured', 'show my portfolio accounts', 'list my exchange connections', 'which crypto exchanges are linked', 'which wallets am I tracking', 'what addresses am I tracking'. Returns: id, connectorId (bybit | binance | metamask | polymarket | solana | hyperliquid), label, createdAt, and connector-specific public metadata (e.g. chainIds and addresses for MetaMask, accountType for Bybit, address for Solana/Hyperliquid, key fingerprint for Binance). Credentials are NEVER returned — they stay in the OS keychain. DO NOT call this tool when the user means: email accounts, social media accounts, GitHub accounts, cloud accounts, OS user accounts, or any 'accounts' from a different domain or MCP server. It's specifically the headless-tracker exchange/wallet connections.
setup_connector
Creates a new account by writing READ-ONLY credentials to the OS keychain. Use when the user asks: 'add a Bybit account', 'connect Binance', 'connect my MetaMask wallet', 'set up Polymarket', 'connect my Solana wallet', 'track my Hyperliquid', 'add my Hyperliquid wallet', 'add new exchange'. BEHAVIOR CONTRACT FOR YOU (the LLM): - After this tool succeeds, confirm ONLY the account label and account_id back to the user. - NEVER echo, log, paraphrase, or repeat the credential values (apiKey, apiSecret, etherscanApiKey) in your response. - If the user pastes credentials inline in chat, suggest they use the Settings UI (render_settings tool) form instead — the form keeps secrets out of the conversation transcript. Credentials are validated against the upstream API before they're persisted; if validation fails, nothing is written. Storage: OS keychain (macOS Keychain / Linux Secret Service / Windows Credential Vault) via @napi-rs/keyring. Same path as the CLI setup flow. All six connectors use READ-ONLY credentials by design (Bybit 'Read' only, Binance 'Enable Reading' only, Etherscan is a public-data rate-limit token, Polymarket proxy wallet is already public, Solana/Hyperliquid addresses are public on-chain identifiers — Hyperliquid needs no key or signature at all). Inputs (one of bybit / binance / metamask / polymarket / solana / hyperliquid required): - connector: 'bybit' | 'binance' | 'metamask' | 'polymarket' | 'solana' | 'hyperliquid' - bybit: { apiKey, apiSecret, accountType: 'UNIFIED'|'CONTRACT'|'SPOT'|'FUND' (primary, also the account ID), accountTypes?: array of additional types to fan out across (e.g. ['FUND'] alongside UNIFIED so funding-wallet balances are tracked too) } - binance: { apiKey, apiSecret, includeFutures (optional bool, default false), recvWindow (optional ms) } - metamask: { address, etherscanApiKey, chainIds (number[]), trackCommonTokens (bool), hasEtherscanPro (bool) } - polymarket: { proxyWallet (0x...), sizeThreshold (default 0.01) } - solana: { address (base58), rpcUrl (optional premium RPC), dustThresholdUsd (optional, default 0.5) } - hyperliquid: { address (0x... EVM address you trade from), dustThresholdUsd (optional, default 0.5). No API key — public address only. Tracks perp account equity + open positions + spot balances. }
add_wallet_address
Adds an additional wallet address to an existing MetaMask or Solana account. Use when the user asks: 'add another wallet', 'track a second address', 'add MetaMask address', 'add Solana address'. The new address shares the parent account's settings (Etherscan key + chains for MetaMask; RPC URL for Solana). Wallet addresses are public on-chain identifiers — NO new secrets are stored. Just updates the keychain entry's `addresses[]` field. Inputs: - account_id: id of the existing account (e.g. 'metamask:0xabc...' or 'solana:Abc...') - address: EVM 0x-hex address (40 hex chars) for MetaMask accounts, or base58 (32-44 chars) for Solana accounts
remove_account
Deletes an account from the AccountStore AND its credentials from the OS keychain. ONE-WAY operation. The Settings UI requires explicit user confirmation before calling this. Use when the user asks: 'remove the Bybit account', 'disconnect Polymarket', 'forget that wallet'. Inputs: - account_id: id of the account to remove (e.g. 'bybit:UNIFIED', 'metamask:0xabc...'). Returns: ok, removedAccountId; or error if the account was not found.
add_custom_token
Adds a project-specific ERC-20 token to a MetaMask account's tracked-tokens list. The bundled common tokens (USDC, USDT, WETH, WBTC, LINK, DAI) are tracked by default; this is for additional tokens like project / governance tokens. Use when the user asks: 'track ARB token', 'add UNI to my wallet', 'monitor a custom ERC-20'. Token data is PUBLIC on-chain (contract + symbol + decimals) — NO secrets, NO keychain involved. Inputs: - account_id: target MetaMask account (e.g. 'metamask:0xabc...') - chain_id: numeric (1=Ethereum, 137=Polygon, 56=BSC, 8453=Base, 42161=Arbitrum, 10=Optimism) - contract: 0x-prefixed contract address (40 hex) - symbol: 1-20 chars - decimals: 0-36 integer
remove_custom_token
Removes a custom ERC-20 token from a MetaMask account's tracked-tokens list. Public on-chain data, no keychain involvement. Use when the user asks: 'stop tracking ARB', 'remove that token from MetaMask', 'untrack a project token'. Inputs: - account_id: target MetaMask account (e.g. 'metamask:0xabc...') - chain_id: numeric (1=Ethereum, 137=Polygon, 56=BSC, 8453=Base, 42161=Arbitrum, 10=Optimism) - contract: 0x-prefixed contract address (40 hex) Returns ok or a not_found error if the token wasn't tracked under that account+chain.
+3 more tools listed on main page
  • Agentscoin MCP logoHeadlessTracker vs Agentscoin MCP
  • Signal8 MCP logoHeadlessTracker vs Signal8 MCP
  • Goldbean logoHeadlessTracker vs Goldbean