MCP Database Server
Provides tools for querying and managing PostgreSQL databases, including executing SQL queries, inspecting schemas and tables, and accessing multi-schema data across customer, document, loan, and leasing management systems.
Click on "Deploy 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., "@MCP Database Servershow me the top 5 customers by credit score"
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.
MCP Database Server
A Model Context Protocol (MCP) server that provides PostgreSQL database access with query execution and schema inspection capabilities.
Overview
This MCP server enables AI assistants (like Claude) to interact with a PostgreSQL database containing data from multiple systems:
cs (CustomerScoreView): Customer and credit assessment data
dms (Data Management System): Document management data
los (Loan Management System): Loan and payment data
mls (Mahatheun Leasing System): Contract and asset leasing data
Features
✅ Query Execution: Execute SQL SELECT, INSERT, UPDATE, DELETE queries
✅ Schema Inspection: List schemas, tables, and column details
✅ Multi-Schema Support: Organize data by system (cs, dms, los, mls)
✅ Docker Setup: PostgreSQL in Docker with automatic initialization
✅ CSV Import: Sample data included and ready to import
Prerequisites
Python 3.10 or higher
Docker and Docker Compose
pip (Python package installer)
Installation
Clone or navigate to the project directory:
cd c:\Users\chaya\project\mcp-databaseInstall Python dependencies:
pip install -r requirements.txtConfigure environment variables:
copy .env.example .envEdit
.envif you need to change database credentials (optional).
Setup
1. Start PostgreSQL Database
Start the PostgreSQL container with Docker Compose:
docker-compose up -dVerify the database is running:
docker-compose ps2. Verify Database Initialization
The database will automatically initialize with schemas and sample data. Check the schemas:
docker-compose exec postgres psql -U postgres -d mcp_database -c "\dn"List tables in a schema:
docker-compose exec postgres psql -U postgres -d mcp_database -c "\dt cs.*"3. (Optional) Import CSV Data
Sample CSV files are provided in raw_data/. To import them into the database:
docker-compose exec postgres bash -c "cd /raw_data && find . -name '*.csv' -type f"Import a specific CSV file:
docker-compose exec postgres psql -U postgres -d mcp_database -c "\COPY cs.customers FROM '/raw_data/cs/customers.csv' WITH CSV HEADER;"
docker-compose exec postgres psql -U postgres -d mcp_database -c "\COPY dms.documents FROM '/raw_data/dms/documents.csv' WITH CSV HEADER;"
docker-compose exec postgres psql -U postgres -d mcp_database -c "\COPY los.loans FROM '/raw_data/los/loans.csv' WITH CSV HEADER;"
docker-compose exec postgres psql -U postgres -d mcp_database -c "\COPY mls.contracts FROM '/raw_data/mls/contracts.csv' WITH CSV HEADER;"Running the MCP Server
Test Locally
Run the server directly to test:
python src/server.pyThe server will start and listen for MCP messages via stdio.
Configure with Claude Desktop
To use this MCP server with Claude Desktop, add it to your Claude configuration file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Add this configuration:
{
"mcpServers": {
"mcp-database": {
"command": "python",
"args": ["c:\\Users\\chaya\\project\\mcp-database\\src\\server.py"],
"env": {
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_NAME": "mcp_database",
"DB_USER": "postgres",
"DB_PASSWORD": "postgres"
}
}
}
}Restart Claude Desktop to load the server.
Available MCP Tools
1. list_schemas
Lists all available database schemas.
Example:
Can you list all database schemas?2. list_tables
Lists all tables, optionally filtered by schema.
Parameters:
schema(optional): Schema name to filter (e.g., "cs", "dms", "los", "mls")
Example:
Show me all tables in the cs schema3. describe_table
Get detailed column information for a specific table.
Parameters:
table_name(required): Name of the tableschema(optional): Schema name (default: "public")
Example:
Describe the structure of the customers table in the cs schema4. execute_query
Execute a SQL query on the database.
Parameters:
query(required): SQL query stringparams(optional): Array of parameters for parameterized queries
Examples:
Query all customers with credit score above 700
SELECT * FROM cs.customers WHERE credit_score > 700
Get total loan amount by customer
SELECT customer_code, SUM(loan_amount) as total_loans
FROM los.loans
GROUP BY customer_codeDatabase Schema
cs (CustomerScoreView)
customers: Customer information and credit scorescredit_assessments: Credit assessment history
dms (Data Management System)
documents: Document metadata and storage infodocument_versions: Document version history
los (Loan Management System)
loans: Loan accounts and termspayments: Payment history
mls (Mahatheun Leasing System)
contracts: Lease contract informationassets: Asset details for leased itemslease_payments: Lease payment records
Project Structure
mcp-database/
├── src/
│ ├── server.py # Main MCP server
│ ├── database.py # Database connection manager
│ └── tools.py # MCP tool definitions
├── db/
│ └── init.sql # Database initialization script
├── raw_data/
│ ├── cs/ # CustomerScoreView CSV files
│ ├── dms/ # Data Management System CSV files
│ ├── los/ # Loan Management System CSV files
│ └── mls/ # Mahatheun Leasing System CSV files
├── docker-compose.yml # Docker configuration
├── requirements.txt # Python dependencies
├── pyproject.toml # Python project metadata
└── .env.example # Environment variable templateTroubleshooting
Docker container won't start
# Check logs
docker-compose logs postgres
# Restart container
docker-compose restart postgresConnection refused error
Ensure PostgreSQL is running:
docker-compose psCheck port 5432 is not in use by another process
Verify
.envfile has correct credentials
Import errors in Python
# Reinstall dependencies
pip install --upgrade -r requirements.txtDevelopment
To extend the server:
Add new tools in
src/tools.pyRegister handlers in
src/server.pyUpdate database schema in
db/init.sqlAdd sample data in
raw_data/
License
This project is provided as-is for database integration purposes.
Related MCP Connectors
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
PostgreSQL, MySQL, OpenAPI/Swagger, and shared Agent Memory with scoped access.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.