DB Gateway MCP Server (sijunkim/db-gateway) is an MCP server listed on the M8ven Trust Index. It scores 58 out of 100, grade D. It declares 169 tools. No publisher has claimed this listing.
Gives AI agents direct access to databases across 8 engines with 145+ tools, enabling schema-aware query execution and management through natural language.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
sijunkim
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
dynamodb_list_tablesList all tables in DynamoDB
dynamodb_describe_tableGet detailed information about a DynamoDB table
dynamodb_create_tableCreate a new DynamoDB table
dynamodb_delete_tableDelete a DynamoDB table (WARNING: This permanently removes the table and all its data)
dynamodb_get_itemGet an item from a DynamoDB table by its primary key
dynamodb_put_itemCreate or replace an item in a DynamoDB table
dynamodb_update_itemUpdate an existing item in a DynamoDB table
dynamodb_delete_itemDelete an item from a DynamoDB table
dynamodb_queryQuery items from a DynamoDB table using key conditions
dynamodb_scanScan all items in a DynamoDB table (use with caution on large tables)
dynamodb_batch_get_itemGet multiple items from one or more DynamoDB tables in a single request
dynamodb_batch_write_itemPut or delete multiple items in one or more DynamoDB tables
dynamodb_transact_write_itemsPerform multiple Put, Update, Delete, or ConditionCheck operations atomically across one or more tables
elasticsearch_get_cluster_healthGet the health status of the ElasticSearch/OpenSearch cluster
elasticsearch_get_cluster_infoGet basic information about the ElasticSearch/OpenSearch cluster
elasticsearch_list_indicesList all indices in the ElasticSearch/OpenSearch cluster
elasticsearch_get_indexGet detailed information about a specific index
elasticsearch_get_mappingGet the mapping definition of an index
elasticsearch_get_index_settingsGet the settings of an index
elasticsearch_get_documentGet a document by its ID
elasticsearch_searchSearch for documents using Query DSL
elasticsearch_countCount documents matching a query
elasticsearch_aggregatePerform aggregations on documents
elasticsearch_list_aliasesList all index aliases
elasticsearch_create_indexCreate a new index with optional settings and mappings
elasticsearch_delete_indexDelete an index (WARNING: This permanently removes the index and all its data)
elasticsearch_refresh_indexRefresh an index to make recent changes searchable
elasticsearch_index_documentIndex (create or update) a document
elasticsearch_update_documentPartially update an existing document
elasticsearch_delete_documentDelete a document by ID
elasticsearch_bulkPerform bulk operations (index, update, delete) in a single request
elasticsearch_create_aliasCreate an alias for an index
elasticsearch_delete_aliasDelete an alias from an index
kafka_list_topicsList all topics in the Kafka cluster (excludes internal topics starting with __)
kafka_describe_topicGet detailed information about a Kafka topic including partitions, leaders, and replicas
kafka_get_topic_offsetsGet offset information for each partition of a topic (current, high, low watermarks)
kafka_create_topicCreate a new Kafka topic with specified partitions and replication factor
kafka_delete_topicDelete a Kafka topic (WARNING: This permanently removes the topic and all its data)
kafka_get_topic_configGet configuration settings for a Kafka topic (retention, cleanup policy, etc.)
kafka_alter_topic_configModify configuration settings for a Kafka topic
kafka_add_partitionsIncrease the number of partitions for a topic (cannot decrease partitions)
kafka_list_consumer_groupsList all consumer groups in the Kafka cluster
kafka_describe_consumer_groupGet detailed information about a consumer group including members and their assignments
kafka_get_consumer_group_offsetsGet committed offsets for a consumer group on a specific topic
kafka_reset_consumer_offsetsReset consumer group offsets for reprocessing messages. Group must be inactive (no running consumers)
kafka_delete_consumer_groupDelete a consumer group. Group must be inactive (no running consumers)
kafka_get_cluster_infoGet Kafka cluster information including brokers, controller, and cluster ID
kafka_get_messagesRead messages from a specific partition starting from a given offset
kafka_get_latest_messagesGet the most recent messages from a topic across all partitions
kafka_search_messages_by_timestampSearch for messages within a specific time range
kafka_search_messages_by_keySearch for messages by key (exact match or contains). Scans from beginning of topic
kafka_search_messages_by_contentSearch for messages by content (value contains search text). Scans from beginning of topic
kafka_produce_messageProduce a message to a Kafka topic (for testing purposes)
mongodb_list_databasesList all databases in MongoDB
mongodb_list_collectionsList all collections in a specified MongoDB database
mongodb_drop_collectionDrop a collection from a specified MongoDB database
mongodb_create_indexCreate an index on a specified MongoDB collection
mongodb_find_oneFind a single document in a MongoDB collection
mongodb_find_manyFind multiple documents in a MongoDB collection
mongodb_insert_oneInsert a single document into a MongoDB collection
mongodb_insert_manyInsert multiple documents into a MongoDB collection
mongodb_update_oneUpdate a single document in a MongoDB collection
mongodb_update_manyUpdate multiple documents in a MongoDB collection
mongodb_delete_oneDelete a single document from a MongoDB collection
mongodb_delete_manyDelete multiple documents from a MongoDB collection
mongodb_aggregatePerform an aggregation pipeline on a MongoDB collection
mongodb_collection_statsGet statistics about a MongoDB collection (size, count, indexes, storage)
mongodb_list_indexesList all indexes on a MongoDB collection
mongodb_countCount documents in a MongoDB collection matching an optional filter
mongodb_distinctGet distinct values for a field in a MongoDB collection
mysql_execute_queryExecute SQL query on MySQL database
mysql_show_tablesShow all tables in the current MySQL database
mysql_describe_tableDescribe the structure of a MySQL table
mysql_use_databaseSwitch to a different MySQL database
mysql_list_databasesList all databases the current user can see in MySQL
mysql_get_schemaGet the CREATE TABLE statement for a specific MySQL table
mysql_show_processlistShow all running queries and connections in MySQL (SHOW FULL PROCESSLIST)
mysql_explain_queryGet the execution plan for a SQL query (EXPLAIN)
mysql_list_indexesList all indexes on a specific MySQL table
mysql_table_statsGet table statistics including row count, data size, and index size
mysql_show_statusShow MySQL server status variables (connections, queries, etc.)
mysql_show_variablesShow MySQL server configuration variables
mysql_kill_processKill a MySQL connection/query by process ID
mysql_list_connectionsList all configured MySQL connections with their status (connected/disconnected)
mysql_get_all_schemasGet CREATE TABLE statements for all tables in the current database
mysql_get_table_relationshipsGet all foreign key relationships between tables in the current database
mysql_execute_batchExecute multiple SQL queries sequentially on a single connection. Useful for running several queries at once. All queries share the same connection, so SET variables and temporary tables persist across queries. Returns an array of { query, result } pairs.
postgresql_execute_queryExecute SQL query on PostgreSQL database
postgresql_show_tablesShow all tables in the current PostgreSQL database (public schema)
postgresql_describe_tableDescribe the structure of a PostgreSQL table
postgresql_use_databaseSwitch to a different PostgreSQL database (reconnects)
postgresql_list_databasesList all databases the current user can see in PostgreSQL
postgresql_get_schemaGet the schema information for a specific PostgreSQL table
postgresql_show_processlistShow all active queries and connections in PostgreSQL (pg_stat_activity)
postgresql_explain_queryGet the execution plan for a SQL query (EXPLAIN FORMAT JSON)
postgresql_list_indexesList all indexes on a specific PostgreSQL table
postgresql_table_statsGet table statistics including row count, size, and vacuum info
postgresql_show_statusShow PostgreSQL database statistics (connections, transactions, cache hits)
postgresql_show_variablesShow PostgreSQL server configuration variables (pg_settings)
postgresql_kill_processTerminate a PostgreSQL connection/query by PID (pg_terminate_backend)
69 further tools are not listed here. The complete surface is in the source.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
AWS_REGIONDBS"": "mysql,redis",DYNAMODB_ACCESS_KEY_IDDynamoDB is the exception — it takes DYNAMODB_REGION, , and DYNAMODB_SECRET_ACCESS_KEY instead. See [.env.example](https://github.com/sijunkim/db-gateway/blob/main/.env.example) for every option.DYNAMODB_ENDPOINTDYNAMODB_IDLE_TIMEOUTDYNAMODB_REGIONDYNAMODB_SECRET_ACCESS_KEYDynamoDB is the exception — it takes DYNAMODB_REGION, DYNAMODB_ACCESS_KEY_ID, and instead. See [.env.example](https://github.com/sijunkim/db-gateway/blob/main/.env.example) for every option.ELASTICSEARCHelasticsearch://<user>:<password>@<host>:<port>?alias=name, or http(s)://<host>:<port>?alias=nameKAFKAkafka://<user>:<password>@<broker>:<port>,<broker2>:<port>?alias=name&mechanism=plainMONGODB_IDLE_TIMEOUTMYSQL"": "mysql://<user>:<password>@<host>:3306/<database>?alias=dev&default=true",POSTGRESQLpostgresql://<user>:<password>@<host>:<port>/<db>?alias=name&ssl=trueREAD_ONLYtrue hides write tools from the tool list entirely and restricts _execute_query to SELECT-style statements.REDIS"": "redis://:@<host>:6379/0?alias=dev&default=true"REDSHIFTredshift://<user>:<password>@<host>:<port>/<db>?alias=name&ssl=trueTRANSPORTMONGODB_URIPORTTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
169/169 tools missing one or more hints — dynamodb_list_tables (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); dynamodb_describe_table (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); dynamodb_create_table (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +166 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tests exist
No test files found
Add tests that exercise each declared tool.
Production dependencies are patched
0 critical, 3 high severity in production deps — @modelcontextprotocol/sdk@1.18.0 (high), @modelcontextprotocol/sdk@1.18.0 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Dependency freshness
1/11 production deps stale: kafkajs@2023-02-27 (3.4y)
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/sijunkim/db-gateway)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check