# PostgreSQL MCP Server MCP server

Agent View of the PolicyLayer registry record for PostgreSQL MCP Server: identity, probed posture, risk grade, and all 274 tools classified. HTML page: https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp

## Facts

- Server id: `@neverinfamous/postgres-mcp`
- Install: `npx -y @neverinfamous/postgres-mcp`
- Homepage: https://github.com/neverinfamous/postgresql-mcp.git
- Registry record: grade F, identity unverified
- Lifecycle: active
- Rate-limited: no
- Tools: 274
- Tool categories present: Destructive, Execute, Read, Write
- Tags: io github neverinfamous postgres mcp, admin, automation
- Record last modified: 2026-06-28T18:53:03.589Z

## Tools (274)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `pg_cascade_simulator` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cascade-simulator.md |
| `pg_cron_cleanup_history` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cron-cleanup-history.md |
| `pg_cron_unschedule` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cron-unschedule.md |
| `pg_detach_partition` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-detach-partition.md |
| `pg_doc_drop_collection` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-doc-drop-collection.md |
| `pg_doc_remove` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-doc-remove.md |
| `pg_drop_index` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-drop-index.md |
| `pg_drop_schema` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-drop-schema.md |
| `pg_drop_sequence` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-drop-sequence.md |
| `pg_drop_table` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-drop-table.md |
| `pg_drop_view` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-drop-view.md |
| `pg_kcache_reset` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-kcache-reset.md |
| `pg_migration_rollback` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-migration-rollback.md |
| `pg_partman_set_retention` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partman-set-retention.md |
| `pg_reset_stats` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-reset-stats.md |
| `pg_role_drop` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-drop.md |
| `pg_text_normalize` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-text-normalize.md |
| `pg_truncate` | Destructive | Critical | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-truncate.md |
| `pg_analyze` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-analyze.md |
| `pg_analyze_query_indexes` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-analyze-query-indexes.md |
| `pg_buffer` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-buffer.md |
| `pg_cancel_backend` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cancel-backend.md |
| `pg_cluster` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cluster.md |
| `pg_cron_create_extension` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cron-create-extension.md |
| `pg_cron_schedule` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cron-schedule.md |
| `pg_cron_schedule_in_database` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cron-schedule-in-database.md |
| `pg_explain_analyze` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-explain-analyze.md |
| `pg_geo_cluster` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-geo-cluster.md |
| `pg_geo_transform` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-geo-transform.md |
| `pg_geometry_transform` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-geometry-transform.md |
| `pg_jsonb_array` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-array.md |
| `pg_kcache_create_extension` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-kcache-create-extension.md |
| `pg_ltree_create_extension` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-ltree-create-extension.md |
| `pg_migration_apply` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-migration-apply.md |
| `pg_partman_create_extension` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partman-create-extension.md |
| `pg_partman_run_maintenance` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partman-run-maintenance.md |
| `pg_pgcrypto_create_extension` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-pgcrypto-create-extension.md |
| `pg_pgcrypto_crypt` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-pgcrypto-crypt.md |
| `pg_pgcrypto_decrypt` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-pgcrypto-decrypt.md |
| `pg_pgcrypto_encrypt` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-pgcrypto-encrypt.md |
| `pg_pgcrypto_gen_random_uuid` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-pgcrypto-gen-random-uuid.md |
| `pg_pgcrypto_gen_salt` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-pgcrypto-gen-salt.md |
| `pg_pgcrypto_hmac` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-pgcrypto-hmac.md |
| `pg_postgis_create_extension` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-postgis-create-extension.md |
| `pg_reindex` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-reindex.md |
| `pg_reload_conf` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-reload-conf.md |
| `pg_restore_command` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-restore-command.md |
| `pg_role_set` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-set.md |
| `pg_security_audit` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-security-audit.md |
| `pg_set_config` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-set-config.md |
| `pg_stats_running_total` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-running-total.md |
| `pg_transaction_begin` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-transaction-begin.md |
| `pg_transaction_execute` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-transaction-execute.md |
| `pg_vacuum` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vacuum.md |
| `pg_vacuum_analyze` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vacuum-analyze.md |
| `pg_vector_cluster` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-cluster.md |
| `pg_vector_create_extension` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-create-extension.md |
| `pg_vector_dimension_reduce` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-dimension-reduce.md |
| `pg_vector_embed` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-embed.md |
| `pg_vector_normalize` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-normalize.md |
| `pg_vector_performance` | Execute | High | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-performance.md |
| `pg_analyze_db_health` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-analyze-db-health.md |
| `pg_analyze_workload_indexes` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-analyze-workload-indexes.md |
| `pg_audit_diff_backup` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-audit-diff-backup.md |
| `pg_audit_list_backups` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-audit-list-backups.md |
| `pg_backup_physical` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-backup-physical.md |
| `pg_backup_schedule_optimize` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-backup-schedule-optimize.md |
| `pg_bloat_check` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-bloat-check.md |
| `pg_bounding_box` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-bounding-box.md |
| `pg_cache_hit_ratio` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cache-hit-ratio.md |
| `pg_capacity_planning` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-capacity-planning.md |
| `pg_citext_analyze_candidates` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-citext-analyze-candidates.md |
| `pg_citext_compare` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-citext-compare.md |
| `pg_citext_list_columns` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-citext-list-columns.md |
| `pg_citext_schema_advisor` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-citext-schema-advisor.md |
| `pg_connection_pool_optimize` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-connection-pool-optimize.md |
| `pg_connection_stats` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-connection-stats.md |
| `pg_constraint_analysis` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-constraint-analysis.md |
| `pg_copy_export` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-copy-export.md |
| `pg_count` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-count.md |
| `pg_cron_job_run_details` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cron-job-run-details.md |
| `pg_cron_list_jobs` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cron-list-jobs.md |
| `pg_database_size` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-database-size.md |
| `pg_dependency_graph` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-dependency-graph.md |
| `pg_describe_table` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-describe-table.md |
| `pg_detect_bloat_risk` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-detect-bloat-risk.md |
| `pg_detect_connection_spike` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-detect-connection-spike.md |
| `pg_detect_query_anomalies` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-detect-query-anomalies.md |
| `pg_diagnose_database_performance` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-diagnose-database-performance.md |
| `pg_distance` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-distance.md |
| `pg_doc_collection_info` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-doc-collection-info.md |
| `pg_doc_find` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-doc-find.md |
| `pg_doc_list_collections` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-doc-list-collections.md |
| `pg_dump_schema` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-dump-schema.md |
| `pg_dump_table` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-dump-table.md |
| `pg_duplicate_indexes` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-duplicate-indexes.md |
| `pg_exists` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-exists.md |
| `pg_explain` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-explain.md |
| `pg_explain_buffers` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-explain-buffers.md |
| `pg_fuzzy_match` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-fuzzy-match.md |
| `pg_geo_index_optimize` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-geo-index-optimize.md |
| `pg_geocode` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-geocode.md |
| `pg_geometry_intersection` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-geometry-intersection.md |
| `pg_get_indexes` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-get-indexes.md |
| `pg_hybrid_search` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-hybrid-search.md |
| `pg_index_recommendations` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-index-recommendations.md |
| `pg_index_stats` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-index-stats.md |
| `pg_intersection` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-intersection.md |
| `pg_jsonb_agg` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-agg.md |
| `pg_jsonb_contains` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-contains.md |
| `pg_jsonb_diff` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-diff.md |
| `pg_jsonb_extract` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-extract.md |
| `pg_jsonb_index_suggest` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-index-suggest.md |
| `pg_jsonb_keys` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-keys.md |
| `pg_jsonb_normalize` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-normalize.md |
| `pg_jsonb_path_query` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-path-query.md |
| `pg_jsonb_pretty` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-pretty.md |
| `pg_jsonb_security_scan` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-security-scan.md |
| `pg_jsonb_stats` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-stats.md |
| `pg_jsonb_typeof` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-typeof.md |
| `pg_jsonb_validate_path` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-validate-path.md |
| `pg_kcache_database_stats` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-kcache-database-stats.md |
| `pg_kcache_query_stats` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-kcache-query-stats.md |
| `pg_kcache_resource_analysis` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-kcache-resource-analysis.md |
| `pg_kcache_top_cpu` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-kcache-top-cpu.md |
| `pg_kcache_top_io` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-kcache-top-io.md |
| `pg_like_search` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-like-search.md |
| `pg_list_constraints` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-constraints.md |
| `pg_list_extensions` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-extensions.md |
| `pg_list_functions` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-functions.md |
| `pg_list_objects` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-objects.md |
| `pg_list_partitions` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-partitions.md |
| `pg_list_schemas` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-schemas.md |
| `pg_list_sequences` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-sequences.md |
| `pg_list_tables` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-tables.md |
| `pg_list_triggers` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-triggers.md |
| `pg_list_views` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-list-views.md |
| `pg_locks` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-locks.md |
| `pg_ltree_lca` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-ltree-lca.md |
| `pg_ltree_list_columns` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-ltree-list-columns.md |
| `pg_ltree_match` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-ltree-match.md |
| `pg_ltree_query` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-ltree-query.md |
| `pg_ltree_subpath` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-ltree-subpath.md |
| `pg_migration_history` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-migration-history.md |
| `pg_migration_risks` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-migration-risks.md |
| `pg_migration_status` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-migration-status.md |
| `pg_object_details` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-object-details.md |
| `pg_partition_info` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partition-info.md |
| `pg_partition_strategy_suggest` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partition-strategy-suggest.md |
| `pg_partman_analyze_partition_health` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partman-analyze-partition-health.md |
| `pg_partman_check_default` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partman-check-default.md |
| `pg_partman_partition_data` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partman-partition-data.md |
| `pg_partman_show_config` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partman-show-config.md |
| `pg_partman_show_partitions` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partman-show-partitions.md |
| `pg_performance_baseline` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-performance-baseline.md |
| `pg_pgcrypto_gen_random_bytes` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-pgcrypto-gen-random-bytes.md |
| `pg_pgcrypto_hash` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-pgcrypto-hash.md |
| `pg_point_in_polygon` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-point-in-polygon.md |
| `pg_query_plan_compare` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-query-plan-compare.md |
| `pg_query_plan_stats` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-query-plan-stats.md |
| `pg_read_query` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-read-query.md |
| `pg_recovery_status` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-recovery-status.md |
| `pg_regexp_match` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-regexp-match.md |
| `pg_replication_status` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-replication-status.md |
| `pg_role_attributes` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-attributes.md |
| `pg_role_grants` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-grants.md |
| `pg_role_list` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-list.md |
| `pg_role_rls_policies` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-rls-policies.md |
| `pg_schema_snapshot` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-schema-snapshot.md |
| `pg_security_encryption_status` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-security-encryption-status.md |
| `pg_security_firewall_rules` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-security-firewall-rules.md |
| `pg_security_firewall_status` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-security-firewall-status.md |
| `pg_security_password_validate` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-security-password-validate.md |
| `pg_security_sensitive_tables` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-security-sensitive-tables.md |
| `pg_security_ssl_status` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-security-ssl-status.md |
| `pg_security_user_privileges` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-security-user-privileges.md |
| `pg_seq_scan_tables` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-seq-scan-tables.md |
| `pg_server_version` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-server-version.md |
| `pg_show_settings` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-show-settings.md |
| `pg_stat_activity` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stat-activity.md |
| `pg_stat_statements` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stat-statements.md |
| `pg_stats_correlation` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-correlation.md |
| `pg_stats_descriptive` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-descriptive.md |
| `pg_stats_distinct` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-distinct.md |
| `pg_stats_distribution` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-distribution.md |
| `pg_stats_frequency` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-frequency.md |
| `pg_stats_hypothesis` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-hypothesis.md |
| `pg_stats_lag_lead` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-lag-lead.md |
| `pg_stats_moving_avg` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-moving-avg.md |
| `pg_stats_ntile` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-ntile.md |
| `pg_stats_outliers` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-outliers.md |
| `pg_stats_percentiles` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-percentiles.md |
| `pg_stats_regression` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-regression.md |
| `pg_stats_row_number` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-row-number.md |
| `pg_stats_sampling` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-sampling.md |
| `pg_stats_summary` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-summary.md |
| `pg_stats_time_series` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-time-series.md |
| `pg_stats_top_n` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-top-n.md |
| `pg_system_health` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-system-health.md |
| `pg_table_sizes` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-table-sizes.md |
| `pg_table_stats` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-table-stats.md |
| `pg_text_headline` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-text-headline.md |
| `pg_text_rank` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-text-rank.md |
| `pg_text_search` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-text-search.md |
| `pg_text_search_config` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-text-search-config.md |
| `pg_text_sentiment` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-text-sentiment.md |
| `pg_text_to_query` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-text-to-query.md |
| `pg_text_to_vector` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-text-to-vector.md |
| `pg_topological_sort` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-topological-sort.md |
| `pg_transaction_rollback` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-transaction-rollback.md |
| `pg_transaction_rollback_to` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-transaction-rollback-to.md |
| `pg_transaction_status` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-transaction-status.md |
| `pg_trigram_similarity` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-trigram-similarity.md |
| `pg_unused_indexes` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-unused-indexes.md |
| `pg_uptime` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-uptime.md |
| `pg_user_roles` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-user-roles.md |
| `pg_vacuum_stats` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vacuum-stats.md |
| `pg_vector_aggregate` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-aggregate.md |
| `pg_vector_distance` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-distance.md |
| `pg_vector_index_optimize` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-index-optimize.md |
| `pg_vector_search` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-search.md |
| `pg_vector_validate` | Read | Low | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-validate.md |
| `pg_alert_threshold_set` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-alert-threshold-set.md |
| `pg_append_insight` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-append-insight.md |
| `pg_attach_partition` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-attach-partition.md |
| `pg_audit_restore_backup` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-audit-restore-backup.md |
| `pg_batch_insert` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-batch-insert.md |
| `pg_citext_convert_column` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-citext-convert-column.md |
| `pg_citext_create_extension` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-citext-create-extension.md |
| `pg_copy_import` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-copy-import.md |
| `pg_create_backup_plan` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-create-backup-plan.md |
| `pg_create_fts_index` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-create-fts-index.md |
| `pg_create_index` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-create-index.md |
| `pg_create_partition` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-create-partition.md |
| `pg_create_partitioned_table` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-create-partitioned-table.md |
| `pg_create_schema` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-create-schema.md |
| `pg_create_sequence` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-create-sequence.md |
| `pg_create_table` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-create-table.md |
| `pg_create_view` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-create-view.md |
| `pg_cron_alter_job` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-cron-alter-job.md |
| `pg_doc_add` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-doc-add.md |
| `pg_doc_create_collection` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-doc-create-collection.md |
| `pg_doc_create_index` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-doc-create-index.md |
| `pg_doc_modify` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-doc-modify.md |
| `pg_geometry_buffer` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-geometry-buffer.md |
| `pg_geometry_column` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-geometry-column.md |
| `pg_jsonb_delete` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-delete.md |
| `pg_jsonb_insert` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-insert.md |
| `pg_jsonb_merge` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-merge.md |
| `pg_jsonb_set` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-set.md |
| `pg_jsonb_strip_nulls` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-jsonb-strip-nulls.md |
| `pg_ltree_convert_column` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-ltree-convert-column.md |
| `pg_ltree_create_index` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-ltree-create-index.md |
| `pg_migration_init` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-migration-init.md |
| `pg_migration_record` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-migration-record.md |
| `pg_partman_create_parent` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-partman-create-parent.md |
| `pg_restore_validate` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-restore-validate.md |
| `pg_role_assign` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-assign.md |
| `pg_role_create` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-create.md |
| `pg_role_grant` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-grant.md |
| `pg_role_revoke` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-revoke.md |
| `pg_role_rls_enable` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-role-rls-enable.md |
| `pg_security_mask_data` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-security-mask-data.md |
| `pg_spatial_index` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-spatial-index.md |
| `pg_stats_rank` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-stats-rank.md |
| `pg_terminate_backend` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-terminate-backend.md |
| `pg_transaction_commit` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-transaction-commit.md |
| `pg_transaction_release` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-transaction-release.md |
| `pg_transaction_savepoint` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-transaction-savepoint.md |
| `pg_upsert` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-upsert.md |
| `pg_vector_add_column` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-add-column.md |
| `pg_vector_create_index` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-create-index.md |
| `pg_vector_insert` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-vector-insert.md |
| `pg_write_query` | Write | Medium | https://policylayer.com/tools/io-github-neverinfamous-postgres-mcp/pg-write-query.md |

