Skip to content

refactor: cleanup MCP tools + caching (da 10 a 7 tool)#399

Merged
Gabrymi93 merged 3 commits into
mainfrom
feat/cleanup-mcp-cache
Jul 3, 2026
Merged

refactor: cleanup MCP tools + caching (da 10 a 7 tool)#399
Gabrymi93 merged 3 commits into
mainfrom
feat/cleanup-mcp-cache

Conversation

@Gabrymi93

Copy link
Copy Markdown
Member

Sintesi

Refactoring dei tool MCP di Source Observatory: da 10 a 7 strumenti, con caching TTL 120s e backend consolidati. Stessa logica di PR #607 su clean-query.

Cosa cambia

Tool rimossi (6)

Vecchio tool Assorbito in
so_catalog_inventory_search so_inventory_search(query=)
so_list_source_items so_inventory_search(source_id=)
so_recommend_sources so_inventory_search(keyword=)
so_inventory_query so_source_check (default mode)
so_inventory_status so_source_check(include_diff=True)
so_inventory_diff so_source_check(include_diff=True)

Tool finali (7)

  1. so_registry_query — invariato
  2. so_radar_summary — + caching (con include_history=True)
  3. so_inventory_search — 3 modalità automatiche (keyword / source_id / query)
  4. so_source_check — query source_check_results + status/diff
  5. so_catalog_signals — + caching
  6. so_find_by_url — + caching
  7. so_source_overview — composito (invariato)

Backend

  • Eliminati: _discovery.py, _recommend.py
  • Creati: _inventory_search.py (unifica search/list/recommend), _source_check.py (unifica query/status/diff)
  • Rimosso: _inventory.py (sdoppiato nei due nuovi moduli)

Caching

TtlCache da lab_connectors.mcp con TTL 120s su tutti i tool read-only. Chiave include parametri normalizzati — query identiche tornano in ~100ms invece di 2-6s.

Checklist

  • Modifica script (radar, inventory, source-check, MCP)

  • Skills o MCP tools

  • Documentazione

  • pytest tests/ passa (54/54)

  • ruff check . passa

  • mypy scripts/ so_mcp/ passa

Verifica

  • Test: 54 test passano (tutti i test MCP + smoke server + edge case)
  • Lint: ruff ok
  • Type check: mypy ok
  • Audit manuale: chiamati tutti i tool MCP via source-observatory_* — rispondono correttamente

Note per chi revisiona

  • Breaking change sui nomi tool MCP: so_inventory_query, so_inventory_status, so_catalog_inventory_search, so_list_source_items, so_recommend_sources non esistono più. Sostituiti da so_source_check e so_inventory_search.
  • Skills inventory-triage.md e source-check.md aggiornate con i nuovi nomi.
  • so_inventory_search sceglie la modalità automaticamente in base ai parametri passati (keyword → recommend, source_id → list, query → search).
  • so_source_check con include_diff=True unisce inventory_status + inventory_diff.

Da 10 a 7 tool MCP, con caching TTL 120s e backend consolidati.

Tool rimossi:
- so_catalog_inventory_search → assorbito in so_inventory_search
- so_list_source_items → assorbito in so_inventory_search
- so_recommend_sources → assorbito in so_inventory_search
- so_inventory_query → assorbito in so_source_check
- so_inventory_status → assorbito in so_source_check

Tool finali (7):
1. so_registry_query — invariato
2. so_radar_summary — + caching
3. so_inventory_search — 3 modalita' (keyword/source_id/query)
4. so_source_check — query + status/diff
5. so_catalog_signals — + caching
6. so_find_by_url — + caching
7. so_source_overview — invariato

Backend: eliminati _discovery.py, _recommend.py. Creati
_inventory_search.py (unifica search/list/recommend) e
_source_check.py (unifica query/status/diff).

Caching: TtlCache 120s su tutti i tool read-only.
Chiave cache include parametri normalizzati.

Test: 54/54 passano. Mypy: ok. Lint: ok.
@Gabrymi93 Gabrymi93 force-pushed the feat/cleanup-mcp-cache branch from 3920426 to 204af23 Compare July 3, 2026 20:12
Gabrymi93 added 2 commits July 3, 2026 21:16
- Aggiunta type annotation _query_cache: TtlCache[Any] per mypy CI
  (TtlCache estende typing.Generic, mypy richiede var-annotated).
- README root: da 12 a 7 tool dopo refactoring MCP.
TtlCache[K, V] definito in lab-connectors. L'annotazione
TtlCache[Any] dava 'expects 2 type arguments, but 1 given'.
Corretto in TtlCache[tuple[Any, ...], dict[str, Any]].
@Gabrymi93 Gabrymi93 merged commit e0a2c5c into main Jul 3, 2026
2 checks passed
@Gabrymi93 Gabrymi93 deleted the feat/cleanup-mcp-cache branch July 3, 2026 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant