anydb-mcp
README.md
# AnyDB MCP Server
<div align="center">

**The Universal Database Connector for AI Agents**
[](https://www.npmjs.com/package/anydb-mcp)
[](https://www.npmjs.com/package/anydb-mcp)
[](LICENSE)
</div>
**`anydb-mcp`** is a professional, zero-config Model Context Protocol (MCP) server that empowers AI agents to safely query SQL and NoSQL databases.
It acts as a universal bridge, allowing tools like **Cursor**, **Claude**, **Gemini**, and **Zed** to interact with your data effortlessly using a single unified interface.
---
## ✨ Features
- 🔌 **Universal Support:** Works with PostgreSQL, MySQL, SQLite, MongoDB, and Redis out of the box.
- 🚀 **Zero Config:** No configuration files required. Just run it via `npx`.
- ⚡ **Stateless & Fast:** Connections are created on-demand and closed immediately.
- 🛡️ **Secure:** Designed for read-only access (enforceable via DB users).
- 🧠 **Smart Parsing:** Automatically detects database types from standard connection URIs.
---
## 📦 Quick Start
You can run this server directly using `npx` without installing anything manually.
### 🤖 Choose Your Client
<details open>
<summary><strong>Cursor</strong> (Recommended)</summary>
1. Open **Cursor Settings** > **Features** > **MCP**.
2. Click **+ Add New MCP Server**.
3. Enter the following details:
- **Name:** `anydb`
- **Type:** `command`
- **Command:** `npx`
- **Args:** `-y anydb-mcp`
</details>
<details>
<summary><strong>Claude Desktop</strong></summary>
Add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"anydb": {
"command": "npx",
"args": ["-y", "anydb-mcp"]
}
}
}
```
</details>
<details>
<summary><strong>Zed Editor</strong></summary>
Edit your `settings.json` (Cmd/Ctrl + ,):
```json
{
"context_servers": {
"anydb": {
"command": {
"path": "npx",
"args": ["-y", "anydb-mcp"]
}
}
}
}
```
</details>
<details>
<summary><strong>Gemini CLI</strong></summary>
Add to your `mcp_servers.json`:
```json
{
"mcpServers": {
"anydb": {
"command": "npx",
"args": ["-y", "anydb-mcp"]
}
}
}
```
*Note: On Windows, explicitly use `npx.cmd`.*
</details>
<details>
<summary><strong>VS Code (Cline / Roo Cline)</strong></summary>
1. Open the **MCP Servers** tab (usually in the sidebar or settings).
2. Select **Configure MCP Servers**.
3. Add the configuration:
```json
"anydb": {
"command": "npx",
"args": ["-y", "anydb-mcp"]
}
```
</details>
---
## 🔗 Connection URIs
The AI agent will provide these URIs automatically, or you can provide them in the chat context.
| Database | Protocol | Example URI |
|----------|----------|-------------|
| **PostgreSQL** | `postgres://` | `postgres://user:pass@localhost:5432/mydb` |
| **MySQL** | `mysql://` | `mysql://user:pass@localhost:3306/mydb` |
| **SQLite** | `sqlite://` | `sqlite:///Users/alex/data.db` (Absolute path) |
| **MongoDB** | `mongodb://` | `mongodb://user:pass@localhost:27017` |
| **Redis** | `redis://` | `redis://:pass@localhost:6379` |
---
## 🛠️ Tool Usage
The server exposes one powerful tool: **`db_query`**.
#### Arguments:
- **`uri`** (string, required): The connection string.
- **`query`** (string, required): The SQL query, MongoDB filter (JSON), or Redis command.
- **`collection`** (string, optional): Required only for MongoDB.
#### Examples:
**SQL (Postgres/MySQL/SQLite):**
```sql
SELECT id, email FROM users WHERE created_at > '2024-01-01' LIMIT 5;
```
**MongoDB:**
```json
{ "status": "active", "age": { "$gt": 21 } }
```
**Redis:**
```redis
GET session:12345
```
---
## 🔒 Security Best Practices
1. **Read-Only User:** ALWAYS create a dedicated database user with **SELECT-only** permissions (or equivalent) for the AI.
- *Postgres:* `GRANT SELECT ON ALL TABLES IN SCHEMA public TO ai_user;`
- *MySQL:* `GRANT SELECT ON mydb.* TO 'ai_user'@'%';`
2. **Network:** Ensure the database host is accessible from the machine running the MCP server.
3. **Data Privacy:** Be cautious. The AI has access to whatever data the query returns.
---
## 👨💻 Contributing
We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.
1. Fork the repo.
2. `npm install`
3. `npm test`
4. Submit a Pull Request.
## License
MIT © [Alexeev Alexandr](https://github.com/officialalexeev)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues