Jupiter API Access (allow AI to Trade Tokens on Solana + Access Balances + Search Tokens + Create Limit Orders )
A Model Context Protocol server for Jupiter API, Solana's premier DEX aggregator. Supports immediate swaps through Ultra API and limit orders through Trigger API.
For easy installation in Claude Desktop:
Download jupiter-mcp-latest.dxt ๐ฅ
The DXT includes:
Note: The DXT file is automatically updated on every commit for the latest features and fixes.
Download the DXT file and double-click to install. See dxt/README.md
for detailed instructions.
๐ Install with .env file โ
๐ Install with Direct Input โ
Note: These links only work in supported MCP clients.
Manual config for .env file approach:
{
"mcpServers": {
"jupiter-mcp": {
"command": "npx",
"args": [
"envmcp",
"--env-file",
"/path/to/your/.env",
"uvx",
"--from",
"git+https://github.com/araa47/jupiter-mcp",
"jupiter-mcp"
]
}
}
}
Replace /path/to/your/.env
with your actual env file path (e.g., /Users/yourname/.env
)
If you prefer to configure directly through Cursor prompts:
๐ Install with Direct Input โ
Note: This link only works in the Cursor app. If viewing on web, copy the link below:
cursor://anysphere.cursor-deeplink/mcp/install?name=jupiter-mcp&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyItLWZyb20iLCJnaXQraHR0cHM6Ly9naXRodWIuY29tL2FyYWE0Ny9qdXBpdGVyLW1jcCIsImp1cGl0ZXItbWNwIl0sImVudiI6eyJQUklWQVRFX0tFWSI6IlJFUExBQ0VfVEhJUyIsIlNPTEFOQV9SUENfVVJMIjoiaHR0cHM6Ly9hcGkubWFpbm5ldC1iZXRhLnNvbGFuYS5jb20iLCJTT0xBTkFfTkVUV09SSyI6Im1haW5uZXQtYmV0YSIsIlJFUVVFU1RfVElNRU9VVCI6IjMwIn19
You'll be prompted to replace REPLACE_THIS
with your actual private key.
Pre-configured values:
SOLANA_RPC_URL
: https://api.mainnet-beta.solana.comSOLANA_NETWORK
: mainnet-betaREQUEST_TIMEOUT
: 30 secondsPRIVATE_KEY
: You'll need to replace REPLACE_THIS
with your base58 encoded private keyAdd this to your MCP client configuration:
{
"mcpServers": {
"jupiter-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/araa47/jupiter-mcp",
"jupiter-mcp"
],
"env": {
"SOLANA_RPC_URL": "https://api.mainnet-beta.solana.com",
"PRIVATE_KEY": "${PRIVATE_KEY}",
"SOLANA_NETWORK": "mainnet-beta",
"REQUEST_TIMEOUT": "30"
}
}
}
}
If you prefer to load environment variables from a .env
file to avoid storing sensitive data in your MCP configuration:
{
"mcpServers": {
"jupiter-mcp": {
"command": "npx",
"args": [
"envmcp",
"--env-file",
"${ENV_FILE_PATH}",
"uvx",
"--from",
"git+https://github.com/araa47/jupiter-mcp",
"jupiter-mcp"
],
"env": {
"ENV_FILE_PATH": ".env"
}
}
}
}
This approach uses envmcp
to securely load your PRIVATE_KEY from a .env
file without exposing it in configuration files. Replace ENV_FILE_PATH
with the absolute path to your .env
file (e.g., /Users/yourname/.env
or /home/user/.env
).
PRIVATE_KEY
: Your base58 encoded Solana private key (from Phantom wallet export)SOLANA_RPC_URL
if you have a custom RPC endpointTool | Description | Parameters | Cost |
---|---|---|---|
get_swap_quote | Get a swap quote and unsigned transaction | input_mint, output_mint, amount | FREE |
execute_swap_transaction | Execute a signed swap transaction | transaction, request_id | PAID |
get_balances | Get token balances for a wallet | wallet_address? | FREE |
get_shield | Get token security information | mints | FREE |
search_token | Search for tokens | query | FREE |
Tool | Description | Parameters | Cost |
---|---|---|---|
create_limit_order | Create a limit order transaction | input_mint, output_mint, making_amount, taking_amount, slippage_bps?, expired_at? | FREE |
execute_limit_order | Execute a limit order transaction | transaction, request_id | PAID |
cancel_limit_order | Cancel a single limit order | order | FREE |
cancel_limit_orders | Cancel multiple limit orders | orders? | FREE |
get_limit_orders | Get active/historical limit orders | order_status, wallet_address?, input_mint?, output_mint?, page? | FREE |
This project includes automated DXT building integrated with pre-commit hooks:
dxt/
folderjupiter-mcp-latest.dxt
for easy downloads# Build DXT
./scripts/build-dxt.sh
# Output: jupiter-mcp-latest.dxt
# Install pre-commit hooks (includes DXT building)
pre-commit install
# The DXT will be automatically built when changes are detected in:
# - dxt/ directory
# - scripts/build-dxt.sh
For local development or testing:
git clone https://github.com/araa47/jupiter-mcp
cd jupiter-mcp
direnv allow
cp .env.example .env
# Edit .env with your configuration
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
PRIVATE_KEY=your_base58_encoded_private_key_here
SOLANA_NETWORK=mainnet-beta
REQUEST_TIMEOUT=30
# Start the server locally
uv run python run_server.py
The project includes comprehensive testing with safety features:
๐ Free Tests (Default - No SOL spent):
๐ฐ Paid Tests (Requires --run-paid-tests
flag):
# Safe tests only (default)
uv run pytest tests/ -v
# Include real trade execution (spends tiny amounts)
uv run pytest tests/ -v --run-paid-tests
# Test with detailed output
uv run pytest tests/ -v --run-paid-tests -s
@pytest.mark.paid
get_swap_quote
, get_balances
, get_shield
, search_token
, create_limit_order
, cancel_limit_order
, cancel_limit_orders
, get_limit_orders
- API calls onlyexecute_swap_transaction
, execute_limit_order
- Executes real trades and spends SOL8cK8hCyRQCp52nVuPLnLL71afkRvRcFibSwHMjGFT8bm
(Referral Dashboard).env
files to version controlenv.example
to .env
and set your private keyREQUEST_TIMEOUT
Your Jupiter MCP server is ready for Solana DeFi interactions! ๐