- Build:
pnpm run build
- Compiles TypeScript to JavaScript - Start:
pnpm run start
- Runs the compiled server - Dev:
pnpm run dev
- Runs server with tsx (no compilation needed)
- Copy
.env.example
to.env
and configure for your database connection - Two ways to configure:
- Set
DSN
to a full connection string (recommended) - Set
DB_CONNECTOR_TYPE
to select a connector with its default DSN
- Set
- Transport options:
- Set
--transport=stdio
(default) for stdio transport - Set
--transport=sse
for SSE transport with HTTP server
- Set
- Add new connectors in
src/connectors/{db-type}/index.ts
- Implement the
Connector
andDSNParser
interfaces fromsrc/interfaces/connector.ts
- Register connector with
ConnectorRegistry.register(connector)
- DSN Examples:
- PostgreSQL:
postgres://user:password@localhost:5432/dbname
- SQLite:
sqlite:///path/to/database.db
- PostgreSQL:
- TypeScript with strict mode enabled
- ES modules with
.js
extension in imports - Group imports: Node.js core modules → third-party → local modules
- Use camelCase for variables/functions, PascalCase for classes/types
- Include explicit type annotations for function parameters/returns
- Use try/finally blocks with DB connections (always release clients)
- Prefer async/await over callbacks and Promise chains
- Format error messages consistently
- Use parameterized queries for DB operations
- Validate inputs with zod schemas
- Include fallbacks for environment variables
- Use descriptive variable/function names
- Keep functions focused and single-purpose