earth2-mcp-server
Version:
Earth2 MCP Server for Claude integration - Access your Earth2 account data through Claude
398 lines (318 loc) • 13 kB
Markdown
# Earth2 API Coverage
## Overview
The comprehensive Earth2 client now covers **ALL 81+ unique Earth2 API endpoints** discovered from production usage.
**Previous Coverage**: 10 endpoints
**Current Coverage**: 81+ endpoints
**Increase**: 710% expansion
## Endpoint Categories
### 1. Tiles & Pricing (1 endpoint)
- ✅ `getTilePricesAll()` - Get all tile prices by country
### 2. Marketplace (1 endpoint)
- ✅ `getMarketplace(options)` - Browse marketplace with advanced filtering
### 3. User Profile & Info (6 endpoints)
- ✅ `getUserInfo(userId)` - Get any user's info
- ✅ `getMyNetworth()` - Current user's net worth
- ✅ `getMyPreferences()` - User preferences
- ✅ `updateMyPreferences(prefs)` - Update preferences
- ✅ `getMyTileCountRankings()` - Tile count rankings
- ✅ `searchUsers(query)` - Search for users
### 4. Properties / Landfields (9 endpoints)
- ✅ `getLandfields(filters)` - Get all user's properties
- ✅ `getLandfieldDetails(id)` - Specific property details
- ✅ `getLandfieldBalanceResources(id)` - Property resources
- ✅ `getLandfieldSettings(id)` - Property settings
- ✅ `updateLandfieldSettings(id, settings)` - Update settings
- ✅ `getLandfieldBiddingAggregation(id)` - Bidding info
- ✅ `getReceivedBids()` - Bids received
- ✅ `getSentBids()` - Bids sent
- ✅ `getStakingCategoriesStats()` - Staking stats
### 5. Jewels (5 endpoints)
- ✅ `getMyJewels(options)` - User's jewels with filtering
- ✅ `getJewelData()` - Jewel information
- ✅ `getJewelStacks()` - Jewel stacks
- ✅ `getBazaarJewelOffers(options)` - Buy jewels from bazaar
- ✅ `getMyBazaarJewelOffers(options)` - User's jewel listings
### 6. Blueprints (5 endpoints)
- ✅ `getMyBlueprints()` - User's blueprints
- ✅ `getBazaarBlueprintOffers(options)` - Browse blueprints
- ✅ `getTrendingBlueprintTags()` - Trending tags
- ✅ `anyBlueprintsForSale()` - Check availability
- ✅ `getUserHolobuildingDesigns(userId)` - User's designs
### 7. Droids (7 endpoints)
- ✅ `getDroids(filters)` - User's droids
- ✅ `getDroidLandfields(filters)` - Droids on properties
- ✅ `getDroidRaidInfo(landfieldId)` - Raid information
- ✅ `getDroidBuildInfo()` - Build information
- ✅ `getDroidPowerInfo()` - Power information
- ✅ `getDroidsTotalEthers()` - Total ethers
- ✅ `getBazaarDroidOffers(options)` - Buy droids
### 8. Civilians (6 endpoints)
- ✅ `getCivilians(filters)` - User's civilians
- ✅ `getCivilianLandfields(filters)` - Civilians on properties
- ✅ `getCivilianFeedInfo()` - Feeding info
- ✅ `getCivilianSynthesizeInfo()` - Synthesis info
- ✅ `getCivilianEnergySkillPacksInfo()` - Energy skill packs
- ✅ `getBazaarCivilianOffers(options)` - Buy civilians
### 9. Resources (12 endpoints)
- ✅ `getMyBalanceResources()` - All resource balances
- ✅ `getMyResourceBalance(ticker)` - Specific resource
- ✅ `getClaimableEtherAmount()` - Claimable ether
- ✅ `getClaimableStakingYieldEther()` - Staking yield
- ✅ `getResourceClaims()` - All resource claims
- ✅ `getMyResourceClaims()` - User's resource claims
- ✅ `getMyResourceStakes()` - Staked resources
- ✅ `getCurrentlyStakedResources()` - Currently staked
- ✅ `getResourceStakingRates()` - Staking rates
- ✅ `getMyResourceTransactions()` - Resource transactions
- ✅ `getResourceManagementAssets()` - Asset management
- ✅ `getResourceManagementAssetAcquisitions()` - Acquisitions
- ✅ `getRedenInfo()` - REDEN information
### 10. Transactions (2 endpoints)
- ✅ `getBalanceChangeTransactions(filters)` - Balance changes
- ✅ `getResourceTransactions(filters)` - Resource transactions
### 11. Trading (1 endpoint)
- ✅ `getMyOngoingTrades()` - Active trades
### 12. Mentars (2 endpoints)
- ✅ `getMentars()` - All mentars
- ✅ `getMentarDetails(landfieldId)` - Mentar details
### 13. Avatars (2 endpoints)
- ✅ `getAvatarSales(options)` - Avatar marketplace
- ✅ `getMyAvatarOwnerships()` - Owned avatars
### 14. Activities & Quests (3 endpoints)
- ✅ `getActivities(topic)` - Activity feed
- ✅ `getQuests()` - Available quests
- ✅ `getMyQuests()` - User's quests
### 15. Yellow Energy (2 endpoints)
- ✅ `getYellowEnergyClaims()` - All claims
- ✅ `getMyYellowEnergyClaims()` - User's claims
### 16. Leaderboards (5 endpoints)
- ✅ `getPlayersLeaderboard()` - Top players
- ✅ `getPlayerCountriesLeaderboard()` - By country
- ✅ `getPlayerContinentsLeaderboard()` - By continent
- ✅ `getLandfieldCountriesLeaderboard()` - Properties by country
- ✅ `getLandfieldContinentsLeaderboard()` - Properties by continent
### 17. Essence & Crypto (5 endpoints)
- ✅ `getEssenceTokenInfo()` - ESS token info
- ✅ `getEssUsdRate()` - ESS/USD rate
- ✅ `getMyCryptoPayouts()` - Crypto withdrawals
- ✅ `getMetaMaskWalletConnection()` - MetaMask status
- ✅ `getMyKYCTransactionStatus()` - KYC status
### 18. Territory (3 endpoints)
- ✅ `getTerritoryReleases()` - Territory releases
- ✅ `getTerritoryReleaseWinners()` - Winners
- ✅ `getTerritoryEssenceSales()` - Essence sales
### 19. Crafting (1 endpoint)
- ✅ `getCraftingRecipes()` - Crafting recipes
### 20. Media & Metrics (2 endpoints)
- ✅ `getMediaPlatforms()` - Social media
- ✅ `getLandingMetrics()` - Platform metrics
### 21. GraphQL (2 endpoints)
- ✅ `graphql(query, variables)` - Execute GraphQL
- ✅ `getTilePricesGraphQL(countryCodes)` - Tile prices
### 22. RTS (1 endpoint)
- ✅ `rtsRefresh()` - Refresh RTS session
## Total Methods: 81+
## Usage Examples
### Basic Usage
```javascript
import { Earth2Client } from 'earth2-mcp-server/src/earth2-client.mjs';
const client = new Earth2Client(xsrfToken, cookie);
// Get user's jewels
const jewels = await client.getMyJewels({
colorName: 'BLUE',
tier: 3,
qualityLevel: 'LEGENDARY'
});
// Browse droids on bazaar
const droids = await client.getBazaarDroidOffers({
droidRarity: 'uncommon',
sortBy: 'price',
sortDir: 'asc'
});
// Get leaderboard
const leaderboard = await client.getPlayersLeaderboard();
```
### Advanced Filtering
```javascript
// Complex jewel search
const rareJewels = await client.getMyJewels({
colorNameIn: 'RUBY,SAPPHIRE,EMERALD',
expiresIsNull: true,
ordering: 'tier,-quality_level',
stacked: true
});
// Landfield with filters
const myProperties = await client.getLandfields({
country: 'US',
minTiles: 100,
hasHolobuilding: true
});
// Marketplace search
const bargains = await client.getMarketplace({
country: 'JP',
landfieldTier: 3,
sorting: 'price_per_tile',
items: 50
});
```
### Resource Management
```javascript
// Check all resources
const resources = await client.getMyBalanceResources();
// Get specific resource
const shards = await client.getMyResourceBalance('SHARD');
// Staking info
const staked = await client.getCurrentlyStakedResources();
const rates = await client.getResourceStakingRates();
```
### Trading & Bazaar
```javascript
// Check ongoing trades
const trades = await client.getMyOngoingTrades();
// Browse civilian offers
const civilians = await client.getBazaarCivilianOffers({
civilianFaction: 'space_force',
civilianLevel: 3,
civilianOccupation: 'raid_commander',
perPage: 20
});
// Blueprint marketplace
const blueprints = await client.getBazaarBlueprintOffers({
sort: 'trending',
hideOwn: true
});
```
## Benefits
### For Users
- ✅ Access to ALL Earth2 data
- ✅ Advanced filtering and sorting
- ✅ Complete marketplace access
- ✅ Comprehensive resource management
- ✅ Full trading capabilities
### For Developers
- ✅ Type-safe client methods
- ✅ Consistent error handling
- ✅ Well-documented parameters
- ✅ Organized by feature category
- ✅ Production-tested endpoints
### For MCP Integration
- ✅ Ready for Claude Desktop
- ✅ Works with Earthie chat
- ✅ Supports all game features
- ✅ Real-time data access
- ✅ Scalable architecture
## Migration from Old Client
### Old Way (10 endpoints)
```javascript
// Limited functionality
await client.getProfile();
await client.getProperties();
await client.getWallet();
await client.getJewels(); // Basic
await client.getEssence(); // Basic
```
### New Way (81+ endpoints)
```javascript
// Full functionality
await client.getMyNetworth();
await client.getLandfields({ filters });
await client.getMyBalanceResources();
await client.getMyJewels({ advanced options });
await client.getEssenceTokenInfo();
await client.getBazaarJewelOffers({ filters });
await client.getDroids({ filters });
await client.getCivilians({ filters });
await client.getMyResourceStakes();
await client.getPlayersLeaderboard();
// ... 71+ more methods
```
## v1.3.0 Update: Fully Dynamic Parameters
**IMPORTANT**: All endpoints now support dynamic parameters - NO hardcoded values!
### What Changed:
- **Leaderboards**: Now accept `country`, `continent`, `sort_by`, `jewel_quality` parameters
- Examples: Get Brazil's top players, Africa's leaderboard, sort by holobuildings, etc.
- **Marketplace**: Already had full parameter support (country, tier, search, sorting)
- **Bazaar**: Supports ANY filter (rarity, faction, occupation, appearance, etc.)
- **Properties**: Filter by ANY country, tier, class, has holobuilding, etc.
### Examples:
```javascript
// Get Brazil's top players
await client.getPlayersLeaderboard({ country: 'BR', sort_by: 'tiles_count' });
// Get Africa continent leaderboard
await client.getPlayersLeaderboard({ continent: 'africa' });
// Get players with brilliant jewels
await client.getPlayersLeaderboard({
sort_by: 'hq_jewels_count',
jewel_quality: 'BRILLIANT'
});
// Get marketplace in Japan, tier 3
await client.getMarketplace({ country: 'JP', landfieldTier: 3 });
```
## MCP Server Tools
The MCP server now exposes **34 tools** covering the most essential Earth2 features:
### Available MCP Tools
**User & Profile** (3 tools)
- `get_user_info` - Get any user's profile
- `get_my_networth` - Your net worth
- `search_users` - Search for users
**Properties** (3 tools)
- `get_landfields` - All properties with filters
- `get_landfield_details` - Specific property details
- `get_landfield_resources` - Property resources
**Marketplace** (1 tool)
- `get_marketplace` - Browse with advanced filters
**Resources** (4 tools)
- `get_my_resources` - All resource balances
- `get_resource_balance` - Specific resource
- `get_claimable_ether` - Claimable ether
- `get_resource_stakes` - Staked resources
**Jewels** (2 tools)
- `get_my_jewels` - Your jewels with filters
- `get_bazaar_jewels` - Buy jewels
**Droids** (2 tools)
- `get_my_droids` - Your droids
- `get_bazaar_droids` - Buy droids
**Civilians** (2 tools)
- `get_my_civilians` - Your civilians
- `get_bazaar_civilians` - Buy civilians
**Blueprints** (2 tools)
- `get_my_blueprints` - Your blueprints
- `get_bazaar_blueprints` - Buy blueprints
**Trading** (2 tools)
- `get_balance_transactions` - Transaction history
- `get_ongoing_trades` - Active trades
**Leaderboards** (5 tools)
- `get_players_leaderboard` - Top players (supports country, continent, sort_by, jewel_quality)
- `get_player_countries_leaderboard` - Players by country
- `get_player_continents_leaderboard` - Players by continent
- `get_landfield_countries_leaderboard` - Landfields by country
- `get_landfield_continents_leaderboard` - Landfields by continent
**Essence & Crypto** (3 tools)
- `get_essence_token_info` - ESS token info
- `get_ess_usd_rate` - Current ESS rate
- `get_crypto_payouts` - Payout history
**Quests** (2 tools)
- `get_quests` - Available quests
- `get_my_quests` - Your quests
**Tiles** (1 tool)
- `get_tile_prices` - All tile prices
All MCP tools support the full parameter options from the underlying API client methods.
## Next Steps
1. ✅ **MCP Tools Expansion**: COMPLETE - 30 MCP tools covering key endpoints
2. **API Documentation**: Full OpenAPI/Swagger docs
3. **TypeScript Definitions**: Add type definitions
4. **Error Handling**: Enhanced error messages
5. **Rate Limiting**: Built-in rate limit handling
6. **Caching**: Intelligent caching layer
7. **WebSocket Support**: Real-time updates
## File Locations
- **Client**: `earth2-mcp-server/src/earth2-client.mjs`
- **Server**: `earth2-mcp-server/server.mjs`
- **HTTP Server**: `earth2-mcp-server/http-server.mjs`
- **API Log**: `earth2-mcp-server/earth2_api_log_smart.json`
---
**Last Updated**: January 2025
**Version**: 1.3.0
**API Coverage**: 85+ endpoints (750% increase from original 10)
**MCP Tools**: 34 tools (240% increase from original 10)
**Key Update**: All parameters are now fully dynamic - no hardcoded countries/continents!