mcpField
T
tracking-crypto-portfolio

tracking-crypto-portfolio

github.com/aaaaqwqOther11259 installsUpdated today
Repository

About tracking-crypto-portfolio

A Python-based skill for valuing cryptocurrency holdings using current prices from CoinGecko. It presents portfolio composition, gains and losses, and concentration flags, with table, JSON, and CSV output.

Key features

  1. 01Fetch current CoinGecko prices
  2. 02Calculate portfolio value in USD
  3. 03Break down holdings and allocation
  4. 04Track unrealized gains and losses
  5. 05Flag concentrated positions
  6. 06Export as table, JSON, or CSV

Use cases

  1. 01Check total value and leading holdings
  2. 02Review gains, losses, and asset allocation
  3. 03Export portfolio data for analysis or tax reporting

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aaaaqwq/agi-super-team --skill tracking-crypto-portfolio

After installing, type/tracking-crypto-portfolioin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

ARD.md
PRD.md
config/
settings.yaml
references/
errors.md
examples.md
implementation.md
scripts/
formatters.py
portfolio_loader.py
portfolio_tracker.py
price_fetcher.py
valuation_engine.py

Details

From the project README

Tracking Crypto Portfolio

Overview

This skill provides comprehensive cryptocurrency portfolio tracking with:

  • Real-Time Valuations: Current prices from CoinGecko
  • Holdings Breakdown: Quantity, value, and allocation per asset
  • P&L Tracking: Unrealized gains/losses with cost basis
  • Allocation Analysis: Category breakdown and concentration flags
  • Multiple Export Formats: Table, JSON, CSV

Key Capabilities:

  • Track holdings across multiple assets
  • Calculate portfolio total value in USD
  • Identify overweight positions (concentration risk)
  • Export for analysis tools and tax reporting

Prerequisites

Before using this skill, ensure:

  1. Python 3.8+ is installed
  2. requests library is available: pip install requests
  3. Internet connectivity for CoinGecko API access
  4. A portfolio JSON file with your holdings
Portfolio File Format

Create a portfolio file (e.g., holdings.json):

{
  "name": "My Portfolio",
  "holdings": [
    {"coin": "BTC", "quantity": 0.5, "cost_basis": 25000},
    {"coin": "ETH", "quantity": 10, "cost_basis": 2000},
    {"coin": "SOL", "quantity": 100}
  ]
}

Fields:

  • coin: Symbol (BTC, ETH, etc.) - required
  • quantity: Amount held - required
  • cost_basis: Average purchase price per coin (optional, for P&L)
  • acquired: Date acquired (optional, for records)

Instructions

Step 1: Assess User Intent

Determine what portfolio information the user needs:

  • Quick check: Total value and top holdings
  • Holdings list: Full breakdown of all positions
  • Detailed analysis: Allocations, P&L, risk flags
  • Export: JSON or CSV for external tools
Step 2: Execute Portfolio Tracking

Run the tracker with appropriate options:

# Quick portfolio summary
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json

# Full holdings breakdown
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --holdings

# Detailed analysis with P&L and allocations
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --detailed

# Export to JSON
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --format json --output portfolio_export.json

# Export to CSV
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --format csv --output portfolio.csv
Step 3: Present Results

Format and explain the portfolio data:

  • Show total portfolio value prominently
  • Highlight 24h and 7d changes
  • Explain allocation percentages
  • Flag any concentration risks
  • For detailed mode, explain P&L calculations
Command-Line Options
OptionDescriptionDefault
--portfolioPath to portfolio JSON fileRequired
--holdingsShow all holdings breakdownfalse
--detailedFull analysis with P&Lfalse
--sortSort by: value, allocation, name, changevalue
--formatOutput format (table, json, csv)table
--outputOutput file pathstdout
--thresholdAllocation warning threshold25%
--verboseEnable verbose outputfalse
Allocation Thresholds

By default, positions > 25% allocation are flagged:

AllocationRisk LevelAction
< 10%LowNormal position
10-25%MediumMonitor closely
25-50%HighConsider rebalancing
> 50%Very HighSignificant concentration risk

Output

Table Format (Default)
==============================================================================
  CRYPTO PORTFOLIO TRACKER                          Updated: 2026-01-14 15:30
==============================================================================

  PORTFOLIO SUMMARY: My Portfolio
------------------------------------------------------------------------------
  Total Value:    $125,450.00 USD
  24h Change:     +$2,540.50 (+2.07%)
  7d Change:      +$8,125.00 (+6.92%)
  Holdings:       8 assets

  TOP HOLDINGS
------------------------------------------------------------------------------
  Coin     Quantity      Price         Value      Alloc   24h
  BTC      0.500     $95,000.00   $47,500.00    37.9%   +2.5%
  ETH      10.000     $3,200.00   $32,000.00    25.5%   +1.8%
  SOL      100.000      $180.00   $18,000.00    14.4%   +4.2%

  ⚠ CONCENTRATION WARNING: BTC (37.9%) exceeds 25% threshold

==============================================================================
JSON Format
{
  "portfolio_name": "My Portfolio",
  "total_value_usd": 125450.00,
  "change_24h": {"amount": 2540.50, "percent": 2.07},
  "holdings": [
    {
      "coin": "BTC",
      "quantity": 0.5,
      "price_usd": 95000,
      "value_usd": 47500,
      "allocation_pct": 37.9,
      "change_24h_pct": 2.5
    }
  ],
  "meta": {
    "timestamp": "2026-01-14T15:30:00Z",
    "holdings_count": 8
  }
}

Error Handling

See {baseDir}/references/errors.md for comprehensive error handling.

ErrorCauseSolution
Portfolio file not foundInvalid pathCheck file path exists
Invalid JSONMalformed fileValidate JSON syntax
Coin not foundUnknown symbolCheck symbol spelling, use standard symbols
API rate limitedToo many requestsWait and retry, use caching

Examples

See {baseDir}/references/examples.md for detailed examples.

Quick Examples
# Basic portfolio check
python {baseDir}/scripts/portfolio_tracker.py --portfolio ~/crypto/holdings.json

# Show all holdings sorted by allocation
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --holdings --sort allocation

# Detailed analysis with 15% threshold
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --detailed --threshold 15

# Export for tax software
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --format csv --output tax_export.csv

# JSON export for trading bot
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --format json --output portfolio_data.json

Resources

  • CoinGecko API: https://www.coingecko.com/en/api - Free crypto market data
  • Portfolio Schema: See PRD.md for complete portfolio file format
  • Configuration: See {baseDir}/config/settings.yaml for options
  • See {baseDir}/references/examples.md for integration examples

Comments

Markdown supported