Spaces:
Sleeping
Sleeping
| """ | |
| MCP Tools β AI Integration Layer | |
| βββββββββββββββββββββββββββββββββ | |
| Tools for AI assistants to interact with the database. | |
| """ | |
| from app.database import get_db | |
| def get_all_tables() -> list: | |
| """Get all table names in the database.""" | |
| conn = get_db() | |
| tables = conn.execute( | |
| "SELECT name FROM sqlite_master WHERE type='table'" | |
| ).fetchall() | |
| return [t[0] for t in tables] | |
| def get_table_schema(table_name: str) -> list: | |
| """Get the schema for a specific table.""" | |
| conn = get_db() | |
| columns = conn.execute(f"PRAGMA table_info([{table_name}])").fetchall() | |
| return [dict(c) for c in columns] | |
| def execute_safe_query(sql: str) -> list: | |
| """ | |
| Execute a SELECT query safely. | |
| Only allows SELECT and PRAGMA statements. | |
| """ | |
| sql_upper = sql.strip().upper() | |
| if not (sql_upper.startswith("SELECT") or sql_upper.startswith("PRAGMA")): | |
| raise ValueError("Only SELECT and PRAGMA queries are allowed") | |
| conn = get_db() | |
| rows = conn.execute(sql).fetchall() | |
| return [dict(r) for r in rows] | |