Model Context Protocol server providing Claude AI with access to Jupiter's swap API on Solana
Documentation
Jupiter MCP Server
This repository contains a Model Context Protocol (MCP) server that provides Claude with access to Jupiter's Portfolio API and Price API. The server enables Claude to view portfolio positions, track staked JUP tokens, and get real-time token prices on the Solana blockchain.
Overview
The MCP server exposes several tools to Claude:
Portfolio Tools
jupiter_get_positions: Get portfolio positions including wallet balances, staked positions, liquidity pools, farming, vaults, lending, and morejupiter_get_staked_jup: Get information about staked JUP tokens and unstaking positionsjupiter_get_platforms: Get a list of all DeFi platforms integrated with Jupiter's portfolio tracking
Price Tools
jupiter_get_price: Get current prices for one or more tokens, including USD price, 24h price change, and token decimals
API Implementation
This server uses Jupiter APIs:
- Portfolio API v1 (
https://api.jup.ag/portfolio/v1) for portfolio tracking and analytics - Price API v3 (
https://api.jup.ag/price/v3) for real-time token pricing
Both APIs require an API key from Jupiter Portal.
Prerequisites
- Node.js (v16 or higher)
- Claude Desktop application
- Jupiter API key - Get yours at https://portal.jup.ag/
Installation
From npm (recommended)
# Install globally
npm install -g jupiter-mcp-server
# Or use with npx
npx jupiter-mcp-serverFrom source
1. Clone this repository:
git clone https://github.com/quanghuynguyen1902/jupiter-mcp-server.git
cd jupiter-mcp-server2. Install dependencies:
npm ci3. Build the project:
npm run build4. Install globally (optional):
npm install -g ./Configuration
Configure Claude Desktop
To configure Claude Desktop to use this MCP server:
1. Open Claude Desktop
2. Navigate to the Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\\Claude\\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
3. Add the MCP server configuration:
{
"mcpServers": {
"jupiter-mcp-server": {
"command": "npx",
"args": ["jupiter-mcp-server"],
"env": {
"JUPITER_API_KEY": "your_jupiter_api_key_from_portal"
}
}
}
}If you've installed from source and want to run the local version, use:
{
"mcpServers": {
"jupiter-mcp-server": {
"command": "node",
"args": [
"/path/to/your/jupiter-mcp-server/build/index.js"
],
"env": {
"JUPITER_API_KEY": "your_jupiter_api_key_from_portal"
}
}
}
}Environment Variables Description
- JUPITER_API_KEY (required): Your Jupiter API key from https://portal.jup.ag/
Alternative: Using a .env File
If you're running the server directly (not through Claude Desktop), you can create a .env file in the root directory:
JUPITER_API_KEY=your_jupiter_api_key_from_portalRunning Locally
# If installed globally
jupiter-mcp-server
# If installed from source
node build/index.js
# Using npx
npx jupiter-mcp-serverUsage
Once configured, restart Claude Desktop. Claude will now have access to Jupiter portfolio and price tools. You can ask Claude to:
Portfolio Operations
1. View portfolio positions:
Show me the portfolio for address YOUR_WALLET_ADDRESS2. Check staked JUP:
How much JUP is staked for address YOUR_WALLET_ADDRESS?3. List available platforms:
What platforms are supported for portfolio tracking?Price Operations
4. Get token prices:
What's the current price of SOL and USDC?5. Get multiple token prices:
Get prices for these tokens: So11111111111111111111111111111111111111112,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1vTroubleshooting
API Authentication Issues
If you encounter 401 Unauthorized errors:
1. Verify your JUPITER_API_KEY is correctly set in the environment variables
2. Ensure your API key is valid - you can get a new one from https://portal.jup.ag/
3. Check that the API key doesn't have any extra spaces or quotes around it
Development
Adding New Tools
To add new tools to the MCP server:
1. Define the tool in src/tools.ts
2. Create a handler function in the appropriate handler file
3. Add the handler to the handlers object in src/tools.ts
Building
npm run buildTesting
npm testPublishing to npm
Make sure you're logged in to npm:
npm loginThen publish the package:
npm publishTo publish a new version, first update the version in package.json:
npm version patch # or minor, or major
npm publishLicense
MIT
Similar MCP
Based on tags & features
Trending MCP
Most active this week