19 resultaten

desktop

op je machine

skills

Argos

Zie elke query van je agent met het volledige resultaat, en houd toegang read-only waar het telt.

Argos Panoptes (Ἄργος Πανόπτης) is een figuur met honderd ogen uit de Griekse mythologie. Panoptes betekent 'alziend'.
Een Claude Code-sessie met het Argos-paneel: /argos opent het op Connections, Claude krijgt de vraag welke 10 klanten het meest uitgaven in shop en de query verschijnt in Queries met het resultaat, de tab Schema toont orders met keys en relaties, en de Editor weigert DELETE FROM orders
Een sessie: /argos opent het paneel, de query van Claude verschijnt in Queries met het volledige resultaat, een blik op Schema, en de Editor die een DELETE weigert.
Op deze paginaWat het doet

Wat het doet ​

Argos verbindt Claude Code, of elke andere MCP-client, met PostgreSQL, MySQL/MariaDB, SQLite en SQL Server. Elke query wordt gecontroleerd voordat de databasedriver hem ontvangt: SELECT-only-beperkingen, gebonden parameters, uitsluiting van gestapelde statements en complexiteitslimieten. Elke query levert precies één auditrecord op met de database, statement-hash, duur en uitkomst. De querywaarden komen niet in dat record.

In Claude Code opent /argos een paneel naast je sessie. Daarin staan je verbindingen en hun schema's, elke query die Claude uitvoert met het volledige resultaat in plaats van het korte tabelletje dat Claude zelf krijgt, en een editor voor je eigen queries. Wat je vanuit het paneel uitvoert is altijd read-only, wat een verbinding Claude ook toestaat.

