Skip to main content
Glama

crypto-portfolio-mcp

README.md3.59 kB
# Crypto Portfolio MCP An MCP server for tracking and managing cryptocurrency portfolio allocations, enabling AI agents to query and optimize portfolio strategies in real time. ![GitHub License](https://img.shields.io/github/license/kukapay/crypto-portfolio-mcp) ![Python Version](https://img.shields.io/badge/python-3.10+-blue) ![Status](https://img.shields.io/badge/status-active-brightgreen.svg) ## Features - **Portfolio Management**: Add and track cryptocurrency holdings with real-time Binance prices. - **Price Retrieval**: Fetch current prices for any Binance trading pair (e.g., BTC/USDT). - **Value History**: Generate visual charts of portfolio value over time. - **Analysis Prompt**: Pre-built prompt for portfolio analysis with diversification and risk suggestions. - **SQLite Storage**: Persistent storage of holdings in a local database. ## Installation ### Prerequisites - Python 3.10+ - Git (optional, for cloning the repo) - A compatible MCP client (e.g., [Claude Desktop](https://www.anthropic.com/claude)) ### Setup 1. **Clone the Repository**: ```bash git clone https://github.com/kukapay/crypto-portfolio-mcp.git cd crypto-portfolio-mcp ``` 2. **Install requirements**: ```bash pip install mcp[cli] ccxt matplotlib ``` 3. **Install for Claude Desktop**: ```bash mcp install main.py --name "CryptoPortfolioMCP" ``` Or update the configuration file manually: ``` { "mcpServers": { "crypto-portfolio-mcp": { "command": "python", "args": [ "path/to/crypto-portfolio-mcp/main.py" ] } } } ``` ## Usage Once installed, interact with the server through an MCP client like Claude Desktop. Below are example commands: ### Add a Holding - **Prompt**: "Add 0.1 BTC to my portfolio" - **Result**: Adds 0.1 BTC/USDT to your portfolio and confirms with "Added 0.1 BTC/USDT to portfolio". ### Get Current Price - **Prompt**: "What's the current price of ETH on Binance?" - **Result**: Returns "Current price of ETH/USDT on Binance: $2000.50" (example price). ### Portfolio Summary - **Prompt**: "What's my current portfolio summary?" - **Result**: Displays a formatted summary, e.g.: ``` Portfolio Summary: BTC/USDT: 0.1 @ $60000.00 = $6000.00 ETH/USDT: 2.0 @ $2000.00 = $4000.00 Total Value: $10000.00 ``` ### Portfolio Value History - **Prompt**: "Show me my portfolio value history" - **Result**: Generates and displays a PNG chart of your portfolio value over time. ### Analyze Portfolio - **Prompt**: "Analyze my crypto portfolio" - **Result**: Provides an analysis with suggestions based on current holdings and Binance market trends. ## Tools The server exposes the following tools: - **`get_portfolio_summary`**: Retrieves a text summary of your current portfolio. - **`add_holding(coin_symbol: str, amount: float)`**: Adds a cryptocurrency holding (e.g., "BTC", 0.1). - **`get_price(coin_symbol: str)`**: Fetches the current price of a trading pair from Binance. - **`portfolio_value_history()`**: Generates a PNG chart of portfolio value history. See the source code docstrings for detailed parameter descriptions. ## Database Holdings are stored in a SQLite database (`portfolio.db`) with the following schema: ```sql CREATE TABLE holdings ( id INTEGER PRIMARY KEY, coin_symbol TEXT, -- e.g., "BTC/USDT" amount REAL, -- Quantity of the asset purchase_date TEXT -- ISO format timestamp ) ``` ## License This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kukapay/crypto-portfolio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server