Skip to main content
Glama
README.md
# 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