Manage your Starlink terminal fleet through Claude AI using the Starlink Enterprise API.
- Enterprise customers with multiple Starlink terminals deployed
- Fleet operators needing centralized terminal management
- IT teams monitoring terminal health and performance
- Operations managers tracking data usage and costs
✅ Terminal Management
- List all your user terminals
- Get real-time telemetry (uptime, signal, obstructions)
- View terminal details and configuration
- Historical performance data
✅ Service Line Management
- List all service lines (subscriptions)
- Track data usage by date range
- View subscription details and status
- Monitor billing and plans
✅ Address Management
- List all service addresses
- Check service availability at new locations
- View address details
✅ Account Overview
- Complete fleet status at a glance
- Summary statistics across all terminals
- Quick health checks
- Python 3.10 or higher
- uv package manager
- Claude Desktop App
- Starlink Business/Enterprise Account with API access
- Client ID and Client Secret from your Starlink account manager
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create and setup project
mkdir starlink-mcp-server && cd starlink-mcp-server
mkdir src
# Save starlink_mcp_server.py to src/
# Save pyproject.toml to root
# Save .env.example to root
# Install
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
# Configure credentials
cp .env.example .env
# Edit .env and add your STARLINK_CLIENT_ID and STARLINK_CLIENT_SECRETAPI access is available by request to Starlink Enterprise and Business customers. Contact your Starlink account manager or email business-support@starlink.com to request access.
- Log into https://www.starlink.com/account
- Navigate to Settings tab
- Find "Service Accounts" section
- Click "+ Add Service Account"
- Note your Client ID and Client Secret
Add credentials to .env:
STARLINK_CLIENT_ID=your_actual_client_id_here
STARLINK_CLIENT_SECRET=your_actual_client_secret_heremacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
%APPDATA%\Claude\claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"starlink": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/starlink-mcp-server",
"run",
"python",
"src/starlink_mcp_server.py"
],
"env": {
"STARLINK_CLIENT_ID": "your_client_id",
"STARLINK_CLIENT_SECRET": "your_client_secret"
}
}
}
}Important: Replace /absolute/path/to/starlink-mcp-server with your actual path!
- Quit Claude Desktop completely
- Reopen Claude Desktop
- Look for 🔌 icon - you should see "starlink" connected
List all your Starlink terminals with status.
Example:
Show me all my Starlink terminals
Get detailed information about a specific terminal.
Example:
Get details for terminal abc-123-def-456
Get real-time performance data (uptime, signal quality, obstructions, throughput).
Example:
Show me telemetry for terminal abc-123-def-456
List all your service lines (subscriptions).
Example:
List all my service lines
Get details about a specific service line.
Example:
Get details for service line xyz-789
Get data usage over a date range.
Example:
Show me data usage from 2024-01-01 to 2024-01-31 for service line xyz-789
List all service addresses.
Example:
Show me all my Starlink addresses
Get details about a specific address.
Example:
Get details for address addr-123
Check if Starlink is available at coordinates.
Example:
Is Starlink available at latitude 45.5, longitude -93.2?
Get complete overview of your fleet.
Example:
Give me an overview of my entire Starlink account
List available Starlink plans and products.
Example:
What subscription products are available?
Get historical data for a terminal.
Example:
Show me history for terminal abc-123 from 2024-01-01T00:00:00Z to 2024-01-02T00:00:00Z
Good morning! Show me all my terminals and highlight any with issues
Terminal ABC123 in Denver is slow. Show me its telemetry data
Show me data usage for all service lines this month
We want to add terminals at these locations: [coordinates]. Check service availability
Show me terminals with lowest uptime over the past 30 days
Which service lines had the highest data usage last month?
Claude, give me a morning report:
1. List all terminals
2. Show which ones are offline or have issues
3. Total data usage yesterday across all service lines
1. Get telemetry for terminal [id]
2. Show 24-hour history
3. Compare to other terminals at same location
1. Get account overview
2. Data usage for January across all service lines
3. List terminals by uptime percentage
4. Identify any performance trends
starlink-mcp-server/
├── src/
│ └── starlink_mcp_server.py # Main server code
├── pyproject.toml # Dependencies
├── .env # Your credentials (DO NOT COMMIT)
├── .env.example # Template
├── .gitignore # Git exclusions
└── README.md # This file
| Endpoint | Limit |
|---|---|
| Authentication | 10 requests/minute |
| Terminal queries | 100 requests/minute |
| Telemetry | 1000 requests/minute |
| Data usage | 100 requests/minute |
Tips:
- Cache terminal lists (they change rarely)
- Batch related requests
- Implement retry logic with exponential backoff
- Check
.envfile exists and has correct values - Ensure no extra spaces in credential values
- Verify credentials with your account manager
- Confirm Client ID and Client Secret are correct
- Check that your service account is active
- Contact account manager if credentials expired
- Verify absolute path in
claude_desktop_config.json - Check Python and dependencies installed
- Test server manually:
python src/starlink_mcp_server.py - Restart Claude Desktop
- You've exceeded API limits
- Wait for limit reset (usually 1 minute)
- Reduce request frequency
- Consider caching results
✅ Do:
- Keep
.envin.gitignore - Use strong, unique credentials
- Rotate credentials periodically
- Use environment variables, not hardcoded values
- Separate dev/prod credentials
❌ Don't:
- Commit credentials to git
- Share credentials publicly
- Hardcode credentials in code
- Use same credentials across environments
This MCP server supports the A2A protocol for agent-to-agent communication, enabling automated fleet management and integration with other AI agents.
The agent capabilities are defined in agent-card.json at the repository root. This file describes:
- Agent Identity: Name, description, and version
- Capabilities: Streaming support, task types, async operations
- Skills: All 12 available MCP tools with detailed schemas
- Authentication: OAuth2 client credentials requirements
- Rate Limits: API usage constraints
- Use Cases: Common integration scenarios
The A2A protocol exposes these skill categories:
list_user_terminals- List all terminals with paginationget_terminal_details- Get detailed terminal informationget_account_overview- Complete fleet overview
get_terminal_telemetry- Real-time performance dataget_terminal_history- Historical telemetry over time periods
list_service_lines- List all subscriptionsget_service_line_details- Subscription details and statuslist_subscription_products- Available plans
get_data_usage- Usage statistics over date ranges
list_addresses- All service addressesget_address_details- Specific address information
check_service_availability- Service availability at coordinates
{
"task": "monitor_fleet_health",
"agent": "starlink-enterprise-mcp-agent",
"skills": ["list_user_terminals", "get_terminal_telemetry"],
"parameters": {
"page_size": 100
}
}{
"task": "daily_fleet_report",
"agent": "starlink-enterprise-mcp-agent",
"skills": ["get_account_overview"],
"schedule": "0 8 * * *"
}{
"workflow": "expand_service",
"agents": [
{
"name": "starlink-enterprise-mcp-agent",
"skill": "check_service_availability",
"parameters": {
"latitude": 45.5,
"longitude": -93.2
}
},
{
"name": "notification-agent",
"skill": "send_alert",
"depends_on": "starlink-enterprise-mcp-agent"
}
]
}When using A2A protocol, ensure the agent has access to:
{
"credentials": {
"STARLINK_CLIENT_ID": "your_client_id",
"STARLINK_CLIENT_SECRET": "your_client_secret"
},
"scopes": [
"enterprise.read",
"terminals.read",
"telemetry.read"
]
}When integrating with other agents, respect these rate limits:
| Endpoint Type | Limit | Recommended Strategy |
|---|---|---|
| Authentication | 10/min | Cache tokens (valid 1 hour) |
| Terminal queries | 100/min | Batch requests |
| Telemetry | 1000/min | Use for real-time monitoring |
| Data usage | 100/min | Schedule during off-peak |
Other agents can discover capabilities by reading agent-card.json:
curl https://raw.githubusercontent.com/ry-ops/starlink-enterprise-mcp-server/main/agent-card.jsonOr through the MCP protocol's tool listing:
{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}- Email: business-support@starlink.com
- Account Manager: Contact your assigned manager
- Support Portal: https://www.starlink.com/support
- API Docs: https://starlink.readme.io/docs (requires access)
- Enterprise Guide: https://starlink-enterprise-guide.readme.io
- Swagger UI: https://web-api.starlink.com/enterprise/swagger/index.html
- Agent Card:
agent-card.jsonin repository root
Found a bug or have a feature request? Please open an issue on GitHub.
MIT
Manage your Starlink fleet effortlessly with Claude AI and A2A protocol! 🛰️✨🤖
