README.md•4.58 kB
# GCP MCP Server
A Model Context Protocol (MCP) server for Google Cloud Platform (GCP) that enables AI assistants to interact with GCP services, particularly focused on log analysis and root cause investigation.
## Features
- **Cloud Logging Integration**: Query and analyze GCP Cloud Logging data
- **Real-time Log Streaming**: Stream logs for immediate analysis
- **Error Pattern Detection**: Identify common error patterns and anomalies
- **Multi-Project Support**: Work across multiple GCP projects
- **Secure Authentication**: Uses GCP service account credentials
- **Root Cause Analysis**: Tools to help with quick RC findings
## Supported GCP Services
- **Cloud Logging**: Query, filter, and analyze logs
- **Cloud Monitoring**: Retrieve metrics and alerts (planned)
- **Error Reporting**: Access error statistics and details (planned)
- **Cloud Trace**: Distributed tracing analysis (planned)
## Installation
### ⚡ Quick Install
```bash
git clone https://github.com/JayRajGoyal/gcp-mcp.git
cd gcp-mcp
./install.sh
```
### Claude Code Integration (One Command!)
The easiest way to add this MCP server to Claude Code:
```bash
# If you have gcloud configured (recommended):
claude mcp add gcp-logs -e GOOGLE_APPLICATION_CREDENTIALS=/Users/$USER/.config/gcloud/application_default_credentials.json -- python3.11 -m gcp_mcp.cli --project YOUR_PROJECT_ID
```
Or with a service account key file:
```bash
claude mcp add gcp -- python3.11 -m gcp_mcp.cli --credentials /path/to/your/service-account-key.json
```
#### Manual Configuration (Alternative)
Add this to your Claude Code configuration:
```json
{
"mcpServers": {
"gcp": {
"command": "python3.11",
"args": ["-m", "gcp_mcp.cli", "--credentials", "/path/to/your/credentials.json"],
"cwd": "/path/to/gcp-mcp"
}
}
}
```
### Prerequisites
- Python 3.8 or higher
- GCP project with appropriate APIs enabled
- Service account with necessary permissions
### Manual Setup
1. Clone the repository:
```bash
git clone https://github.com/JayRajGoyal/gcp-mcp.git
cd gcp-mcp
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Run with your credentials:
```bash
python -m gcp_mcp.cli --credentials /path/to/your/credentials.json
```
## Usage
### Starting the Server
```bash
python -m gcp_mcp.server
```
### Available Tools
#### Log Query
Query GCP Cloud Logging with advanced filters:
```
query_logs(project_id, filter, limit, time_range)
```
#### Log Analysis
Analyze logs for patterns and anomalies:
```
analyze_logs(project_id, service_name, time_range)
```
#### Error Investigation
Find and analyze error patterns:
```
investigate_errors(project_id, service_name, time_range)
```
## Configuration
Create a `config.json` file:
```json
{
"default_project": "your-gcp-project-id",
"log_retention_days": 30,
"max_results": 1000,
"excluded_log_names": [
"projects/your-project/logs/cloudaudit.googleapis.com%2Fdata_access"
]
}
```
## Authentication
The server supports multiple authentication methods:
1. **Service Account Key File**: Set `GOOGLE_APPLICATION_CREDENTIALS`
2. **Application Default Credentials**: For GCE, Cloud Shell, etc.
3. **User Credentials**: Via `gcloud auth application-default login`
## Required GCP Permissions
Your service account needs the following IAM roles:
- `roles/logging.viewer` - Read access to Cloud Logging
- `roles/monitoring.viewer` - Read access to Cloud Monitoring (optional)
- `roles/errorreporting.viewer` - Read access to Error Reporting (optional)
## Development
### Running Tests
```bash
pytest tests/
```
### Code Formatting
```bash
black gcp_mcp/
isort gcp_mcp/
```
### Type Checking
```bash
mypy gcp_mcp/
```
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests
5. Run the test suite
6. Submit a pull request
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Security
- Never commit service account keys to the repository
- Use environment variables for sensitive configuration
- Follow GCP security best practices
- Report security vulnerabilities via email
## Support
- Create an issue for bug reports or feature requests
- Check existing issues before creating new ones
- Provide detailed information including logs and configuration
## Roadmap
- [ ] Cloud Monitoring integration
- [ ] Error Reporting tools
- [ ] Cloud Trace analysis
- [ ] BigQuery log export support
- [ ] Alerting and notification tools
- [ ] Dashboard generation
- [ ] Cost analysis tools