Starlink Enterprise MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Starlink Enterprise MCP ServerShow me all my Starlink terminals with status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Starlink Enterprise MCP Server
Manage your Starlink terminal fleet through Claude AI using the Starlink Enterprise API.
Perfect For
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
Related MCP server: Zeotap CDP MCP Server
Features
✅ 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
Prerequisites
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
Quick Start
# 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_SECRETGetting API Access
API 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.
Step 1: Create Service Account
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
Step 2: Configure Environment
Add credentials to .env:
STARLINK_CLIENT_ID=your_actual_client_id_here
STARLINK_CLIENT_SECRET=your_actual_client_secret_hereConnect to Claude Desktop
Configuration File Location
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.jsonAdd Server Configuration
{
"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!
Restart Claude
Quit Claude Desktop completely
Reopen Claude Desktop
Look for 🔌 icon - you should see "starlink" connected
Available Tools
list_user_terminals
List all your Starlink terminals with status.
Example:
Show me all my Starlink terminalsget_terminal_details
Get detailed information about a specific terminal.
Example:
Get details for terminal abc-123-def-456get_terminal_telemetry
Get real-time performance data (uptime, signal quality, obstructions, throughput).
Example:
Show me telemetry for terminal abc-123-def-456list_service_lines
List all your service lines (subscriptions).
Example:
List all my service linesget_service_line_details
Get details about a specific service line.
Example:
Get details for service line xyz-789get_data_usage
Get data usage over a date range.
Example:
Show me data usage from 2024-01-01 to 2024-01-31 for service line xyz-789list_addresses
List all service addresses.
Example:
Show me all my Starlink addressesget_address_details
Get details about a specific address.
Example:
Get details for address addr-123check_service_availability
Check if Starlink is available at coordinates.
Example:
Is Starlink available at latitude 45.5, longitude -93.2?get_account_overview
Get complete overview of your fleet.
Example:
Give me an overview of my entire Starlink accountlist_subscription_products
List available Starlink plans and products.
Example:
What subscription products are available?get_terminal_history
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:00ZCommon Use Cases
Daily Fleet Check
Good morning! Show me all my terminals and highlight any with issuesTroubleshooting
Terminal ABC123 in Denver is slow. Show me its telemetry dataUsage Monitoring
Show me data usage for all service lines this monthExpansion Planning
We want to add terminals at these locations: [coordinates]. Check service availabilityPerformance Review
Show me terminals with lowest uptime over the past 30 daysCost Analysis
Which service lines had the highest data usage last month?Example Workflows
Morning Status Report
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 linesTerminal Troubleshooting
1. Get telemetry for terminal [id]
2. Show 24-hour history
3. Compare to other terminals at same locationMonthly Review
1. Get account overview
2. Data usage for January across all service lines
3. List terminals by uptime percentage
4. Identify any performance trendsProject Structure
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 fileAPI Rate Limits
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
Troubleshooting
"credentials not configured"
Check
.envfile exists and has correct valuesEnsure no extra spaces in credential values
Verify credentials with your account manager
"Authentication failed"
Confirm Client ID and Client Secret are correct
Check that your service account is active
Contact account manager if credentials expired
Server won't connect to Claude
Verify absolute path in
claude_desktop_config.jsonCheck Python and dependencies installed
Test server manually:
python src/starlink_mcp_server.pyRestart Claude Desktop
Rate limit errors
You've exceeded API limits
Wait for limit reset (usually 1 minute)
Reduce request frequency
Consider caching results
Security Best Practices
✅ Do:
Keep
.envin.gitignoreUse 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
A2A (Agent-to-Agent) Protocol Support
This MCP server supports the A2A protocol for agent-to-agent communication, enabling automated fleet management and integration with other AI agents.
Agent Card
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
Available Skills for Agent Communication
The A2A protocol exposes these skill categories:
Terminal Management
list_user_terminals- List all terminals with paginationget_terminal_details- Get detailed terminal informationget_account_overview- Complete fleet overview
Telemetry Monitoring
get_terminal_telemetry- Real-time performance dataget_terminal_history- Historical telemetry over time periods
Service Line Management
list_service_lines- List all subscriptionsget_service_line_details- Subscription details and statuslist_subscription_products- Available plans
Data Usage Analytics
get_data_usage- Usage statistics over date ranges
Address Management
list_addresses- All service addressesget_address_details- Specific address information
Availability Checking
check_service_availability- Service availability at coordinates
Integration Examples
Agent-to-Agent Communication
{
"task": "monitor_fleet_health",
"agent": "starlink-enterprise-mcp-agent",
"skills": ["list_user_terminals", "get_terminal_telemetry"],
"parameters": {
"page_size": 100
}
}Automated Health Checks
{
"task": "daily_fleet_report",
"agent": "starlink-enterprise-mcp-agent",
"skills": ["get_account_overview"],
"schedule": "0 8 * * *"
}Multi-Agent Coordination
{
"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"
}
]
}A2A Authentication
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"
]
}Rate Limiting in A2A Context
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 |
Discovering Agent Capabilities
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
}Support
Starlink Support
Account Manager: Contact your assigned manager
Support Portal: https://www.starlink.com/support
Documentation
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
Contributing
Found a bug or have a feature request? Please open an issue on GitHub.
License
MIT
Manage your Starlink fleet effortlessly with Claude AI and A2A protocol! 🛰️✨🤖
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ry-ops/starlink-enterprise-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server