No description
This MCP server provides a web-based interface for managing local DuckDB databases, allowing users to upload CSV/TSV files or DuckDB files, view table...
175 # SELECT文にLIMITを追加
176 if query.strip().upper().startswith("SELECT") and "LIMIT" not in query.upper():
177 query = f"{query.rstrip(';')} LIMIT {limit}"
178 logger.info(f"Added LIMIT {limit} to SELECT query")
179
180 result = conn.execute(query).fetchall()// Exploitable only if MCP is exposed to untrusted prompts (e.g., via LLM agent). Requires compromised LLM to exploit.
175 result = conn.execute(query).fetchall()// Exploitable only if MCP is exposed to untrusted prompts (e.g., via LLM agent). Requires compromised LLM to exploit.
115 for col in columns_info:
116 col_name = col[0]
117 col_type = col[1]
118 nullable = "YES" if col[2] else "NO"
119 default = col[3] if col[3] is not None else ""
120 comment = column_comments.get(col_name, "")
121 response.append(f"| {col_name} | {col_type} | {nullable} | {default} | {comment} |")// Exploitable only if MCP is exposed to untrusted prompts (e.g., via LLM agent). Requires compromised LLM to exploit.
145 table_comment_result = conn.execute(f"SELECT comment FROM duckdb_tables() WHERE table_name = '{table_name}'").fetchone()97 try:
98 column_comments_result = conn.execute(f"""
99 SELECT column_name, comment
100 FROM duckdb_columns()
101 WHERE table_name = '{table_name}' AND comment IS NOT NULL
102 """ ).fetchall()// Exploitable only if MCP is exposed to untrusted prompts (e.g., via LLM agent). Requires compromised LLM to exploit.
85 # テーブルの詳細情報を取得
86 columns_info = conn.execute(f"DESCRIBE {table_name}").fetchall()// Exploitable only if MCP is exposed to untrusted prompts (e.g., via LLM agent). Requires compromised LLM to exploit.