## Tool descriptions

- `pg_cascade_simulator` — Simulate the impact of DELETE, DROP, or TRUNCATE on a table. Returns affected tables, estimated row counts, cascade paths, and severity assessment.
- `pg_cron_cleanup_history` — Delete old job run history records. Helps prevent the cron.job_run_details table from growing too large. By default, removes records older than 7 days.
- `pg_cron_unschedule` — Remove a scheduled cron job by its ID or name. If both are provided, jobName takes precedence. Job ID accepts numbers or numeric strings. Works for both active and inactive jobs.
- `pg_detach_partition` — Detach a partition. Use concurrently: true for non-blocking. Use finalize: true only after an interrupted CONCURRENTLY detach.
- `pg_doc_drop_collection` — Drop a document collection (table).
- `pg_doc_remove` — Remove documents matching a filter from a collection.
- `pg_drop_index` — Drop an index from a table. Supports IF EXISTS, CASCADE, and CONCURRENTLY options.
- `pg_drop_schema` — Drop a schema (optionally with all objects).
- `pg_drop_sequence` — Drop a sequence. Supports IF EXISTS and CASCADE options.
- `pg_drop_table` — Drop a table from the database.
- `pg_drop_view` — Drop a view or materialized view. Supports IF EXISTS and CASCADE options.
- `pg_kcache_reset` — Reset pg_stat_kcache statistics. Use this to start fresh measurements. Note: This also resets pg_stat_statements statistics.
- `pg_migration_rollback` — Roll back a specific migration by ID or version.
- `pg_partman_set_retention` — Configure retention policy for a partition set. Partitions older than the retention period will be dropped or detached during maintenance.
- `pg_reset_stats` — Reset statistics counters (requires superuser).
- `pg_role_drop` — Drop a PostgreSQL role. Use ifExists (default: true) to skip gracefully if the role does not exist.
- `pg_text_normalize` — Remove accent marks (diacritics) from text using PostgreSQL unaccent extension. Note: Does NOT lowercase or trim—use LOWER()/TRIM() in a query for those operations.
- `pg_truncate` — Truncate a table, removing all rows quickly. Use cascade to truncate dependent tables.
- `pg_analyze` — Update table statistics for the query planner.
- `pg_analyze_query_indexes` — Analyze a specific query for index recommendations using EXPLAIN ANALYZE.
- `pg_buffer` — Create a buffer zone around geometries. Default limit: 10 rows, default simplify: 10m (set simplify: 0 to disable). Simplification reduces polygon point count for LLM-friendly payloads.
- `pg_cancel_backend` — Cancel a running query (graceful, preferred over terminate).
- `pg_cluster` — Physically reorder table data based on an index. Call with no args to re-cluster all previously-clustered tables.
- `pg_cron_create_extension` — Enable the pg_cron extension for job scheduling. Requires superuser privileges.
- `pg_cron_schedule` — Schedule a new cron job. Supports standard cron syntax (e.g.,
- `pg_cron_schedule_in_database` — Schedule a cron job to run in a different database. Useful for cross-database maintenance tasks. Returns the job ID.
- `pg_explain_analyze` — Run query and show actual execution plan with timing.
- `pg_geo_cluster` — Perform spatial clustering using DBSCAN or K-Means. DBSCAN defaults: eps=100m, minPoints=3. K-Means default: numClusters=5 (provide explicit value for best results).
- `pg_geo_transform` — Transform geometry from one spatial reference system (SRID) to another.
- `pg_geometry_transform` — Transform a WKT or GeoJSON geometry from one SRID to another. Common SRIDs: 4326 (WGS84/GPS), 3857 (Web Mercator).
- `pg_jsonb_array` — Build a JSONB array from values. Accepts {values: [...]} or {elements: [...]}. Returns {array: [...]}.
- `pg_kcache_create_extension` — Enable the pg_stat_kcache extension for OS-level performance metrics. Requires pg_stat_statements to be installed first. Both extensions must be in shared_preload_libraries.
- `pg_ltree_create_extension` — Enable the ltree extension for hierarchical tree-structured labels.
- `pg_migration_apply` — Execute migration SQL and record it atomically in a single transaction.
- `pg_partman_create_extension` — Enable the pg_partman extension for automated partition management. Requires superuser privileges.
- `pg_partman_run_maintenance` — Run partition maintenance to create new child partitions and enforce retention policies. Should be executed regularly (e.g., via pg_cron) to keep partitions current. Maintains all partition sets if no specific parent table is specified.
- `pg_pgcrypto_create_extension` — Enable the pgcrypto extension for cryptographic functions.
- `pg_pgcrypto_crypt` — Hash a password using crypt() with a salt from gen_salt().
- `pg_pgcrypto_decrypt` — Decrypt data that was encrypted with pg_pgcrypto_encrypt.
- `pg_pgcrypto_encrypt` — Encrypt data using PGP symmetric encryption.
- `pg_pgcrypto_gen_random_uuid` — Generate a cryptographically secure UUID v4.
- `pg_pgcrypto_gen_salt` — Generate a salt for use with crypt() password hashing.
- `pg_pgcrypto_hmac` — Compute HMAC for data with a secret key.
- `pg_postgis_create_extension` — Enable the PostGIS extension for geospatial operations.
- `pg_reindex` — Rebuild indexes to improve performance. For target: database, name defaults to the current database if omitted.
- `pg_reload_conf` — Reload PostgreSQL configuration without restart.
- `pg_restore_command` — Generate pg_restore command for restoring backups.
- `pg_role_set` — Set the session
- `pg_security_audit` — Run a comprehensive security audit checking SSL, password encryption, superuser exposure, logging, and HBA rules.
- `pg_set_config` — Set a configuration parameter for the current session.
- `pg_stats_running_total` — Calculate cumulative running total (SUM OVER) for a numeric column. Use partitionBy to reset total per group.
- `pg_transaction_begin` — Begin a new transaction. Returns a transaction ID for subsequent operations.
- `pg_transaction_execute` — Execute multiple statements atomically in a single transaction.
- `pg_vacuum` — Run VACUUM to reclaim storage and update visibility map. Use analyze: true to also update statistics. Verbose output goes to PostgreSQL server logs.
- `pg_vacuum_analyze` — Run VACUUM and ANALYZE together for optimal performance. Verbose output goes to PostgreSQL server logs.
- `pg_vector_cluster` — Perform K-means clustering on vectors. Returns cluster centroids only (not row assignments). To assign rows to clusters, compare row vectors to centroids using pg_vector_distance.
- `pg_vector_create_extension` — Enable the pgvector extension for vector similarity search.
- `pg_vector_dimension_reduce` — Reduce vector dimensions using random projection. Supports direct vector input OR table-based extraction.
- `pg_vector_embed` — Generate text embeddings. Returns a simple hash-based embedding for demos (use external APIs for production).
- `pg_vector_normalize` — Normalize a vector to unit length.
- `pg_vector_performance` — Analyze vector search performance and index effectiveness. Provide testVector for benchmarking (recommended).
- `pg_analyze_db_health` — Comprehensive database health analysis including cache hit ratio, bloat, replication, and connection stats.
- `pg_analyze_workload_indexes` — Analyze database workload using pg_stat_statements to recommend missing indexes.
- `pg_audit_diff_backup` — Compare a backup snapshot
- `pg_audit_list_backups` — List available pre-mutation backup snapshots with metadata (tool, target, timestamp, type, size).
- `pg_backup_physical` — Generate pg_basebackup command for physical (binary) backup.
- `pg_backup_schedule_optimize` — Analyze database activity patterns and recommend optimal backup schedule.
- `pg_bloat_check` — Check for table and index bloat. Returns tables with dead tuples.
- `pg_bounding_box` — Find geometries within a bounding box. Swapped min/max values are auto-corrected. Default limit: 10 rows.
- `pg_cache_hit_ratio` — Get buffer cache hit ratio statistics.
- `pg_capacity_planning` — Analyze database growth trends and provide capacity planning forecasts. Note: Growth estimates are based on pg_stat_user_tables counters since last stats reset; accuracy depends on how long stats have been accumulating.
- `pg_citext_analyze_candidates` — Find TEXT columns that may benefit from case-insensitive comparisons. Looks for common patterns like email, username, name, slug, etc.
- `pg_citext_compare` — Compare two values using case-insensitive semantics. Useful for testing citext behavior before converting columns.
- `pg_citext_list_columns` — List all columns using the citext type in the database. Useful for auditing case-insensitive columns.
- `pg_citext_schema_advisor` — Analyze a specific table and recommend which columns should use citext. Provides schema design recommendations based on column names and existing data patterns. Requires the
- `pg_connection_pool_optimize` — Analyze connection usage and provide pool optimization recommendations.
- `pg_connection_stats` — Get connection statistics by database and state.
- `pg_constraint_analysis` — Analyze all constraints for issues: redundant indexes, missing foreign keys, missing NOT NULL, missing primary keys, and unindexed foreign keys.
- `pg_copy_export` — Export query results using COPY TO. Use query/sql for custom query or table for SELECT *.
- `pg_count` — Count rows in a table, optionally with a WHERE clause or specific column.
- `pg_cron_job_run_details` — View execution history for cron jobs. Shows start/end times, status, and return messages. Useful for monitoring and debugging scheduled jobs. Default limit is 10 rows.
- `pg_cron_list_jobs` — List all scheduled cron jobs. Shows job ID, name, schedule, command, and status. Jobs without names (jobname: null) must be referenced by jobId. Default limit: 50 rows.
- `pg_database_size` — Get the size of a database.
- `pg_dependency_graph` — Get the full foreign key dependency graph with cascade paths, row counts, circular dependency detection, and severity assessment. Agent-optimized structured output.
- `pg_describe_table` — Get detailed table structure including columns, types, and constraints. For tables/views only, not sequences.
- `pg_detect_bloat_risk` — Scores tables by bloat risk using multiple factors: dead tuple ratio,
- `pg_detect_connection_spike` — Detects unusual connection patterns by analyzing concentration
- `pg_detect_query_anomalies` — Detects queries deviating from their historical execution time norms
- `pg_diagnose_database_performance` — Consolidates key performance metrics into a single actionable report:
- `pg_distance` — Find nearby geometries within a distance from a point. Output distance_meters is always in meters; unit parameter only affects the filter threshold.
- `pg_doc_collection_info` — Get document collection statistics: row count, size, and indexes.
- `pg_doc_find` — Query documents in a JSONB collection with optional filter, field projection, and pagination.
- `pg_doc_list_collections` — List JSONB document collections in a schema. Collections are tables with a
- `pg_dump_schema` — Get the pg_dump command for a schema or database.
- `pg_dump_table` — Generate DDL for a table or sequence. Returns CREATE TABLE for tables, CREATE SEQUENCE for sequences.
- `pg_duplicate_indexes` — Find duplicate or overlapping indexes (same leading columns). Candidates for consolidation.
- `pg_exists` — Check if rows exist in a table. WHERE clause is optional: with WHERE = checks matching rows; without WHERE = checks if table has any rows at all. For table *schema* existence, use pg_list_tables.
- `pg_explain` — Show query execution plan without running the query.
- `pg_explain_buffers` — Show query plan with buffer usage statistics.
- `pg_fuzzy_match` — Fuzzy string matching using fuzzystrmatch extension. Levenshtein (default): returns distance; use maxDistance=5+ for longer strings. Soundex/metaphone: returns phonetic code for exact matches only.
- `pg_geo_index_optimize` — Analyze spatial indexes and provide optimization recommendations.
- `pg_geocode` — Create a point geometry from latitude/longitude coordinates. The SRID parameter sets output metadata only; input coordinates are always WGS84 lat/lng.
- `pg_geometry_intersection` — Compute the intersection of two WKT or GeoJSON geometries. Returns the intersection geometry and whether they intersect.
- `pg_get_indexes` — List indexes with usage statistics. When table is omitted, lists ALL database indexes (can be large). Use schema/limit to filter.
- `pg_hybrid_search` — Combined vector similarity and full-text search with weighted scoring.
- `pg_index_recommendations` — Suggest missing indexes based on table statistics or query analysis. When sql is provided and HypoPG is installed, creates hypothetical indexes to measure potential performance improvement.
- `pg_index_stats` — Get index usage statistics.
- `pg_intersection` — Find geometries that intersect with a given geometry. Auto-detects SRID from target column if not specified. Default limit: 10 rows.
- `pg_jsonb_agg` — Aggregate rows into a JSONB array. With groupBy, returns all groups with their aggregated items.
- `pg_jsonb_contains` — Find rows where JSONB column contains the specified value. Note: Empty object {} matches all rows.
- `pg_jsonb_diff` — Compare two JSONB objects. Returns top-level key differences only (shallow comparison, not recursive).
- `pg_jsonb_extract` — Extract value from JSONB at specified path. Returns null if path does not exist in data structure. Use select param to include identifying columns.
- `pg_jsonb_index_suggest` — Analyze JSONB column and suggest indexes. Only works on object-type JSONB (not arrays).
- `pg_jsonb_keys` — Get all unique keys from a JSONB object column (deduplicated across rows).
- `pg_jsonb_normalize` — Normalize JSONB to key-value pairs. Use idColumn to specify row identifier (default:
- `pg_jsonb_path_query` — Query JSONB using SQL/JSON path expressions (PostgreSQL 12+). Note: Recursive descent (..) syntax is not supported by PostgreSQL.
- `pg_jsonb_pretty` — Format JSON/JSONB with indentation for readability. Pass raw JSON string via
- `pg_jsonb_security_scan` — Scan JSONB for security issues. Only works on object-type JSONB (not arrays). Use larger sampleSize for thorough scans.
- `pg_jsonb_stats` — Get statistics about JSONB column usage. Note: topKeys only applies to object-type JSONB, not arrays.
- `pg_jsonb_typeof` — Get JSONB type at path. Uses dot-notation (a.b.c), not JSONPath ($). Response includes columnNull to distinguish NULL columns.
- `pg_jsonb_validate_path` — Validate a JSONPath expression and test it against sample data. Supports vars for parameterized paths.
- `pg_kcache_database_stats` — Get aggregated OS-level statistics for a database. Shows total CPU time, I/O, and page faults across all queries.
- `pg_kcache_query_stats` — Get query statistics with OS-level CPU and I/O metrics. Joins pg_stat_statements with pg_stat_kcache to show what SQL did AND what system resources it consumed. orderBy options:
- `pg_kcache_resource_analysis` — Analyze queries to classify them as CPU-bound, I/O-bound, or balanced. Helps identify the root cause of performance issues - is the query computation-heavy or disk-heavy?
- `pg_kcache_top_cpu` — Get top CPU-consuming queries. Shows which queries spend the most time in user CPU (application code) vs system CPU (kernel operations).
- `pg_kcache_top_io` — Get top I/O-consuming queries. Shows filesystem-level reads and writes, which represent actual disk access (not just shared buffer hits).
- `pg_like_search` — Search text using LIKE patterns. Case-insensitive (ILIKE) by default.
- `pg_list_constraints` — List table constraints (primary keys, foreign keys, unique, check).
- `pg_list_extensions` — List installed PostgreSQL extensions with versions.
- `pg_list_functions` — List user-defined functions with optional filtering. Use exclude (array) to filter out extension functions. Default limit=500 may need increasing for busy databases.
- `pg_list_objects` — List database objects filtered by type. Use type:
- `pg_list_partitions` — List all partitions of a partitioned table. Returns warning if table is not partitioned.
- `pg_list_schemas` — List all schemas in the database.
- `pg_list_sequences` — List all sequences in the database.
- `pg_list_tables` — List all tables, views, and materialized views with metadata. Use limit to restrict results.
- `pg_list_triggers` — List all triggers.
- `pg_list_views` — List all views and materialized views.
- `pg_locks` — View current lock information.
- `pg_ltree_lca` — Find the longest common ancestor of multiple ltree paths.
- `pg_ltree_list_columns` — List all columns using the ltree type in the database.
- `pg_ltree_match` — Match ltree paths using lquery pattern syntax.
- `pg_ltree_query` — Query hierarchical relationships in ltree columns. Supports exact paths (descendants/ancestors) and lquery patterns with wildcards.
- `pg_ltree_subpath` — Extract a portion of an ltree path.
- `pg_migration_history` — Query migration history with optional filtering by status and source system.
- `pg_migration_risks` — Analyze proposed DDL statements for risks: data loss, lock contention, constraint violations, and breaking changes. Pre-flight check before executing migrations.
- `pg_migration_status` — Get current migration tracking status: latest version, counts by status,
- `pg_object_details` — Get detailed metadata for a specific database object (table, view, function, sequence, index).
- `pg_partition_info` — Get detailed information about a partitioned table. Returns warning if table is not partitioned.
- `pg_partition_strategy_suggest` — Analyze a table and suggest optimal partitioning strategy.
- `pg_partman_analyze_partition_health` — Analyze the health of partition sets managed by pg_partman. Checks for issues like data in default partitions, missing premake partitions, stale maintenance, and retention configuration.
- `pg_partman_check_default` — Check if any data exists in the default partition that should be moved to child partitions. Data in default indicates partitions may be missing for certain time/value ranges.
- `pg_partman_partition_data` — Move data from the default partition to appropriate child partitions. Creates new partitions if needed for the data being moved.
- `pg_partman_show_config` — View the configuration for a partition set from part_config table.
- `pg_partman_show_partitions` — List all child partitions for a partition set managed by pg_partman.
- `pg_performance_baseline` — Capture current database performance metrics as a baseline for comparison.
- `pg_pgcrypto_gen_random_bytes` — Generate cryptographically secure random bytes.
- `pg_pgcrypto_hash` — Hash data using various algorithms (SHA-256, SHA-512, MD5, etc.).
- `pg_point_in_polygon` — Check if a point is within any polygon in a table. The geometry column should contain POLYGON or MULTIPOLYGON geometries. Default limit: 10 rows.
- `pg_query_plan_compare` — Compare execution plans of two SQL queries to identify performance differences.
- `pg_query_plan_stats` — Get query plan statistics showing planning time vs execution time (requires pg_stat_statements).
- `pg_read_query` — Execute a read-only SQL query (SELECT, WITH). Returns rows as JSON. Pass transactionId to execute within a transaction.
- `pg_recovery_status` — Check if server is in recovery mode (replica).
- `pg_regexp_match` — Match text using POSIX regular expressions.
- `pg_replication_status` — Check replication status and lag.
- `pg_role_attributes` — Get detailed attributes for a PostgreSQL role: login, superuser, createdb, createrole, replication, bypassrls, inherit, connection limit, expiration, and OID.
- `pg_role_grants` — Show privileges and memberships for a PostgreSQL role. Includes role attributes, membership in other roles, and optionally table-level grants.
- `pg_role_list` — List PostgreSQL roles with attributes (login, superuser, createdb, etc.) and optional name filtering.
- `pg_role_rls_policies` — List row-level security (RLS) policies for a table or all tables in a schema. Shows policy name, command, roles, USING/WITH CHECK expressions, and permissive/restrictive type.
- `pg_schema_snapshot` — Get a complete schema snapshot in a single agent-optimized JSON structure. Includes tables, columns, types, constraints, indexes, triggers, sequences, and extensions.
- `pg_security_encryption_status` — Get encryption status including SSL configuration, password encryption method, and pgcrypto availability.
- `pg_security_firewall_rules` — List detailed pg_hba.conf authentication rules with optional filtering by user or rule type.
- `pg_security_firewall_status` — Get PostgreSQL host-based authentication (pg_hba.conf) summary — the PostgreSQL equivalent of a firewall.
- `pg_security_password_validate` — Validate password strength against configurable policy. Uses local analysis (no database query).
- `pg_security_sensitive_tables` — Identify tables and columns that may contain sensitive data based on column name patterns.
- `pg_security_ssl_status` — Get SSL/TLS connection and certificate status for active connections.
- `pg_security_user_privileges` — Get comprehensive privilege report for PostgreSQL roles including attributes, membership, and object grants.
- `pg_seq_scan_tables` — Find tables with high sequential scan counts (potential missing indexes). Default minScans=10; use higher values (e.g., 100+) for production databases.
- `pg_server_version` — Get PostgreSQL server version information.
- `pg_show_settings` — Show current PostgreSQL configuration settings. Filter by name pattern or exact setting name. Accepts: pattern, setting, or name parameter.
- `pg_stat_activity` — Get currently running queries and connections.
- `pg_stat_statements` — Get query statistics from pg_stat_statements (requires extension).
- `pg_stats_correlation` — Calculate Pearson correlation coefficient between two numeric columns. Use groupBy to get correlation per category.
- `pg_stats_descriptive` — Calculate descriptive statistics (count, min, max, avg, stddev, variance, sum) for a numeric column. Use groupBy to get statistics per category. Warning: using groupBy on high-cardinality columns will result in large JSON payloads.
- `pg_stats_distinct` — Get distinct values from a column with count. Useful for understanding cardinality and unique value distribution.
- `pg_stats_distribution` — Analyze data distribution with histogram buckets, skewness, and kurtosis. Use groupBy to get distribution per category.
- `pg_stats_frequency` — Get value frequency distribution (count per unique value) ordered by frequency descending. Shows the most common values first.
- `pg_stats_hypothesis` — Perform one-sample t-test or z-test against a hypothesized mean. For z-test, provide populationStdDev (sigma) for accurate results. Use groupBy to test each group separately.
- `pg_stats_lag_lead` — Access data from previous (LAG) or next (LEAD) rows in an ordered set. Useful for comparisons, deltas, and change detection.
- `pg_stats_moving_avg` — Calculate moving average (AVG OVER sliding window) for a numeric column. Specify windowSize for the number of preceding rows to include.
- `pg_stats_ntile` — Divide ordered rows into N equal buckets (e.g., quartiles with buckets=4). Returns bucket assignment per row.
- `pg_stats_outliers` — Detect statistical outliers in a numeric column using IQR (interquartile range) or Z-score method. IQR is robust against non-normal distributions.
- `pg_stats_percentiles` — Calculate percentiles (quartiles, custom percentiles) for a numeric column. Use groupBy to get percentiles per category.
- `pg_stats_regression` — Perform linear regression analysis (y = mx + b) between two columns. Use groupBy to get regression per category.
- `pg_stats_row_number` — Assign sequential row numbers within an ordered result set. Use partitionBy to restart numbering per group.
- `pg_stats_sampling` — Get a random sample of rows. Use sampleSize for exact row count (any method), or percentage for approximate sampling with bernoulli/system methods.
- `pg_stats_summary` — Get summary statistics (count, avg, min, max, stddev) for multiple numeric columns. Defaults to all numeric columns if none specified.
- `pg_stats_time_series` — Aggregate data into time buckets for time series analysis. Use groupBy to get separate time series per category.
- `pg_stats_top_n` — Get the top N rows ranked by a column. Auto-excludes long-content columns (text, json, bytea) from output unless selectColumns is specified. Warning: Using a large
- `pg_system_health` — Analyze current system health and resource usage including CPU, memory, and I/O patterns.
- `pg_table_sizes` — Get sizes of all tables with indexes and total.
- `pg_table_stats` — Get table access statistics.
- `pg_text_headline` — Generate highlighted snippets from full-text search matches. Use select param for stable row identification (e.g., primary key).
- `pg_text_rank` — Get relevance ranking for full-text search results. Returns matching rows only with rank score.
- `pg_text_search` — Full-text search using tsvector and tsquery.
- `pg_text_search_config` — List available full-text search configurations (e.g., english, german, simple).
- `pg_text_sentiment` — Perform basic sentiment analysis on text using keyword matching.
- `pg_text_to_query` — Convert text to tsquery for full-text search. Modes: plain (default), phrase (proximity matching), websearch (Google-like syntax with AND/OR/-).
- `pg_text_to_vector` — Convert text to tsvector representation for full-text search operations.
- `pg_topological_sort` — Get tables in safe DDL execution order.
- `pg_transaction_rollback` — Rollback a transaction, undoing all changes.
- `pg_transaction_rollback_to` — Rollback to a savepoint, undoing changes made after it.
- `pg_transaction_status` — Check the status of an active transaction without modifying it.
- `pg_trigram_similarity` — Find similar strings using pg_trgm trigram matching. Returns similarity score (0-1). Default threshold 0.3; use lower (e.g., 0.1) for partial matches.
- `pg_unused_indexes` — Find indexes that have never been used (idx_scan = 0). Candidates for removal.
- `pg_uptime` — Get server uptime and startup time.
- `pg_user_roles` — List all roles assigned to a user/role, including admin option and SET option (PG 16+).
- `pg_vacuum_stats` — Get detailed vacuum statistics including dead tuples, last vacuum times, and wraparound risk.
- `pg_vector_aggregate` — Calculate average vector. Requires: table, column. Optional: groupBy, where.
- `pg_vector_distance` — Calculate distance between two vectors. Valid metrics: l2 (default), cosine, inner_product.
- `pg_vector_index_optimize` — Analyze vector column and recommend optimal index parameters for IVFFlat/HNSW.
- `pg_vector_search` — Search for similar vectors. Requires: table, column, vector. Use select param to include identifying columns (e.g., select: [
- `pg_vector_validate` — Validate vector dimensions against column. Pass any combination of: vector (to check), table+column (for column dimensions), dimensions (expected).
- `pg_alert_threshold_set` — Get recommended alert thresholds for monitoring key database metrics. Note: This is informational only - returns suggested warning/critical thresholds for external monitoring tools. Does not configure alerts in PostgreSQL itself.
- `pg_append_insight` — Append a business insight to the in-memory insights memo. Insights are accessible via the postgres://insights resource. Use to record key findings during database analysis.
- `pg_attach_partition` — Attach an existing table as a partition.
- `pg_audit_restore_backup` — Restore a pre-mutation backup snapshot. Executes the captured DDL (and optional data INSERTs) within a transaction.
- `pg_batch_insert` — Insert multiple rows in a single statement. More efficient than individual inserts. Rows array must not be empty.
- `pg_citext_convert_column` — Convert an existing TEXT column to CITEXT for case-insensitive comparisons. This is useful for retrofitting case-insensitivity to existing columns like email or username. Note: If views depend on this column, you must drop and recreate t…
- `pg_citext_create_extension` — Enable the citext extension for case-insensitive text columns. citext is ideal for emails, usernames, and other identifiers where case shouldn
- `pg_copy_import` — Generate COPY FROM command for importing data.
- `pg_create_backup_plan` — Generate a backup strategy recommendation with cron schedule.
- `pg_create_fts_index` — Create a GIN index for full-text search on a column.
- `pg_create_index` — Create an index on a table. Supports btree, hash, gin, gist, brin index types.
- `pg_create_partition` — Create a partition. Use subpartitionBy/subpartitionKey to make it sub-partitionable for multi-level partitioning.
- `pg_create_partitioned_table` — Create a partitioned table. Columns: notNull, primaryKey, unique, default. Note: primaryKey/unique must include the partition key column.
- `pg_create_schema` — Create a new schema.
- `pg_create_sequence` — Create a new sequence with optional START, INCREMENT, MIN/MAX, CACHE, CYCLE, and OWNED BY.
- `pg_create_table` — Create a new table with specified columns and constraints. Supports composite primary keys and table-level constraints.
- `pg_create_view` — Create a view or materialized view.
- `pg_cron_alter_job` — Modify an existing cron job. Can change schedule, command, database, username, or active status. Only specify the parameters you want to change.
- `pg_doc_add` — Add one or more JSON documents to a collection.
- `pg_doc_create_collection` — Create a new JSONB document collection (table with doc JSONB + generated _id primary key).
- `pg_doc_create_index` — Create an expression index on document fields for faster queries. Uses PostgreSQL expression indexes on JSONB paths.
- `pg_doc_modify` — Update documents matching a filter. Set fields with
- `pg_geometry_buffer` — Create a buffer zone around a WKT or GeoJSON geometry. Returns the buffered geometry as GeoJSON and WKT.
- `pg_geometry_column` — Add a geometry column to a table. Returns alreadyExists: true if column exists.
- `pg_jsonb_delete` — Delete a key or array element from a JSONB column. Accepts path as string or array. Note: rowsAffected reflects matched rows, not whether key existed.
- `pg_jsonb_insert` — Insert value into JSONB array or object. For arrays, index -1 inserts BEFORE last element (use insertAfter:true to append). For objects, throws error if key already exists.
- `pg_jsonb_merge` — Merge two JSONB objects. deep=true (default) recursively merges. mergeArrays=true concatenates arrays.
- `pg_jsonb_set` — Set value in JSONB at path. Uses dot-notation by default; for literal dots in keys use array format [\
- `pg_jsonb_strip_nulls` — Remove null values from a JSONB column. Use preview=true to see changes without modifying data.
- `pg_ltree_convert_column` — Convert an existing TEXT column to LTREE type. Note: If views depend on this column, you must drop and recreate them manually before conversion.
- `pg_ltree_create_index` — Create a GiST index on an ltree column for efficient tree queries.
- `pg_migration_init` — Initialize or verify the schema version tracking table (_mcp_schema_versions).
- `pg_migration_record` — Record a migration in the schema version tracking table with status
- `pg_partman_create_parent` — Create a new partition set using pg_partman
- `pg_restore_validate` — Generate commands to validate backup integrity and restorability.
- `pg_role_assign` — Assign (grant) a role to a user/role, establishing role membership. Optionally with ADMIN OPTION to allow re-granting.
- `pg_role_create` — Create a new PostgreSQL role with optional attributes (LOGIN, PASSWORD, SUPERUSER, CREATEDB, CREATEROLE, REPLICATION, BYPASSRLS, CONNECTION LIMIT, VALID UNTIL).
- `pg_role_grant` — Grant privileges (SELECT, INSERT, UPDATE, DELETE, ALL, etc.) on tables, schemas, sequences, or functions to a PostgreSQL role.
- `pg_role_revoke` — Revoke role membership from a user, or revoke specific privileges on objects from a role. For membership: provide role + user. For privileges: provide role + privileges + table/schema.
- `pg_role_rls_enable` — Enable or disable row-level security (RLS) on a table. Optionally use FORCE to apply RLS even to the table owner.
- `pg_security_mask_data` — Apply data masking to sensitive values. Supports email, phone, SSN, credit card, and partial masking.
- `pg_spatial_index` — Create a GiST spatial index for geometry column. Uses IF NOT EXISTS to avoid errors on duplicate names.
- `pg_stats_rank` — Assign rank within an ordered result set. Supports rank (gaps), dense_rank (no gaps), and percent_rank (0-1). Use partitionBy to rank within groups.
- `pg_terminate_backend` — Terminate a database connection (forceful, use with caution).
- `pg_transaction_commit` — Commit a transaction, making all changes permanent.
- `pg_transaction_release` — Release a savepoint, keeping all changes since it was created.
- `pg_transaction_savepoint` — Create a savepoint within a transaction for partial rollback.
- `pg_upsert` — Insert a row or update if it already exists (INSERT ... ON CONFLICT DO UPDATE). Specify conflict columns for uniqueness check. Use data or values for column-value pairs.
- `pg_vector_add_column` — Add a vector column to a table. Requires: table, column, dimensions.
- `pg_vector_create_index` — Create vector index. Requires: table, column, type (ivfflat or hnsw).
- `pg_vector_insert` — Insert a vector into a table, or update an existing row
- `pg_write_query` — Execute a write SQL query (INSERT, UPDATE, DELETE). Returns affected row count. Pass transactionId to execute within a transaction.

## Related servers

- UnClick (1658 tools) — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md
- Nodebench (824 tools) — https://policylayer.com/tools/io-github-homenshum-nodebench.md
- Yaver (812 tools) — https://policylayer.com/tools/io-github-kivanccakmak-yaver.md
- Binance MCP Server (734 tools) — https://policylayer.com/tools/nirholas-binance-mcp.md
- Crow (587 tools) — https://policylayer.com/tools/kh0pper-crow.md
- Fortimanager (584 tools) — https://policylayer.com/tools/jmpijll-fortimanager-mcp.md
- TinyFn (572 tools) — https://policylayer.com/tools/io-tinyfn-tinyfn.md
- Mcp (571 tools) — https://policylayer.com/tools/io-github-2s-io-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-neverinfamous-postgres-mcp · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/io-github-neverinfamous-postgres-mcp
