neverinfamous

db-mcp

Community neverinfamous
Updated

SQLite MCP Server for Secure Database Administration and Observability with 122 Specialized Tools, 8 Resources, 10 Prompts, Smart Tool Filtering, HTTP/SSE Transport, OAuth 2.1 Authentication & Granular Access Control. Available in WASM and better-sqlite3 variants.

db-mcp

โš ๏ธ UNDER DEVELOPMENT - This project is actively being developed and is not yet ready for production use.

License: MITCodeQL

A multi-database Model Context Protocol (MCP) server written in TypeScript, featuring OAuth 2.0 authentication, tool filtering, and granular access control.

Features

  • ๐Ÿ” OAuth 2.0 Authentication - Secure access with token-based authentication
  • ๐Ÿ›ก๏ธ Tool Filtering - Control which database operations are exposed
  • ๐Ÿ‘ฅ Access Control - Limit users to read-only operations or specific databases
  • ๐Ÿ—„๏ธ Multi-Database Support - Connect to multiple database types simultaneously
  • โšก Code Mode Architecture - Built using the MCP SDK for maximum flexibility

Architecture

This server is built in Code Mode using the official MCP TypeScript SDK, rather than using stdio-based configuration. This architectural choice enables:

Capability Benefit
Dynamic Tool Registration Register/unregister database tools at runtime based on user permissions
OAuth 2.0 Integration Implement authentication middleware before tool execution
Per-Request Context Access user identity, scopes, and database restrictions per request
Tool Filtering Programmatically control which tools are available to each user
Multi-Tenancy Support multiple users with different database access levels
// Code Mode allows programmatic server control
import { Server } from '@modelcontextprotocol/sdk/server';

const server = new Server({
  name: 'db-mcp',
  version: '1.0.0'
});

// Dynamic tool registration based on user permissions
server.setRequestHandler(ListToolsRequestSchema, async (request) => {
  const userScopes = await validateOAuthToken(request);
  return { tools: getToolsForScopes(userScopes) };
});

Supported Databases

Database Status Priority
SQLite ๐Ÿ”„ Planned High
MySQL ๐Ÿ”„ Planned High
PostgreSQL ๐Ÿ”„ Planned High
MongoDB ๐Ÿ”„ Planned High
Redis ๐Ÿ”„ Planned High
SQL Server ๐Ÿ”„ Planned Low

Installation

# Coming soon
npm install db-mcp

Usage

# Coming soon

OAuth 2.0 Access Control

The server supports granular access control through OAuth 2.0 scopes:

Scope Description
read Read-only access to all databases
write Read and write access to all databases
admin Full administrative access

Planned Features

  • Database-level restrictions - Limit users to specific databases
  • Table-level restrictions - Limit users to specific tables within databases
  • Operation-level filtering - Allow/deny specific SQL operations

Roadmap

  • Core MCP server implementation
  • SQLite adapter
  • MySQL adapter
  • PostgreSQL adapter
  • MongoDB adapter
  • Redis adapter
  • OAuth 2.0 integration
  • Tool filtering system
  • Access control layer
  • SQL Server adapter

Contributing

Contributions are welcome! Please read our Contributing Guidelines before submitting a pull request.

Security

For security concerns, please see our Security Policy.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Code of Conduct

Please read our Code of Conduct before participating in this project.

MCP Server ยท Populars

MCP Server ยท New