Integrates with Ollama for natural language processing, allowing users to interact with the SQLite database using conversational queries that get translated into database operations.
Provides SQL tools for managing a SQLite database, including adding data to tables and querying data with SELECT statements. Exposes database operations as tools that can be used through natural language queries.
MCP SQLite Demo
A demonstration of Model Context Protocol (MCP) with a SQLite server and LlamaIndex client integration.
Overview
This project showcases how to build and use an MCP server that exposes SQLite database operations as tools, and connect to it using a LlamaIndex-based client with Ollama LLM support.
Components
- server.py: MCP server that provides SQL tools for managing a SQLite database
- client.py: LlamaIndex client that connects to the MCP server and uses Ollama for natural language interactions
Features
- MCP server with SQLite integration
- Tool-based database operations (add_data, read_data)
- Natural language interface using LlamaIndex and Ollama
- Async support for both server and client
Prerequisites
- Python 3.8+
- Ollama installed and running
- llama3.2 model (or another model that supports tool calling)
Installation
- Clone this repository:
- Create a virtual environment:
- Install dependencies:
- Pull the required Ollama model:
Usage
Starting the MCP Server
In one terminal, start the MCP server:
The server will start on http://127.0.0.1:8000
and create a SQLite database (demo.db
) with a people
table.
Running the Client
In another terminal, run the client:
The client will:
- Connect to the MCP server
- Display available tools
- Start an interactive session where you can use natural language to interact with the database
Example Interactions
Database Schema
The SQLite database contains a people
table with the following schema:
id
: INTEGER PRIMARY KEY AUTOINCREMENTname
: TEXT NOT NULLage
: INTEGER NOT NULLprofession
: TEXT NOT NULL
Available Tools
add_data
Adds new data to the people table using a SQL INSERT query.
Example:
read_data
Reads data from the people table using a SQL SELECT query.
Example:
Troubleshooting
ModuleNotFoundError
If you encounter module import errors, ensure all dependencies are installed:
Ollama Model Error
If you get an error about the model not supporting tools, ensure you're using a model that supports function calling (like llama3.2, mistral, or qwen2.5-coder).
Connection Issues
Ensure the MCP server is running before starting the client.
License
MIT License
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
A server that exposes SQLite database operations as tools, allowing natural language interactions with a database through LlamaIndex and Ollama LLM integration.
Related MCP Servers
- -securityAlicense-qualityProvides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.Last updated -5629JavaScriptMIT License
- -securityFlicense-qualityA conversational application server that integrates LLM capabilities via Ollama with vector memory context, supporting multiple users, sessions, automatic history summarization, and a plugin system for executing real actions.Last updated -Python
- -securityAlicense-qualityA server that provides LLMs with read-only access to MySQL databases, allowing them to inspect database schemas and execute read-only queries.Last updated -298JavaScriptMIT License
- AsecurityAlicenseAqualityA server implementation that enables LLMs to interact with Salesforce data through SOQL queries, SOSL searches, and API operations including retrieving, creating, updating, and deleting records.Last updated -10PythonMIT License