Ollama MCP Database Assistant
An interactive chat interface that combines Ollamaβs LLM capabilities with PostgreSQL database access through the Model Context Protocol (MCP). Ask questions about your data in natural language and get AI-powered responses backed by real SQL queries.
Features
- Natural language interface to your PostgreSQL database
- Automatic SQL query generation
- Schema-aware responses
- Interactive chat interface
- Secure, read-only database access
Prerequisites
- Node.js 16 or higher
- A running PostgreSQL database
- Ollamaβ installed and running locally
- The qwen2.5-coder:7b-instruct model pulled in Ollama
Setup
- Clone the repository:
git clone [your-repo-url]
cd [your-repo-name]
- Install dependencies:
npm install
- Pull the required Ollama model:
ollama pull qwen2.5-coder:7b-instruct
- Create a
.env
file in the project root:
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
OLLAMA_MODEL=qwen2.5-coder:7b-instruct # Optional - this is the default
Usage
- Start the chat interface:
npm start
- Ask questions about your data in natural language:
Connected to database. You can now ask questions about your data.
Type "exit" to quit.
What would you like to know about your data? Which products generated the most revenue last month?
Analyzing...
[AI will generate and execute a SQL query, then explain the results]
- Type βexitβ to quit the application.
How It Works
- The application connects to your PostgreSQL database through the PostgreSQL MCP serverβ
- It loads and caches your database schema
- When you ask a question:
- The schema and question are sent to Ollama
- Ollama generates an appropriate SQL query
- The query is executed through MCP
- Results are sent back to Ollama for interpretation
- You receive a natural language response
Environment Variables
Variable | Description | Default |
---|---|---|
DATABASE_URL | PostgreSQL connection string | Required |
OLLAMA_MODEL | Ollama model to use | qwen2.5-coder:7b-instruct |
Security
- All database access is read-only
- SQL queries are restricted to SELECT statements
- Database credentials are kept secure in your .env file
Development
Built with:
- TypeScript
- Model Context Protocol (MCP)
- Ollama
- PostgreSQL
Troubleshooting
Common Issues
-
βFailed to connect to databaseβ
- Check your DATABASE_URL in .env
- Verify PostgreSQL is running
- Check network connectivity
-
βFailed to connect to Ollamaβ
- Ensure Ollama is running (
ollama serve
) - Verify the model is installed (
ollama list
)
- Ensure Ollama is running (
-
βError executing queryβ
- Check database permissions
- Verify table/column names in the schema
License
MIT
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
Last updated on