Skip to main content
Glama
swetanjana

MCP Server for Enterprise DB Tools

by swetanjana

MCP Server for Enterprise DB Tools

A local Model Context Protocol server that lets Claude Desktop securely query a SQLite HR database without embedding raw database records in prompts.

Features

  • Exposes two MCP tools:

    • get_leave_balance(employee_id)

    • list_pending_approvals(department, leave_type, limit)

  • Uses a local SQLite HR database with 100+ mock records

  • Read-only database access

  • Input validation

  • Parameterized SQL queries

  • Structured JSON tool responses

  • Reproducible local setup

Related MCP server: SQLite MCP Server

Tech Stack

  • Python

  • MCP Python SDK

  • SQLite

  • Claude Desktop

Project Structure

enterprise-db-tools/
├── scripts/
│   └── init_db.py
├── .gitignore
├── claude_desktop_config.example.json
├── README.md
├── requirements.txt
└── server.py

Windows Setup

Create and activate a virtual environment:

python -m venv .venv
.\.venv\Scripts\activate

Install dependencies:

pip install "mcp[cli]"

Generate the SQLite database:

python scripts\init_db.py

Test the tools locally:

python -c "from server import get_leave_balance, list_pending_approvals; print(get_leave_balance('EMP0001')); print(list_pending_approvals(limit=2))"

Run the MCP server:

python server.py

The server uses stdio transport and is meant to be launched by Claude Desktop.

Claude Desktop Configuration

Copy claude_desktop_config.example.json into your Claude Desktop config file.

On Windows, the config file is usually located at:

%APPDATA%\Claude\claude_desktop_config.json

Example config:

{
  "mcpServers": {
    "enterprise-db-tools": {
      "command": "C:/Users/YOUR_USERNAME/projects/enterprise-db-tools/.venv/Scripts/python.exe",
      "args": [
        "C:/Users/YOUR_USERNAME/projects/enterprise-db-tools/server.py"
      ],
      "env": {
        "HR_DB_PATH": "C:/Users/YOUR_USERNAME/projects/enterprise-db-tools/hr.db"
      }
    }
  }
}

Replace YOUR_USERNAME with your Windows username.

Restart Claude Desktop after saving the config.

Example Prompts

Use get_leave_balance for employee EMP0001.

List pending approvals in Engineering, limit 5.

Show pending sick leave approvals, limit 10.

Security Controls

  • SQLite is opened in read-only mode

  • Only SELECT queries are allowed

  • User input is validated

  • SQL queries are parameterized

  • Raw SQL is not accepted from the agent

  • Result size is limited using a validated limit parameter

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides Claude Desktop with secure access to multiple database connections, allowing users to query MySQL, PostgreSQL, SQLite, and SQL Server databases directly through natural language.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language interaction with local SQLite databases through Claude Desktop, translating plain English queries into SQL for data analysis and exploration.
    3
    MIT