Enables reading and writing data in SQLite databases through SQL queries, with support for importing/exporting data via CSV and Excel files, and creating/managing database connections.
Databases MCP Server (Access and SQLite 3)
A simple MCP server to let AI interact with Microsoft Access and SQLite 3 databases. Supports import/export with CSV and Excel files, and store human-readable notes about files.
WARNING: This server has full access to databases, so it can read and modify any data in it. Use with caution to avoid data loss!
Configuration
To use this MCP server with Claude Desktop (or any other MCP host), clone the repo and add the following to your config.json:
Dev note: to use with uvx, we need to create a package and publish it to PyPI.
Supported Database Types
Microsoft Access:
.mdband.accdbfilesSupports both modern Access formats (via ACE ODBC driver)
Supports legacy Access 97 databases (via access-parser library - read-only)
SQLite 3:
.db,.sqlite, and.sqlite3filesIn-memory SQLite: When no database path is specified
Access 97 Support
Access 97 (.mdb) databases are supported in read-only mode using the access-parser library. This allows:
Reading data from Access 97 databases without needing ODBC drivers
Basic SELECT queries to retrieve data
No external dependencies (pure Python implementation)
Limitations:
Access 97 databases are read-only (no INSERT, UPDATE, DELETE operations)
Only basic SELECT queries are supported (no complex JOINs or subqueries)
Parameterized queries are not supported for Access 97 databases
The server automatically detects Access 97 format and falls back to access-parser when needed.
Available Tools
Database management:
list: List all active databases available in the server.create: Create a new database file (for Microsoft Access, copies the empty.mdb template).connect: Connect to an existing database file, or creates an in-memory database if the file is not specified.disconnect: Close a database connection. For in-memory databases, this will clear all its data.
Data management:
query: Execute a SQL query to retrieve data from a database.update: Execute a SQL query to insert/update/delete data in a database.import_csv: Imports data from a CSV file into a database table.export_csv: Exports data from a database table to a CSV file.import_excel: Imports data from an Excel file into a database table.
Notes management:
read_notes: Reads notes from the specified file, or discovers notes in the specified directory.write_notes: Writes notes to the specified file, or linked to the specified database.
Note: Excel export is not implemented, use haris-musa/excel-mcp-server instead. The main problem is tracking the index of the rows and columns in the Excel file, to correctly import/export data to the same cells, and/or insert new rows/columns. In addition, merged cells complicate the process, it would be too complex to implement.
Project structure
Main files:
server.py: MCP server implementation.
Tests:
test_tools.py: Functions to test individual MCP tools.test_mcp.py: Tests all MCP tools in a typical workflow.
Documentation:
Scouting scripts, used in the first stages to develop basic functionality:
scouting_mdb.py: SQLAlchemy and pandas to interact with Microsoft Access databases.scouting_csv.py: SQLAlchemy and pandas to interact with CSV files.
TODO
Add tool to create a new database, copying empty.mdb to the specified path.
Add the ability to connect to multiple databases at the same time.
Add tool to list all tables in the database.
Add tools to import/export data from/to CSV files.
Add tools to import data from/to Excel files.
Add prompt to guide AI asking info to the user about the database.
Store info about files (.AInotes files), to retrieve it later.
Add tool to remember imported/exported CSV and Excel files.