list_data_sources
Identify and retrieve all available data sources for the Zaturn MCP server, including source types, to enable accurate SQL query execution across diverse data formats such as SQL databases, CSV, and Parquet files.
Instructions
List all available data sources. Returns a list of unique source_ids to be used for other queries. Source type is included in the source_id string. While drafting SQL queries use appropriate syntax as per source type.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- zaturn/tools/core.py:19-42 (handler)The core handler function for the 'list_data_sources' tool. It iterates over data_sources, lists tables for each using query_utils.list_tables, and formats a markdown-like string response listing sources and tables.def list_data_sources(self) -> str: """ List all available data sources. Returns a list of unique source_ids to be used for other queries. Source type is included in the source_id string. While drafting SQL queries use appropriate syntax as per source type. """ try: if not self.data_sources: return "No data sources available. Add data sources." result = "Available data sources:\n\n" for source_id in self.data_sources: tables = query_utils.list_tables( self.data_sources[source_id] ) if type(tables) is list: tables = ', '.join(tables) result += f"- {source_id}\nHas tables: {tables}\n" return result except Exception as e: return str(e)
- zaturn/tools/core.py:12-16 (registration)Local registration of the list_data_sources tool within the Core class's self.tools list, which is unpacked and used higher up.self.tools = [ self.list_data_sources, self.describe_table, self.run_query, ]
- zaturn/tools/__init__.py:7-10 (registration)Inclusion of Core.tools (containing list_data_sources) into the ZaturnTools.tools list.self.tools = [ *core.Core(data_sources).tools, *visualizations.Visualizations(data_sources).tools, ]
- zaturn/mcp/__init__.py:90-94 (registration)Final MCP registration: ZaturnTools.tools (including list_data_sources) are added to FastMCP server via Tool.from_function.zaturn_tools = ZaturnTools(sources) zaturn_mcp = FastMCP() for tool_function in zaturn_tools.tools: zaturn_mcp.add_tool(Tool.from_function(tool_function))