db-mcp (ShootaOT/db-mcp) is an MCP server listed on the M8ven Trust Index. It scores 68 out of 100, grade C. It declares 89 tools. No publisher has claimed this listing.
๐ง Optimize your SQLite experience with the db-mcp server, featuring OAuth 2.1 and 89 specialized tools for robust data management.
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
ShootaOT
Source: github_topic ยท also listed on github_repo_search
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.
server_infoGet information about the db-mcp server and registered adapters
server_healthCheck health status of all database connections
list_adaptersList all registered database adapters
sqlite_backupCreate a backup of the database to a file.
sqlite_analyzeAnalyze table statistics to improve query performance.
sqlite_integrity_checkCheck database integrity for corruption or errors.
sqlite_optimizeOptimize database by reindexing and/or analyzing.
sqlite_read_queryExecute a SELECT query on the SQLite database. Returns rows as JSON. Use parameter binding for safety.
sqlite_write_queryExecute an INSERT, UPDATE, or DELETE query. Returns affected row count. Use parameter binding for safety.
sqlite_create_tableCreate a new table in the database with specified columns and constraints.
sqlite_list_tablesList all tables and views in the database with their row counts.
sqlite_describe_tableGet detailed schema information for a table including columns, types, and constraints.
sqlite_drop_tableDrop (delete) a table from the database. This is irreversible!
sqlite_get_indexesList all indexes in the database, optionally filtered by table.
sqlite_create_indexCreate an index on one or more columns to improve query performance.
sqlite_fts_createCreate an FTS5 full-text search virtual table.
sqlite_fts_searchSearch an FTS5 table using full-text query syntax.
sqlite_fts_rebuildRebuild an FTS5 index to optimize search performance.
sqlite_fts_match_infoGet FTS5 match ranking information using bm25.
sqlite_geo_distanceCalculate the distance between two geographic points using Haversine formula.
sqlite_geo_nearbyFind points within a radius of a center point.
sqlite_geo_bounding_boxFind points within a rectangular bounding box.
sqlite_geo_clusterCluster geographic points into grid cells.
sqlite_json_insertInsert a row with JSON data. Automatically normalizes JSON for consistent storage.
sqlite_json_updateUpdate a value at a specific JSON path using json_set().
sqlite_json_selectSelect rows and optionally extract specific JSON paths.
sqlite_json_queryQuery JSON data with path-based filters and projections.
sqlite_json_validate_pathValidate a JSON path syntax without executing a query.
sqlite_json_mergeMerge JSON object into existing JSON column using json_patch().
sqlite_json_validCheck if a string is valid JSON.
sqlite_json_extractExtract a value from a JSON column at the specified path using json_extract().
sqlite_json_setSet a value at a JSON path using json_set(). Creates path if it does not exist.
sqlite_json_removeRemove a value at a JSON path using json_remove().
sqlite_json_typeGet the JSON type (null, true, false, integer, real, text, array, object) at a path.
sqlite_json_array_lengthGet the length of a JSON array at the specified path.
sqlite_json_array_appendAppend a value to a JSON array using json_insert().
sqlite_json_keysGet the keys of a JSON object at the specified path.
sqlite_json_eachExpand a JSON array or object into rows using json_each().
sqlite_json_group_arrayAggregate column values into a JSON array using json_group_array().
sqlite_json_group_objectAggregate key-value pairs into a JSON object using json_group_object().
sqlite_json_prettyFormat JSON string with indentation for readability.
sqlite_stats_basicGet basic statistics (count, sum, avg, min, max) for a numeric column.
sqlite_stats_countCount rows, optionally distinct values in a column.
sqlite_stats_group_byAggregate statistics grouped by a column.
sqlite_stats_histogramCreate a histogram with specified number of buckets.
sqlite_stats_percentileCalculate percentiles (median, quartiles, etc.) for a column.
sqlite_stats_correlationCalculate Pearson correlation coefficient between two numeric columns.
sqlite_stats_top_nGet top N values from a column.
sqlite_stats_distinctGet distinct values from a column.
sqlite_stats_summaryGet summary statistics for multiple columns at once.
sqlite_stats_frequencyGet frequency distribution of values in a column.
sqlite_regex_extractExtract text matching a regex pattern. Processed in JavaScript after fetching data.
sqlite_regex_matchFind rows where column matches a regex pattern. Processed in JavaScript.
sqlite_text_splitSplit a text column by delimiter into array results.
sqlite_text_concatConcatenate multiple columns with optional separator.
sqlite_text_replaceReplace text in a column using SQLite replace() function.
sqlite_text_trimTrim whitespace from text column values.
sqlite_text_caseConvert text to uppercase or lowercase.
sqlite_text_substringExtract a substring from text column using substr().
sqlite_vector_create_tableCreate a table optimized for vector storage with JSON vector column.
sqlite_vector_storeStore or update a vector in the database.
sqlite_vector_batch_storeStore multiple vectors in a batch operation.
sqlite_vector_searchFind similar vectors using cosine, euclidean, or dot product similarity.
sqlite_vector_getRetrieve a vector by its ID.
sqlite_vector_deleteDelete vectors by their IDs.
sqlite_vector_countCount vectors in a table.
sqlite_vector_statsGet statistics about vectors in a table.
sqlite_vector_dimensionsGet the dimensions of vectors in a table.
sqlite_vector_normalizeNormalize a vector to unit length.
sqlite_vector_distanceCalculate distance or similarity between two vectors.
sqlite_generate_seriesGenerate a series of numbers using generate_series() virtual table.
sqlite_create_viewCreate a view based on a SELECT query.
sqlite_list_viewsList all views in the database.
sqlite_drop_viewDrop (delete) a view from the database.
sqlite_dbstatGet database storage statistics using dbstat virtual table.
sqlite_vacuumRebuild the database to reclaim space and optimize structure.
sqlite_transaction_beginBegin a new transaction. Use immediate or exclusive mode for write-heavy operations.
sqlite_transaction_commitCommit the current transaction, making all changes permanent.
sqlite_transaction_rollbackRollback the current transaction, discarding all changes.
sqlite_transaction_savepointCreate a savepoint within the current transaction for partial rollback.
sqlite_transaction_releaseRelease a savepoint, keeping the changes made since it was created.
sqlite_transaction_rollback_toRollback to a savepoint, discarding changes made after it was created.
sqlite_transaction_executeExecute multiple SQL statements in a single transaction. Automatically commits on success or rolls back on error.
sqlite_window_row_numberAssign sequential row numbers based on ordering. Useful for pagination and ranking.
sqlite_window_rankCalculate rank of rows. RANK leaves gaps after ties, DENSE_RANK does not, PERCENT_RANK gives 0-1 range.
sqlite_window_lag_leadAccess previous (LAG) or next (LEAD) row values. Useful for comparing consecutive rows.
sqlite_window_running_totalCalculate running (cumulative) total. Useful for balance tracking, cumulative metrics.
sqlite_window_moving_avgCalculate moving (rolling) average. Useful for smoothing time series data.
sqlite_window_ntileDivide rows into N buckets. E.g., 4 buckets = quartiles, 10 = deciles, 100 = percentiles.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
When Vitest UI server is listening, arbitrary file can be read and executed
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
DATABASE_URIDB_MCP_TOOL_FILTERLOG_LEVELMYSQL_URIPOSTGRESQL_URIPOSTGRES_URIREDIS_URISQLITE_DATABASESQLITE_PATHTOOL_FILTERMONGODB_URIMONGO_URITool 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
89/89 tools missing one or more hints โ server_info (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); server_health (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_adapters (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +86 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.
Tool inputs are validated
Only 0/3 tool handlers declare input schemas (0%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tool test coverage
27/89 tools referenced in tests (30%)
Write tests that reference each tool by name so every tool has at least one test.
Production dependencies are patched
0 critical, 2 high severity in production deps โ @modelcontextprotocol/sdk@1.25.1 (high), @modelcontextprotocol/sdk@1.25.1 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Dev dependencies
1 critical/high in dev-only deps (does not ship to users)
Upgrade dev dependencies when convenient.
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/shootaot/db-mcp)?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