Skip to main content
Glama
README.md
# glama-status-mcp

Daily-refreshed Glama score tracker for the sandraschi fleet. Scrapes per-tool TDQS grades from glama.ai, stores in SQLite, surfaces via MCP tools and a web dashboard. Tracks deltas between snapshots, generates daily reports, and flags stale repos needing rescan.

## Quickstart

```bash
just install
just web          # HTTP backend on :11072
just web-frontend # Vite dev on :11073
just web-dev      # Full stack
just refresh      # Manual scrape + snapshot
```

## MCP Tools

| Tool | Purpose |
|------|---------|
| `glama_status` | Portmanteau: list, get, worst_tools, refresh, history, staleness, report, deltas |
| `glama_scores_summary` | Compact grade distribution and per-repo stats |
| `glama_daily_report` | Full markdown report with deltas, worst tools, stale repos |

## Web Dashboard

| Route | Description |
|-------|-------------|
| `/` | Sortable fleet score table |
| `/api/repos` | All repos with per-tool breakdowns |
| `/api/repos/{name}` | Single repo tool breakdown |
| `/api/report` | Full daily report JSON |
| `/api/deltas` | Score changes since last snapshot |
| `/api/refresh` (POST) | Trigger rescrape + snapshot |
| `/api/worst-tools` | Lowest-scoring tools fleet-wide |

## How it works

1. **Scraper** fetches `glama.ai/mcp/servers/{author}/{repo}/score` pages
2. **Parser** extracts per-tool grades, 6 TDQS dimension scores, coherence, and maintenance data
3. **SQLite** stores current scores + snapshot history for delta tracking
4. **Daily refresh** via Scheduled Task or `just refresh` creates a new snapshot
5. **Delta engine** compares latest two snapshots to show changes

## Scored repos (10 of 35 registered on Glama)

| Repo | Grade | Score | Tools |
|------|-------|-------|-------|
| blender-mcp | C | 2.70 | 67 |
| windows-operations-mcp | B | 3.00 | 17 |
| virtualization-mcp | B | 3.06 | 9 |
| worldlabs-mcp | B | 3.38 | 20 |
| robotics-mcp | A | 3.58 | 8 |
| bumi-mcp | A | 3.64 | 2 |
| xkcd-mcp | A | 3.67 | 6 |
| cursor-mcp | A | 3.80 | 6 |
| steam-mcp | A | 3.81 | 14 |
| email-mcp | A | 3.82 | 10 |

25 more registered on Glama but not yet analyzed (page exists, no tools).

## Scoring (Glama TDQS)

| Dimension | Weight | Description |
|-----------|--------|-------------|
| Purpose Clarity | 25% | First sentence states what the tool does |
| Usage Guidelines | 20% | When to / not to call, preconditions |
| Behavioral Transparency | 20% | Returns, side effects, error conditions |
| Parameter Semantics | 15% | Every param: type, values, what it affects |
| Conciseness & Structure | 10% | Not a wall of text, not a one-liner |
| Contextual Completeness | 10% | Enough context to use without reading source |

Server-level = 60% mean + 40% minimum  -  one bad tool pulls the whole score down.

## Ports

- Backend (FastAPI + MCP HTTP): 11072
- Frontend (Vite dev): 11073

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation3/5

Some overlap exists between dedicated report tools (glama_daily_report, glama_scores_summary) and the glama_status tool which has its own 'report' and 'list' operations. Descriptions try to clarify, but an agent might struggle to choose the correct tool for a given task.

Naming Consistency5/5

All tools follow a consistent 'glama_<descriptive_name>' pattern in snake_case, with clear verb_noun or descriptive names. There is no mixing of conventions or confusing styles.

Tool Count5/5

With 7 tools, the set is well-scoped for monitoring and analyzing Glama scores. Each tool has a distinct purpose, and the count feels neither too few nor too many.

Completeness4/5

The set covers analysis, reporting, summary, detailed queries, and rich cards. Missing a direct submission tool is acceptable as it's outside the server's scope. Minor gaps like lacking a bulk update feature are not critical.

Maintenance

ActivityMaintained
ResponsivenessNo issues