Enables AI agents to query a PostgreSQL database through a secure layer of predefined tools, allowing for the retrieval of employee information, project statuses, and issue priorities without exposing database credentials or allowing direct SQL execution.
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., "@MCP Dummy DB Integrationlist all employees in the AI department"
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 Dummy DB Integration and Data Retrieval POC
Executive Summary
This project demonstrates a secure, production-ready implementation of the Model Context Protocol (MCP) as a connector layer between AI agents and PostgreSQL databases. The solution enables natural language queries without exposing database credentials to the LLM.
Key Achievement: LLM cannot access database directly - only through predefined MCP tools.
Architecture Overview
Security Features
Feature | With MCP |
DB Credentials | Secure in .env ✅ |
SQL Access | Predefined tools only ✅ |
Attack Surface | Limited operations only ✅ |
Audit Trail | Full logging ✅ |
Connection Pool | Yes ✅ |
Project Structure
Setup Instructions
Prerequisites
Python 3.8+
PostgreSQL 12+
Ollama (running locally) or other LLM provider
pip packages:
psycopg2,python-dotenv
Installation
Clone the repository
Create a virtual environment:
python -m venv venv venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtConfigure
.env:DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASSWORD=your_password DB_NAME=mcp_dbInitialize database:
psql -U postgres -d mcp_db -f datas_insert/sample_data.sql
Running the Demo
Running the Interactive CLI
Agentic Workflow Design
This project uses a multi-agent secure architecture:
Orchestrator: The central brain that manages the lifecycle of a request.
Planner Agent:
Role: Analyzes the user query and selects the appropriate MCP tool.
Robustness: Uses a Dual-Layer Strategy.
Layer 1: Tries to parse the LLM's JSON output.
Layer 2: If LLM output is malformed (common with small models), it falls back to a deterministic keyword extraction strategy to ensure the query is always answered correctly.
Executor Agent:
Role: Validates the plan and executes the cached tool.
Safety: Ensures only allowed tools are called and handles parameter types safely.
MCP Tool Layer: A sandboxed layer that prevents direct SQL access.
Reasoner Agent: (Optional) Summarizes the raw data into a human-readable answer.
How MCP Works as a Connector Layer
User Query → "Fetch employee details where department is AI"
Planner Agent → LLM interprets query, creates plan without DB access
MCP Tools → Translates plan to allowed operations (get_employees_by_department)
Secure Execution → Only predefined MCP tools can access the database
Result → Data returned to user
Security Benefit: The LLM never sees or uses database credentials directly.
MCP Tools Available
get_employees_by_department(department)- Fetch employees by departmentget_projects_by_status(status)- Fetch projects by statusget_issues_by_priority(priority)- Fetch issues by priority
Example Queries
"Fetch employee details where department is AI"
"Show all projects with status completed"
"List all high priority issues"
Created by: