Skip to main content
Glama

Cloudflare Remote PostgreSQL Database MCP Server

index_sentry.ts1.9 kB
import * as Sentry from "@sentry/cloudflare"; import OAuthProvider from "@cloudflare/workers-oauth-provider"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { McpAgent } from "agents/mcp"; import { Props } from "./types"; import { GitHubHandler } from "./auth/github-handler"; import { closeDb } from "./database/connection"; import { registerDatabaseToolsWithSentry } from "./tools/database-tools-sentry"; // Sentry configuration helper function getSentryConfig(env: Env) { return { // You can disable Sentry by setting SENTRY_DSN to a falsey-value dsn: (env as any).SENTRY_DSN, // A sample rate of 1.0 means "capture all traces" tracesSampleRate: 1, }; } export class MyMCP extends McpAgent<Env, Record<string, never>, Props> { server = new McpServer({ name: "PostgreSQL Database MCP Server", version: "1.0.0", }); /** * Cleanup database connections when Durable Object is shutting down */ async cleanup(): Promise<void> { try { await closeDb(); console.log('Database connections closed successfully'); } catch (error) { console.error('Error during database cleanup:', error); } } /** * Durable Objects alarm handler - used for cleanup */ async alarm(): Promise<void> { await this.cleanup(); } async init() { // Initialize Sentry const sentryConfig = getSentryConfig(this.env); if (sentryConfig.dsn) { // @ts-ignore - Sentry.init exists but types may not be complete Sentry.init(sentryConfig); } // Register all tools with Sentry instrumentation registerDatabaseToolsWithSentry(this.server, this.env, this.props); } } export default new OAuthProvider({ apiHandlers: { '/sse': MyMCP.serveSSE('/sse') as any, '/mcp': MyMCP.serve('/mcp') as any, }, authorizeEndpoint: "/authorize", clientRegistrationEndpoint: "/register", defaultHandler: GitHubHandler as any, tokenEndpoint: "/token", });

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/technophile-04/sre-mcp'

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