Skip to main content
Glama

mcp-turso-cloud

index.ts2.29 kB
#!/usr/bin/env node import { McpServer } from 'tmcp'; import { ZodJsonSchemaAdapter } from '@tmcp/adapter-zod'; import { StdioTransport } from '@tmcp/transport-stdio'; import { z } from 'zod'; import { readFileSync } from 'node:fs'; import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; import { get_config } from './config.js'; import { register_tools } from './tools/handler.js'; // Get package info for server metadata const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const pkg = JSON.parse( readFileSync(join(__dirname, '..', 'package.json'), 'utf8'), ); const { name, version } = pkg; /** * Main class for the Turso MCP server */ class TursoServer { private server: McpServer; constructor() { // Initialize the server with metadata const adapter = new ZodJsonSchemaAdapter(); this.server = new McpServer( { name, version, description: 'MCP server for integrating Turso with LLMs', }, { adapter, capabilities: { tools: { listChanged: true }, }, }, ); // Handle process termination process.on('SIGINT', async () => { process.exit(0); }); process.on('SIGTERM', async () => { process.exit(0); }); } /** * Initialize the server */ private async initialize(): Promise<void> { try { // Load configuration const config = get_config(); console.error( `Turso MCP server initialized for organization: ${config.TURSO_ORGANIZATION}`, ); // Register all tools using the unified handler register_tools(this.server); console.error('All tools registered'); } catch (error) { console.error('Failed to initialize server:', error); process.exit(1); } } /** * Run the server */ public async run(): Promise<void> { try { // Initialize the server await this.initialize(); // Connect to the transport const transport = new StdioTransport(this.server); transport.listen(); console.error('Turso MCP server running on stdio'); } catch (error) { console.error('Failed to start server:', error); process.exit(1); } } } // Create and run the server const server = new TursoServer(); server.run().catch((error) => { console.error('Unhandled error:', error); process.exit(1); });

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/spences10/mcp-turso-cloud'

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