@neverinfamous/postgres-mcp 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +78 -201
  2. package/dist/__tests__/benchmarks/codemode.bench.js +3 -3
  3. package/dist/__tests__/benchmarks/codemode.bench.js.map +1 -1
  4. package/dist/__tests__/benchmarks/connection-pool.bench.js +3 -3
  5. package/dist/__tests__/benchmarks/connection-pool.bench.js.map +1 -1
  6. package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts +11 -0
  7. package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts.map +1 -0
  8. package/dist/__tests__/benchmarks/introspection-migration.bench.js +143 -0
  9. package/dist/__tests__/benchmarks/introspection-migration.bench.js.map +1 -0
  10. package/dist/__tests__/benchmarks/resource-prompts.bench.js +0 -64
  11. package/dist/__tests__/benchmarks/resource-prompts.bench.js.map +1 -1
  12. package/dist/__tests__/benchmarks/schema-parsing.bench.js +4 -4
  13. package/dist/__tests__/benchmarks/schema-parsing.bench.js.map +1 -1
  14. package/dist/__tests__/benchmarks/tool-filtering.bench.js +17 -8
  15. package/dist/__tests__/benchmarks/tool-filtering.bench.js.map +1 -1
  16. package/dist/adapters/DatabaseAdapter.d.ts +0 -4
  17. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  18. package/dist/adapters/DatabaseAdapter.js +11 -28
  19. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  20. package/dist/adapters/postgresql/PostgresAdapter.d.ts +0 -4
  21. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
  22. package/dist/adapters/postgresql/PostgresAdapter.js +3 -6
  23. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
  24. package/dist/adapters/postgresql/resources/capabilities.js +1 -1
  25. package/dist/adapters/postgresql/resources/cron.d.ts.map +1 -1
  26. package/dist/adapters/postgresql/resources/cron.js +2 -1
  27. package/dist/adapters/postgresql/resources/cron.js.map +1 -1
  28. package/dist/adapters/postgresql/schemas/core/queries.d.ts +4 -4
  29. package/dist/adapters/postgresql/schemas/core/transactions.d.ts +12 -0
  30. package/dist/adapters/postgresql/schemas/core/transactions.d.ts.map +1 -1
  31. package/dist/adapters/postgresql/schemas/core/transactions.js +18 -0
  32. package/dist/adapters/postgresql/schemas/core/transactions.js.map +1 -1
  33. package/dist/adapters/postgresql/schemas/index.d.ts +1 -1
  34. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
  35. package/dist/adapters/postgresql/schemas/index.js +1 -1
  36. package/dist/adapters/postgresql/schemas/index.js.map +1 -1
  37. package/dist/adapters/postgresql/schemas/introspection.d.ts +17 -37
  38. package/dist/adapters/postgresql/schemas/introspection.d.ts.map +1 -1
  39. package/dist/adapters/postgresql/schemas/introspection.js +73 -30
  40. package/dist/adapters/postgresql/schemas/introspection.js.map +1 -1
  41. package/dist/adapters/postgresql/schemas/partman.d.ts +1 -1
  42. package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
  43. package/dist/adapters/postgresql/schemas/vector.js +2 -4
  44. package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
  45. package/dist/adapters/postgresql/tools/introspection/analysis.d.ts.map +1 -1
  46. package/dist/adapters/postgresql/tools/introspection/analysis.js +171 -139
  47. package/dist/adapters/postgresql/tools/introspection/analysis.js.map +1 -1
  48. package/dist/adapters/postgresql/tools/introspection/graph.d.ts +17 -1
  49. package/dist/adapters/postgresql/tools/introspection/graph.d.ts.map +1 -1
  50. package/dist/adapters/postgresql/tools/introspection/graph.js +55 -50
  51. package/dist/adapters/postgresql/tools/introspection/graph.js.map +1 -1
  52. package/dist/adapters/postgresql/tools/introspection/index.d.ts +9 -7
  53. package/dist/adapters/postgresql/tools/introspection/index.d.ts.map +1 -1
  54. package/dist/adapters/postgresql/tools/introspection/index.js +9 -14
  55. package/dist/adapters/postgresql/tools/introspection/index.js.map +1 -1
  56. package/dist/adapters/postgresql/tools/introspection/migration.d.ts +1 -1
  57. package/dist/adapters/postgresql/tools/introspection/migration.d.ts.map +1 -1
  58. package/dist/adapters/postgresql/tools/introspection/migration.js +75 -96
  59. package/dist/adapters/postgresql/tools/introspection/migration.js.map +1 -1
  60. package/dist/adapters/postgresql/tools/migration/index.d.ts +15 -0
  61. package/dist/adapters/postgresql/tools/migration/index.d.ts.map +1 -0
  62. package/dist/adapters/postgresql/tools/migration/index.js +23 -0
  63. package/dist/adapters/postgresql/tools/migration/index.js.map +1 -0
  64. package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts +18 -0
  65. package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts.map +1 -0
  66. package/dist/adapters/postgresql/tools/performance/anomaly-detection.js +546 -0
  67. package/dist/adapters/postgresql/tools/performance/anomaly-detection.js.map +1 -0
  68. package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts +11 -0
  69. package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts.map +1 -0
  70. package/dist/adapters/postgresql/tools/performance/diagnostics.js +342 -0
  71. package/dist/adapters/postgresql/tools/performance/diagnostics.js.map +1 -0
  72. package/dist/adapters/postgresql/tools/performance/index.d.ts +1 -1
  73. package/dist/adapters/postgresql/tools/performance/index.d.ts.map +1 -1
  74. package/dist/adapters/postgresql/tools/performance/index.js +7 -1
  75. package/dist/adapters/postgresql/tools/performance/index.js.map +1 -1
  76. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
  77. package/dist/adapters/postgresql/tools/transactions.js +67 -2
  78. package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
  79. package/dist/auth/scopes.d.ts.map +1 -1
  80. package/dist/auth/scopes.js +2 -0
  81. package/dist/auth/scopes.js.map +1 -1
  82. package/dist/cli.js +6 -0
  83. package/dist/cli.js.map +1 -1
  84. package/dist/codemode/api/aliases.d.ts.map +1 -1
  85. package/dist/codemode/api/aliases.js +5 -0
  86. package/dist/codemode/api/aliases.js.map +1 -1
  87. package/dist/codemode/api/index.d.ts +1 -0
  88. package/dist/codemode/api/index.d.ts.map +1 -1
  89. package/dist/codemode/api/index.js +3 -0
  90. package/dist/codemode/api/index.js.map +1 -1
  91. package/dist/codemode/api/maps.d.ts.map +1 -1
  92. package/dist/codemode/api/maps.js +21 -12
  93. package/dist/codemode/api/maps.js.map +1 -1
  94. package/dist/constants/ServerInstructions.d.ts +1 -1
  95. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  96. package/dist/constants/ServerInstructions.js +16 -9
  97. package/dist/constants/ServerInstructions.js.map +1 -1
  98. package/dist/filtering/ToolConstants.d.ts +18 -18
  99. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  100. package/dist/filtering/ToolConstants.js +43 -29
  101. package/dist/filtering/ToolConstants.js.map +1 -1
  102. package/dist/filtering/ToolFilter.d.ts +0 -32
  103. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  104. package/dist/filtering/ToolFilter.js +0 -43
  105. package/dist/filtering/ToolFilter.js.map +1 -1
  106. package/dist/transports/http.d.ts +12 -0
  107. package/dist/transports/http.d.ts.map +1 -1
  108. package/dist/transports/http.js +19 -1
  109. package/dist/transports/http.js.map +1 -1
  110. package/dist/types/filtering.d.ts +1 -1
  111. package/dist/types/filtering.d.ts.map +1 -1
  112. package/dist/types/index.d.ts +2 -2
  113. package/dist/types/index.d.ts.map +1 -1
  114. package/dist/types/index.js.map +1 -1
  115. package/dist/types/mcp.d.ts +0 -21
  116. package/dist/types/mcp.d.ts.map +1 -1
  117. package/dist/types/schema.d.ts +0 -79
  118. package/dist/types/schema.d.ts.map +1 -1
  119. package/dist/utils/icons.d.ts.map +1 -1
  120. package/dist/utils/icons.js +5 -0
  121. package/dist/utils/icons.js.map +1 -1
  122. package/dist/utils/identifiers.d.ts.map +1 -1
  123. package/dist/utils/identifiers.js +6 -6
  124. package/dist/utils/identifiers.js.map +1 -1
  125. package/dist/utils/progress-utils.d.ts +1 -12
  126. package/dist/utils/progress-utils.d.ts.map +1 -1
  127. package/dist/utils/progress-utils.js +0 -18
  128. package/dist/utils/progress-utils.js.map +1 -1
  129. package/package.json +3 -3
  130. package/dist/utils/promptGenerator.d.ts +0 -20
  131. package/dist/utils/promptGenerator.d.ts.map +0 -1
  132. package/dist/utils/promptGenerator.js +0 -81
  133. package/dist/utils/promptGenerator.js.map +0 -1
