ChainFolioAI

Read-only crypto and traditional portfolio: holdings, PNL, FIFO tax figures and market data.

Should I use this

Quality & Safety

B
Description quality
95%
Schema completeness
64%
Naming quality
99%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_nfts' description lacks action verbin get_nfts
  • LOWTool 'get_fear_greed' description lacks action verbin get_fear_greed
  • LOWTool description contains role marker that could confuse chat modelsin list_tax_countries

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,661Tokens (tool definitions)
~756 BTypical response size
Significant attention impact (2.08% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "chainfolioai": {
      "url": "https://chainfolioai.com/api/mcp"
    }
  }
}

Remote endpoints

https://chainfolioai.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (23)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_portfolio

Returns the user's latest portfolio snapshot: balances per network (ETH, SOL, BTC, ADA), exchanges (CEX), DeFi and manual assets.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_wallets

Returns the wallets of each portfolio, with addresses as pseudonyms (wallet_…), never in clear.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡get_pnl

The user's portfolio performance in euros: current total and change over 24 h, 7 days, 30 days and since the start, from the saved snapshots.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_realized_gains(year)

The user's realised capital gains using FIFO, in euros, with fees and gas deducted: total, per asset and per year. Not a tax return.

Input Schema

{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "minimum": 2009,
      "maximum": 2100,
      "description": "Calendar year of the sales (optional; without it everything is returned)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_metrics

Advanced portfolio metrics from the saved history: ROI, CAGR, Sharpe, Sortino, Calmar, volatility, maximum and current drawdown, win rate and 95% VaR.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_trades(asset, year, limit)

Transactions recorded by the user (buys, sells and fees), in euros, newest first. Optional filters by asset and year.

Input Schema

{
  "type": "object",
  "properties": {
    "asset": {
      "type": "string",
      "maxLength": 20,
      "description": "Asset symbol (e.g. BTC)."
    },
    "year": {
      "type": "integer",
      "minimum": 2009,
      "maximum": 2100,
      "description": "Calendar year of the transaction."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum number of transactions to return (default 100)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_tax_estimate(country, year, alternative, marginalRate, marginalRateLong)

ESTIMATE of capital-gains tax in a country, in that country's currency: the country's cost method (FIFO, average cost, LIFO, UK pooling, annual sum), each trade converted at the ECB rate of its date, the rules of the year of sale, holding period, annual allowance and, where the law allows, losses carried from previous years. Not a tax return. Each country's options are in list_tax_countries (options field).

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "Two-letter country code (e.g. PT, ES, US). See list_tax_countries."
    },
    "year": {
      "type": "integer",
      "minimum": 2009,
      "maximum": 2100,
      "description": "Tax year of the sales (optional). In the UK and Australia it is the year the tax year starts (2025 = 2025/26)."
    },
    "alternative": {
      "type": "boolean",
      "description": "BR, PT, AR and AT only: the alternative option for where the coins are held (BR foreign exchange; PT broker outside the EU/EEA with no tax treaty; AR sale in pesos; AT Austrian platform)."
    },
    "marginalRate": {
      "type": "number",
      "minimum": 0,
      "maximum": 0.6,
      "description": "Only where the rate depends on income (DE, GB, US, CA, AU, LU, MX): the person's marginal rate as a fraction (0.35 = 35%). Without it the top rate is used."
    },
    "marginalRateLong": {
      "type": "number",
      "minimum": 0,
      "maximum": 0.6,
      "description": "US only: the person's long-term rate as a fraction (0, 0.15 or 0.20, plus 0.038 NIIT if applicable)."
    }
  },
  "required": [
    "country"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_tax_countries

Crypto tax regimes published by ChainFolioAI: short- and long-term rate, holding period, annual allowance and legal reference, per country.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡get_global_market

Global crypto market state: total market cap, 24 h change and Bitcoin and Ethereum dominance.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_derivatives(symbol)

Derivatives data for a symbol on OKX: open interest, long/short ratio, funding, CVD, taker volume, 1 h candles, put/call and a composite sentiment score (0–100).

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "maxLength": 10,
      "description": "Symbol, e.g. BTC (default) or ETH."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_price_on(symbol, date)

Closing price in US dollars of a crypto asset on a date (UTC), from OKX daily candles. Useful to value a past buy or sale.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "maxLength": 10,
      "description": "Symbol, e.g. BTC."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Data em AAAA-MM-DD (UTC)."
    }
  },
  "required": [
    "symbol",
    "date"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_defi_positions

The user's lending positions read from the contracts (Aave V3, Spark, Compound V3, Morpho, EigenLayer) on Ethereum, Arbitrum, Base, Optimism and Polygon: supplied, borrowed and net, with health factor. It queries the blockchain, so it takes a few seconds.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_nfts(chain)

NFTs in the user's EVM wallets on one network. They are not included in the portfolio total (no reliable price).

Input Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "string",
      "enum": [
        "eth",
        "polygon",
        "arbitrum",
        "base",
        "optimism"
      ],
      "description": "Network (default eth)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_portfolio_score

The user's portfolio score (0–100), as shown in the app: diversification, crypto/traditional mix, stablecoin reserve, performance and risk management. A reading aid, not a recommendation to buy or sell.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_whale_activity(watchlist)

Scans the given addresses and returns recent on-chain movements (large transfers, accumulation). Supports ETH, BTC and SOL.

Input Schema

{
  "type": "object",
  "properties": {
    "watchlist": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "pattern": "^(0x[a-fA-F0-9]{40}|(1|3|bc1)[a-zA-HJ-NP-Z0-9]{25,62}|[1-9A-HJ-NP-Za-km-z]{32,44})$"
          },
          "chain": {
            "type": "string",
            "enum": [
              "eth",
              "btc",
              "sol"
            ]
          },
          "label": {
            "type": "string",
            "maxLength": 60
          }
        },
        "required": [
          "address",
          "chain"
        ],
        "additionalProperties": false
      },
      "maxItems": 10,
      "description": "Addresses to watch (max. 10)."
    }
  },
  "required": [
    "watchlist"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_market(limit)

Returns the top crypto assets by market cap (price, market cap, volume, 24h and 7d change).

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 250,
      "description": "How many assets to return (1–250, default 50)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_known_whales

Lists the preloaded known whales (exchanges, funds, public figures, governments) with address and chain. Use the addresses as input to get_whale_activity.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_fear_greed

Crypto market Fear & Greed index (current value 0–100, classification and recent history).

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡get_asset(symbol)

Price, market cap, volume and change (24h/7d) of a crypto asset by symbol (e.g. btc, eth, sol).

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9]{1,20}$",
      "description": "Asset symbol, e.g. btc"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_fire(monthlyExpenses, monthlyInvestment, annualReturn, inflation, currentAge, ...)

