Database MCP Server
Allows connecting to and querying MySQL and PostgreSQL databases hosted on Amazon RDS (AWS).
Allows connecting to and querying PostgreSQL databases hosted on Google Cloud SQL.
Provides read-only SQL querying, schema exploration, and data analysis for MySQL databases.
Provides read-only SQL querying, schema exploration, and data analysis for PostgreSQL databases.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Database MCP Servershow me the users table in user-service db"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Database MCP Server
๐ Enterprise-Ready Multi-Database MCP Server
Model Context Protocol (MCP) ์๋ฒ๋ก ๋ค์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ AI ์์ด์ ํธ ๊ฐ์ ์์ ํ๊ณ ํจ์จ์ ์ธ ํต์ ์ ์ ๊ณตํฉ๋๋ค.
๐ ์ฃผ์ ํน์ง
๐ข MSA ํ๊ฒฝ ์๋ฒฝ ์ง์: ์ฌ๋ฌ ๋ง์ดํฌ๋ก์๋น์ค DB๋ฅผ ํ๋์ MCP ์๋ฒ์์ ๊ด๋ฆฌ
๐ ์ํฐํ๋ผ์ด์ฆ๊ธ ๋ณด์: ์ฝ๊ธฐ ์ ์ฉ, SSL/TLS, ์ฟผ๋ฆฌ ๊ฒ์ฆ, ๊ฐ์ฌ ๋ก๊น
๐ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ: AWS RDS, Azure Database, Google Cloud SQL ์๋ฒฝ ์ง์
โก ๊ณ ์ฑ๋ฅ: ์ฐ๊ฒฐ ํ๋ง, ์ง๋ฅํ ์บ์ฑ, ๋ณ๋ ฌ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ
๐ค AI ์นํ์ : ์์ฐ์ด ์ฟผ๋ฆฌ, ์คํค๋ง ๋ถ์, ๋ฐ์ดํฐ ํ์ง ๋ถ์
Related MCP server: Database MCP Server
๊ฐ์
์ด ํ๋ก์ ํธ๋ Anthropic์ Model Context Protocol์ ์ฌ์ฉํ์ฌ Claude์ ๊ฐ์ AI ๋ชจ๋ธ์ด ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋์์ ์ํธ์์ฉํ ์ ์๋๋ก ํ๋ ๊ณ ๊ธ MCP ์๋ฒ์ ๋๋ค. MSA(Microservices Architecture) ํ๊ฒฝ์์ ๋ถ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค์ ํตํฉ ๊ด๋ฆฌํ๋ฉฐ, ์์ฐ์ด๋ฅผ ํตํ ํฌ๋ก์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ, ์คํค๋ง ํ์, ๋ฐ์ดํฐ ๋ถ์ ๋ฑ์ ๊ธฐ๋ฅ์ ์์ ํ๊ฒ ์ ๊ณตํฉ๋๋ค.
๐ Claude Code์์ ์ฌ์ฉํ๊ธฐ
Claude Code ํ๊ฒฝ์์ ์ด DB MCP ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Claude Code ์ฌ์ฉ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
๋น ๋ฅธ ์์:
ํ๊ฒฝ ๋ณ์ ์ค์ (
.envํ์ผ)MCP ์๋ฒ ์ค์ ์ ์ถ๊ฐ
Claude์๊ฒ "๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ๋ถ์ํด์ฃผ์ธ์" ์์ฒญ
์์ฐ์ด๋ก ๋ฐ์ดํฐ ์กฐํ ๋ฐ ๋ถ์
์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
โ MySQL - ์์ ์ง์ (์จํ๋ ๋ฏธ์ค, AWS RDS, Azure Database)
โ PostgreSQL - ์์ ์ง์ (์จํ๋ ๋ฏธ์ค, AWS RDS, Azure Database, Google Cloud SQL)
๐ SQLite (๊ฐ๋ฐ ์์ )
๐ ClickHouse (๊ฐ๋ฐ ์์ )
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ ๊ฐ์ด๋
MySQL vs PostgreSQL ๋น๊ต
๊ธฐ๋ฅ | MySQL | PostgreSQL |
์ฑ๋ฅ | ์ฝ๊ธฐ ์ต์ ํ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉ | ๋ณต์กํ ์ฟผ๋ฆฌ, ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉ |
๋ฐ์ดํฐ ํ์ | ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ง์ | JSON, Array, ์ปค์คํ ํ์ ๋ฑ ํ๋ถํ ์ง์ |
ํ์ฅ์ฑ | ์ํ ํ์ฅ (์ค๋ฉ) ์ฐ์ | ์์ง ํ์ฅ ์ฐ์, ๋ณ๋ ฌ ์ฒ๋ฆฌ ์ง์ |
ACID ์ค์ | InnoDB ์์ง ์ฌ์ฉ ์ ์์ ์ง์ | ์์ ํ ACID ์ค์ |
๊ณ ๊ธ ๊ธฐ๋ฅ | ๊ธฐ๋ณธ ๊ธฐ๋ฅ ์ค์ฌ | Window Functions, CTE, Full-text Search ๋ฑ |
ํด๋ผ์ฐ๋ ์ง์ | AWS RDS, Azure Database | AWS RDS, Azure Database, Google Cloud SQL |
์ด๋ํฐ ์๋ ์ ํ
์์คํ ์ด ์๋์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ ์ ๊ฐ์งํฉ๋๋ค:
๋ช ์์ ์ง์ :
DB_TYPEํ๊ฒฝ๋ณ์ ๋๋ config.type ์ค์ ํฌํธ ๊ธฐ๋ฐ ๊ฐ์ง:
3306 โ MySQL
5432 โ PostgreSQL
ํธ์คํธ๋ช ๊ธฐ๋ฐ ๊ฐ์ง:
ํธ์คํธ๋ช ์ 'mysql' ํฌํจ โ MySQL
ํธ์คํธ๋ช ์ 'postgres' ํฌํจ โ PostgreSQL
๊ธฐ๋ณธ๊ฐ: MySQL
๊ถ์ฅ ์ฌ์ฉ ์ฌ๋ก
MySQL ๊ถ์ฅ:
์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฑ์๋
๋จ์ํ CRUD ์์ ์ค์ฌ
๋์ ๋์์ฑ ์ฝ๊ธฐ ์์
๊ธฐ์กด MySQL ์ธํ๋ผ ํ์ฉ
PostgreSQL ๊ถ์ฅ:
๋ณต์กํ ๋ถ์ ์ฟผ๋ฆฌ
JSON ๋ฐ์ดํฐ ์ฒ๋ฆฌ
์ง๋ฆฌ ์ ๋ณด ์์คํ (PostGIS)
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์
MSA ํ๊ฒฝ์์์ ๋ค์ค DB ์ฐ๊ฒฐ
MSA(Microservices Architecture) ํ๊ฒฝ์์๋ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋์์ ์ ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด MCP ์๋ฒ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค:
๋ฐฉ๋ฒ 1: ๋จ์ผ MCP ์๋ฒ์์ ๋ค์ค DB ์ง์ (๊ถ์ฅ)
ํ๋์ MCP ์๋ฒ ์ธ์คํด์ค์์ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
์ค์ ํ์ผ ๋ฐฉ์
db-config.json ํ์ผ ์์ฑ:
{
"connections": {
"user-service": {
"name": "user-service",
"type": "mysql",
"host": "user-db.cluster-xxx.rds.amazonaws.com",
"port": 3306,
"user": "readonly_user",
"password": "secure_password",
"database": "user_service",
"description": "์ฌ์ฉ์ ์๋น์ค DB",
"tags": ["microservice", "user", "mysql"]
},
"order-service": {
"name": "order-service",
"type": "postgresql",
"host": "order-db.cluster-yyy.rds.amazonaws.com",
"port": 5432,
"user": "readonly_user",
"password": "secure_password",
"database": "order_service",
"description": "์ฃผ๋ฌธ ์๋น์ค DB",
"tags": ["microservice", "order", "postgresql"]
}
},
"defaultConnection": "user-service"
}ํ๊ฒฝ๋ณ์ ๋ฐฉ์
# ์ฌ์ฉ์ ์๋น์ค DB
DB_USER_HOST=user-db.cluster-xxx.rds.amazonaws.com
DB_USER_PORT=3306
DB_USER_TYPE=mysql
DB_USER_USER=readonly_user
DB_USER_PASSWORD=secure_password
DB_USER_DATABASE=user_service
DB_USER_DESCRIPTION=์ฌ์ฉ์ ์๋น์ค DB
DB_USER_TAGS=microservice,user,mysql
# ์ฃผ๋ฌธ ์๋น์ค DB
DB_ORDER_HOST=order-db.cluster-yyy.rds.amazonaws.com
DB_ORDER_PORT=5432
DB_ORDER_TYPE=postgresql
DB_ORDER_USER=readonly_user
DB_ORDER_PASSWORD=secure_password
DB_ORDER_DATABASE=order_service
DB_ORDER_DESCRIPTION=์ฃผ๋ฌธ ์๋น์ค DB
DB_ORDER_TAGS=microservice,order,postgresql
# ๊ธฐ๋ณธ ์ฐ๊ฒฐ
DB_DEFAULT_CONNECTION=userClaude Desktop ์ค์ (๋ค์ค DB)
{
"mcpServers": {
"multi-database": {
"command": "node",
"args": ["path/to/db-mcp/dist/multi-database-server.js"],
"env": {
"DB_CONFIG_FILE": "./db-config.json"
}
}
}
}Claude Code ์ค์ (๋ค์ค DB - ๊ฐ์ํ๋ ๋ฐฉ์)
๊ฐ์ ๋ ์ค์ ๋ฐฉ์: ํ๊ฒฝ๋ณ์ ๊ฐ์ํ๋ฅผ ํตํ ์ค์ ๋จ์ํ (8๊ฐ โ 3๊ฐ)
~/.claude.json ํ์ผ์ ์ถ๊ฐ:
{
"mcpServers": {
"db-mcp": {
"command": "node",
"args": ["/absolute/path/to/db-mcp/dist/multi-index.js"],
"env": {
"DB_CONFIG_FILE": "/absolute/path/to/db-mcp/db-config.json",
"LOG_LEVEL": "info",
"MCP_SERVER_NAME": "db-mcp"
}
}
}
}ํต์ฌ ๊ฐ์ ์ :
โ ๋ถํ์ํ dummy ํ๊ฒฝ๋ณ์ ์ ๊ฑฐ: MYSQL_HOST, MYSQL_PORT, MYSQL_DB, MYSQL_USER, MYSQL_PASSWORD ๋ถํ์
โ ์ง์ ํ ๋ฉํฐํ ๋ํธ ์๋ฒ: DB_CONFIG_FILE๋ง์ผ๋ก ๋ชจ๋ ์ฐ๊ฒฐ ๊ด๋ฆฌ
โ ์ฝ๋ ๋ ๋ฒจ ๊ฐ์ :
src/config/index.ts์์ multi-DB ๋ชจ๋ ์๋ ๊ฐ์งโ ์ค์ ๊ฐ์ํ: ํ๊ฒฝ๋ณ์ 62.5% ๊ฐ์ (8๊ฐ โ 3๊ฐ)
๋์ ์๋ฆฌ:
DB_CONFIG_FILEํ๊ฒฝ๋ณ์ ์กด์ฌ ์ multi-DB ๋ชจ๋๋ก ์๋ ์ ํ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ ๋ณด๋
db-config.jsonํ์ผ์์ ๊ด๋ฆฌํ๊ฒฝ๋ณ์ ๊ฒ์ฆ ๋ก์ง ์๋ ์คํต์ผ๋ก dummy ๊ฐ ๋ถํ์
๊ฒ์ฆ ๋ฐฉ๋ฒ:
# MCP ์๋ฒ ์ฐ๊ฒฐ ํ์ธ
claude mcp list
# ํฌ์ค์ฒดํฌ ์คํ
# Claude Code์์: "db-mcp ์๋ฒ ํฌ์ค์ฒดํฌ ์คํํด์ค"๋ฐฉ๋ฒ 2: DB๋ณ ๋ณ๋ MCP ์๋ฒ (๊ฐ๋จํ ๋ฐฉ๋ฒ)
๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง๋ค ๋ณ๋์ MCP ์๋ฒ ์ธ์คํด์ค๋ฅผ ์คํํฉ๋๋ค.
Claude Desktop ์ค์ (๋ณ๋ ์๋ฒ)
{
"mcpServers": {
"user-db": {
"command": "node",
"args": ["path/to/db-mcp/dist/index.js"],
"env": {
"DB_TYPE": "mysql",
"MYSQL_HOST": "user-db.cluster-xxx.rds.amazonaws.com",
"MYSQL_DB": "user_service"
}
},
"order-db": {
"command": "node",
"args": ["path/to/db-mcp/dist/index.js"],
"env": {
"DB_TYPE": "postgresql",
"POSTGRES_HOST": "order-db.cluster-yyy.rds.amazonaws.com",
"POSTGRES_DB": "order_service"
}
}
}
}๋ค์ค DB ์ ์ฉ ๊ธฐ๋ฅ
๋จ์ผ MCP ์๋ฒ์์ ๋ค์ค DB๋ฅผ ์ฌ์ฉํ ๋ ์ถ๊ฐ๋ก ์ ๊ณต๋๋ ๊ธฐ๋ฅ:
1. ํฌ๋ก์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ
"์ฌ์ฉ์ ์๋น์ค์ ์ฃผ๋ฌธ ์๋น์ค ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํด์ ๋ณด์ฌ์ค"
โ ์ฌ๋ฌ DB์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ฌ ํตํฉ ๋ถ์2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๊ทธ ํํฐ๋ง
"microservice ํ๊ทธ๊ฐ ๋ถ์ ๋ชจ๋ DB ์ํ๋ฅผ ํ์ธํด์ค"
โ ํ๊ทธ ๊ธฐ๋ฐ์ผ๋ก DB ๊ทธ๋ฃน ๊ด๋ฆฌ3. ํตํฉ ํฌ์ค์ฒดํฌ
"๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ํ๋ฅผ ํ๋ฒ์ ํ์ธํด์ค"
โ ์ ์ฒด ์ธํ๋ผ ์ํ ๋ชจ๋ํฐ๋ง4. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ ๊ด๊ณ ๋ถ์
"์ฌ์ฉ์ ID๋ก ๋ชจ๋ ์๋น์ค์ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ค"
โ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ๋ฐ์ดํฐ ์ถ์ ๐ ์ ๊ณต ๊ธฐ๋ฅ
๐ 1. ๋ค์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ด๋ฆฌ
๐ข MSA ์๋ฒฝ ์ง์: ํ๋์ MCP ์๋ฒ์์ ์์ญ ๊ฐ์ ๋ง์ดํฌ๋ก์๋น์ค DB ๊ด๋ฆฌ
โก ๊ณ ์ฑ๋ฅ ์ฐ๊ฒฐ ํ๋ง: DB๋ณ ๋ ๋ฆฝ์ ์ธ ์ฐ๊ฒฐ ํ๋ก ์ต์ ํ๋ ๋ฆฌ์์ค ๊ด๋ฆฌ
๐ ์๋ ํ์ผ์ค๋ฒ: ์ฐ๊ฒฐ ๋๊น ์ ์๋ ์ฌ์ฐ๊ฒฐ ๋ฐ ์ํ ๋ณต๊ตฌ
๐ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง: ์ฐ๊ฒฐ ์ํ, ํ์ฑ ์ฟผ๋ฆฌ, ์๋ต ์๊ฐ ์ค์๊ฐ ์ถ์
๐ท ํ๊ทธ ๊ธฐ๋ฐ ๊ด๋ฆฌ: ํ๊ฒฝ๋ณ, ์๋น์ค๋ณ DB ๊ทธ๋ฃน ๊ด๋ฆฌ (production, staging, analytics ๋ฑ)
โ๏ธ 2. ๊ณ ๊ธ ์ฟผ๋ฆฌ ์คํ ๋๊ตฌ (Tools)
list_databases ๐
๊ธฐ๋ฅ: ์ฐ๊ฒฐ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชฉ๋ก ๋ฐ ์ํ ์กฐํ
์ถ๋ ฅ: DB ํ์ , ์ฐ๊ฒฐ ์ํ, ํ๊ทธ, ์ค๋ช , ์ฑ๋ฅ ๋ฉํธ๋ฆญ
ํ์ฉ: ์ ์ฒด ์ธํ๋ผ ํํฉ ํ์ , ํฌ์ค์ฒดํฌ
execute_query ๐
๊ธฐ๋ฅ: ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL ์ฟผ๋ฆฌ ์คํ
์ ๋ ฅ: SQL ๋ฌธ์์ด, ๋์ DB, ํ๋ผ๋ฏธํฐ
์ถ๋ ฅ: ๊ตฌ์กฐํ๋ ๊ฒฐ๊ณผ + ์คํ ๋ฉํธ๋ฆญ
๋ณด์: ์ฝ๊ธฐ ์ ์ฉ ์ฟผ๋ฆฌ๋ง ํ์ฉ, SQL ์ธ์ ์ ๋ฐฉ์ง
cross_database_query ๐
๊ธฐ๋ฅ: ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋์ ์ฟผ๋ฆฌ ์คํ ๋ฐ ๊ฒฐ๊ณผ ํตํฉ
์ ๋ ฅ: ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณ ์ฟผ๋ฆฌ ๋ฐฐ์ด
์ถ๋ ฅ: ํตํฉ๋ ๊ฒฐ๊ณผ์ + ์ฑ๋ฅ ๋น๊ต
ํ์ฉ: ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ๋ฐ์ดํฐ ๋น๊ต, ํตํฉ ๋ฆฌํฌํ
natural_language_query ๐ค
๊ธฐ๋ฅ: ์์ฐ์ด๋ฅผ SQL๋ก ๋ณํํ์ฌ ์คํ
์ ๋ ฅ: ์์ฐ์ด ์ง๋ฌธ, ๋์ DB, ์ปจํ ์คํธ
์ถ๋ ฅ: ์์ฑ๋ SQL + ์คํ ๊ฒฐ๊ณผ + ์ ๋ขฐ๋
AI ์ง์: ์คํค๋ง ์ ๋ณด ๊ธฐ๋ฐ ์ง๋ฅํ ์ฟผ๋ฆฌ ์์ฑ
database_health_check ๐ฅ
๊ธฐ๋ฅ: ์ ์ฒด ๋๋ ๊ฐ๋ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ ๊ฒ์ฌ
์ถ๋ ฅ: ์๋ต ์๊ฐ, ์ฐ๊ฒฐ ํ ์ํ, ์ฑ๋ฅ ์งํ
ํ์ฉ: ์ธํ๋ผ ๋ชจ๋ํฐ๋ง, ์ฅ์ ์กฐ๊ธฐ ๊ฐ์ง
๐ 3. ํตํฉ ์คํค๋ง ์ ๋ณด ๋ฆฌ์์ค (Resources)
database://connections ๐
๋ด์ฉ: ๋ชจ๋ ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ธ ์ ๋ณด
ํฌํจ: ์ฐ๊ฒฐ ์ค์ , ์ํ, ๋ฉํ๋ฐ์ดํฐ, ํ๊ทธ
database://{db_name}/schema ๐
๋ด์ฉ: ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ํ ์คํค๋ง ์ ๋ณด
ํฌํจ: ํ ์ด๋ธ, ๋ทฐ, ํ๋ก์์ , ์ธ๋ฑ์ค, ์ธ๋ํค ๊ด๊ณ
์ง์: MySQL, PostgreSQL ๊ฐ๊ฐ ์ต์ ํ๋ ๋ถ์
database://{db_name}/tables ๐
๋ด์ฉ: ํ ์ด๋ธ๋ณ ์์ธ ์ ๋ณด ๋ฐ ํต๊ณ
ํฌํจ: ์ปฌ๋ผ ์ ๋ณด, ๋ฐ์ดํฐ ํ์ , ์ ์ฝ์กฐ๊ฑด, ํ ์, ํฌ๊ธฐ
๐ 4. ๊ณ ๊ธ ๋ฐ์ดํฐ ๋ถ์ ๋๊ตฌ
์คํค๋ง ๋ถ์ ์์ง
MySQL ํนํ: information_schema ์ต์ ํ ์ฟผ๋ฆฌ
PostgreSQL ํนํ: pg_catalog ๋ฐ ํ์ฅ ์ ๋ณด ๋ถ์
์ฑ๋ฅ ์ต์ ํ: ์ง๋ฅํ ์บ์ฑ์ผ๋ก ๋น ๋ฅธ ์๋ต
๋ฐ์ดํฐ ํ์ง ๋ถ์
์ปฌ๋ผ ํ๋กํ์ผ๋ง: ํ์ ๋ณ ํต๊ณ, NULL ๋น์จ, ๊ณ ์ ๊ฐ ๋ถ์
ํจํด ๊ฐ์ง: ์ด๋ฉ์ผ, ์ ํ๋ฒํธ, URL ๋ฑ ๋ฐ์ดํฐ ํจํด ์๋ ๊ฐ์ง
์ด์์น ํ์ง: 3-์๊ทธ๋ง ๊ท์น ๊ธฐ๋ฐ ์์น ์ด์์น ๋ฐ๊ฒฌ
ํ์ง ์ ์: ๋ฐ์ดํฐ ์์ฑ๋, ์ผ๊ด์ฑ, ์ ํ๋ ์ข ํฉ ํ๊ฐ
๊ด๊ณ ๋ถ์
ํ ์ด๋ธ ๊ด๊ณ ๋งคํ: ์ธ๋ํค ๊ธฐ๋ฐ ์๋ ๊ด๊ณ๋ ์์ฑ
๋ฐ์ดํฐ ๋งํฌ ์ถ์ : ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ๋ฐ์ดํฐ ์ฐ๊ด์ฑ ๋ถ์
์ข ์์ฑ ๋ถ์: ์คํค๋ง ๋ณ๊ฒฝ ์ํฅ๋ ํ๊ฐ
๋ณด์ ๋ฐ ์ ํ์ฌํญ
๋ณด์ ๊ธฐ๋ฅ
1. ์ฟผ๋ฆฌ ์ ํ
์ฝ๊ธฐ ์ ์ฉ: DML(INSERT, UPDATE, DELETE) ๋ฐ DDL(CREATE, DROP) ๊ธ์ง
ํ์ดํธ๋ฆฌ์คํธ: ํ์ฉ๋ SQL ํค์๋๋ง ์คํ
๊ตฌ๋ฌธ ๊ฒ์ฆ: SQL ์ธ์ ์ ๋ฐฉ์ง๋ฅผ ์ํ ํ์ฑ ๊ฒ์ฆ
2. ์คํ ์ ํ
const SECURITY_LIMITS = {
MAX_EXECUTION_TIME: 30000, // 30์ด
MAX_RESULT_ROWS: 10000, // ์ต๋ 10,000ํ
MAX_RESULT_SIZE: '50MB', // ์ต๋ 50MB
MAX_QUERY_LENGTH: 10000, // ์ต๋ 10,000์
ALLOWED_KEYWORDS: [
'SELECT', 'FROM', 'WHERE', 'JOIN', 'ORDER BY',
'GROUP BY', 'HAVING', 'LIMIT', 'OFFSET',
'SHOW', 'DESCRIBE', 'EXPLAIN'
]
};3. ์ ๊ทผ ์ ์ด
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณ ๊ถํ: ๊ฐ DB ์ฐ๊ฒฐ๋ง๋ค ๋ณ๋ ๊ถํ ์ค์
ํ ์ด๋ธ๋ณ ์ ํ: ํน์ ํ ์ด๋ธ ์ ๊ทผ ์ ํ ๊ฐ๋ฅ
๊ฐ์ฌ ๋ก๊น : ๋ชจ๋ ์ฟผ๋ฆฌ ์คํ ๊ธฐ๋ก ์ ์ฅ
4. ๋คํธ์ํฌ ๋ณด์
TLS/SSL ์ํธํ: ์๊ฒฉ DB ์ฐ๊ฒฐ ์ํธํ ๊ฐ์ (AWS RDS, Azure DB ๋ฑ)
VPC ์ง์: AWS VPC, Azure VNet ๋ด ์ ๊ทผ
์ฐ๊ฒฐ ์ ํ: IP ํ์ดํธ๋ฆฌ์คํธ ์ง์
์๊ฐ ๊ธฐ๋ฐ ์ก์ธ์ค: ํน์ ์๊ฐ๋์๋ง ์ ๊ทผ ํ์ฉ
Connection Timeout: ์๊ฒฉ ์ฐ๊ฒฐ ์๊ฐ ์ ํ ์ค์
๊ธฐ๋ฅ ์ ํ์ฌํญ
1. ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ
โ ๋ฐ์ดํฐ ์์ ์์ (INSERT, UPDATE, DELETE)
โ ์คํค๋ง ๋ณ๊ฒฝ (CREATE, ALTER, DROP)
โ ์ ์ฅ ํ๋ก์์ ์คํ
โ ํธ๋์ญ์ ์ ์ด (BEGIN, COMMIT, ROLLBACK)
โ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ช ๋ น
โ ํ์ผ ์์คํ ์ ๊ทผ
2. ์ฑ๋ฅ ์ ํ
๋์ ์ฐ๊ฒฐ: ์ต๋ 10๊ฐ ๋์ ์ฟผ๋ฆฌ
์บ์ฑ: ์คํค๋ง ์ ๋ณด 5๋ถ ์บ์
Rate Limiting: ๋ถ๋น 100ํ ์ฟผ๋ฆฌ ์ ํ
3. ๋ฐ์ดํฐ ํ์ ์ ํ
BLOB/TEXT: ํฐ ๋ฐ์ดํฐ๋ ์์ฝ ์ ๋ณด๋ง ์ ๊ณต
JSON/XML: ๊ตฌ์กฐํ๋ ํํ๋ก ํ์ฑํ์ฌ ์ ๊ณต
Binary: Base64 ์ธ์ฝ๋ฉ์ผ๋ก ์ ํ์ ์ง์
์ค์น ๋ฐ ์ค์
1. ์ค์น
npm install2. ํ๊ฒฝ ์ค์
.env ํ์ผ ์์ฑ:
MySQL ์ค์
# MySQL ์ฐ๊ฒฐ ์ ๋ณด (๋ก์ปฌ ๋๋ ์๊ฒฉ)
DB_TYPE=mysql # ๋ช
์์ ํ์
์ง์ (์ ํ์ฌํญ)
MYSQL_HOST=localhost # ๋๋ AWS RDS ์๋ํฌ์ธํธ
MYSQL_PORT=3306
MYSQL_DB=mydb
MYSQL_USER=readonly_user
MYSQL_PASSWORD=secure_password
# ์๊ฒฉ DB ์ค์ (AWS RDS ์์)
# MYSQL_HOST=mydb.cluster-xxx.us-east-1.rds.amazonaws.com
# MYSQL_SSL_MODE=REQUIRED
# MYSQL_SSL_CA=/path/to/rds-ca-2019-root.pem
# MYSQL_CONNECTION_TIMEOUT=60000
# MYSQL_ACQUIRECONNECTION_TIMEOUT=60000PostgreSQL ์ค์
# PostgreSQL ์ฐ๊ฒฐ ์ ๋ณด (๋ก์ปฌ ๋๋ ์๊ฒฉ)
DB_TYPE=postgresql # ๋ช
์์ ํ์
์ง์ (์ ํ์ฌํญ)
POSTGRES_HOST=localhost # ๋๋ AWS RDS ์๋ํฌ์ธํธ
POSTGRES_PORT=5432
POSTGRES_DB=mydb
POSTGRES_USER=readonly_user
POSTGRES_PASSWORD=secure_password
# ์๊ฒฉ DB ์ค์ (AWS RDS PostgreSQL ์์)
# POSTGRES_HOST=mydb.cluster-xxx.us-east-1.rds.amazonaws.com
# POSTGRES_SSL_MODE=REQUIRED
# POSTGRES_SSL_CA=/path/to/rds-ca-2019-root.pem
# POSTGRES_CONNECTION_TIMEOUT=60000๊ณตํต ๋ณด์ ์ค์
MAX_QUERY_EXECUTION_TIME=30000
MAX_RESULT_ROWS=10000
ENABLE_QUERY_LOGGING=true3. Claude Desktop ์ค์
MySQL ์ฌ์ฉ ์
claude_desktop_config.json์ ์ถ๊ฐ:
{
"mcpServers": {
"database": {
"command": "node",
"args": ["path/to/db-mcp/dist/index.js"],
"env": {
"DB_TYPE": "mysql",
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_DB": "mydb",
"MYSQL_USER": "readonly_user",
"MYSQL_PASSWORD": "secure_password"
}
}
}
}PostgreSQL ์ฌ์ฉ ์
claude_desktop_config.json์ ์ถ๊ฐ:
{
"mcpServers": {
"database": {
"command": "node",
"args": ["path/to/db-mcp/dist/index.js"],
"env": {
"DB_TYPE": "postgresql",
"POSTGRES_HOST": "localhost",
"POSTGRES_PORT": "5432",
"POSTGRES_DB": "mydb",
"POSTGRES_USER": "readonly_user",
"POSTGRES_PASSWORD": "secure_password"
}
}
}
}๐ก ์ค์ ์ฌ์ฉ ์์
๐ข MSA ํ๊ฒฝ์์์ ํ์ฉ
๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ๋ฐ์ดํฐ ๋ถ์
๐ฌ "user-service์ order-service์์ ์ต๊ทผ 1์ฃผ์ผ ๋์ ์ ๊ท ๊ฐ์
ํ ์ฌ์ฉ์๋ค์ ์ฃผ๋ฌธ ํจํด์ ๋น๊ต ๋ถ์ํด์ค"
๐ค Claude๊ฐ ์๋์ผ๋ก:
1. user-service DB์์ ์ต๊ทผ ๊ฐ์
์ ์กฐํ
2. order-service DB์์ ํด๋น ์ฌ์ฉ์๋ค์ ์ฃผ๋ฌธ ๋ฐ์ดํฐ ์กฐํ
3. ํฌ๋ก์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถ์์ผ๋ก ํจํด ์๋ณ
4. ํตํฉ ๋ฆฌํฌํธ ์์ฑ์ ์ฒด ์ธํ๋ผ ๋ชจ๋ํฐ๋ง
๐ฌ "production ํ๊ทธ๊ฐ ๋ถ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ํ์ธํ๊ณ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ์๋ ๊ณณ์ ์ฐพ์์ค"
๐ค ๊ฒฐ๊ณผ:
- 5๊ฐ ํ๋ก๋์
DB ์ค 4๊ฐ ์ ์, 1๊ฐ ๊ฒฝ๊ณ
- analytics-db: ์๋ต์๊ฐ 3.2์ด (ํ๊ท ์ 2๋ฐฐ)
- ์ฐ๊ฒฐ ํ ์ฌ์ฉ๋ฅ : order-service 90% (์ฃผ์ ํ์)๐ ๊ณ ๊ธ ๋ฐ์ดํฐ ๋ถ์
๋ฐ์ดํฐ ํ์ง ๊ฒ์ฌ
๐ฌ "๋ชจ๋ ์๋น์ค์ ์ฌ์ฉ์ ํ
์ด๋ธ์์ ์ด๋ฉ์ผ ํ์์ด ์๋ชป๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ค"
๐ค ์๋ ์คํ:
- user-service.users ํ
์ด๋ธ: ์ด๋ฉ์ผ ํจํด ๊ฒ์ฆ
- auth-service.profiles ํ
์ด๋ธ: ์ด๋ฉ์ผ ์ค๋ณต ๊ฒ์ฌ
- notification-service.recipients ํ
์ด๋ธ: ์ ํจํ์ง ์์ ๋๋ฉ์ธ ํ์ง์คํค๋ง ์ํฅ๋ ๋ถ์
๐ฌ "user_id ์ปฌ๋ผ์ ์ฌ์ฉํ๋ ๋ชจ๋ ํ
์ด๋ธ๊ณผ ๊ด๊ณ๋ฅผ ์ฐพ์์ ์คํค๋ง ๋ณ๊ฒฝ ์ ์ํฅ๋๋ฅผ ๋ถ์ํด์ค"
๐ค ๊ฒฐ๊ณผ:
- ์ง์ ์ฐธ์กฐ: 15๊ฐ ํ
์ด๋ธ
- ๊ฐ์ ์ฐธ์กฐ: 8๊ฐ ํ
์ด๋ธ
- ์ํฅ ๋ฐ๋ ์๋น์ค: user, order, payment, notification, analytics
- ๊ถ์ฅ์ฌํญ: ๋จ๊ณ์ ๋ง์ด๊ทธ๋ ์ด์
๊ณํ ํ์๐ ์์ฐ์ด ์ฟผ๋ฆฌ
๋น์ฆ๋์ค ์ง๋ฌธ โ SQL
๐ฌ "์ง๋ ๋ฌ ๊ฐ์ฅ ๋ง์ด ํ๋ฆฐ ์ํ ์นดํ
๊ณ ๋ฆฌ๋ ๋ญ์ผ?"
๐ค ์์ฑ๋ SQL:
SELECT c.name, COUNT(oi.product_id) as sales_count
FROM order_items oi
JOIN products p ON oi.product_id = p.id
JOIN categories c ON p.category_id = c.id
WHERE oi.created_at >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
GROUP BY c.id
ORDER BY sales_count DESC
LIMIT 1๋ณต์กํ ๋ถ์ ์ฟผ๋ฆฌ
๐ฌ "๊ฐ ์ง์ญ๋ณ๋ก ์๋ณ ๋งค์ถ ์ถ์ด๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , ์ ๋
๋๊ธฐ ๋๋น ์ฑ์ฅ๋ฅ ๋ ๊ณ์ฐํด์ค"
๐ค ์๋์ผ๋ก:
1. ์ง์ญ, ๋ ์ง๋ณ ๋งค์ถ ์ง๊ณ
2. ์ ๋
๋๊ธฐ ๋ฐ์ดํฐ ์กฐํ
3. ์ฑ์ฅ๋ฅ ๊ณ์ฐ
4. ์๊ฐํ ๊ฐ๋ฅํ ํํ๋ก ๊ฒฐ๊ณผ ์ ๋ฆฌ๐ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง
์ฑ๋ฅ ์ด์ ํ์ง
๐ฌ "ํ์ฌ ๋๋ฆฌ๊ฒ ์คํ๋๊ณ ์๋ ์ฟผ๋ฆฌ๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐพ์์ค"
๐ค ์ค์๊ฐ ๋ถ์:
- order-service: 3๊ฐ ์ฟผ๋ฆฌ๊ฐ 10์ด ์ด์ ์คํ ์ค
- analytics-db: ๋์ฉ๋ ์ง๊ณ ์ฟผ๋ฆฌ ์งํ ์ค (์ ์)
- user-service: ๋ชจ๋ ์ฟผ๋ฆฌ 1์ด ์ด๋ด (์ํธ)์ฉ๋ ๊ด๋ฆฌ
๐ฌ "๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ๋ณ ํฌ๊ธฐ๋ฅผ ์กฐํํ๊ณ ์ ๋ฆฌ๊ฐ ํ์ํ ํ
์ด๋ธ์ ์ถ์ฒํด์ค"
๐ค ๋ถ์ ๊ฒฐ๊ณผ:
- log_events ํ
์ด๋ธ: 15GB (ํํฐ์
๋ ๊ถ์ฅ)
- user_sessions ํ
์ด๋ธ: 8GB (TTL ์ค์ ๊ถ์ฅ)
- temp_data ํ
์ด๋ธ: 3GB (์ ๋ฆฌ ์ค์ผ์ค ํ์)๐บ ๊ฐ๋ฐ ๋ก๋๋งต & ๋ฒ์ ํ์คํ ๋ฆฌ
โ ์๋ฃ๋ ๊ธฐ๋ฅ (v1.0)
Phase 1: ๊ธฐ๋ณธ MCP ์๋ฒ + MySQL ์ฐ๊ฒฐ
Phase 2: ์ฟผ๋ฆฌ ์คํ ๋๊ตฌ ๊ตฌํ
Phase 3: ์คํค๋ง ์ ๋ณด ๋ฆฌ์์ค ์ถ๊ฐ
Phase 4: PostgreSQL ์ง์ ํ์ฅ
Phase 5: ๋ค์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์ (MSA ๋์)
Phase 6: ๊ณ ๊ธ ๋ฐ์ดํฐ ๋ถ์ ๊ธฐ๋ฅ
Phase 7: ์ํฐํ๋ผ์ด์ฆ๊ธ ๋ณด์ ๋ฐ ์ฑ๋ฅ ์ต์ ํ
๐ง ๊ฐ๋ฐ ์์ (v1.1+)
Phase 8: ์ถ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์
SQLite ์ง์ (๋ก์ปฌ ๊ฐ๋ฐ, ์๋ฒ ๋๋ ํ๊ฒฝ)
ClickHouse ์ง์ (๋์ฉ๋ ๋ถ์ ์ํฌ๋ก๋)
MongoDB ์ง์ (NoSQL ๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค)
Redis ์ง์ (์บ์ ๋ฐ ์ธ์ ๋ฐ์ดํฐ ๋ถ์)
Phase 9: AI ๊ธฐ๋ฅ ๊ฐํ
๊ณ ๊ธ ์์ฐ์ด ์ฒ๋ฆฌ: GPT-4 ๊ธฐ๋ฐ ๋ณต์กํ ์ฟผ๋ฆฌ ์์ฑ
์๋ ์ธ๋ฑ์ค ์ถ์ฒ: ์ฟผ๋ฆฌ ํจํด ๋ถ์ ๊ธฐ๋ฐ ์ฑ๋ฅ ์ต์ ํ
์ด์ ํ์ง: ML ๊ธฐ๋ฐ ๋ฐ์ดํฐ ํ์ง ๋ฐ ๋ณด์ ์ด์ ๊ฐ์ง
์ฟผ๋ฆฌ ์ต์ ํ: ์คํ ๊ณํ ๋ถ์ ๋ฐ ์๋ ๊ฐ์ ์ ์
Phase 10: ์ํฐํ๋ผ์ด์ฆ ๊ธฐ๋ฅ
RBAC (Role-Based Access Control): ์ธ๋ฐํ ๊ถํ ๊ด๋ฆฌ
๊ฐ์ฌ ๋ฐ ์ปดํ๋ผ์ด์ธ์ค: GDPR, SOX ๋ฑ ๊ท์ ์ค์
๊ณ ๊ฐ์ฉ์ฑ: ํด๋ฌ์คํฐ๋ง ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ
๋ฉํธ๋ฆญ & ์๋ฆผ: Prometheus, Grafana ์ฐ๋
Phase 11: ๊ฐ๋ฐ์ ๊ฒฝํ ๊ฐ์
GUI ๊ด๋ฆฌ ๋๊ตฌ: ์น ๊ธฐ๋ฐ ์ค์ ๋ฐ ๋ชจ๋ํฐ๋ง ๋์๋ณด๋
CLI ๋๊ตฌ: ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ ์๋ํ
Docker ์ปจํ ์ด๋: ์ํด๋ฆญ ๋ฐฐํฌ ์ง์
Kubernetes Operator: ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋ฐฐํฌ
๐ ์ฑ๋ฅ ๋ชฉํ (v2.0)
์๋ต ์๊ฐ: ๋จ์ ์ฟผ๋ฆฌ < 100ms, ๋ณต์กํ ๋ถ์ < 5s
๋์ ์ฐ๊ฒฐ: 1000+ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋์ ๊ด๋ฆฌ
์ฒ๋ฆฌ๋: 10,000+ qps (queries per second)
๊ฐ์ฉ์ฑ: 99.9% ์ ํ์ ๋ณด์ฅ
๐ค ๊ธฐ์ฌ ๊ฐ์ด๋
์ฐ๋ฆฌ๋ ์ปค๋ฎค๋ํฐ์ ๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค! ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฐธ์ฌํ ์ ์์ต๋๋ค.
๐ ๋ฒ๊ทธ ๋ฆฌํฌํธ
GitHub Issues๋ฅผ ํตํด ๋ฒ๊ทธ ์ ๊ณ
์ฌํ ๊ฐ๋ฅํ ์์ ์ฝ๋ ํฌํจ
ํ๊ฒฝ ์ ๋ณด (OS, Node.js ๋ฒ์ , DB ํ์ ) ๋ช ์
๐ก ๊ธฐ๋ฅ ์ ์
์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์ ์์ฒญ
MCP ๋๊ตฌ ๊ฐ์ ์์ด๋์ด
์ฑ๋ฅ ์ต์ ํ ์ ์
๐ง ๊ฐ๋ฐ ์ฐธ์ฌ
Fork & Clone: ์ ์ฅ์๋ฅผ ํฌํฌํ๊ณ ๋ก์ปฌ์ ํด๋ก
๋ธ๋์น ์์ฑ:
git checkout -b feature/your-feature๊ฐ๋ฐ: TypeScript, Jest ํ ์คํธ ์์ฑ ํ์
ํ ์คํธ:
npm test && npm run buildํต๊ณผ ํ์ธPR ์์ฑ: ์์ธํ ์ค๋ช ๊ณผ ํจ๊ป Pull Request
๐ ๋ฌธ์ํ
README ๊ฐ์
์ฝ๋ ์ฃผ์ ์ถ๊ฐ
์ฌ์ฉ ์์ ํ์ฅ
๋ค๊ตญ์ด ๋ฒ์ญ (English, ํ๊ตญ์ด)
๐ ๋ณด์ ์ด์
๋ฏผ๊ฐํ ๋ณด์ ๋ฌธ์ ๋ public issue ๋์ ์ง์ ์ฐ๋ฝํด ์ฃผ์ธ์.
๐ ์๊ตฌ์ฌํญ
Node.js: โฅ 18.0.0
NPM: โฅ 8.0.0
TypeScript: โฅ 5.0.0
๋ฐ์ดํฐ๋ฒ ์ด์ค: MySQL 5.7+ ๋๋ PostgreSQL 12+
๐ ์ํคํ ์ฒ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Claude AI Client โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Model Context Protocol โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Multi-Database MCP Server โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Connection Mgr โ โ Query Executor โ โ Schema Mgr โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Database Adapter Layer โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ MySQL Adapter โ โPostgreSQL Adapterโ โ Future DBs โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Database Layer โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ User Service DB โ โ Order Service DB โ โAnalytics DB โ โ
โ โ (MySQL) โ โ (PostgreSQL) โ โ(PostgreSQL) โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ ํ์ ๋ฐ ์ง์
์ด ํ๋ก์ ํธ๊ฐ ๋์์ด ๋์๋ค๋ฉด:
โญ GitHub Star ๋๋ฌ์ฃผ๊ธฐ
๐ ์ด์ ๋ฆฌํฌํธ ๋ฐ ํผ๋๋ฐฑ
๐ฌ ์ปค๋ฎค๋ํฐ์์ ์ฌ์ฉ ๊ฒฝํ ๊ณต์
๐ SNS์์ ํ๋ก์ ํธ ์๊ฐ
๐ ๋ผ์ด์ ์ค
MIT License - ์์ ๋กญ๊ฒ ์ฌ์ฉ, ์์ , ๋ฐฐํฌ ๊ฐ๋ฅํฉ๋๋ค.
๐ ๊ฐ์ฌ์ ๋ง
Anthropic: Model Context Protocol ๋ฐ Claude ์ ๊ณต
์ปค๋ฎค๋ํฐ: ํผ๋๋ฐฑ๊ณผ ๊ธฐ์ฌ๋ก ํ๋ก์ ํธ ๋ฐ์ ์ ๋์
์คํ์์ค: mysql2, pg, TypeScript ๋ฑ ํ๋ฅญํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค
๐ ๋ฌธ์ ๋ฐ ์ง์
GitHub Issues: ๋ฒ๊ทธ ๋ฆฌํฌํธ, ๊ธฐ๋ฅ ์์ฒญ
GitHub Discussions: ์ฌ์ฉ๋ฒ ์ง๋ฌธ, ์์ด๋์ด ๊ณต์
Documentation: ์์ธํ API ๋ฌธ์ ๋ฐ ๊ฐ์ด๋
Enterprise Support๊ฐ ํ์ํ์ ๊ฐ์? ๋์ฉ๋ ํธ๋ํฝ, ์ปค์คํ ๊ฐ๋ฐ, ๊ธฐ์ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ ๋ณ๋ ๋ฌธ์ ๊ฐ๋ฅํฉ๋๋ค.
๐ Database MCP Server - AI ์๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํตํฉ ์๋ฃจ์
Made with โค๏ธ for the AI & Database community
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tomtomjskim/db-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server