Skip to main content
Glama

Trade Surveillance Support MCP Server

by vic3custodio

search_sql_configs

Find SQL configuration files using metadata keywords instead of file paths. Search indexed SQL configs by annotations like -- @keywords: trade, compliance, daily_report to locate relevant configurations for trade surveillance workflows.

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

NameRequiredDescriptionDefault
search_keywordsYes
config_directoryNo./configs

Input Schema (JSON Schema)

{ "properties": { "config_directory": { "default": "./configs", "title": "Config Directory", "type": "string" }, "search_keywords": { "title": "Search Keywords", "type": "string" } }, "required": [ "search_keywords" ], "type": "object" }

Implementation Reference

  • The @mcp.tool()-decorated handler function that implements the search_sql_configs tool. It scans SQL config directory if needed, searches the metadata index, and returns matching configs.
    @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
  • Supporting method called by the tool to scan and index SQL config files, extracting metadata annotations from comments.
    def scan_sql_configs(self, config_dir: str) -> dict[str, Any]: """ Scan SQL config files and extract metadata from comments. Looks for annotations like: -- @keywords: trade, transaction, daily_report -- @type: compliance_check -- @description: Daily trade reconciliation report """ config_path = Path(config_dir) if not config_path.exists(): return {} configs = {} for sql_file in config_path.rglob("*.sql"): metadata = self._extract_sql_metadata(sql_file) if metadata: configs[str(sql_file.relative_to(config_path))] = metadata self.index["sql_configs"] = configs self._save_index() return configs
  • Core search method used by the tool to find matching SQL configs based on keywords in metadata.
    def search(self, query: str, file_type: str = "all") -> list[dict[str, Any]]: """ Search the index by keywords, type, or description. Args: query: Search terms (space or comma separated) file_type: "sql", "java", or "all" Returns: List of matching files with their metadata """ query_terms = [term.strip().lower() for term in re.split(r'[,\s]+', query)] results = [] # Search SQL configs if file_type in ("sql", "all"): for file_name, metadata in self.index.get("sql_configs", {}).items(): if self._matches_query(metadata, query_terms): results.append({ "type": "sql_config", "file": file_name, **metadata }) # Search Java classes if file_type in ("java", "all"): for file_name, metadata in self.index.get("java_classes", {}).items(): if self._matches_query(metadata, query_terms): results.append({ "type": "java_class", "file": file_name, **metadata }) return results

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vic3custodio/mcp_test_2'

If you have feedback or need assistance with the MCP directory API, please join our Discord server