execute_sql
Run SQL queries directly on the Postgres MCP server to interact with and manage databases efficiently during development, testing, and deployment.
Instructions
Execute any SQL query
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sql | No | SQL to run | all |
Implementation Reference
- src/postgres_mcp/server.py:390-403 (handler)The main handler function for the 'execute_sql' tool. It executes the provided SQL query using the sql_driver determined by the current access mode, returns formatted results or an error message.
async def execute_sql( sql: str = Field(description="SQL to run", default="all"), ) -> ResponseType: """Executes a SQL query against the database.""" try: sql_driver = await get_sql_driver() rows = await sql_driver.execute_query(sql) # type: ignore if rows is None: return format_text_response("No results") return format_text_response(list([r.cells for r in rows])) except Exception as e: logger.error(f"Error executing query: {e}") return format_error_response(str(e)) - src/postgres_mcp/server.py:550-553 (registration)Registers the execute_sql tool dynamically based on the access mode (unrestricted or restricted/read-only), adding it to the MCP server with an appropriate description.
if current_access_mode == AccessMode.UNRESTRICTED: mcp.add_tool(execute_sql, description="Execute any SQL query") else: mcp.add_tool(execute_sql, description="Execute a read-only SQL query")