# ๐ Umbrella MCP Server
A Model Context Protocol (MCP) server that provides read-only access to the Umbrella Cost finops SaaS platform. This server enables natural language querying of your cloud cost and usage data through LLM clients.
## ๐ Features
- **๐ Secure Authentication**: Support for both MSP and Direct customer accounts
- **๐ Cost Analysis**: Query cost and usage data across AWS, Azure, and GCP
- **๐ฏ Cost Optimization**: Access recommendations and savings opportunities
- **๐จ Anomaly Detection**: Monitor cost spikes and unusual spending patterns
- **๐ฐ Budget Management**: Track budgets and alerts
- **๐ Resource Analytics**: Analyze EC2, S3, RDS, and Kubernetes costs
- **๐ข Multi-Tenant Support**: MSP customer management capabilities
- **๐ Read-Only Access**: Safe querying without risk of data modification
## ๐ Prerequisites
- Node.js 18+ and npm
- Valid Umbrella Cost account credentials
- MCP-compatible client (Claude Desktop, etc.)
## โก Quick Start
### 1. Install Dependencies
```bash
npm install
```
### 2. Build the Server
```bash
npm run build
```
### 3. Test the Server
```bash
npm run test-runner
```
### 4. Run the MCP Server
```bash
npm start
# or for development
npm run dev
```
## ๐ง Configuration
### Environment Variables
Create a `.env` file with:
```env
# API Base URL (defaults to https://api.umbrellacost.io/api/v1)
UMBRELLA_API_BASE_URL=https://api.umbrellacost.io/api/v1
# Server Configuration
MCP_SERVER_NAME=Umbrella MCP
MCP_SERVER_VERSION=1.0.0
```
### Test Credentials
For testing and validation, use these provided credentials:
**MSP Customer:**
- Username: `elisha@umbrellacost.cloud`
- Password: `6K2UX6DoYSgV%E`
**Direct Customer:**
- Username: `elisha@umbrellacost.net`
- Password: `G37oi57Kp@cNzx`
## Usage
### Authentication
Before making any API calls, authenticate with your Umbrella Cost credentials:
```javascript
// Using the authenticate tool
authenticate(username="your-email@domain.com", password="your-password")
```
### Test Credentials
For testing and demonstration, you can use these provided credentials:
**MSP Customer:**
- Username: `elisha@umbrellacost.cloud`
- Password: `6K2UX6DoYSgV%E`
**Direct Customer:**
- Username: `elisha@umbrellacost.net`
- Password: `G37oi57Kp@cNzx`
### Available Tools
The MCP server provides the following tools:
#### Core Tools
- `authenticate` - Authenticate with Umbrella Cost API
- `list_endpoints` - List all available API endpoints
- `help` - Get help and usage information
#### API Endpoint Tools
All Umbrella Cost API endpoints are available as tools with the prefix `api_`. For example:
- `api__invoices_caui` - Get cost and usage data
- `api__usage_rds_instance_costs` - Get RDS instance costs
- `api__recommendations` - Get cost optimization recommendations
- `api__budgets` - Get budget information
- `api__anomaly_detection` - Get cost anomaly detection results
### Example Queries
Once connected to an LLM client, you can ask natural language questions like:
- "Show me my AWS costs for the last 30 days"
- "What are my biggest cost optimization opportunities?"
- "Which RDS instances are costing the most?"
- "Are there any cost anomalies I should be aware of?"
- "What's my current budget status?"
- "Show me my Kubernetes cluster costs"
## API Categories
The server organizes endpoints into the following categories:
### Cost Analysis
- Cost and usage data retrieval
- Service cost breakdowns
- Historical cost trends
### Usage Analysis
- RDS instance costs
- S3 bucket costs
- Resource utilization data
### Resource Explorer
- Resource-level cost breakdown
- Resource operations data
### Dashboards
- Dashboard configurations
- Custom dashboard data
### Budget Management
- Budget tracking
- Budget alerts and notifications
### Recommendations
- Cost optimization suggestions
- Right-sizing recommendations
### Anomaly Detection
- Cost anomaly identification
- Unusual spending patterns
### Commitment Analysis
- Reserved instances analysis
- Savings plans utilization
### Kubernetes
- Container cost analysis
- Cluster cost breakdown
### User Management
- User information
- Customer management (MSP)
## Development
### Building
```bash
npm run build
```
### Development Mode
```bash
npm run dev
```
### Type Checking
```bash
npm run type-check
```
### Linting
```bash
npm run lint
```
## Security
- **Read-Only Access**: The MCP server only provides read access to prevent accidental modifications
- **Credential Security**: Authentication credentials are only used to obtain tokens and are not stored
- **Token-Based**: All API requests use secure authentication tokens
- **Rate Limiting**: Respects Umbrella Cost API rate limits
## Error Handling
The server provides comprehensive error handling for:
- Authentication failures
- Network connectivity issues
- API rate limiting
- Invalid parameters
- Permission errors
## Support
For issues and questions:
1. Check the built-in help: Use the `help` tool with topics like `authentication`, `endpoints`, or `parameters`
2. Review the API documentation at [Umbrella Cost](https://umbrellacost.io)
3. Contact your Umbrella Cost support team
## License
Copyright ยฉ 2024 Umbrella Cost. All rights reserved.