Skip to main content
Glama
DCx7C5

token-optimization-mcp

by DCx7C5
README.md
# token-optimization-mcp  v0.2.0

Production-ready **Model Context Protocol** server for token counting, prompt compression,
model routing and semantic caching. Zero external API calls — works fully offline.

## Tools

| Tool                   | Description                                                           |
|------------------------|-----------------------------------------------------------------------|
| `estimate_tokens`      | Count tokens for any text+model (calibrated chars/token ratios)       |
| `compress_prompt`      | Shrink prompts with `trim`, `summarize_hint` or `aggressive` strategy |
| `route_model`          | Pick cheapest model meeting quality + context requirements            |
| `cache_lookup`         | Semantic cache hit/miss by prompt or pre-computed key                 |
| `cache_store`          | Store prompt+result with token-savings metadata                       |
| `cache_invalidate`     | Remove one or all cache entries                                       |
| `analyze_context`      | Conversation health: role breakdown, issues, recommendations          |
| `savings_report`       | Session-level token/USD savings dashboard                             |
| `deduplicate_messages` | Remove duplicate turns, count saved tokens                            |

## Quick Start

```bash
cd mcps/token-optimization-mcp
uv sync

# stdio – Claude Code / Copilot
uv run main.py

# SSE – LangGraph / CrewAI / browser
uv run main.py --sse --port 8001
```

## Environment Variables

| Variable               | Default                    | Description               |
|------------------------|----------------------------|---------------------------|
| `USE_REDIS`            | `false`                    | Enable Redis backend      |
| `REDIS_URL`            | `redis://localhost:6379/1` | Redis connection URL      |
| `CACHE_TTL_SECONDS`    | `86400`                    | Default cache TTL (1 day) |
| `RATE_LIMIT_PER_MIN`   | `120`                      | Requests/min per client   |
| `AUDIT_LOG_ENABLED`    | `true`                     | Print audit log to stdout |

## Registration

### Claude Code (`~/.claude/settings.json`)
```json
{
  "mcpServers": {
    "token-optimization": {
      "command": "uv",
      "args": ["run", "/path/to/token-optimization-mcp/main.py"]
    }
  }
}
```

### VS Code Copilot (`.vscode/mcp.json`)
```json
{
  "servers": {
    "token-optimization": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "${workspaceFolder}/mcps/token-optimization-mcp/main.py"]
    }
  }
}
```

### SSE (LangGraph / CrewAI / Cursor)
```
http://127.0.0.1:8001/sse
```

## Supported Models (routing catalogue)

| Model               | Context | Quality | Cost/1k   |
|---------------------|---------|---------|-----------|
| `github:copilot`    | 128k    | 8       | **free**  |
| `gpt-4o-mini`       | 128k    | 7       | $0.00015  |
| `claude-3-5-haiku`  | 200k    | 7       | $0.00025  |
| `gemini-1.5-flash`  | 1M      | 6       | $0.000075 |
| `gpt-4o`            | 128k    | 9       | $0.005    |
| `claude-3-5-sonnet` | 200k    | 9       | $0.003    |
| `claude-3-opus`     | 200k    | 10      | $0.015    |

## Testing

```bash
uv run --group test pytest
# 118 tests, 100% coverage
```

## Architecture

```
token-optimization-mcp/
├── main.py                      ← FastMCP server (9 tools)
├── pyproject.toml
├── README.md
├── tests/
│   ├── conftest.py              ← state-reset fixtures
│   ├── test_helpers.py          ← unit tests + Hypothesis
│   └── test_tools.py            ← integration tests per tool
└── mcp-servers/
    └── context-cache-server/    ← standalone Redis-backed sub-server
        ├── server.py
        ├── config.py
        └── security.py
```

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct operation: caching (store/lookup/invalidate), compression, deduplication, analysis, estimation, model routing, and reporting. No two tools overlap in purpose.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., cache_store, compress_prompt, route_model), making them predictable and easy to differentiate.

Tool Count5/5

With 9 tools, the server covers the core aspects of token optimization without being excessive. Each tool serves a clear need within the domain.

Completeness4/5

The tool set covers analysis, caching, compression, deduplication, estimation, routing, and reporting. The only minor gap is the lack of a cache listing tool, but the core workflow is complete.

Maintenance

ActivityInactive
ResponsivenessNo issues