db-mcp
โ ๏ธ UNDER DEVELOPMENT - This project is actively being developed and is not yet ready for production use.
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.