A revolutionary web application that bridges the gap between natural language and database queries
π Quick Start β’ π Documentation β’ π€ Contributing
MCP Database Console is a cutting-edge web application that transforms natural language into powerful database queries. Built with Next.js and powered by the MCP-DB Connector, it democratizes database access by allowing users to interact with databases using plain English instead of complex SQL syntax.
- SQL Complexity: Writing SQL queries requires technical expertise and knowledge of database schemas
- Accessibility: Non-technical users struggle to extract insights from databases
- Time Consumption: Developers spend significant time writing and debugging SQL queries
- Learning Curve: New team members need time to understand database structures
Transform natural language into powerful database queries through an intuitive web interface that:
- Understands Context: Interprets user intent from conversational prompts
- Supports Multiple Databases: Works with SQLAlchemy, Snowflake, and SQLite databases (backend implementation required)
- Provides Real-time Results: Shows query results instantly in formatted tables
- Handles Errors Gracefully: Offers helpful error messages and suggestions
- Democratize Data Access: Enable non-technical users to query databases
- Increase Productivity: Reduce time spent on query writing and debugging
- Improve Accuracy: Minimize SQL syntax errors through natural language processing
- Enhance Collaboration: Allow team members to share insights without SQL knowledge
This repository is participating in Hacktoberfest 2025! We welcome contributions from developers of all skill levels. After 15 approved pull requests, you'll be recognized as a project collaborator!
Here are some screenshots/GIF showcasing the features of mcp-for-database:

Central dashboard with high-level metrics and quick actions.