Je kunt meerdere databases tegelijk configureren: achter SSH-tunnels met een vastgepinde host-key-fingerprint, met veldredactie zodat gevoelige kolommen (e-mailadressen, telefoonnummers, BSN's) nooit bij het model of in het paneel terechtkomen, en met een eenrichtingsvergrendeling (mcp_configurable) die een database afsluit voor verdere wijzigingen via MCP zodra de instellingen goed staan.

Snel starten ​

Argos staat nog niet op npm, dus je installeert het vanuit de broncode. Je hebt Node.js 22 of nieuwer en de Claude Code CLI nodig, en verder niets. Alleen een verbinding met Azure SQL via authentication=azure-cli vraagt daarnaast om de Azure CLI op je PATH en een voltooide az login.

bash
git clone https://github.com/AraneaDev/argos.git
cd argos
npm install
npm run build
npm run setup
claude mcp add argos --scope user -- \
  node "$(pwd)/dist/cli.js" serve --config "$HOME/.config/argos/config.ini"
node dist/cli.js install-plugin --config "$HOME/.config/argos/config.ini" --execute

npm run setup start een interactieve wizard voor databaseverbindingen, beveiligingsinstellingen en SSH-tunnels, en schrijft die weg naar config.ini. install-plugin installeert het Claude Code-paneel op dezelfde config.ini; zonder --execute zie je eerst wat het zou doen. Start daarna een nieuwe Claude Code-sessie en typ /argos.

Het paneel ​

/argos opent op vier tabs: Queries, Schema, Editor en Connections.

Queries toont elke query van Claude of jezelf, de nieuwste bovenaan en bewaard over sessies heen, met de SQL en het volledige resultaat van de gekozen query. Van daaruit voer je een query read-only opnieuw uit, pin je hem vast, kopieer je het resultaat als markdown, CSV of JSON, of zet je een eigen resultaat in je volgende bericht aan Claude.

Queries-tab met de geschiedenis met claude of you per regel, één vastgepinde query, één geblokkeerde DELETE en de SQL van de gekozen query met het resultaat
Queries: elke query van Claude of jezelf, met het volledige resultaat.

Schema toont de tabellen en views van elke verbinding, de kolommen van de geopende tabel met hun primary en foreign keys, en de relaties van en naar die tabel.

Schema-tab met de tabel orders geopend, met zijn primary en foreign keys en zijn relaties
Schema: de kolommen van de geopende tabel met hun keys, en de relaties van en naar die tabel.

De Editor voert je eigen SQL uit op elke verbinding. Een schrijfopdracht wordt geweigerd met de reden erbij, ook op een verbinding waar Claude wel mag schrijven: de verbindingen van het paneel openen read-only in de database zelf waar de engine dat kan (SQLite in read-only-modus, een read-only sessie bij PostgreSQL en MySQL), achter dezelfde SELECT-only-controle die de server gebruikt.

Editor-tab met een query op de shop-database en het resultaat eronder
Editor: je eigen queries, altijd read-only.

Connections toont elke database met zijn engine, host, tunnel, toegang en hoe lang geleden het schema is vastgelegd.

Connections-tab met per database een kaart met engine, host, tunnel, toegang en leeftijd van het schema
Connections: elke database met zijn toegang en de leeftijd van zijn schema.

Is het schema van een verbinding veranderd sinds Argos er voor het laatst naar keek, dan meldt de volgende query van Claude dat in één regel, zodat Claude niet verder werkt met een verouderd beeld van de tabellen. Die regel is het enige wat het paneel aan Claude doorgeeft; wat je in het paneel doet, blijft bij jou.

Voorbeelden ​

Een sql_query-call, echt uitgevoerd op een lokale SQLite-database:

Call:

json
{
  "database": "demo",
  "query": "SELECT id, name, email FROM users ORDER BY id"
}

Resultaat:

text
 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 ​

CategorieWat het levert
PaneelQueries met volledige resultaten, vastpinnen, opnieuw uitvoeren en kopiëren; Schema met keys en relaties; een read-only Editor; Connections
BeveiligingSELECT-only-modus, querybeveiliging tegen SQL injection, complexiteitslimieten, SSH-tunneling met vastgepinde host-keys, veldredactie
DatabasesPostgreSQL, MySQL/MariaDB, SQLite, SQL Server inclusief Azure SQL, elk met een eigen adapter
Beheersql_add_database, sql_update_database, sql_remove_database, sql_get_config (wachtwoorden altijd geredigeerd), sql_set_mcp_configurable
PerformanceConnection-pooling, schema-caching met een goedkope controle op wijzigingen, sql_analyze_performance met dialect-specifiek advies, sql_get_metrics (min/max/gem./p95)
CLIargos serve, argos setup, argos install-plugin, en JSON-commando's voor verbindingen, schema's, read-only queries en geschiedenis

Databases die tijdens het draaien worden toegevoegd via sql_add_database zijn altijd select_only: true; schrijftoegang verleen je alleen door config.ini zelf te bewerken, dus schrijftoegang kan niet via MCP worden ingeschakeld.

Configuratie ​

Argos 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:

ini
[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=50

SSH-tunnels vereisen een vastgepinde ssh_host_fingerprint; zonder host-key-verificatie komt de verbinding niet tot stand. select_only is de productiestandaard; schakel die instelling alleen uit voor een database waarvoor je bewust schrijftoegang toestaat.

Het paneel bewaart zijn geschiedenis naast dat bestand, in .argos/: querytekst en geredigeerde resultaten tot 30 dagen en 200 MB, uitgesloten van git en alleen leesbaar voor jou.

Azure SQL zonder wachtwoord ​

Bij SQL Server op Azure kan de aanmelding van de Azure CLI zelf de referentie zijn, zodat er geen geheim meer in config.ini staat:

ini
[database.azure_sql]
type=mssql
host=your-server.database.windows.net
port=1433
database=your_database_name
authentication=azure-cli
select_only=true

# Alleen nodig wanneer de tenant van de server niet de actieve context van de CLI is,
# wat bij een account met toegang tot meerdere tenants het gewone geval is.
# azure_tenant_id=00000000-0000-0000-0000-000000000000

Daarvoor moet je az login gedaan hebben, en moet de aangemelde identiteit als databasegebruiker bestaan: CREATE USER [jij@bedrijf.com] FROM EXTERNAL PROVIDER;. Versleuteling en certificaatcontrole staan in deze modus verplicht aan, omdat een access token een bearer-referentie is. Zonder controle kan het token naar een ongeverifieerd endpoint worden verstuurd.