import type { Tool } from '@modelcontextprotocol/sdk/types.js';
export const tools: Tool[] = [
{
name: 'connect_database',
description: 'Connect to a database (SQLite, MySQL, PostgreSQL, or SQL Server)',
inputSchema: {
type: 'object',
properties: {
connectionId: {
type: 'string',
description: 'Unique identifier for this connection'
},
type: {
type: 'string',
enum: ['sqlite', 'mysql', 'postgresql', 'mssql'],
description: 'Database type'
},
host: {
type: 'string',
description: 'Database host (not required for SQLite)'
},
port: {
type: 'number',
description: 'Database port (not required for SQLite)'
},
database: {
type: 'string',
description: 'Database name'
},
username: {
type: 'string',
description: 'Database username (not required for SQLite)'
},
password: {
type: 'string',
description: 'Database password (not required for SQLite)'
},
filename: {
type: 'string',
description: 'SQLite database file path (required for SQLite)'
},
ssl: {
type: 'boolean',
description: 'Enable SSL connection'
},
trustServerCertificate: {
type: 'boolean',
description: 'Trust server certificate (MSSQL only)'
}
},
required: ['connectionId', 'type', 'database']
}
},
{
name: 'execute_query',
description: 'Execute a SQL query on a connected database',
inputSchema: {
type: 'object',
properties: {
connectionId: {
type: 'string',
description: 'Connection identifier'
},
query: {
type: 'string',
description: 'SQL query to execute'
},
parameters: {
type: 'array',
items: { type: 'string' },
description: 'Query parameters for parameterized queries'
}
},
required: ['connectionId', 'query']
}
},
{
name: 'get_table_schema',
description: 'Get schema information for tables',
inputSchema: {
type: 'object',
properties: {
connectionId: {
type: 'string',
description: 'Connection identifier'
},
tableName: {
type: 'string',
description: 'Specific table name (optional, if not provided returns all tables)'
}
},
required: ['connectionId']
}
},
{
name: 'list_connections',
description: 'List all active database connections',
inputSchema: {
type: 'object',
properties: {}
}
},
{
name: 'disconnect_database',
description: 'Disconnect from a database',
inputSchema: {
type: 'object',
properties: {
connectionId: {
type: 'string',
description: 'Connection identifier to disconnect'
}
},
required: ['connectionId']
}
}
];