Added
- Optional per-call
orgIdargument, where applicable, to target a Grafana organization, opt-in via the--dynamic-multi-orgflag; also discovers proxied datasource tools across every org the credential can access. Tools that address no organization — documentation lookups, local config generation, static query examples — do not advertise it, since selecting one could not change their answer (#943) user_infotool reporting the current identity, whether it is a Grafana admin, and the organizations the credential can access (with roles) (#943)- Incident custom fields support for creating and updating incidents with user-defined fields (#1131)
- Grafana documentation tools backed by
mcp-doc-serverfor querying Grafana product documentation (#1116) --disable-queryflag to disable all query tools, and raw-SQL query tools (ClickHouse, Snowflake, Athena, MSSQL, PostgreSQL) are now gated behind--disable-writeby default (#1085)grafana_api_requestnow supports POST to/api/ds/querywhen query tools are enabled, allowing datasource queries through the generic API tool (#1125)
Fixed
run_panel_querynow resolvessqlstring-type dashboard variables correctly (#1132)- Dashboard tool now describes structured panel targets (e.g. CloudWatch, Elasticsearch) instead of silently dropping them (#1130)
- Proxied tools close non-published MCP clients before signaling readiness, preventing resource leaks during tool discovery (#1128)
Changed
get_panel_imageno longer declares its ownorgIdargument, using the per-callorgIdinjected into the native tools where an organization applies instead. The argument is therefore only advertised with--dynamic-multi-org, and without that flag a call passingorgIdis rejected as an unknown argument. Renders still scope the organization withtargetOrgIdrather thanorgId, so they do not change the user's active organization, and an organization fixed byGRAFANA_ORG_IDor theX-Grafana-Org-Idheader now setstargetOrgIdtoo.get_panel_imagereturns the dashboard deeplink only when it would open in the organization the image was rendered from, which now also accounts for an organization fixed on the connection rather than passed per call. A link cannot carry an organization safely —?orgId=Nis intercepted by Grafana'sOrgRedirectmiddleware, which persists the switch onto the viewer's user record — so for any other organization the image is returned without a deeplink (and without the MCP Apps panel-viewer fallback) rather than with one that can resolve to a different dashboard of the same UID.