@easynodexyz/mcp-x402
v0.1.3
Published
MCP server for AI agents to purchase VPS/Node products via Easy Node's x402 API with USDC on Base
Maintainers
Readme
@easynodexyz/mcp-x402
MCP server for AI agents to purchase VPS and blockchain node products via Easy Node's x402 API with USDC on Base.
Overview
This package provides a Model Context Protocol (MCP) server that enables AI assistants to:
- List available VPS and blockchain node products
- Purchase products using USDC on Base network
- Check order status
- Manage running instances (list, view details, renew, rename)
The x402 payment flow is handled automatically - the agent simply calls the tools and payments are processed seamlessly.
Quick Start
1. Install & Setup
npx @easynodexyz/mcp-x402 setupThis interactive wizard will:
- Prompt for your wallet private key
- Save configuration to
~/.easy-node/.env - Output the IDE config to copy
2. Configure Your IDE
Choose your IDE and add the MCP server configuration.
Install as Claude Code Plugin
/plugin add easynodexyz/mcp-x402Documentation
Full documentation available at x402.easy-node.xyz.
IDE Configurations
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"easynode-x402": {
"command": "npx",
"args": ["@easynodexyz/mcp-x402"]
}
}
}Config file locations:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Claude Code (CLI)
Add MCP server using the /mcp command:
claude /mcp add @easynodexyz/mcp-x402 -- npx @easynodexyz/mcp-x402Or manually add to your Claude Code settings (~/.claude/settings.json):
{
"mcpServers": {
"easynode-x402": {
"command": "npx",
"args": ["@easynodexyz/mcp-x402"]
}
}
}Config file locations:
- macOS/Linux:
~/.claude/settings.json - Windows:
%USERPROFILE%\.claude\settings.json
Cursor
Add to your Cursor settings (.cursor/mcp.json in your project or global config):
{
"mcpServers": {
"easynode-x402": {
"command": "npx",
"args": ["@easynodexyz/mcp-x402"]
}
}
}Config file locations:
- Project:
.cursor/mcp.jsonin project root - Global macOS:
~/.cursor/mcp.json - Global Windows:
%USERPROFILE%\.cursor\mcp.json
VS Code + Continue
Add to your Continue configuration (~/.continue/config.json):
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "npx",
"args": ["@easynodexyz/mcp-x402"]
}
}
]
}
}Other MCP-Compatible Tools
For any MCP-compatible tool, use this stdio transport configuration:
| Field | Value |
| --------- | --------------------------- |
| Command | npx |
| Args | ["@easynodexyz/mcp-x402"] |
| Transport | stdio |
With environment variables:
{
"command": "npx",
"args": ["@easynodexyz/mcp-x402"],
"env": {
"EASYNODE_PRIVATE_KEY": "0x...",
"EASYNODE_API_URL": "..."
}
}3. Restart Your IDE
Restart to load the MCP server.
4. Use It
Ask your AI assistant:
- "List available VPS products"
- "Purchase 1 month of the VPS-XS product"
- "Check the status of order abc123"
- "List my instances"
- "Get connection details for instance xyz"
- "Renew instance xyz for 3 months"
Configuration
Environment Variables
| Variable | Required | Default | Description |
| ---------------------- | -------- | ----------------------------- | -------------------------- |
| EASYNODE_PRIVATE_KEY | Yes | - | Wallet private key (0x...) |
| EASYNODE_API_URL | No | https://api.easy-node.xyz/api | API base URL |
| EASYNODE_MAX_PAYMENT | No | 100 | Max USDC per transaction |
Config Resolution Order
Configuration is loaded from multiple sources (later overrides earlier):
~/.easy-node/.env- Global config./.env- Project-level config- Environment variables - Highest priority
Alternative: Manual Configuration
Instead of running setup, you can configure manually:
Option A: Pass env vars in MCP config
{
"mcpServers": {
"easynode-x402": {
"command": "npx",
"args": ["@easynodexyz/mcp-x402"],
"env": {
"EASYNODE_PRIVATE_KEY": "0x..."
}
}
}
}Option B: Create config file manually
Create ~/.easy-node/.env:
EASYNODE_PRIVATE_KEY=0x...
EASYNODE_API_URL=https://api.easy-node.xyz/api
EASYNODE_MAX_PAYMENT=1000MCP Tools
list_products
List available VPS and blockchain node products with USDC pricing.
Parameters:
category(optional): Filter by"vps"or"node"
Example:
List all VPS products available for purchasecreate_order
Purchase a product using USDC on Base. Handles x402 payment automatically.
Parameters:
productId(required): Product ID to purchaseperiod(required): Subscription period in monthsquantity(optional): Number of instances (default: 1)customName(optional): Custom name for the instance (max 100 characters)
Example:
Purchase 3 months of product abc123get_order
Check the status of an existing order.
Parameters:
orderId(required): Order ID to look up
Example:
Check status of order xyz789list_instances
List all instances owned by the wallet.
Example:
List all my instancesget_instance
Get detailed instance information including connection details.
Parameters:
instanceId(required): Instance ID to look uptype(required): Instance type ("node"or"vps")
Example:
Get connection details for VPS instance abc123renew_instance
Renew an existing instance subscription.
Parameters:
instanceId(required): Instance ID to renewperiod(required): Renewal period in monthstype(required): Instance type ("node"or"vps")
Example:
Renew my VPS instance abc123 for 3 monthsupdate_custom_name
Set or update the custom name of an instance.
Parameters:
instanceId(required): Instance ID to updatetype(required): Instance type ("node"or"vps")customName(required): Custom name (max 100 characters)
Example:
Rename instance abc123 to "my-validator"Security
- Private keys are stored with 600 permissions (owner read/write only)
- Max payment limit prevents accidental large transactions
- Wallet only signs EIP-3009 TransferWithAuthorization for USDC
How x402 Works
- Agent calls
create_orderwith product details - First request returns HTTP 402 with payment requirements
- Client signs USDC transfer authorization (EIP-3009)
- Retry with payment signature
- Server verifies, settles on-chain, creates order
- Order returned to agent
Troubleshooting
"EASYNODE_PRIVATE_KEY is required"
Run npx @easynodexyz/mcp-x402 setup or set the environment variable.
"Payment amount exceeds maximum"
Increase EASYNODE_MAX_PAYMENT in your config or env vars.
"402 response missing payment-required header"
The API endpoint may not support x402. Check you're using the correct API URL.
MCP server not appearing in IDE
- Verify the config file location is correct for your OS
- Check JSON syntax is valid
- Restart the IDE completely (not just reload)
- Check IDE logs for MCP connection errors
Contributing
Found a bug or have a feature request? Please open an issue at github.com/easynodexyz/mcp-x402/issues.
Links
License
BUSL-1.1
