Skip to main content
Glama
itsalfredakku

Postgres MCP Server

transactions

Manage PostgreSQL database transactions with actions including begin, commit, rollback, and savepoint operations for controlled data modifications.

Instructions

Transaction management: begin, commit, rollback, savepoints

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesAction: begin (start transaction), commit (commit transaction), rollback (rollback transaction), savepoint (create savepoint), rollback_to (rollback to savepoint), release (release savepoint), status (transaction status)
isolationLevelNoTransaction isolation level (for begin action)
readOnlyNoStart read-only transaction (for begin action)
savepointNameNoSavepoint name (required for savepoint, rollback_to, release)
transactionIdNoTransaction ID (required for commit, rollback, and operations within transaction)

Implementation Reference

  • Main handler function for the 'transactions' tool. Dispatches actions (begin, commit, rollback, status) to DatabaseConnectionManager methods and returns MCP-formatted responses.
    private async handleTransactions(args: any) { const { action, transactionId, readOnly, isolationLevel } = args; switch (action) { case 'begin': const txId = await this.dbManager.beginTransaction(readOnly); return { content: [{ type: 'text', text: JSON.stringify({ transactionId: txId, status: 'started' }, null, 2) }] }; case 'commit': ParameterValidator.validateRequired(transactionId, 'transactionId'); await this.dbManager.commitTransaction(transactionId); return { content: [{ type: 'text', text: JSON.stringify({ transactionId, status: 'committed' }, null, 2) }] }; case 'rollback': ParameterValidator.validateRequired(transactionId, 'transactionId'); await this.dbManager.rollbackTransaction(transactionId); return { content: [{ type: 'text', text: JSON.stringify({ transactionId, status: 'rolled_back' }, null, 2) }] }; case 'status': return { content: [{ type: 'text', text: JSON.stringify(this.dbManager.getOperationalStats(), null, 2) }] }; default: throw new Error(`Unknown transaction action: ${action}`); } }
  • JSON Schema defining the input parameters for the 'transactions' tool, including actions and parameters like transactionId, readOnly, etc.
    inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['begin', 'commit', 'rollback', 'savepoint', 'rollback_to', 'release', 'status'], description: 'Action: begin (start transaction), commit (commit transaction), rollback (rollback transaction), savepoint (create savepoint), rollback_to (rollback to savepoint), release (release savepoint), status (transaction status)' }, transactionId: { type: 'string', description: 'Transaction ID (required for commit, rollback, and operations within transaction)' }, savepointName: { type: 'string', description: 'Savepoint name (required for savepoint, rollback_to, release)' }, readOnly: { type: 'boolean', description: 'Start read-only transaction (for begin action)', default: false }, isolationLevel: { type: 'string', enum: ['READ UNCOMMITTED', 'READ COMMITTED', 'REPEATABLE READ', 'SERIALIZABLE'], description: 'Transaction isolation level (for begin action)' } }, required: ['action'] }
  • src/index.ts:658-659 (registration)
    Registration of the transactions tool handler in the main tool dispatch switch statement within CallToolRequestSchema handler.
    case 'transactions': return await this.handleTransactions(args);
  • src/index.ts:286-317 (registration)
    Tool definition object for 'transactions' included in the toolDefinitions array, which is returned by ListToolsRequestSchema.
    name: 'transactions', description: 'Transaction management: begin, commit, rollback, savepoints', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['begin', 'commit', 'rollback', 'savepoint', 'rollback_to', 'release', 'status'], description: 'Action: begin (start transaction), commit (commit transaction), rollback (rollback transaction), savepoint (create savepoint), rollback_to (rollback to savepoint), release (release savepoint), status (transaction status)' }, transactionId: { type: 'string', description: 'Transaction ID (required for commit, rollback, and operations within transaction)' }, savepointName: { type: 'string', description: 'Savepoint name (required for savepoint, rollback_to, release)' }, readOnly: { type: 'boolean', description: 'Start read-only transaction (for begin action)', default: false }, isolationLevel: { type: 'string', enum: ['READ UNCOMMITTED', 'READ COMMITTED', 'REPEATABLE READ', 'SERIALIZABLE'], description: 'Transaction isolation level (for begin action)' } }, required: ['action'] } },
  • Mapping in TOOL_NAME_MAPPINGS for suggesting 'transactions' tool when 'transaction' is used incorrectly.
    'transaction': 'transactions',

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/itsalfredakku/postgres-mcp'

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