Argos-MCP
Provides database access to MariaDB databases through the MySQL-compatible adapter, including query execution and schema inspection.
Provides database access to MySQL databases, including query execution and schema inspection.
Provides database access to PostgreSQL databases, including query execution, schema inspection, and SSH tunneling.
Provides database access to SQLite databases, including query execution and schema inspection.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Argos-MCPShow me the top 10 customers by revenue this quarter"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Argos-MCP
A hundred eyes on your databases, and none of them blink.
Argos Panoptes (Ἄργος Πανόπτης) is the giant of Greek myth with a hundred eyes, set by Hera to guard Io. Only some of his eyes slept at a time, so he was never fully asleep and nothing passed him unseen. Panoptes means "all-seeing".
Argos-MCP connects Claude Code to PostgreSQL, MySQL, SQLite, and SQL Server with strong security defaults, per-query auditing, and multi-database support. Every query is watched, and nothing reaches your data unlogged.
Status: pre-release. Argos-MCP is not yet published to npm, and the publish step in the release workflow is deliberately dormant. The source is public on GitHub, so install from source (see Quick start). Any
npm install -g argos-mcpcommand you find elsewhere will not resolve yet.
Why Argos-MCP?
Security First
SELECT-Only Mode - Production-safe read-only database access
Query Validation - Bound parameters, stacked statements refused, comment- and literal-aware parsing, complexity limits
SSH Tunneling - Secure encrypted connections through bastion hosts
Audit Logging - One record per query: database, statement hash, duration, outcome, never the values
High Performance
Connection Pooling - Efficient database connection management
Schema Caching - Captured once per database, reused for the session
Query Optimization - Built-in performance analysis and recommendations
Batch Operations - Execute multiple queries with transaction support
Universal Database Support
PostgreSQL - Full support including advanced features
MySQL/MariaDB - Via mysql2, including Azure Database for MySQL/MariaDB
SQLite - Perfect for development and small applications
SQL Server - Enterprise-grade Microsoft SQL Server support, including Azure SQL with passwordless sign-in through the Azure CLI
Developer Experience
One-command install - Registers with Claude Code via the native
claude mcp addTypeScript Native - Full type safety and IntelliSense support
Comprehensive Docs - Detailed guides, tutorials, and API reference
Extensive Testing - Unit and integration suites, plus mutation testing on the security-critical paths
Related MCP server: MCP Database Server
Quick start
Requirements: Node.js >= 22 and the Claude Code CLI.
Connecting to Azure SQL with authentication=azure-cli additionally needs the
Azure CLI on PATH
and a completed az login; nothing else does.
1. Build
git clone https://github.com/AraneaDev/Argos-MCP.git
cd Argos-MCP
npm install
npm run build2. Configure databases
npm run setupInteractive wizard for adding database connections, security settings, and SSH tunnels. It writes a config.ini, by convention at ~/.config/argos/config.ini, though any path works. You can also add databases at runtime with the sql_add_database tool.
3. Register with Claude Code
claude mcp add argos --scope user -- \
node "$(pwd)/dist/index.js" --config "$HOME/.config/argos/config.ini"Scopes:
Scope | Flag | Where it lives | Use when |
User |
|
| You want Argos in every project (most common) |
Project |
|
| You want to share it with your team via git |
Local | (default) | Per-project, private | You're just trying it out |
4. Verify
claude mcp listYou should see argos listed as connected. Its tools appear in Claude Code as mcp__argos__sql_query, mcp__argos__sql_get_schema, and so on.
Removing it
claude mcp remove argos --scope userUse cases
Data Analytics & Business Intelligence
"Show me the top 10 customers by revenue this quarter, including their growth rate compared to last quarter"
Production Database Monitoring
"Check the status of our user registration system - how many signups in the last 24 hours and any error patterns?"
Database Administration
"Analyze the performance of our product catalog queries and suggest optimizations"
Development & Testing
"Generate test data scenarios based on our current user demographics"
Architecture
graph TB
Claude[Claude Code] --> MCP[MCP Protocol]
MCP --> Security[Security Layer]
Security --> Connection[Connection Manager]
Connection --> Adapters[Database Adapters]
Adapters --> PostgreSQL[(PostgreSQL)]
Adapters --> MySQL[(MySQL)]
Adapters --> SQLite[(SQLite)]
Adapters --> MSSQL[(SQL Server)]
Security --> SSH[SSH Tunneling]
SSH --> Bastion[Bastion Host]
Bastion --> RemoteDB[(Remote Database)]Built on solid foundations:
TypeScript - Full type safety and modern development experience
Node.js - Cross-platform compatibility and excellent ecosystem
MCP Protocol - Standard protocol for AI tool integration
Industry-standard drivers - Proven database connectivity libraries
Documentation hub
Getting Started
5-Minute Quick Start - Get running fast
Installation Guide - Detailed setup instructions
First Database Tutorial - Connect your first database
Claude Integration - Register with Claude Code
Architecture & Design
System Architecture - How it all works together
Security Architecture - Defense-in-depth security model
Database Layer - Adapter pattern implementation
API Reference
MCP Tools Reference - Complete tool documentation
TypeScript API - Developer API reference
Configuration Reference - All configuration options
Advanced Guides
Multi-Database Setup - Managing multiple databases
SSH Tunneling - Secure remote access
Security Hardening - Production security guide
Performance Tuning - Optimization strategies
Configuration examples
Production PostgreSQL with SSH
[database.production]
type=postgresql
host=internal-db.company.local
port=5432
database=production_app
username=readonly_user
password=secure_random_password
ssl=true
select_only=true
timeout=15000
# SSH Tunnel Configuration
ssh_host=bastion.company.com
ssh_port=22
ssh_username=tunnel_user
ssh_private_key=/secure/path/ssh_key
# Required: without a pinned fingerprint the tunnel refuses to connect, rather
# than trusting whatever host key it is offered. Get it from the bastion with
# ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
ssh_host_fingerprint=SHA256:47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU
[security]
max_joins=5
max_subqueries=3
max_complexity_score=50Azure SQL without a password
The Azure CLI's own sign-in is the credential, so no secret is written to
config.ini at all.
[database.azure_sql]
type=mssql
host=your-server.database.windows.net
port=1433
database=your_database_name
authentication=azure-cli
select_only=true
# Only when the server's tenant is not the CLI's active context, which is the
# usual case for an account with access to several tenants. Must be the GUID.
# azure_tenant_id=00000000-0000-0000-0000-000000000000Needs az login beforehand, and the signed-in identity mapped as a database
user: CREATE USER [you@company.com] FROM EXTERNAL PROVIDER;. Encryption and
certificate verification are forced on for this mode, because an access token is
a bearer credential and an unverified connection hands it to whoever answers.
See the SQL Server guide for the details, including unattended use.
Multi-Database Analytics Setup
[database.transactions]
type=postgresql
host=transactions-db.company.com
database=transactions
select_only=true
[database.users]
type=mysql
host=users-db.company.com
database=users
select_only=true
[database.analytics]
type=sqlite
file=./data/analytics.sqlite
select_only=false
[database.local_cache]
type=sqlite
file=./data/cache.sqlite
select_only=false
mcp_configurable=true
[extension]
max_rows=1000
query_timeout=30000Security features
Multi-Layer Security Model
Query Validation - SQL injection prevention and syntax analysis
Complexity Limits - Prevent resource-intensive queries
SELECT-Only Mode - Read-only database access for production safety
Connection Encryption - SSL/TLS and SSH tunnel support
Audit Logging - Comprehensive security event tracking
Field Redaction - Automatic masking of sensitive data in query results
Field Redaction
Automatically mask, replace, or partially obscure sensitive fields (emails, phone numbers, SSNs, etc.) in query results before they reach Claude or other clients. Redaction is configured per-database in config.ini:
[database.production]
type=postgresql
host=prod-db.company.com
database=app_db
username=readonly_user
password=secure_pass
select_only=true
# Field Redaction
redaction_enabled=true
redaction_rules=*email*:partial_mask,*phone*:full_mask,ssn:replace:[PROTECTED]
redaction_case_sensitive=false
redaction_log_access=trueRedaction types:
Type | Example Input | Example Output |
|
|
|
|
|
|
|
|
|
| Regex-based | Custom pattern |
Field patterns: exact match (email), wildcard (*email*), or regex (/^user_.+$/).
What this gives you towards compliance
Argos is not certified against any standard, and no library can be. Compliance is a property of your deployment. What it provides is the controls and the evidence that such a regime asks for:
Read-only enforcement that cannot be relaxed from a session
Field redaction, so protected columns never reach the model
An audit record per query: timestamp, database, statement hash, duration, outcome, with no values and no SQL
Secrets scrubbed from logs and error messages
Owner-only file modes on the log, the audit records and the configuration
Dynamic database management
Argos-MCP supports runtime database management through dedicated MCP tools. This allows you to add, update, and remove database connections without restarting the server.
Available MCP Tools
Tool | Description | Requirements |
| Add new database connections at runtime via MCP | None |
| Update existing database settings via MCP |
|
| Remove database connections via MCP |
|
| View database configuration (passwords are automatically redacted) | None |
| Lock a database from MCP changes | One-way operation: can only lock ( |
Usage Notes
Set
mcp_configurable=truein your database config to allow MCP-driven updates and removal.The
sql_set_mcp_configurabletool is a one-way lock: once set tofalse, the database can no longer be modified or removed via MCP. Unlocking requires a manual edit to the configuration file.The
sql_get_configtool always redacts passwords and other sensitive fields before returning configuration data.Databases added at runtime via
sql_add_databasehavemcp_configurable=trueby default, and are alwaysselect_only=true. Granting write access requires editingconfig.iniby hand, so the model cannot grant it to itself.
Performance
Query time is your database's, not Argos's. It adds validation and formatting
around a normal client connection. sql_get_metrics reports the latency it
actually observed (min, max, avg, p95), and sql_analyze_performance returns the
execution plan with dialect-specific advice when something is slow.
Performance Features
Connection Pooling - Reuse database connections efficiently
Schema Caching - Instant metadata access after initial capture
Query Optimization - Built-in EXPLAIN plan analysis
Result Streaming - Handle large datasets efficiently
Batch Operations - Execute multiple queries optimally
CLI commands
Command | Description |
| Start the Argos MCP server on stdio (this is what Claude Code invokes) |
| Run the interactive configuration wizard |
Both are exposed as bin entries, so npm link (or a global install) makes them available on your PATH. Registration with Claude Code is handled by claude mcp add, see Quick start.
Development
Development Setup
git clone https://github.com/AraneaDev/Argos-MCP.git
cd Argos-MCP
npm install
npm run dev
npm testLayers
The source is layered, and a lower layer may never depend on a higher one:
layer | directory | may depend on |
|
| nothing in |
|
|
|
|
|
|
|
|
|
|
| everything below |
|
| everything below, and nothing depends on it |
Nothing in src imports from tests or examples.
These rules are not enforced by CI. They are a design constraint, checked by hand or by whatever analysis tool you point at the checkout, so read the table before adding an import that reaches upward. A cycle between layers is the signal that something belongs in a lower one.
License
Released under the MIT License, free for any use, commercial included, with no warranty. It speaks any MCP client, not just Claude Code, and connects to databases you already run.
Acknowledgments
Built With
TypeScript - Language and tooling
Node.js - Runtime platform
Jest - Testing framework
ESLint - Code quality
MCP Protocol - AI integration standard
Special Thanks
Anthropic - For Claude AI and MCP protocol
TypeScript Team - For excellent tooling
Database Driver Maintainers - For reliable connectivity libraries
Get Started Now | Documentation
Transform your database interactions with AI-powered SQL intelligence
Built by Aranea Development.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Query your Postgres from ChatGPT or Claude without exposing the database or handing over credentials. Run npx boltschema connect next to your database and it dials out over HTTPS — no inbound firewall rule, no open port, works with localhost and VPC-private databases. Read-only is enforced by a SQL guard, a Postgres READ ONLY transaction, and a scoped role generated for you.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides Claude Desktop with secure access to multiple database connections, allowing users to query MySQL, PostgreSQL, SQLite, and SQL Server databases directly through natural language.-
- AlicenseNot gradedqualityDmaintenanceProvides Claude with direct access to databases including SQLite, SQL Server, PostgreSQL, and MySQL, enabling execution of SQL queries and table management through natural language.544 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to connect to and interact with SQLite, SQL Server, PostgreSQL, and MySQL databases through natural language. Supports executing queries, managing tables, exporting data, and storing business insights with authentication options including AWS IAM.544 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to interact with MySQL, PostgreSQL, and Redis databases using natural language for data querying and schema analysis. It provides a secure interface with a default read-only mode to prevent unauthorized database modifications.48 npm929MIT