Skip to main content
Glama
tannerpace

Oracle Database MCP Server

query_database

Execute read-only SQL SELECT queries against Oracle databases to retrieve data, column names, and execution metrics for analysis.

Instructions

Execute a read-only SQL SELECT query against the Oracle database. Returns rows, column names, and execution metrics.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe SQL query to execute (SELECT statements only)
maxRowsNoMaximum number of rows to return (optional)
timeoutNoQuery timeout in milliseconds (optional)

Implementation Reference

  • The core handler function implementing the logic for the 'query_database' MCP tool. Validates input, executes the SQL query using executeQuery, logs activity, and returns structured success/error response.
    export async function queryDatabase(input: QueryDatabaseInput) { try { // Validate input const validated = QueryDatabaseSchema.parse(input); logger.info('Executing query via MCP tool', { queryLength: validated.query.length, maxRows: validated.maxRows, }); // Execute the query const result = await executeQuery(validated.query, { maxRows: validated.maxRows, timeout: validated.timeout, }); return { success: true, data: result, }; } catch (err: any) { logger.error('Query database tool failed', { error: err.message }); return { success: false, error: err.message || 'Unknown error occurred', }; } }
  • Zod input validation schema for the 'query_database' tool, defining query (required string), maxRows, and timeout (optional numbers).
    export const QueryDatabaseSchema = z.object({ query: z.string().min(1, 'Query cannot be empty'), maxRows: z.number().int().positive().optional(), timeout: z.number().int().positive().optional(), });
  • src/server.ts:90-101 (registration)
    Dispatch logic in MCP server for handling 'tools/call' requests for 'query_database'. Parses arguments, calls the handler, and returns MCP-formatted text response.
    if (name === 'query_database') { const validated = QueryDatabaseSchema.parse(args); const result = await queryDatabase(validated); return { content: [ { type: 'text' as const, text: JSON.stringify(result, null, 2), }, ], };
  • src/server.ts:38-60 (registration)
    Tool metadata registration for 'query_database' used in MCP 'tools/list' response, including JSON Schema matching the Zod schema.
    { name: 'query_database', description: 'Execute a read-only SQL SELECT query against the Oracle database. Returns rows, column names, and execution metrics.', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'The SQL query to execute (SELECT statements only)', }, maxRows: { type: 'number', description: 'Maximum number of rows to return (optional)', }, timeout: { type: 'number', description: 'Query timeout in milliseconds (optional)', }, }, required: ['query'], }, },
Install Server

Other Tools

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/tannerpace/mcp-oracle-database'

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