Calculates the years to financial independence (4% rule) from expenses, savings, return and age.

Input Schema

{
  "type": "object",
  "properties": {
    "monthlyExpenses": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000,
      "description": "Monthly expenses"
    },
    "monthlyInvestment": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000,
      "description": "Monthly savings/investment"
    },
    "annualReturn": {
      "type": "number",
      "minimum": -50,
      "maximum": 100,
      "description": "Expected annual return in % (default 7)"
    },
    "inflation": {
      "type": "number",
      "minimum": -20,
      "maximum": 100,
      "description": "Annual inflation in % (default 3)"
    },
    "currentAge": {
      "type": "integer",
      "minimum": 0,
      "maximum": 120,
      "description": "Current age (default 30)"
    },
    "currentPortfolio": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000000,
      "description": "Current net worth (default 0)"
    }
  },
  "required": [
    "monthlyExpenses",
    "monthlyInvestment"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_news(limit)

Latest crypto news (CoinDesk, CoinTelegraph): title, source, link and date.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 30,
      "description": "How many news items (default 15)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_btc_blocks

Recent Bitcoin blocks (height, number of transactions, median fee, pool) and recommended mempool fees.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪ask_ai(question)

Ask the AI assistant, in natural language, about your real portfolio (analysis, context, risks). It never gives buy or sell orders. Daily limit per account.

Input Schema

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "maxLength": 1000,
      "description": "The question about the portfolio or the market (max. 1000 characters)."
    }
  },
  "required": [
    "question"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded23 tools
verifiedversion not recorded23 tools
verifiedversion not recorded23 tools
auth requiredversion not recorded—
auth requiredversion not recorded—
auth requiredversion not recorded—