Skip to content

refactor(mcp): 16 → 5 tool aggregati (dataset, query, pipeline, source, contract) - #474

Draft
Gabrymi93 wants to merge 1 commit into
mainfrom
feat/mcp-tools-aggregation
Draft

refactor(mcp): 16 → 5 tool aggregati (dataset, query, pipeline, source, contract)#474
Gabrymi93 wants to merge 1 commit into
mainfrom
feat/mcp-tools-aggregation

Conversation

@Gabrymi93

Copy link
Copy Markdown
Member

Sostituisce i 16 tool flat con 5 tool CLI-like

Ogni tool ha un parametro action che fa da dispatch, riducendo la complessita' per gli agenti AI da 16 nomi da ricordare a 5 pattern uniformi.

Nuovi tool

Tool Azioni Params chiave
toolkit_dataset find, overview, status, preflight, schema-diff action + query/slug/config_path
toolkit_query run, preview action + datasets/sql o url
toolkit_pipeline contract, runs, registry_list, registry_show, graph action + layer/config_path/repo
toolkit_source probe, ckan, links, sparql action + url/endpoint/query
toolkit_contract (unico) layer (backward compat)

Esempi

# Prima (3 tool diversi)
toolkit_find(query="terna")
toolkit_dataset_overview(slug="terna_electricity_by_source")
toolkit_layer(datasets=["terna_electricity_by_source"], sql="SELECT ...")

# Dopo (2 tool, pattern uniforme)
toolkit_dataset(action="find", query="terna")
toolkit_dataset(action="overview", slug="terna_electricity_by_source")
toolkit_query(action="run", datasets=["terna_electricity_by_source"], sql="SELECT ...")

Metriche

  • Test: 34/34 passano
  • Ruff: clean
  • File changed: 2 (server.py, test_mcp_server.py)
  • LOC: +505 / -477

Note

  • toolkit_contract mantenuto per backward compat
  • Le implementazioni *_ops.py non sono cambiate — solo il layer MCP in server.py
  • Default mode="sql" per toolkit_query (catalog mode lo richiede)

…e, contract)

Sostituisce i 16 tool flat con 5 tool CLI-like, ognuno con param action
che fa da dispatch. Riduce la complessita' per gli agenti AI da 16 nomi
da ricordare a 5 pattern uniformi.

- toolkit_dataset: find, overview, status, preflight, schema-diff
- toolkit_query: run (SQL), preview (URL CSV/TSV)
- toolkit_pipeline: contract, runs, registry_list/show, graph
- toolkit_source: probe, ckan, links, sparql
- toolkit_contract: backward compat

Test: 34/34, ruff clean.
@Gabrymi93
Gabrymi93 marked this pull request as draft August 17, 2026 17:43
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