https://github.com/citadel-cloud-management/mcp-server-database
MCP server for database operations - PostgreSQL, MySQL, and SQLite queries and schema management
https://github.com/citadel-cloud-management/mcp-server-database
ai anthropic claude database llm mcp model-context-protocol mysql postgresql sqlite typescript
Last synced: 2 months ago
JSON representation
MCP server for database operations - PostgreSQL, MySQL, and SQLite queries and schema management
- Host: GitHub
- URL: https://github.com/citadel-cloud-management/mcp-server-database
- Owner: Citadel-Cloud-Management
- License: other
- Created: 2026-03-07T18:21:31.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-04-11T22:18:26.000Z (3 months ago)
- Last Synced: 2026-04-12T00:27:28.010Z (3 months ago)
- Topics: ai, anthropic, claude, database, llm, mcp, model-context-protocol, mysql, postgresql, sqlite, typescript
- Language: TypeScript
- Homepage: https://citadel-cloud-management.github.io/mcp-server-database/
- Size: 16.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# mcp-server-database
An MCP (Model Context Protocol) server that provides tools for interacting with relational databases. Supports PostgreSQL, MySQL, and SQLite.
## Architecture
```mermaid
graph TB
subgraph Client
style Client fill:#4A90D9,stroke:#2E6BA6,color:#FFFFFF
MCP_Client["MCP Client"]
end
subgraph Server["mcp-server-database"]
style Server fill:#2ECC71,stroke:#1A9B52,color:#FFFFFF
Index["index.ts
MCP Server Entry"]
subgraph Tools
style Tools fill:#F39C12,stroke:#C67D0A,color:#FFFFFF
T1["query"]
T2["list_tables"]
T3["describe_table"]
T4["list_databases"]
T5["execute_migration"]
T6["get_schema"]
end
end
subgraph Databases["Database Engines"]
style Databases fill:#9B59B6,stroke:#7D3C98,color:#FFFFFF
PG["PostgreSQL"]
MY["MySQL"]
SQ["SQLite"]
end
MCP_Client -- "stdio transport" --> Index
Index --> T1 & T2 & T3 & T4 & T5 & T6
T1 --> PG & MY & SQ
T2 --> PG & MY & SQ
T3 --> PG & MY & SQ
T4 --> PG & MY
T5 --> PG & MY & SQ
T6 --> PG & MY & SQ
```
## Installation
```bash
npm install
npm run build
```
## Configuration
| Variable | Description | Required |
|---|---|---|
| `DB_DRIVER` | Database driver: `postgres`, `mysql`, or `sqlite` | Yes |
| `DB_HOST` | Database host | Yes (postgres/mysql) |
| `DB_PORT` | Database port | No |
| `DB_USER` | Database username | Yes (postgres/mysql) |
| `DB_PASSWORD` | Database password | Yes (postgres/mysql) |
| `DB_NAME` | Database name | Yes |
| `DB_PATH` | Path to SQLite file | Yes (sqlite) |
## Usage
### Standalone
```bash
DB_DRIVER=postgres DB_HOST=localhost DB_USER=admin DB_PASSWORD=secret DB_NAME=mydb npm start
```
### Development
```bash
npm run dev
```
### Docker
```bash
docker build -t mcp-server-database .
docker run -e DB_DRIVER=postgres -e DB_HOST=host.docker.internal -e DB_USER=admin -e DB_PASSWORD=secret -e DB_NAME=mydb mcp-server-database
```
### MCP Client Configuration
```json
{
"mcpServers": {
"database": {
"command": "node",
"args": ["dist/index.js"],
"env": {
"DB_DRIVER": "postgres",
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_USER": "admin",
"DB_PASSWORD": "secret",
"DB_NAME": "mydb"
}
}
}
}
```
## Tool Reference
| Tool | Description | Parameters |
|---|---|---|
| `query` | Execute a SQL query | `sql`, `params?` |
| `list_tables` | List all tables | none |
| `describe_table` | Describe a table schema | `table_name` |
| `list_databases` | List databases on the server | none |
| `execute_migration` | Execute a migration SQL script | `sql` |
| `get_schema` | Get full database schema DDL | none |
## License
MIT