Commit Graph

187 Commits

Author SHA1 Message Date
Joe Li
0cc04ff8a2 fix(mcp): handle SSL connection drop during pre-call session teardown (#39917)
Manual port of apache/superset#39917 (commit 85935b0b) onto 6.0-release.
A clean cherry-pick does not apply because mcp_service/auth.py has diverged
structurally on this branch, but the vulnerable code path is present verbatim:
sync_wrapper calls db.session.remove() before user resolution on reused
thread-pool threads. If the thread-local DBAPI connection died between
requests (RDS SSL idle-timeout / max-connection-age), the implicit rollback
raises a DBAPIError and crashes the tool call.

Wrap the pre-call remove in _remove_session_safe(), which catches DBAPIError,
invalidates the dead connection so the pool discards it, and retries remove()
so the tool proceeds on a fresh connection. Ports the accompanying regression
test byte-for-byte behaviorally.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 14:21:40 -07:00
Amin Ghadersohi
c63ada38f2 feat(mcp): add tags + typed metadata fields to update_dashboard (#40957)
(cherry picked from commit c60d8bb656)
2026-07-02 12:25:24 -07:00
Greg Neighbors
9cd2a0d7b8 feat(mcp): dashboard layout, theme, and CSS control + update_dashboard tool (#40399)
Co-authored-by: gkneighb <26003+gkneighb@users.noreply.github.com>
Co-authored-by: Greg Neighbors <gregneighbors@Gregs-MacBook-Air-2.local>
Co-authored-by: Greg Neighbors <gregneighbors@Gregs-Air-2.lan>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
(cherry picked from commit d8bcc66472)
2026-07-02 12:11:12 -07:00
Amin Ghadersohi
eb8a8aebf5 fix(mcp): escape LIKE wildcards in find_users to prevent user enumeration (#41593)
(cherry picked from commit 7f4cac63c9)
2026-07-02 11:06:44 -07:00
Amin Ghadersohi
aab1c0483e chore(mcp): remove low-value list/info tools that fail agent-native policy (#40690)
(cherry picked from commit ef7379c47e)

Adapted for 6.0-release: on this branch only the css_template and theme MCP
tool groups exist, so this pick removes those two groups (their list/get tools,
schemas, and unit tests) along with their docstring and get_schema references.
The plugin, action_log, and task-management tool groups the upstream change
also touched do not exist on 6.0 and were left untouched.
2026-07-02 10:35:18 -07:00
Maxime Beauchemin
8b6cc68954 feat(mcp): resolve call_tool proxy name and capture error_type in logging (#38915)
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com>
(cherry picked from commit b6f545e61e)
2026-06-30 12:25:20 -07:00
Amin Ghadersohi
56b5133721 fix(mcp): make search_tools query optional to fix null content on tool discovery (#40906)
(cherry picked from commit 820e3d18d3)
2026-06-26 20:48:41 -07:00
Amin Ghadersohi
62bf3a0c43 feat(mcp): add aggregation field to BigNumberChartConfig for Big Number with Trendline (#40775)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
(cherry picked from commit 4b96b91b53)
2026-06-25 13:58:39 -07:00
Vitor Avila
a363c81887 fix(chart API): apply dashboard filters by live scope, not stale chartsInScope (#41214)
(cherry picked from commit 334b13c3d9)
2026-06-19 12:33:44 -07:00
Amin Ghadersohi
9e45088364 fix(mcp): add select_columns lean defaults to get_dashboard_info, get_chart_info, get_dataset_info (#40473)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Richard Fogaça <richardfogaca@gmail.com>
(cherry picked from commit aa4092ba68)
2026-06-05 17:50:15 -07:00
Amin Ghadersohi
f7429845d5 fix(mcp): API key authentication for MCP — transport, validation, and RBAC (#39604)
(cherry picked from commit 7d69f76127)
2026-06-05 17:44:00 -07:00
Amin Ghadersohi
9a72a03608 fix(mcp): fall back to form_data spatial query for Deck.gl charts (#40339)
(cherry picked from commit f4dfb7f026)
2026-06-05 17:35:32 -07:00
Amin Ghadersohi
59af59405b chore(deps): migrate MCP service JWT errors from authlib.jose to joserfc (#40582)
(cherry picked from commit a6d2c95480)
2026-06-05 17:27:44 -07:00
Amin Ghadersohi
2ead15894e feat(mcp): add list_reports and get_report_info tools (#40348)
Co-authored-by: Richard Fogaça <richardfogaca@gmail.com>
(cherry picked from commit 5312d0adf8)
2026-06-05 17:24:35 -07:00
Amin Ghadersohi
b84377cdfd feat(mcp): add list_tags and get_tag_info MCP tools (#40349)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 8d8eeb3505)
2026-06-05 17:12:45 -07:00
Amin Ghadersohi
5f0e9a5377 feat(mcp): add list and get tools for saved queries and query history (#40346)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit a69bbcb044)
2026-06-05 17:10:32 -07:00
Amin Ghadersohi
22327a9a0a feat(mcp): add list and get tools for CSS templates and themes (#40343)
(cherry picked from commit d350792d43)
2026-06-05 17:07:42 -07:00
Amin Ghadersohi
385b84f572 feat(mcp): add list and get tools for annotation layers and annotations (#40342)
(cherry picked from commit f614863ed7)
2026-06-05 17:02:25 -07:00
Mehmet Salih Yavuz
e23a3eae1a feat(mcp): add get_dashboard_layout companion tool (#40328)
(cherry picked from commit 8853ab5c75)
2026-06-05 16:59:16 -07:00
Gabriel Torres Ruiz
610d1c5998 feat(mcp): support custom SQL metrics in generate_chart and update_chart (#40448)
(cherry picked from commit e68251fa70)
2026-06-05 16:53:09 -07:00
Amin Ghadersohi
98ee054613 feat(mcp): browser hello page with working middleware and config-driven content (#40471)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 0dc58d1042)
2026-06-05 16:49:56 -07:00
Amin Ghadersohi
abc4dfb01c fix(mcp): return error when target_tab not found in add_chart_to_existing_dashboard (#40124)
(cherry picked from commit e041f25385)
2026-06-05 16:48:48 -07:00
Amin Ghadersohi
c814025522 fix(mcp): prevent encoding error on tools/list when middleware raises (#40446)
(cherry picked from commit 952a6f3a23)
2026-06-05 16:46:29 -07:00
Amin Ghadersohi
227a97ce73 feat(mcp): add series_limit to generate_chart XY config (#40307)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 5966bb1c1e)
2026-06-05 16:44:27 -07:00
Amin Ghadersohi
8247e67d58 fix(mcp): hide write tools from users without write permissions (#40098)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit e25d708197)
2026-06-05 16:42:55 -07:00
SkinnyPigeon
9ee01c54f4 feat: Allow specific mcp tools to be disabled (#39835)
(cherry picked from commit 70419e9d8f)
2026-06-05 16:39:29 -07:00
Richard Fogaca Nienkotter
febab1e24d fix(mcp): default chart previews to ascii (#39719)
(cherry picked from commit d0abb66fdf)
2026-06-05 16:34:34 -07:00
Amin Ghadersohi
0e12a92930 fix(mcp): correct method name in API key auth (extract_api_key_from_request) (#39437)
(cherry picked from commit 7c4f87615b)
2026-06-05 16:31:35 -07:00
Amin Ghadersohi
c9d505eaa8 fix(mcp): unwrap ToolResult payload before truncation in ResponseSizeGuardMiddleware (#39578)
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
(cherry picked from commit b1b6a057d8)
2026-06-05 16:30:33 -07:00
Gabriel Torres Ruiz
e357c10a44 fix(mcp): clear stale query_context in update_chart so filters and row_limit are applied (#39413)
(cherry picked from commit 919daabe54)
2026-06-05 16:28:59 -07:00
Richard Fogaca Nienkotter
e2c746a9a5 fix(mcp): return requested update chart previews (#40077)
(cherry picked from commit fa06989ed7)
2026-06-03 15:47:38 -07:00
Alexandru Soare
f759506366 feat(mcp): make form_data_key optional in update_chart_preview (#39680)
(cherry picked from commit 33585b0480)
2026-06-03 09:13:54 -07:00
Alexandru Soare
9ea64571dd chore(mcp): Simplify chart preview response (#40020)
(cherry picked from commit b64561f3a3)
2026-06-03 09:13:54 -07:00
Mehmet Salih Yavuz
4349e7c97b fix(mcp): use name URL param so AI-generated SQL Lab titles render (#40288)
(cherry picked from commit 8ab4695ba3)
2026-06-03 09:13:54 -07:00
Alexandru Soare
894d64cdd9 fix(preview): fix chart preview bugs (#40063)
(cherry picked from commit 558ff4452b)
2026-06-03 09:13:54 -07:00
Mehmet Salih Yavuz
e8e9fa9e61 feat(mcp): make config optional in generate_explore_link (#39559)
(cherry picked from commit 4c3f65ef0b)
2026-06-03 09:13:54 -07:00
Mehmet Salih Yavuz
4b0bd34372 feat(mcp): include applied dashboard filters in get_chart_info (#39620)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
(cherry picked from commit 53d8e5bdfa)
2026-06-03 09:13:54 -07:00
Mehmet Salih Yavuz
7ce69aecdf fix(mcp): eager-load dataset.metrics to prevent Excel export DetachedInstanceError (#39483)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
(cherry picked from commit 2f95d288dd)
2026-06-03 09:13:54 -07:00
Mehmet Salih Yavuz
cd64365399 feat(mcp): add find_users tool and owner filter columns for listings (#39679)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
(cherry picked from commit d1d07112aa)
2026-06-03 09:13:54 -07:00
Alexandru Soare
a88648a793 fix(recommandation): Fix chart recommandation (#39886)
(cherry picked from commit e3711bec39)
2026-06-03 09:13:54 -07:00
Mehmet Salih Yavuz
741693e2f5 feat(mcp): chart formatting options across all supported chart types (#39887)
(cherry picked from commit ce9cab098f)
2026-06-03 09:13:54 -07:00
Alexandru Soare
82050eac85 fix(mcp): Skip misleading trend analysis for categorical ASCII charts (#39761)
(cherry picked from commit fb276b08dd)
2026-06-03 09:13:54 -07:00
Alexandru Soare
41d4d46b55 fix(mcp): raise right error (#39964)
(cherry picked from commit 6e8b3bf976)
2026-06-03 09:13:54 -07:00
Alexandru Soare
ad42f8a8b4 feat(mcp): Add mcp_call_id to tool responses for server log correlation (#39776)
(cherry picked from commit 55024e8f4d)
2026-06-03 09:13:54 -07:00
Alexandru Soare
68adc2cb41 fix(mcp): Block destructive DDL (DROP, TRUNCATE, ALTER) in execute_sql (#39621)
(cherry picked from commit b98bd2a07a)
2026-06-03 09:13:54 -07:00
Alexandru Soare
7e47e27ff0 fix(mcp): changed_on_humanized null in write tool responses (generate_dashboard, generate_chart) (#39488)
(cherry picked from commit 0a3a35018c)
2026-06-02 14:25:36 -07:00
Richard Fogaca Nienkotter
51d76fdf9e fix(mcp): apply cached adhoc filters to chart retrieval (#40099)
(cherry picked from commit 8fa5a75c70)
2026-05-22 15:14:47 -07:00
Amin Ghadersohi
b46ee47661 fix(mcp): database filter columns, timeseries SQL, and unsaved chart datasource name (#39636)
Completes the earlier partial backport of #39636 (commit 9039d1460c)
which only applied the database/schemas.py + test_database_tools.py
chunks and dropped the get_chart_sql.py + test_get_chart_sql.py chunks
entirely. The dropped chunks introduce the `_resolve_engine` and
`_resolve_datasource_name` helpers used by #40099.

(cherry picked from commit 7774ec7e3c)
2026-05-22 15:14:47 -07:00
Amin Ghadersohi
0dbdf00587 fix(mcp): improve not-found errors to suggest corresponding list_* tools (#39919)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
(cherry picked from commit 460992d89b)
2026-05-22 12:08:30 -07:00
Sandesh Devaraju
2fed392839 fix(mcp): JSON-serialize order_by_cols and support sort direction (#39952)
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com>
(cherry picked from commit 823eb905d3)
2026-05-22 12:08:30 -07:00