Skip to main content
Glama
Sushma243

MCP Observability Server

by Sushma243
README.md
# MCP Observability Server

This project demonstrates how to build a production-quality Model Context Protocol (MCP) server in Python for an observability platform. It exposes tools for log search, metrics inspection, SQL querying, incident summaries, and service discovery.

## What is MCP?

The Model Context Protocol (MCP) is an open protocol for connecting AI assistants and agents to tools, data sources, and workflows. With MCP, an AI client can call server-side tools in a structured way.

## Features

- Search sample JSON logs by service and keyword
- Retrieve mocked metrics for CPU, memory, request rate, and error rate
- Run SQL queries against a local SQLite database
- Generate incident summaries from logs and metrics
- List available services
- Logging, type hints, and structured error handling

## Installation

1. Create and activate a virtual environment:
   ```bash
   python3 -m venv .venv
   source .venv/bin/activate
   ```
2. Install dependencies:
   ```bash
   pip install -r requirements.txt
   ```
3. Copy the example environment file:
   ```bash
   cp .env.example .env
   ```

## Running the server

```bash
python server.py
```

The server uses stdio transport by default and is ready for MCP-compatible clients such as Claude Desktop.

## Example Claude Desktop configuration

Add the following to your Claude Desktop configuration:

```json
{
  "mcpServers": {
    "observability": {
      "command": "/path/to/python",
      "args": ["/absolute/path/to/mcp-observability-server/server.py"]
    }
  }
}
```

## Example prompts

- Search logs for the API service around timeouts.
- Show CPU and memory metrics for the Auth service in the last hour.
- Run SQL to list services with high error rates.
- Summarize the latest incident for the Payment service.
- List all available services.

## Project structure

```text
/
├── server.py
├── tools.py
├── database.py
├── sample_data/
├── requirements.txt
├── README.md
└── .env.example
```