Argos-MCP
Honderd ogen op je databases, en geen daarvan knippert.
Argos Panoptes (Ἄργος Πανόπτης) is de reus uit de Griekse mythologie met honderd ogen, door Hera aangesteld om Io te bewaken. Er sliep telkens maar een deel van zijn ogen tegelijk, dus was hij nooit volledig in slaap en ontsnapte niets aan zijn blik. Panoptes betekent 'alziend'.
- TypeScript
- MCP
- PostgreSQL
- MySQL
- SQLite
- MSSQL
GitHub (opent in een nieuw tabblad)README (opent in een nieuw tabblad)Changelog (opent in een nieuw tabblad)
Wat het doet
Argos-MCP verbindt Claude Code, of elke andere MCP-client, met PostgreSQL, MySQL/MariaDB, SQLite en SQL Server. De server staat vóór de verbinding, niet ernaast: elke query passeert eerst SELECT-only-validatie (gebonden parameters, geen gestapelde statements, complexiteitslimieten) voordat hij de driver bereikt, en elke query levert precies één audit-record op: database, statement-hash, duur en uitkomst, nooit de waarden zelf.
Je kunt meerdere databases tegelijk configureren, via SSH-tunnels met een vastgepinde host-key-fingerprint, met veldredactie zodat gevoelige kolommen (e-mailadressen, telefoonnummers, BSN's) nooit bij het model terechtkomen, en met een eenrichtings-vergrendeling (mcp_configurable) die een database afsluit voor verdere wijzigingen via MCP zodra de instellingen goed staan.
Snel starten
Argos-MCP staat nog niet op npm, dus installeer het vanaf de broncode. Vereist: Node.js 22 of nieuwer en de Claude Code CLI.
git clone https://github.com/AraneaDev/Argos-MCP.git
cd Argos-MCP
npm install
npm run build
npm run setup
claude mcp add argos --scope user -- \
node "$(pwd)/dist/index.js" --config "$HOME/.config/argos/config.ini"npm run setup start een interactieve wizard voor databaseverbindingen, beveiligingsinstellingen en SSH-tunnels, en schrijft die weg naar config.ini.
Voorbeelden
Een sql_query-aanroep, echt uitgevoerd op een lokale SQLite-database:
Aanroep:
{
"database": "demo",
"query": "SELECT id, name, email FROM users ORDER BY id"
}Resultaat:
Query executed successfully on demo
SELECT-only mode active
Results: 3 rows
| id | name | email |
|---|---|---|
| 1 | Ada Lovelace | ada@example.com |
| 2 | Alan Turing | alan@example.com |
| 3 | Grace Hopper | grace@example.com |Mogelijkheden
| Categorie | Wat het levert |
|---|---|
| Beveiliging | SELECT-only mode, querybeveiliging tegen SQL-injectie, complexiteitslimieten, SSH-tunneling met vastgepinde host-keys, veldredactie |
| Databases | PostgreSQL, MySQL/MariaDB, SQLite, SQL Server, elk met een eigen adapter |
| Beheer | sql_add_database, sql_update_database, sql_remove_database, sql_get_config (wachtwoorden altijd geredigeerd), sql_set_mcp_configurable |
| Performance | Connection-pooling, schema-caching per sessie, sql_analyze_performance met dialect-specifiek advies, sql_get_metrics (min/max/gem./p95) |
Databases die tijdens runtime worden toegevoegd via sql_add_database zijn altijd select_only: true; schrijftoegang verleen je alleen door config.ini zelf te bewerken, dus het model kan zichzelf die rechten niet geven.
Configuratie
Argos-MCP leest config.ini, standaard uit ~/.config/argos/config.ini; npm run setup schrijft er een voor je. Zo ziet een productiedatabase achter een SSH-tunnel eruit:
[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
ssh_host=bastion.company.com
ssh_port=22
ssh_username=tunnel_user
ssh_private_key=/secure/path/ssh_key
ssh_host_fingerprint=SHA256:47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU
[security]
max_joins=5
max_subqueries=3
max_complexity_score=50Zonder een vastgepinde ssh_host_fingerprint weigert de tunnel te verbinden; hij vertrouwt geen enkele aangeboden host-key op zicht. select_only is de productiestandaard; zet hem alleen uit op een database waar schrijftoegang bewust gewenst is.