Skip to main content
Glama
execute_select.py1.95 kB
"""Execute SELECT query tool.""" from typing import Any, Optional from fastmcp import Context from .base import MCPTool class ExecuteSelectService(MCPTool): """Service to execute SELECT queries safely.""" @property def name(self) -> str: return "execute_select_query" @property def description(self) -> str: return "Execute a SELECT query to verify/test queries. Only SELECT queries are allowed - no ALTER, INSERT, CREATE, UPDATE, DELETE, etc." async def execute( self, ctx: Context, query: str, database: Optional[str] = None, server_name: Optional[str] = None, limit: int = 100, user: Optional[str] = None, password: Optional[str] = None, driver: Optional[str] = None, port: Optional[int] = None ) -> dict[str, Any]: """Execute a SELECT query safely. Args: ctx: FastMCP context query: SQL SELECT query to execute database: Database name server_name: Server hostname/address limit: Maximum number of rows to return (default 100, max 1000) user: Database username password: Database password driver: ODBC driver name port: Server port Returns: dict: Query results with columns, rows, and metadata, or error dictionary """ creds = self.creds_manager.get_from_context( ctx, user, password, server_name, database, driver, port ) if not creds.database: return {"error": "Database name is required"} if not query or not query.strip(): return {"error": "Query cannot be empty"} if not creds.is_valid(): return {"error": "Missing credentials"} return self.executor.execute_select_query(creds, query, limit)

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/yuuues/mcp-sql'

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