package/README.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  <!-- mcp-name: io.github.neverinfamous/postgres-mcp -->
4
4
 
5
- **Last Updated March 8, 2026**
5
+ **Last Updated March 9, 2026**
6
6
 
7
- **PostgreSQL MCP Server** enabling AI assistants (AntiGravity, Claude, Cursor, etc.) to interact with PostgreSQL databases through the Model Context Protocol. Features **Code Mode** — a revolutionary approach that provides access to all 227 tools through a single, secure JavaScript sandbox, eliminating the massive token overhead of multi-step tool calls. Also includes schema introspection and migration tracking, smart tool filtering, deterministic error handling, connection pooling, HTTP/SSE Transport, OAuth 2.1 authentication, and extension support for citext, ltree, pgcrypto, pg_cron, pg_stat_kcache, pgvector, PostGIS, and HypoPG.
7
+ **PostgreSQL MCP Server** enabling AI assistants (AntiGravity, Claude, Cursor, etc.) to interact with PostgreSQL databases through the Model Context Protocol. Features **Code Mode** — a revolutionary approach that provides access to all 232 tools through a single, secure JavaScript sandbox, eliminating the massive token overhead of multi-step tool calls. Also includes schema introspection, migration tracking, smart tool filtering, deterministic error handling, connection pooling, HTTP/SSE Transport, OAuth 2.1 authentication, and extension support for citext, ltree, pgcrypto, pg_cron, pg_stat_kcache, pgvector, PostGIS, and HypoPG.
8
8
 
9
- **227 Specialized Tools** · **20 Resources** · **19 AI-Powered Prompts**
9
+ **232 Specialized Tools** · **20 Resources** · **19 AI-Powered Prompts**
10
10
 
