Skip to main content
Glama

MCP SQL Server

by ryudg
ExecuteQueryUseCase.ts1.74 kB
import { QueryDomainService } from '../../domain/query/services/QueryDomainService.js'; import { QueryResult } from '../../domain/query/entities/Query.js'; import { QueryString } from '../../domain/query/value-objects/QueryString.js'; import { QueryExecutionError } from '../../domain/query/errors/QueryExecutionError.js'; export interface ExecuteQueryRequest { sql: string; parameters?: any[]; } export interface ExecuteQueryResponse { success: boolean; result?: QueryResult; error?: string; } /** * ExecuteQueryUseCase * * Application use case for executing database queries. * Implements the use case pattern from Clean Architecture. */ export class ExecuteQueryUseCase { constructor(private readonly queryDomainService: QueryDomainService) {} /** * Executes a query with the given SQL and parameters. * @param request The query execution request * @returns Response with query result or error */ async execute(request: ExecuteQueryRequest): Promise<ExecuteQueryResponse> { try { // Create QueryString value object to validate SQL const queryString = new QueryString(request.sql); // Create and validate query const query = await this.queryDomainService.createQuery( queryString.value, request.parameters || [] ); // Execute query const result = await this.queryDomainService.executeQuery(query.id); return { success: true, result, }; } catch (error) { // Preserve domain errors if (error instanceof QueryExecutionError) { throw error; } return { success: false, error: error instanceof Error ? error.message : 'Unknown error occurred', }; } } }

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

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