@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.
- package/README.md +78 -201
- package/dist/__tests__/benchmarks/codemode.bench.js +3 -3
- package/dist/__tests__/benchmarks/codemode.bench.js.map +1 -1
- package/dist/__tests__/benchmarks/connection-pool.bench.js +3 -3
- package/dist/__tests__/benchmarks/connection-pool.bench.js.map +1 -1
- package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts +11 -0
- package/dist/__tests__/benchmarks/introspection-migration.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/introspection-migration.bench.js +143 -0
- package/dist/__tests__/benchmarks/introspection-migration.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/resource-prompts.bench.js +0 -64
- package/dist/__tests__/benchmarks/resource-prompts.bench.js.map +1 -1
- package/dist/__tests__/benchmarks/schema-parsing.bench.js +4 -4
- package/dist/__tests__/benchmarks/schema-parsing.bench.js.map +1 -1
- package/dist/__tests__/benchmarks/tool-filtering.bench.js +17 -8
- package/dist/__tests__/benchmarks/tool-filtering.bench.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.d.ts +0 -4
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +11 -28
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.d.ts +0 -4
- package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.js +3 -6
- package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
- package/dist/adapters/postgresql/resources/capabilities.js +1 -1
- package/dist/adapters/postgresql/resources/cron.d.ts.map +1 -1
- package/dist/adapters/postgresql/resources/cron.js +2 -1
- package/dist/adapters/postgresql/resources/cron.js.map +1 -1
- package/dist/adapters/postgresql/schemas/core/queries.d.ts +4 -4
- package/dist/adapters/postgresql/schemas/core/transactions.d.ts +12 -0
- package/dist/adapters/postgresql/schemas/core/transactions.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/core/transactions.js +18 -0
- package/dist/adapters/postgresql/schemas/core/transactions.js.map +1 -1
- package/dist/adapters/postgresql/schemas/index.d.ts +1 -1
- package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/index.js +1 -1
- package/dist/adapters/postgresql/schemas/index.js.map +1 -1
- package/dist/adapters/postgresql/schemas/introspection.d.ts +17 -37
- package/dist/adapters/postgresql/schemas/introspection.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/introspection.js +73 -30
- package/dist/adapters/postgresql/schemas/introspection.js.map +1 -1
- package/dist/adapters/postgresql/schemas/partman.d.ts +1 -1
- package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/vector.js +2 -4
- package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/analysis.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/analysis.js +171 -139
- package/dist/adapters/postgresql/tools/introspection/analysis.js.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/graph.d.ts +17 -1
- package/dist/adapters/postgresql/tools/introspection/graph.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/graph.js +55 -50
- package/dist/adapters/postgresql/tools/introspection/graph.js.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/index.d.ts +9 -7
- package/dist/adapters/postgresql/tools/introspection/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/index.js +9 -14
- package/dist/adapters/postgresql/tools/introspection/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/migration.d.ts +1 -1
- package/dist/adapters/postgresql/tools/introspection/migration.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/migration.js +75 -96
- package/dist/adapters/postgresql/tools/introspection/migration.js.map +1 -1
- package/dist/adapters/postgresql/tools/migration/index.d.ts +15 -0
- package/dist/adapters/postgresql/tools/migration/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/migration/index.js +23 -0
- package/dist/adapters/postgresql/tools/migration/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts +18 -0
- package/dist/adapters/postgresql/tools/performance/anomaly-detection.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/anomaly-detection.js +546 -0
- package/dist/adapters/postgresql/tools/performance/anomaly-detection.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts +11 -0
- package/dist/adapters/postgresql/tools/performance/diagnostics.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/diagnostics.js +342 -0
- package/dist/adapters/postgresql/tools/performance/diagnostics.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/index.d.ts +1 -1
- package/dist/adapters/postgresql/tools/performance/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/index.js +7 -1
- package/dist/adapters/postgresql/tools/performance/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/transactions.js +67 -2
- package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
- package/dist/auth/scopes.d.ts.map +1 -1
- package/dist/auth/scopes.js +2 -0
- package/dist/auth/scopes.js.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/codemode/api/aliases.d.ts.map +1 -1
- package/dist/codemode/api/aliases.js +5 -0
- package/dist/codemode/api/aliases.js.map +1 -1
- package/dist/codemode/api/index.d.ts +1 -0
- package/dist/codemode/api/index.d.ts.map +1 -1
- package/dist/codemode/api/index.js +3 -0
- package/dist/codemode/api/index.js.map +1 -1
- package/dist/codemode/api/maps.d.ts.map +1 -1
- package/dist/codemode/api/maps.js +21 -12
- package/dist/codemode/api/maps.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +1 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +16 -9
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +18 -18
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +43 -29
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/filtering/ToolFilter.d.ts +0 -32
- package/dist/filtering/ToolFilter.d.ts.map +1 -1
- package/dist/filtering/ToolFilter.js +0 -43
- package/dist/filtering/ToolFilter.js.map +1 -1
- package/dist/transports/http.d.ts +12 -0
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +19 -1
- package/dist/transports/http.js.map +1 -1
- package/dist/types/filtering.d.ts +1 -1
- package/dist/types/filtering.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/mcp.d.ts +0 -21
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/schema.d.ts +0 -79
- package/dist/types/schema.d.ts.map +1 -1
- package/dist/utils/icons.d.ts.map +1 -1
- package/dist/utils/icons.js +5 -0
- package/dist/utils/icons.js.map +1 -1
- package/dist/utils/identifiers.d.ts.map +1 -1
- package/dist/utils/identifiers.js +6 -6
- package/dist/utils/identifiers.js.map +1 -1
- package/dist/utils/progress-utils.d.ts +1 -12
- package/dist/utils/progress-utils.d.ts.map +1 -1
- package/dist/utils/progress-utils.js +0 -18
- package/dist/utils/progress-utils.js.map +1 -1
- package/package.json +3 -3
- package/dist/utils/promptGenerator.d.ts +0 -20
- package/dist/utils/promptGenerator.d.ts.map +0 -1
- package/dist/utils/promptGenerator.js +0 -81
- 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
|
|
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
|
|
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
|
-
**
|
|
9
|
+
**232 Specialized Tools** · **20 Resources** · **19 AI-Powered Prompts**
|
|
10
10
|
|
|
11
11
|
[](https://github.com/neverinfamous/postgres-mcp)
|
|
12
12
|

|
|
@@ -17,29 +17,29 @@
|
|
|
17
17
|
[](https://github.com/neverinfamous/postgres-mcp/blob/main/SECURITY.md)
|
|
18
18
|

|
|
19
19
|
[](https://github.com/neverinfamous/postgres-mcp)
|
|
20
|
-
[](https://github.com/neverinfamous/postgres-mcp)
|
|
21
20
|
[](https://github.com/neverinfamous/postgres-mcp/actions/workflows/e2e.yml)
|
|
22
|
-
[](https://github.com/neverinfamous/postgres-mcp)
|
|
22
|
+
[](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
|
-
| **
|
|
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
|
|
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** |
|
|
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
|
|
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** |
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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 | ~
|
|
200
|
-
| **WHERE Validation** | Simple clause (combined regex fast-path) | ~
|
|
201
|
-
| **Identifier Sanitization** | validateIdentifier() | ~
|
|
202
|
-
| **Auth — Token Extraction** | extractBearerToken() | ~2.
|
|
203
|
-
| **Auth — Scope Checking** |
|
|
204
|
-
| **Rate Limiting** | Single IP check | ~
|
|
205
|
-
| **Logger** | Filtered debug (no-op path) | ~
|
|
206
|
-
| **Schema Parsing** |
|
|
207
|
-
| **Metadata Cache** | Cache hit + miss pattern | ~1.
|
|
208
|
-
| **Sandbox Creation** | CodeModeSandbox.create() cold start | ~
|
|
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
|
-
>
|
|
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` |
|
|
294
|
-
| Groups only | `core,jsonb,transactions` |
|
|
295
|
-
| Shortcut + Group | `starter,+text` |
|
|
296
|
-
| Shortcut - Tool | `starter,-pg_drop_table` |
|
|
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` | **
|
|
307
|
-
| `essential` |
|
|
308
|
-
| `dev-schema` |
|
|
309
|
-
| `dev-analytics` |
|
|
310
|
-
| `ai-data` |
|
|
311
|
-
| `ai-vector` |
|
|
312
|
-
| `dba-monitor` |
|
|
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` |
|
|
316
|
-
| `geo` |
|
|
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` |
|
|
322
|
-
|
|
323
|
-
### Tool Groups (
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
|
328
|
-
|
|
|
329
|
-
| `
|
|
330
|
-
| `
|
|
331
|
-
| `
|
|
332
|
-
| `
|
|
333
|
-
| `
|
|
334
|
-
| `
|
|
335
|
-
| `
|
|
336
|
-
| `
|
|
337
|
-
| `
|
|
338
|
-
| `
|
|
339
|
-
| `
|
|
340
|
-
| `
|
|
341
|
-
| `
|
|
342
|
-
| `
|
|
343
|
-
| `
|
|
344
|
-
| `
|
|
345
|
-
| `
|
|
346
|
-
| `
|
|
347
|
-
| `
|
|
348
|
-
| `
|
|
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:
|
|
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:
|
|
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:
|
|
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":"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"}
|
|
@@ -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:
|
|
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:
|
|
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:
|
|
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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEpE,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAChC,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAClC,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAChC,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC9B,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC5B,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAE3B,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;IACjB,MAAM,QAAQ,GAAG;QACf,OAAO;YACL,OAAO,EAAE,eAAe;YACxB,KAAK,EAAE,aAAa;YACpB,GAAG,EAAE,WAAW;YAChB,EAAE,EAAE,UAAU;YACd,IAAI,UAAU;gBACZ,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,SAAS;gBACX,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,YAAY;gBACd,OAAO,CAAC,CAAC;YACX,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,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,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAI,IAAoB,CAAC;IAEzB,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QAEnB,eAAe,CAAC,iBAAiB,CAAC;YAChC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;SACvC,CAAC,CAAC;QACH,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC7C,eAAe,CAAC,iBAAiB,CAAC;YAChC,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,iBAAiB;SAC3B,CAAC,CAAC;QACH,aAAa,CAAC,iBAAiB,CAAC;YAC9B,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;YAClE,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;QACH,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,GAAG,IAAI,cAAc,CAAC;YACxB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,iEAAiE;IACjE,4EAA4E;IAC5E,KAAK,CACH,qBAAqB,EACrB,GAAG,EAAE;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC,EACD,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAC7C,CAAC;IAEF,4EAA4E;IAC5E,gEAAgE;IAChE,4EAA4E;IAC5E,KAAK,CACH,4BAA4B,EAC5B,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;IAEF,4EAA4E;IAC5E,sDAAsD;IACtD,4EAA4E;IAC5E,KAAK,CACH,4CAA4C,EAC5C,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;IAEF,4EAA4E;IAC5E,6DAA6D;IAC7D,4EAA4E;IAC5E,KAAK,CACH,wBAAwB,EACxB,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAC3C,CAAC;IAEF,4EAA4E;IAC5E,qEAAqE;IACrE,4EAA4E;IAC5E,KAAK,CACH,kCAAkC,EAClC,GAAG,EAAE;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC,EACD,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAC7C,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -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"}
|