Skip to main content
Glama
medelman17

case-chronology-mcp

by medelman17
README.md
# Case Chronology MCP Server

A Model Context Protocol (MCP) server for building and managing chronological timelines of case events. Perfect for legal professionals who need to organize complex case histories.

## Features

- **Smart Date Parsing**: Handles various date formats including exact dates, approximate dates, months, and quarters
- **Document Parsing**: Automatically extract dates and events from pasted documents
- **Multi-format Export**: Generate timelines in Markdown, CSV, brief text, or JSON
- **Advanced Search**: Query by date range, parties, keywords, or tags
- **Party & Document Indexing**: Quick lookups by involved parties or source documents

## Installation

### Option 1: Using uvx (Recommended)

No installation needed! The server can be run directly with `uvx`.

### Option 2: Traditional Installation

1. Clone this repository:
```bash
git clone https://github.com/medelman17/case-chronology-mcp.git
cd case-chronology-mcp
```

2. Install with uv:
```bash
uv pip install -e .
```

Or with pip:
```bash
pip install -r requirements.txt
```

## Configuration

Add the server to your Claude Desktop configuration:

### Windows Users - Step by Step

#### Step 1: Download and Setup
1. Open **PowerShell** or **Command Prompt**
2. Navigate to where you want to install (e.g., your GitHub folder):
   ```powershell
   cd C:\Users\%USERNAME%\GitHub
   ```
3. Clone the repository:
   ```powershell
   git clone https://github.com/medelman17/case-chronology-mcp.git
   cd case-chronology-mcp
   ```
4. **IMPORTANT:** Run the setup script (this creates a virtual environment and installs dependencies):
   ```powershell
   .\setup.bat
   ```
   Wait for it to complete. You should see "Setup complete!" at the end.

#### Step 2: Configure Claude Desktop
1. Open **Claude Desktop**
2. Go to **Settings** (gear icon in bottom left)
3. Click **Developer** tab
4. Find the **MCP Servers Configuration** section
5. Add this configuration (**replace `%USERNAME%` with your actual username**):

```json
{
  "mcpServers": {
    "case-chronology": {
      "command": "C:\\Users\\%USERNAME%\\GitHub\\case-chronology-mcp\\run_server.bat"
    }
  }
}
```

**For example, if your username is `mikee`, use:**
```json
{
  "mcpServers": {
    "case-chronology": {
      "command": "C:\\Users\\mikee\\GitHub\\case-chronology-mcp\\run_server.bat"
    }
  }
}
```

6. **Save** the configuration
7. **Restart Claude Desktop**

#### Step 3: Test It Works
After restarting Claude Desktop, you should see the Case Chronology server connected. Try asking:
> "Add an event: January 15, 2024 - Contract signed between ABC Corp and XYZ LLC"

### Mac/Linux Users

#### Option 1: Using uvx (Recommended)

```json
{
  "mcpServers": {
    "case-chronology": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/medelman17/case-chronology-mcp.git",
        "case-chronology-mcp"
      ]
    }
  }
}
```

#### Option 2: Local Installation

```json
{
  "mcpServers": {
    "case-chronology": {
      "command": "python",
      "args": ["/full/path/to/case-chronology-mcp/chronology_server.py"]
    }
  }
}
```

## Usage Examples

### Adding Events

**Simple event:**
```
"Add event: March 15, 2023 - Smith emails Jones about breach of contract. Parties: Smith, Jones"
```

**Event with details:**
```
"Add event: 3/15/2023 - Contract breach notification sent. Parties: Smith, Jones. Tag: breach, notice. Significance: First formal notice of breach"
```

### Document Parsing

```
"Parse this email and add events to the chronology:

From: Bob Smith
To: Alice Jones
Date: March 15, 2023

I am writing to inform you that your failure to deliver by March 1, 2023 constitutes a breach..."
```

### Searching the Timeline

- "Show all events in March 2023"
- "Find events involving Smith"
- "Search for events tagged 'breach'"
- "Show events between 1/1/2023 and 6/30/2023"

### Exporting

- "Export the chronology as markdown"
- "Give me a brief timeline"
- "Export as CSV for Excel"
- "Export full JSON data"

## Date Format Support

The server intelligently parses various date formats:

- **Exact dates**: `3/15/2023`, `March 15, 2023`
- **Approximate dates**: `early March 2023`, `mid March 2023`, `late March 2023`
- **Month precision**: `March 2023`
- **Quarter precision**: `Q1 2023`
- **Approximate markers**: `around 3/15/2023`, `approximately March 2023`

## Data Storage

Events are stored in `case_chronology.json` in the same directory as the server. The file is created automatically on first use.

## Troubleshooting (Windows)

### ❌ "Virtual environment not found" error
- Make sure you ran `.\setup.bat` first
- Check that the `venv` folder exists in your project directory

### ❌ "Python not found" error  
- Install Python 3.10 or later from [python.org](https://python.org)
- Make sure to check "Add Python to PATH" during installation

### ❌ "Setup failed" error
- Try running PowerShell as Administrator
- Or manually create the environment:
  ```powershell
  python -m venv venv
  venv\Scripts\activate
  pip install -r requirements.txt
  ```

### ❌ Server disconnects immediately
- Check that your path in Claude Desktop config is correct
- Make sure to use **double backslashes** (`\\`) in the JSON path
- Verify your username is correct in the path

### ❌ "Permission denied" errors
- Run PowerShell as Administrator
- Or try installing in a different location (like your Documents folder)

## Testing

Test the server with MCP Inspector:

```bash
npx @modelcontextprotocol/inspector python chronology_server.py
```

## Tools Available

- `add_event` - Add a single event to the chronology
- `parse_document` - Extract events from document text
- `search_timeline` - Search events by various criteria
- `get_timeline_summary` - Get overview statistics
- `export_chronology` - Export in different formats
- `update_event` - Modify existing events
- `delete_event` - Remove events from timeline

## License

MIT

TDQS

B3.2/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: add, delete, update events; export; get summary; parse documents; search. No overlap.

Naming Consistency5/5

All tool names follow the verb_noun pattern with snake_case (e.g., add_event, delete_event, parse_document). Consistent and predictable.

Tool Count5/5

7 tools is well-scoped for a chronology management server, covering essential operations without unnecessary bloat.

Completeness4/5

Covers CRUD (add, update, delete), search, export, summary, and document parsing. Missing a dedicated 'get_event' by ID, but search covers retrieval.

Maintenance

ActivityInactive
ResponsivenessNo issues