Query your database using plain English and view results instantly.
An animated demonstration of exploring features of mcp-for-database.
Watch how to use natural language to query your database:
1. Connect to your preferred database (SQLite/Snowflake)
2. Type your query in plain English
3. See the results instantly in a formatted table
If you don't have a running MCP-DB Connector locally, the repository includes a small mock server to exercise the frontend during development.
- Start the mock MCP server (listens on port 8000 by default):
npm run mock:mcp
- Start the Next.js dev server in a separate terminal:
npm run dev
-
Open the app and try the Test Connection button:
- Visit http://localhost:3000/db-console
- Choose a target (e.g.
snowflake
orsqlite
) and click Test Connection
-
You can also call the mock endpoints directly for quick checks:
# POST to mock test-connection
Invoke-RestMethod -Method Post -Uri http://127.0.0.1:8000/test-connection -Body (@{ target = 'snowflake' } | ConvertTo-Json) -ContentType 'application/json'
# POST a mock query
Invoke-RestMethod -Method Post -Uri http://127.0.0.1:8000/query -Body (@{ sql = 'select 1' } | ConvertTo-Json) -ContentType 'application/json'
Notes:
- The mock server logs incoming requests to the terminal to help with debugging.
- If port 8000 is already in use, set
MOCK_MCP_PORT
before running the mock, and updateMCP_SERVER_URL
in.env.local
if necessary.
- Fork this repository
- Star the repository (optional but appreciated!)
- Check our Contributing Guidelines
- Look for issues labeled
hacktoberfest
orgood first issue
- Create a pull request with your contribution
- Get recognized as a collaborator after 15 approved PRs!
- Quick Data Insights: Get answers to business questions without waiting for developers
- Ad-hoc Reporting: Create reports on-demand using natural language
- Data Exploration: Discover patterns and trends in company data
- User Analytics: Understand user behavior and product metrics
- Feature Analysis: Analyze feature adoption and performance
- Competitive Intelligence: Gather insights from market data
- Rapid Prototyping: Quickly test hypotheses with natural language queries
- Data Validation: Verify data quality and consistency
- Exploratory Analysis: Initial data exploration before deep analysis
- System Monitoring: Query system logs and performance metrics
- Incident Analysis: Investigate issues using natural language
- Capacity Planning: Analyze resource usage patterns
- Learning SQL: Understand database concepts through natural language
- Research Data: Query academic databases and research datasets
- Project Analysis: Analyze project data for academic research
- Natural Language Query Interface: Basic English-to-SQL conversion
- Database Support: SQLAlchemy and Snowflake connectors
- Results Display: Formatted table output with query execution time
- Error Handling: User-friendly error messages and validation
- Responsive UI: Clean, modern interface built with TailwindCSS
- Node.js 18+
- npm or pnpm
- MCP-DB Connector server running on
http://localhost:8000
-
Clone the repository
git clone https://github.com/Limeload/mcp-for-database.git cd mcp-for-database
-
Install dependencies
npm install # or pnpm install
-
Start the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
For local development with SQLite, follow these additional steps:
-
Set up environment variables for SQLite:
# Create .env.local file DATABASE_TYPE=sqlite DATABASE_URL=sqlite:///local_dev.db
-
Initialize the SQLite database (requires Python and SQLAlchemy):
# Install Python dependencies (if not already installed) pip install sqlalchemy # Initialize database python scripts/init_sqlite.py # Optional: Add sample data python scripts/seed_data.py
-
Configure your MCP server to use SQLite backend
β οΈ Important: The MCP-DB Connector server must be updated to support SQLite queries. The frontend now accepts SQLite as a target, but the backend server needs corresponding SQLite support. -
Start both servers:
# Terminal 1: Start MCP server (with SQLite support) # Your MCP server command here # Terminal 2: Start Next.js development server npm run dev
SQLite Benefits for Development:
- No external database server required
- File-based storage (
local_dev.db
) - Easy to reset and recreate
- Perfect for testing and development
SQLite Limitations:
- Single-writer concurrency (not suitable for high-traffic production)
- No built-in user authentication or permissions
- Limited data types compared to PostgreSQL/MySQL
- File-based (backup and replication require manual processes)
Navigate to /db-console
to access the database query interface:
-
Enter a Prompt: Describe what you want to query in natural language
- Example: "Show me all users who registered in the last 30 days"
- Example: "Find the top 10 products by sales"
-
Select Database Target: Choose between:
- SQLAlchemy: For SQLAlchemy-based applications
- Snowflake: For Snowflake data warehouse
- SQLite: For local development with SQLite database
-
Execute Query: Click "Execute Query" to run your prompt
-
View Results: Results are displayed in a formatted table with:
- Generated SQL query (if available)
- Query execution time
- Data results in tabular format
- Contributing Guidelines - How to contribute to the project
- Code of Conduct - Community standards and behavior
- Security Policy - Security guidelines and vulnerability reporting
- Contributors - List of project collaborators
- Roadmap - Detailed development roadmap and future plans
- API Documentation - Complete API reference
- Development Guide - Development setup and guidelines
- Deployment Guide - Deployment options and instructions
Execute a database query using natural language.
Request Body:
{
"prompt": "string",
"target": "sqlalchemy" | "snowflake" | "sqlite"
}
Response:
{
"status": "success",
"data": [...],
"error": null,
"metadata": {
"query": "SELECT ...",
"executionTime": 150
}
}
Error Response:
{
"status": "error",
"data": null,
"error": {
"message": "Error message",
"code": "VALIDATION_ERROR"
}
}
The application expects the MCP-DB Connector server to be running on http://localhost:8000
. Update the URL in /app/api/db/[query]/route.ts
if your MCP server runs on a different port.
Create a .env.local
file in the root directory:
# MCP Server Configuration
MCP_SERVER_URL=http://localhost:8000
# Database Configuration (if needed)
DATABASE_URL=your_database_url
The project uses TailwindCSS for styling. Configuration files:
tailwind.config.js
- TailwindCSS configurationpostcss.config.js
- PostCSS configurationapp/globals.css
- Global styles
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
# Testing
npm test # Run tests (when implemented)
npm run build
npm start
The project is fully typed with TypeScript. All API responses and component props are properly typed.
The application includes comprehensive error handling:
- Network Errors: When the MCP server is unreachable
- Validation Errors: For missing or invalid request parameters
- Server Errors: When the MCP server returns an error
- Client Errors: For malformed requests
All errors are displayed to the user with clear, actionable messages.
We welcome contributions from the community! This project is participating in Hacktoberfest 2025.
- π Read our Contributing Guidelines
- π Check our Code of Conduct
- π See our Contributors page
- π― Look for issues labeled
hacktoberfest
orgood first issue
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Test thoroughly
- Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
After 15 approved pull requests, you'll be:
- Added to our Contributors list
- Recognized as a project collaborator
- Eligible for Hacktoberfest completion
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js team for the amazing framework
- TailwindCSS for the utility-first CSS framework
- MCP-DB Connector for the database integration
- Hacktoberfest community for inspiring open-source contributions
Made with β€οΈ for the open-source community
β Star this repo β’ π Report Bug β’ β¨ Request Feature