Ollama PostgreSQL Data Analysis MCP server

Integrates natural language querying with PostgreSQL databases to enable AI-interpreted data analysis without manual SQL writing.
Back to servers
Provider
Rob Dodson
Release date
Dec 22, 2024
Language
TypeScript
Stats
37 stars

The Ollama MCP Database Assistant provides an interactive chat interface that connects Ollama's large language models with PostgreSQL databases through the Model Context Protocol (MCP). This allows you to query your database using natural language and receive AI-powered responses backed by real SQL queries.

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

Installation

  1. Clone the repository:
git clone [your-repo-url]
cd [your-repo-name]
  1. Install dependencies:
npm install
  1. Pull the required Ollama model:
ollama pull qwen2.5-coder:7b-instruct
  1. 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

  1. Start the chat interface:
npm start
  1. 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]
  1. Type 'exit' to quit the application.

How It Works

  1. The application connects to your PostgreSQL database through the PostgreSQL MCP server
  2. It loads and caches your database schema
  3. 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

Configuration Options

Environment Variables

Variable Description Default
DATABASE_URL PostgreSQL connection string Required
OLLAMA_MODEL Ollama model to use qwen2.5-coder:7b-instruct

Troubleshooting

Common Issues

  1. Failed to connect to database

    • Check your DATABASE_URL in .env
    • Verify PostgreSQL is running
    • Check network connectivity
  2. Failed to connect to Ollama

    • Ensure Ollama is running (ollama serve)
    • Verify the model is installed (ollama list)
  3. Error executing query

    • Check database permissions
    • Verify table/column names in the schema

Security Notes

  • All database access is read-only
  • SQL queries are restricted to SELECT statements
  • Database credentials are kept secure in your .env file

How to add this MCP server to Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "cursor-rules-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cursor-rules-mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later