11
11
  [![GitHub](https://img.shields.io/badge/GitHub-neverinfamous/postgres--mcp-blue?logo=github)](https://github.com/neverinfamous/postgres-mcp)
12
12
  ![GitHub Release](https://img.shields.io/github/v/release/neverinfamous/postgres-mcp)
@@ -17,29 +17,29 @@
17
17
  [![Security](https://img.shields.io/badge/Security-Enhanced-green.svg)](https://github.com/neverinfamous/postgres-mcp/blob/main/SECURITY.md)
18
18
  ![Status](https://img.shields.io/badge/status-Production%2FStable-brightgreen)
19
19
  [![TypeScript](https://img.shields.io/badge/TypeScript-Strict-blue.svg)](https://github.com/neverinfamous/postgres-mcp)
20
- [![Tests](https://img.shields.io/badge/Tests-3448_passed-success.svg)](https://github.com/neverinfamous/postgres-mcp)
21
20
  [![E2E](https://github.com/neverinfamous/postgres-mcp/actions/workflows/e2e.yml/badge.svg)](https://github.com/neverinfamous/postgres-mcp/actions/workflows/e2e.yml)
22
- [![Coverage](https://img.shields.io/badge/Coverage-95.08%25-brightgreen.svg)](https://github.com/neverinfamous/postgres-mcp)
21
+ [![Tests](https://img.shields.io/badge/Tests-3750_passed-success.svg)](https://github.com/neverinfamous/postgres-mcp)
22
+ [![Coverage](https://img.shields.io/badge/Coverage-96.18%25-brightgreen.svg)](https://github.com/neverinfamous/postgres-mcp)
23
23
 
24
- **[Docker Hub](https://hub.docker.com/r/writenotenow/postgres-mcp)** • **[npm Package](https://www.npmjs.com/package/@neverinfamous/postgres-mcp)** • **[MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/postgres-mcp)** • **[Wiki](https://github.com/neverinfamous/postgres-mcp/wiki)** • **[Changelog](https://github.com/neverinfamous/postgres-mcp/blob/main/CHANGELOG.md)**
24
+ **[Docker Hub](https://hub.docker.com/r/writenotenow/postgres-mcp)** • **[npm Package](https://www.npmjs.com/package/@neverinfamous/postgres-mcp)** • **[MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/postgres-mcp)** • **[Wiki](https://github.com/neverinfamous/postgres-mcp/wiki)** • **[Tool Reference](https://github.com/neverinfamous/postgres-mcp/wiki/Tool-Reference)** • **[Changelog](https://github.com/neverinfamous/postgres-mcp/blob/main/CHANGELOG.md)**
25
25
 
26
26
  ## 🎯 What Sets Us Apart
27
27
 
28
28
  | Feature | Description |
29
29
  | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
30
- | **227 Specialized Tools** | The largest PostgreSQL tool collection for MCP — from core CRUD and native JSONB to pgvector, PostGIS, pg_cron, ltree, pgcrypto, introspection analysis, schema version tracking, and 8 extension ecosystems |
30
+ | **232 Specialized Tools** | The largest PostgreSQL tool collection for MCP — from core CRUD and native JSONB to pgvector, PostGIS, pg_cron, ltree, pgcrypto, introspection analysis, migration tracking, and 8 extension ecosystems |
31
31
  | **20 Observability Resources** | Real-time schema, performance metrics, connection pool status, replication lag, vacuum stats, lock contention, and extension diagnostics |
32
32
  | **19 AI-Powered Prompts** | Guided workflows for query building, schema design, performance tuning, and extension setup |
33
- | **Code Mode** | **Massive Token Savings:** Execute complex, multi-step operations inside a fast, secure JavaScript sandbox. Instead of spending thousands of tokens on back-and-forth tool calls, Code Mode exposes all 227 capabilities locally, reducing token overhead by up to 90% and supercharging AI agent reasoning. |
33
+ | **Code Mode** | **Massive Token Savings:** Execute complex, multi-step operations inside a fast, secure JavaScript sandbox. Instead of spending thousands of tokens on back-and-forth tool calls, Code Mode exposes all 232 capabilities locally, reducing token overhead by up to 90% and supercharging AI agent reasoning. |
34
34
  | **OAuth 2.1 + Access Control** | Enterprise-ready security with RFC 9728/8414 compliance, granular scopes (`read`, `write`, `admin`, `full`, `db:*`, `table:*:*`), and Keycloak integration |
35
- | **Smart Tool Filtering** | 21 tool groups + 16 shortcuts let you stay within IDE limits while exposing exactly what you need |
35
+ | **Smart Tool Filtering** | 22 tool groups + 16 shortcuts let you stay within IDE limits while exposing exactly what you need |
36
36
  | **Dual HTTP Transport** | Streamable HTTP (`/mcp`) for modern clients + legacy SSE (`/sse`) for backward compatibility — both protocols supported simultaneously |
37
37
  | **High-Performance Pooling** | Built-in connection pooling with health checks for efficient, concurrent database access |
38
38
  | **8 Extension Ecosystems** | First-class support for **pgvector**, **PostGIS**, **pg_cron**, **pg_partman**, **pg_stat_kcache**, **citext**, **ltree**, and **pgcrypto** |
39
- | **Introspection & Migration Tracking** | Simulate cascade impacts, generate safe DDL ordering, analyze constraint health, and track schema migrations with SHA-256 dedup — 12 agent-optimized tools that let AI assistants reason about schema changes before executing them |
39
+ | **Introspection & Migration Tracking** | Simulate cascade impacts, generate safe DDL ordering, analyze constraint health, and track schema migrations with SHA-256 dedup — 12 agent-optimized tools split into read-only analysis and migration management groups |
40
40
  | **Deterministic Error Handling** | Every tool returns structured `{success, error}` responses — no raw exceptions, no silent failures, no misleading messages. Agents get actionable context instead of cryptic PostgreSQL codes |
41
41
  | **Production-Ready Security** | SQL injection protection, parameterized queries, input validation, sandboxed code execution, SSL certificate verification by default, and HTTP body size enforcement |
42
- | **Benchmarked Performance** | 75+ [Vitest benchmarks](https://github.com/neverinfamous/postgres-mcp/wiki/Performance) across 9 domains: tool dispatch at 3.7M ops/sec, WHERE validation at 2.3M ops/sec, auth checks at 3.7M ops/sec, and logger no-op path at 3.9M ops/sec |
42
+ | **Benchmarked Performance** | 93+ [Vitest benchmarks](https://github.com/neverinfamous/postgres-mcp/wiki/Performance) across 10 domains: tool dispatch at 6.9M ops/sec, identifier sanitization at 4.4M ops/sec, auth checks at 5.3M ops/sec, and schema parsing at 2.1M ops/sec |
43
43
  | **Strict TypeScript** | 100% type-safe codebase with 3448 tests and 95.09% coverage |
44
44
  | **MCP 2025-11-25 Compliant** | Full protocol support with tool safety hints, resource priorities, and progress notifications |
45
45
 
@@ -91,6 +91,11 @@ docker pull writenotenow/postgres-mcp:latest
91
91
  }
92
92
  ```
93
93
 
94
+ **Customization Notes:**
95
+
96
+ - Update credentials (`your_username`, `your_password`, etc.) with your PostgreSQL credentials
97
+ - **Extension tools** gracefully handle cases where extensions are not installed
98
+
94
99
  > **Note for Docker**: Use `host.docker.internal` to connect to PostgreSQL running on your host machine.
95
100
 
96
101
  📖 **Full Docker guide:** [DOCKER_README.md](DOCKER_README.md) · [Docker Hub](https://hub.docker.com/r/writenotenow/postgres-mcp)
@@ -123,12 +128,12 @@ Code executes in a **sandboxed VM context** with multiple layers of security. Al
123
128
  - **Static code validation** — blocked patterns include `require()`, `process`, `eval()`, and filesystem access
124
129
  - **Rate limiting** — 60 executions per minute per client
125
130
  - **Hard timeouts** — configurable execution limit (default 30s)
126
- - **Full API access** — all 20 tool groups are available via `pg.*` (e.g., `pg.core.readQuery()`, `pg.jsonb.extract()`, `pg.introspection.dependencyGraph()`)
131
+ - **Full API access** — all 22 tool groups are available via `pg.*` (e.g., `pg.core.readQuery()`, `pg.jsonb.extract()`, `pg.introspection.dependencyGraph()`, `pg.migration.migrationStatus()`)
127
132
  - **Requires `admin` OAuth scope** — execution is logged for audit
128
133
 
129
134
  ### ⚡ Code Mode Only (Maximum Token Savings)
130
135
 
131
- If you control your own setup, you can run with **only Code Mode enabled** — a single tool that provides access to all 227 tools' worth of capability through the `pg.*` API:
136
+ If you control your own setup, you can run with **only Code Mode enabled** — a single tool that provides access to all 232 tools' worth of capability through the `pg.*` API:
132
137
 
133
138
  ```json
134
139
  {
@@ -154,14 +159,7 @@ If you control your own setup, you can run with **only Code Mode enabled** — a
154
159
  }
155
160
  ```
156
161
 
157
- This exposes just `pg_execute_code`. The agent writes JavaScript against the typed `pg.*` SDK — composing queries, chaining operations across all 20 tool groups, and returning exactly the data it needs — in one execution. This mirrors the [Code Mode pattern](https://blog.cloudflare.com/code-mode-mcp/) pioneered by Cloudflare for their entire API: fixed token cost regardless of how many capabilities exist.
158
-
159
- > [!TIP]
160
- > **Maximize Token Savings:** Instruct your AI agent to prefer Code Mode over individual tool calls:
161
- >
162
- > _"When using postgres-mcp, prefer `pg_execute_code` (Code Mode) for multi-step database operations to minimize token usage."_
163
- >
164
- > For maximum savings, use `--tool-filter codemode` to run with Code Mode as your only tool. See the [Code Mode wiki](https://github.com/neverinfamous/postgres-mcp/wiki/Code-Mode) for full API documentation.
162
+ This exposes just `pg_execute_code`. The agent writes JavaScript against the typed `pg.*` SDK — composing queries, chaining operations across all 22 tool groups, and returning exactly the data it needs — in one execution. This mirrors the [Code Mode pattern](https://blog.cloudflare.com/code-mode-mcp/) pioneered by Cloudflare for their entire API: fixed token cost regardless of how many capabilities exist.
165
163
 
166
164
  #### Disabling Code Mode (Non-Admin Users)
167
165
 
@@ -190,77 +188,27 @@ node dist/cli.js list-tools # List available tools
190
188
 
191
189
  ### Benchmarks
192
190
 
193
- Run `npm run bench` to execute the performance benchmark suite (9 files, 75+ scenarios) powered by [Vitest Bench](https://vitest.dev/guide/features.html#benchmarking). Use `npm run bench:verbose` for detailed table output.
191
+ Run `npm run bench` to execute the performance benchmark suite (10 files, 93+ scenarios) powered by [Vitest Bench](https://vitest.dev/guide/features.html#benchmarking). Use `npm run bench:verbose` for detailed table output.
194
192
 
195
193
  **Performance Highlights** (Node.js 24, Windows 11):
196
194
 
197
195
  | Area | Benchmark | Throughput |
198
196
  | --------------------------- | ---------------------------------------- | ------------- |
199
- | **Tool Dispatch** | Map.get() single tool lookup | ~3.7M ops/sec |
200
- | **WHERE Validation** | Simple clause (combined regex fast-path) | ~2.3M ops/sec |
201
- | **Identifier Sanitization** | validateIdentifier() | ~2.5M ops/sec |
202
- | **Auth — Token Extraction** | extractBearerToken() | ~2.0M ops/sec |
203
- | **Auth — Scope Checking** | hasAnyScope() | ~3.7M ops/sec |
204
- | **Rate Limiting** | Single IP check | ~1.8M ops/sec |
205
- | **Logger** | Filtered debug (no-op path) | ~3.9M ops/sec |
206
- | **Schema Parsing** | ReadQuerySchema.parse() | ~260K ops/sec |
207
- | **Metadata Cache** | Cache hit + miss pattern | ~1.8M ops/sec |
208
- | **Sandbox Creation** | CodeModeSandbox.create() cold start | ~550 ops/sec |
197
+ | **Tool Dispatch** | Map.get() single tool lookup | ~6.9M ops/sec |
198
+ | **WHERE Validation** | Simple clause (combined regex fast-path) | ~3.7M ops/sec |
199
+ | **Identifier Sanitization** | validateIdentifier() | ~4.4M ops/sec |
200
+ | **Auth — Token Extraction** | extractBearerToken() | ~2.7M ops/sec |
201
+ | **Auth — Scope Checking** | hasScope() | ~5.3M ops/sec |
202
+ | **Rate Limiting** | Single IP check | ~2.3M ops/sec |
203
+ | **Logger** | Filtered debug (no-op path) | ~5.4M ops/sec |
204
+ | **Schema Parsing** | MigrationInitSchema.parse() | ~2.1M ops/sec |
205
+ | **Metadata Cache** | Cache hit + miss pattern | ~1.7M ops/sec |
206
+ | **Sandbox Creation** | CodeModeSandbox.create() cold start | ~863 ops/sec |
209
207
 
210
208
  > Full benchmark results and methodology are available on the [Performance wiki page](https://github.com/neverinfamous/postgres-mcp/wiki/Performance).
211
209
 
212
210
  ---
213
211
 
214
- ## ⚡ MCP Client Configuration
215
-
216
- ### Cursor IDE / Claude Desktop
217
-
218
- ```json
219
- {
220
- "mcpServers": {
221
- "postgres-mcp": {
222
- "command": "node",
223
- "args": [
224
- "C:/path/to/postgres-mcp/dist/cli.js",
225
- "--postgres",
226
- "postgres://user:password@localhost:5432/database",
227
- "--tool-filter",
228
- "starter"
229
- ]
230
- }
231
- }
232
- }
233
- ```
234
-
235
- > [!TIP]
236
- > The `starter` shortcut provides 59 tools including **Code Mode** for token-efficient operations. All presets include Code Mode by default. See [Tool Filtering](#-tool-filtering) to customize.
237
-
238
- ### Using Environment Variables (Recommended)
239
-
240
- ```json
241
- {
242
- "mcpServers": {
243
- "postgres-mcp": {
244
- "command": "node",
245
- "args": [
246
- "C:/path/to/postgres-mcp/dist/cli.js",
247
- "--tool-filter",
248
- "starter"
249
- ],
250
- "env": {
251
- "POSTGRES_HOST": "localhost",
252
- "POSTGRES_PORT": "5432",
253
- "POSTGRES_USER": "your_user",
254
- "POSTGRES_PASSWORD": "your_password",
255
- "POSTGRES_DATABASE": "your_database"
256
- }
257
- }
258
- }
259
- }
260
- ```
261
-
262
- ---
263
-
264
212
  ## 🔗 Database Connection Scenarios
265
213
 
266
214
  | Scenario | Host to Use | Example Connection String |
@@ -282,7 +230,7 @@ Run `npm run bench` to execute the performance benchmark suite (9 files, 75+ sce
282
230
  ## 🛠️ Tool Filtering
283
231
 
284
232
  > [!IMPORTANT]
285
- > AI IDEs like Cursor have tool limits. With 227 tools available, you MUST use tool filtering to stay within your IDE's limits. We recommend `starter` (59 tools) as a starting point. Code Mode is included in all presets by default for 70-90% token savings on multi-step operations.
233
+ > All shortcuts and tool groups include **Code Mode** (`pg_execute_code`) by default for token-efficient operations. To exclude it, add `-codemode` to your filter: `--tool-filter cron,pgcrypto,-codemode`
286
234
 
287
235
  ### What Can You Filter?
288
236
 
@@ -290,134 +238,58 @@ The `--tool-filter` argument accepts **shortcuts**, **groups**, or **tool names*
290
238
 
291
239
  | Filter Pattern | Example | Tools | Description |
292
240
  | ---------------- | ------------------------- | ----- | ------------------------- |
293
- | Shortcut only | `starter` | 59 | Use a predefined bundle |
294
- | Groups only | `core,jsonb,transactions` | 47 | Combine individual groups |
295
- | Shortcut + Group | `starter,+text` | 72 | Extend a shortcut |
296
- | Shortcut - Tool | `starter,-pg_drop_table` | 58 | Remove specific tools |
297
-
298
- All shortcuts and tool groups include **Code Mode** (`pg_execute_code`) by default for token-efficient operations. To exclude it, add `-codemode` to your filter: `--tool-filter cron,pgcrypto,-codemode`
241
+ | Shortcut only | `starter` | 60 | Use a predefined bundle |
242
+ | Groups only | `core,jsonb,transactions` | 48 | Combine individual groups |
243
+ | Shortcut + Group | `starter,+text` | 73 | Extend a shortcut |
244
+ | Shortcut - Tool | `starter,-pg_drop_table` | 59 | Remove specific tools |
299
245
 
300
246
  ### Shortcuts (Predefined Bundles)
301
247
 
302
- > Tool counts include Code Mode (`pg_execute_code`) which is included in all presets by default.
303
-
304
248
  | Shortcut | Tools | Use Case | What's Included |
305
249
  | --------------- | ------ | ------------------------ | -------------------------------------------------------- |
306
- | `starter` | **59** | 🌟 **Recommended** | Core, trans, JSONB, schema, codemode |
307
- | `essential` | 47 | Minimal footprint | Core, trans, JSONB, codemode |
308
- | `dev-schema` | 52 | Dev Schema & Migrations | Core, trans, schema, introspection, codemode |
309
- | `dev-analytics` | 42 | Dev Analytics | Core, trans, stats, partitioning, codemode |
310
- | `ai-data` | 60 | AI Data Analyst | Core, JSONB, text, trans, codemode |
311
- | `ai-vector` | 50 | AI/ML with pgvector | Core, vector, trans, part, codemode |
312
- | `dba-monitor` | 59 | DBA Monitoring | Core, monitoring, perf, trans, codemode |
313
- | `dba-schema` | 45 | DBA Schema & Migrations | Core, schema, introspection, codemode |
250
+ | `starter` | **60** | Standard Package | Core, trans, JSONB, schema, codemode |
251
+ | `essential` | 48 | Minimal footprint | Core, trans, JSONB, codemode |
252
+ | `dev-schema` | 53 | Dev Schema & Migrations | Core, trans, schema, introspection, migration, codemode |
253
+ | `dev-analytics` | 43 | Dev Analytics | Core, trans, stats, partitioning, codemode |
254
+ | `ai-data` | 61 | AI Data Analyst | Core, JSONB, text, trans, codemode |
255
+ | `ai-vector` | 51 | AI/ML with pgvector | Core, vector, trans, part, codemode |
256
+ | `dba-monitor` | 64 | DBA Monitoring | Core, monitoring, perf, trans, codemode |
257
+ | `dba-schema` | 45 | DBA Schema & Migrations | Core, schema, introspection, migration, codemode |
314
258
  | `dba-infra` | 46 | DBA Infrastructure | Core, admin, backup, partitioning, codemode |
315
- | `dba-stats` | 57 | DBA Stats | Core, admin, monitoring, trans, stats, codemode |
316
- | `geo` | 43 | Geospatial Workloads | Core, PostGIS, trans, codemode |
259
+ | `dba-stats` | 58 | DBA Stats | Core, admin, monitoring, trans, stats, codemode |
260
+ | `geo` | 44 | Geospatial Workloads | Core, PostGIS, trans, codemode |
317
261
  | `base-ops` | 51 | Operations Block | Admin, monitoring, backup, part, stats, citext, codemode |
318
262
  | `ext-ai` | 26 | Extension: AI/Security | pgvector, pgcrypto, codemode |
319
263
  | `ext-geo` | 24 | Extension: Spatial | PostGIS, ltree, codemode |
320
264
  | `ext-schedule` | 19 | Extension: Scheduling | pg_cron, pg_partman, codemode |
321
- | `ext-perf` | 28 | Extension: Perf/Analysis | pg_stat_kcache, performance, codemode |
322
-
323
- ### Tool Groups (21 Available)
324
-
325
- > Tool counts include Code Mode (`pg_execute_code`) which is added to all groups by default.
326
-
327
- | Group | Tools | Description |
328
- | --------------- | ----- | ----------------------------------------------------------- |
329
- | `codemode` | 1 | Code Mode (sandboxed code execution) |
330
- | `core` | 21 | Read/write queries, tables, indexes, convenience/drop tools |
331
- | `transactions` | 8 | BEGIN, COMMIT, ROLLBACK, savepoints |
332
- | `jsonb` | 20 | JSONB manipulation and queries |
333
- | `text` | 14 | Full-text search, fuzzy matching |
334
- | `performance` | 21 | EXPLAIN, query analysis, optimization |
335
- | `admin` | 11 | VACUUM, ANALYZE, REINDEX |
336
- | `monitoring` | 12 | Database sizes, connections, status |
337
- | `backup` | 10 | pg_dump, COPY, restore |
338
- | `schema` | 13 | Schemas, views, sequences, functions, triggers |
339
- | `introspection` | 13 | Dependency graphs, cascade simulation, migration tracking |
340
- | `partitioning` | 7 | Native partition management |
341
- | `stats` | 9 | Statistical analysis |
342
- | `vector` | 17 | pgvector (AI/ML similarity search) |
343
- | `postgis` | 16 | PostGIS (geospatial) |
344
- | `cron` | 9 | pg_cron (job scheduling) |
345
- | `partman` | 11 | pg_partman (auto-partitioning) |
346
- | `kcache` | 8 | pg_stat_kcache (OS-level stats) |
347
- | `citext` | 7 | citext (case-insensitive text) |
348
- | `ltree` | 9 | ltree (hierarchical data) |
349
- | `pgcrypto` | 10 | pgcrypto (encryption, UUIDs) |
350
-
351
- ---
352
-
353
- ### Quick Start: Recommended IDE Configuration
354
-
355
- Add one of these configurations to your IDE's MCP settings file:
356
-
357
- #### Option 1: Starter (59 Essential Tools)
358
-
359
- **Best for:** General PostgreSQL database work - CRUD operations, JSONB, schema management.
360
-
361
- ```json
362
- {
363
- "mcpServers": {
364
- "postgres-mcp": {
365
- "command": "node",
366
- "args": [
367
- "/path/to/postgres-mcp/dist/cli.js",
368
- "--transport",
369
- "stdio",
370
- "--tool-filter",
371
- "starter"
372
- ],
373
- "env": {
374
- "POSTGRES_HOST": "localhost",
375
- "POSTGRES_PORT": "5432",
376
- "POSTGRES_USER": "your_username",
377
- "POSTGRES_PASSWORD": "your_password",
378
- "POSTGRES_DATABASE": "your_database"
379
- }
380
- }
381
- }
382
- }
383
- ```
384
-
385
- #### Option 2: AI Vector (50 Tools + pgvector)
386
-
387
- **Best for:** AI/ML workloads with semantic search and vector similarity.
388
-
389
- > **⚠️ Prerequisites:** Requires pgvector extension installed in your PostgreSQL database.
390
-
391
- ```json
392
- {
393
- "mcpServers": {
394
- "postgres-mcp-ai": {
395
- "command": "node",
396
- "args": [
397
- "/path/to/postgres-mcp/dist/cli.js",
398
- "--transport",
399
- "stdio",
400
- "--tool-filter",
401
- "ai-vector"
402
- ],
403
- "env": {
404
- "POSTGRES_HOST": "localhost",
405
- "POSTGRES_PORT": "5432",
406
- "POSTGRES_USER": "your_username",
407
- "POSTGRES_PASSWORD": "your_password",
408
- "POSTGRES_DATABASE": "your_database"
409
- }
410
- }
411
- }
412
- }
413
- ```
414
-
415
- **Customization Notes:**
416
-
417
- - Replace `/path/to/postgres-mcp/` with your actual installation path
418
- - Update credentials (`your_username`, `your_password`, etc.) with your PostgreSQL credentials
419
- - For Windows: Use forward slashes in paths (e.g., `C:/postgres-mcp/dist/cli.js`) or escape backslashes (`C:\\postgres-mcp\\dist\\cli.js`)
420
- - **Extension tools** gracefully handle cases where extensions are not installed
265
+ | `ext-perf` | 32 | Extension: Perf/Analysis | pg_stat_kcache, performance, codemode |
266
+
267
+ ### Tool Groups (22 Available)
268
+
269
+ | Group | Tools | Description |
270
+ | --------------- | ----- | --------------------------------------------------------------------- |
271
+ | `codemode` | 1 | Code Mode (sandboxed code execution) 🌟 **Recommended** |
272
+ | `core` | 21 | Read/write queries, tables, indexes, convenience/drop tools |
273
+ | `transactions` | 9 | BEGIN, COMMIT, ROLLBACK, savepoints, status |
274
+ | `jsonb` | 20 | JSONB manipulation and queries |
275
+ | `text` | 14 | Full-text search, fuzzy matching |
276
+ | `performance` | 25 | EXPLAIN, query analysis, optimization, diagnostics, anomaly detection |
277
+ | `admin` | 11 | VACUUM, ANALYZE, REINDEX |
278
+ | `monitoring` | 12 | Database sizes, connections, status |
279
+ | `backup` | 10 | pg_dump, COPY, restore |
280
+ | `schema` | 13 | Schemas, views, sequences, functions, triggers |
281
+ | `introspection` | 7 | Dependency graphs, cascade simulation, schema analysis |
282
+ | `migration` | 7 | Schema migration tracking and management |
283
+ | `partitioning` | 7 | Native partition management |
284
+ | `stats` | 9 | Statistical analysis |
285
+ | `vector` | 17 | pgvector (AI/ML similarity search) |
286
+ | `postgis` | 16 | PostGIS (geospatial) |
287
+ | `cron` | 9 | pg_cron (job scheduling) |
288
+ | `partman` | 11 | pg_partman (auto-partitioning) |
289
+ | `kcache` | 8 | pg_stat_kcache (OS-level stats) |
290
+ | `citext` | 7 | citext (case-insensitive text) |
291
+ | `ltree` | 9 | ltree (hierarchical data) |
292
+ | `pgcrypto` | 10 | pgcrypto (encryption, UUIDs) |
421
293
 
422
294
  ---
423
295
 
@@ -550,6 +422,9 @@ The server exposes metadata at `/.well-known/oauth-protected-resource`.
550
422
  > [!NOTE]
551
423
  > **Per-tool scope enforcement:** Scopes are enforced at the tool level — each tool group maps to a required scope (`read`, `write`, or `admin`). When OAuth is enabled, every tool invocation checks the calling token's scopes before execution. When OAuth is not configured, scope checks are skipped entirely.
552
424
 
425
+ > [!WARNING]
426
+ > **HTTP without OAuth:** When using `--transport http` without enabling OAuth, all clients have full unrestricted access. Always enable OAuth for production HTTP deployments. See [SECURITY.md](SECURITY.md) for details.
427
+
553
428
  ---
554
429
 
555
430
  ## ⚡ Performance Tuning
@@ -562,6 +437,8 @@ The server exposes metadata at `/.well-known/oauth-protected-resource`.
562
437
 
563
438
  > **Tip:** Lower `METADATA_CACHE_TTL_MS` for development (e.g., `5000`), or increase it for production with stable schemas (e.g., `300000` = 5 min).
564
439
 
440
+ > **Pool Tuning for IAM Auth:** For cloud-managed databases with IAM authentication (e.g., AWS RDS, Google Cloud SQL), set `POSTGRES_POOL_MIN=2` to keep warm connections and reduce authentication latency.
441
+
565
442
  ---
566
443
 
567
444
  ## 🤖 AI-Powered Prompts
@@ -79,7 +79,7 @@ describe("Sandbox Execution", () => {
79
79
  });
80
80
  bench('trivial code execution ("return 42")', async () => {
81
81
  await sandbox.execute("return 42;", {});
82
- }, { iterations: 30, warmupIterations: 3, time: 5000 });
82
+ }, { iterations: 100, warmupIterations: 10, time: 5000 });
83
83
  bench("execution with 20-group API bindings", async () => {
84
84
  const apiBindings = {};
85
85
  const groupNames = [
@@ -112,11 +112,11 @@ describe("Sandbox Execution", () => {
112
112
  };
113
113
  }
114
114
  await sandbox.execute("const result = pg.core.readQuery(); return result;", apiBindings);
115
- }, { iterations: 20, warmupIterations: 3, time: 5000 });
115
+ }, { iterations: 100, warmupIterations: 10, time: 5000 });
116
116
  bench("console output capture", async () => {
117
117
  await sandbox.execute('console.log("test output"); console.warn("warning");', {});
118
118
  sandbox.clearConsoleOutput();
119
- }, { iterations: 30, warmupIterations: 3, time: 5000 });
119
+ }, { iterations: 100, warmupIterations: 10, time: 5000 });
120
120
  });
121
121
  // ---------------------------------------------------------------------------
122
122
  // 4. Security Validation
@@ -1 +1 @@
1
- {"version":3,"file":"codemode.bench.js","sourceRoot":"","sources":["../../../src/__tests__/benchmarks/codemode.bench.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codemode.bench.js","sourceRoot":"","sources":["../../../src/__tests__/benchmarks/codemode.bench.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,kDAAkD;AAClD,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;QACjB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;QAClB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;QACjB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;KACtB;CACF,CAAC,CAAC,CAAC;AAEJ,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAC9E,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,KAAK,CACH,qCAAqC,EACrC,GAAG,EAAE;QACH,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,CACzC,CAAC;IAEF,KAAK,CACH,gCAAgC,EAChC,GAAG,EAAE;QACH,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,kBAAkB;IACvC,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,CACzC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAC9E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,KAAK,CACH,sCAAsC,EACtC,GAAG,EAAE;QACH,MAAM,IAAI,GAAG,IAAI,WAAW,CAC1B,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAC3D,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAC5D,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,CACzC,CAAC;IAEF,IAAI,WAAwB,CAAC;IAE7B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,UAAU,CAAC,GAAG,EAAE;YACd,WAAW,GAAG,IAAI,WAAW,CAC3B,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAC3D,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAC5D,CAAC;YACF,WAAW,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,WAAW,EAAE,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,KAAK,CACH,4BAA4B,EAC5B,GAAG,EAAE;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;YACtC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;QAEF,KAAK,CACH,qBAAqB,EACrB,GAAG,EAAE;YACH,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAC9E,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,OAAwB,CAAC;IAE7B,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,KAAK,CACH,sCAAsC,EACtC,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CACtD,CAAC;IAEF,KAAK,CACH,sCAAsC,EACtC,KAAK,IAAI,EAAE;QACT,MAAM,WAAW,GAAkD,EAAE,CAAC;QACtE,MAAM,UAAU,GAAG;YACjB,MAAM;YACN,cAAc;YACd,OAAO;YACP,MAAM;YACN,aAAa;YACb,OAAO;YACP,YAAY;YACZ,QAAQ;YACR,QAAQ;YACR,cAAc;YACd,OAAO;YACP,QAAQ;YACR,SAAS;YACT,MAAM;YACN,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,OAAO;YACP,UAAU;YACV,UAAU;SACX,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,WAAW,CAAC,KAAK,CAAC,GAAG;gBACnB,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC5C,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;gBACvC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;aACf,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,CAAC,OAAO,CACnB,oDAAoD,EACpD,WAAW,CACZ,CAAC;IACJ,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CACtD,CAAC;IAEF,KAAK,CACH,wBAAwB,EACxB,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,CAAC,OAAO,CACnB,sDAAsD,EACtD,EAAE,CACH,CAAC;QACF,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAC/B,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CACtD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAC9E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,QAAQ,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAE/C,KAAK,CACH,2CAA2C,EAC3C,GAAG,EAAE;QACH,QAAQ,CAAC,YAAY,CACnB,qDAAqD,CACtD,CAAC;IACJ,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;IAEF,KAAK,CACH,uCAAuC,EACvC,GAAG,EAAE;QACH,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CACR,eAAe,MAAM,CAAC,CAAC,CAAC,kDAAkD,MAAM,CAAC,CAAC,CAAC,cAAc,CAClG,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;IAEF,KAAK,CACH,+CAA+C,EAC/C,GAAG,EAAE;QACH,QAAQ,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAC;IACrE,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;IAEF,KAAK,CACH,6BAA6B,EAC7B,GAAG,EAAE;QACH,MAAM,UAAU,GAAG,IAAI,uBAAuB,CAAC;YAC7C,sBAAsB,EAAE,KAAK;SAC9B,CAAC,CAAC;QACH,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;IAEF,KAAK,CACH,gCAAgC,EAChC,GAAG,EAAE;QACH,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;IAEF,KAAK,CACH,4CAA4C,EAC5C,GAAG,EAAE;QACH,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE;gBACzB,KAAK,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,cAAc;aACtC,CAAC,CAAC;SACJ,CAAC;QACF,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -98,20 +98,20 @@ describe("Connection Pool Benchmarks", () => {
98
98
  // -------------------------------------------------------------------------
99
99
  bench("query() framework overhead", async () => {
100
100
  await pool.query("SELECT 1");
101
- }, { iterations: 1000, warmupIterations: 20 });
101
+ }, { iterations: 5000, warmupIterations: 50 });
102
102
  // -------------------------------------------------------------------------
103
103
  // 3. getConnection() + releaseConnection() round trip
104
104
  // -------------------------------------------------------------------------
105
105
  bench("getConnection/releaseConnection round trip", async () => {
106
106
  const client = await pool.getConnection();
107
107
  pool.releaseConnection(client);
108
- }, { iterations: 1000, warmupIterations: 20 });
108
+ }, { iterations: 5000, warmupIterations: 50 });
109
109
  // -------------------------------------------------------------------------
110
110
  // 4. checkHealth() overhead (includes a mocked SELECT query)
111
111
  // -------------------------------------------------------------------------
112
112
  bench("checkHealth() overhead", async () => {
113
113
  await pool.checkHealth();
114
- }, { iterations: 500, warmupIterations: 10 });
114
+ }, { iterations: 2000, warmupIterations: 30 });
115
115
  // -------------------------------------------------------------------------
116
116
  // 5. isInitialized() / isClosing() — micro-operations used in guards
117
117
  // -------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"connection-pool.bench.js","sourceRoot":"","sources":["../../../src/__tests__/benchmarks/connection-pool.bench.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-pool.bench.js","sourceRoot":"","sources":["../../../src/__tests__/benchmarks/connection-pool.bench.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * postgres-mcp - Introspection & Migration Schema Parsing Benchmarks
3
+ *
4
+ * Measures parsing performance for introspection and migration input schemas,
5
+ * covering z.preprocess transforms, alias resolution, coercion, and
6
+ * validation failure rejection speed.
7
+ *
8
+ * Run: npm run bench
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=introspection-migration.bench.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspection-migration.bench.d.ts","sourceRoot":"","sources":["../../../src/__tests__/benchmarks/introspection-migration.bench.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}