feat: add support for proxying to Tempo datasources' MCP servers #314
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit adds support for 'proxied' datasource tools. These are tools
that are hosted on a remote MCP server (e.g., a Tempo datasource).
Before the first MCP method is called, provided a session is available
(i.e. not during an 'initialize' request), the MCP server will iterate
over all suitable available datasources in the configured Grafana
instance and attempt to discover and register tools from them, by
calling the remote MCP server's 'list_tools' method then using dynamic
session-based tools to register the discovered tools.
Tools are named with the format: <datasource_type>_<original_tool_name>.
For example, a Tempo traceql-search tool would be named:
tempo_traceql-search. Each added tool also has a 'datasourceUid'
parameter added to its input schema, which is used to identify the
datasource to query.
The
--disable-proxied
flag can be used to disable this feature.Fixes #53.
Fixes #222.
Supersedes #226.