diff --git a/package.json b/package.json index 1db345f..c5ea96f 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "dependencies": { "@modelcontextprotocol/sdk": "^1.0.4", "dotenv": "^17.2.3", - "pg": "^8.11.3" + "pg": "^8.11.3", + "@sentry/node": "^9.19.1" }, "devDependencies": { "@types/node": "^20.11.0", diff --git a/src/index.ts b/src/index.ts index 0fc652b..847a681 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,12 +13,23 @@ import dotenv from 'dotenv'; import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; +import * as Sentry from '@sentry/node'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const envPath = join(__dirname, '..', '.env'); const result = dotenv.config({ path: envPath, override: true }); +// Initialize Sentry for error tracking +if (process.env.SENTRY_DSN) { + Sentry.init({ + dsn: process.env.SENTRY_DSN, + environment: process.env.SENTRY_ENVIRONMENT || 'production', + tracesSampleRate: parseFloat(process.env.SENTRY_API_TRACE_RATE || '0.1'), + integrations: [Sentry.postgresIntegration()], + }); +} + // Log environment loading status (goes to MCP server logs) if (result.error) { console.error('Failed to load .env from:', envPath, result.error);