search_sql_configs
Search SQL configuration files using metadata keywords instead of file paths to locate trade surveillance configurations for compliance checks, reports, and transaction monitoring.
Instructions
Search for SQL configuration files using metadata keywords instead of file paths.
This tool searches through indexed SQL config files by their metadata annotations.
Files should include metadata comments like:
-- @keywords: trade, transaction, daily_report
-- @type: compliance_check
-- @description: Daily trade reconciliation report
Args:
search_keywords: Keywords to search for (e.g., "trade settlement", "compliance", "daily report")
config_directory: Path to the directory containing SQL config files (used for initial scan)
Returns:
A dictionary containing matching config files with their metadata
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| search_keywords | Yes | ||
| config_directory | No | ./configs |
Implementation Reference
- trade_surveillance_mcp/server.py:193-233 (handler)The main handler function for the 'search_sql_configs' tool. It is registered via the @mcp.tool() decorator. The function searches SQL config files using a metadata index, scanning the directory if necessary, and returns matching configs based on keywords.@mcp.tool() async def search_sql_configs( search_keywords: str, config_directory: str = "./configs" ) -> dict[str, Any]: """ Search for SQL configuration files using metadata keywords instead of file paths. This tool searches through indexed SQL config files by their metadata annotations. Files should include metadata comments like: -- @keywords: trade, transaction, daily_report -- @type: compliance_check -- @description: Daily trade reconciliation report Args: search_keywords: Keywords to search for (e.g., "trade settlement", "compliance", "daily report") config_directory: Path to the directory containing SQL config files (used for initial scan) Returns: A dictionary containing matching config files with their metadata """ logger.info(f"Searching SQL configs for keywords: {search_keywords}") # Scan directory if index is empty if not metadata_index.index.get("sql_configs"): logger.info(f"Scanning SQL configs in: {config_directory}") metadata_index.scan_sql_configs(config_directory) # Search by keywords matches = metadata_index.search(search_keywords, file_type="sql") result = { "status": "success", "search_keywords": search_keywords, "matches_found": len(matches), "config_files": matches } logger.info(f"Found {len(matches)} SQL config matches") return result