How it works
Verbiqo reads your databases, clusters, metrics and logs while it answers, and never changes them. Set each one up once, then attach it to a conversation and ask in plain words.
What it can read
| System | Attach with | What it reads | Set up |
|---|---|---|---|
| PostgreSQL | /pg | Statistics views, settings, plans | Set up PostgreSQL |
| MySQL | /mysql | performance_schema, sys, status | Set up MySQL |
| SQL Server | /mssql | System views, msdb history, plans | Set up SQL Server |
| Redis, Valkey | /redis | Server commands: INFO, slow log, latency, clients | Set up Redis |
| Kubernetes, EKS, GKE, AKS, OpenShift | /k8s | The API server: workloads, nodes, events, roles. Never Secrets | Set up Kubernetes |
| Elasticsearch, OpenSearch | /es | Monitoring and metadata APIs | Set up Elasticsearch |
| Prometheus, Thanos | /prom | Metrics | Prometheus |
| Splunk | /splunk | Logs | Splunk |
| Security review | /security | The connections above, each control pass, fail or not checked | Security review |
How it stays read-only
- The account. Database, Redis, Elasticsearch and Kubernetes connectors check for write or administrative privileges and refuse those they detect. Create the monitoring account described on each set-up page. For Splunk, configure a least-privilege search role: the connection test checks access, not every role capability. Prometheus needs read-only API access through your proxy or token policy.
- Every request, checked before it is sent, in the way that fits the system. PostgreSQL and MySQL run each statement in a read-only transaction. SQL Server plans each statement first and refuses one that would reach application tables. All three have short time and lock limits. Redis, Elasticsearch, Kubernetes, Prometheus and Splunk accept only commands, requests or searches on a read-only list. Each set-up page lists its own controls under At a glance.
- Your data. Database investigations read statistics and metadata rather than application rows. Elasticsearch and OpenSearch cluster questions read monitoring APIs rather than documents; permitted security-log searches can read log documents, masked as they are read. Values encountered in statement text are masked before display or model use.
- The model. While investigating, the model can only ask Verbiqo for more reads through these checks. It has no shell, no file access and no other tools on this path.
- Fixes. Every change it suggests is a statement for you to review and run.
Verbiqo sends what it read (host names, measurements, statement shapes) to the AI service you chose, so the model can interpret it. Check that your policy allows this.
This page is about investigating systems. The writing actions work differently: they replace the text you selected, once the result has been checked, and a document summary reads the file you choose. Work with selected text.
Add a connection
Turn it on
In Settings, check Let Verbiqo read databases and other systems.
Open Extensions
Choose Extensions… from the menu bar icon, then the system.
Fill the form and test
Press Test Connection. It says what it found (version, role, TLS in use) or what to fix. Then Save Connection.
From a terminal, each system has add, test, list and remove. The password is piped in, never typed on the command line:
verbiqo pg add orders --host db1 --port 5432 --database orders --user verbiqo --password-stdin
verbiqo pg test orders
Encrypted connections (TLS)
Each system offers the choices its own tools use, so the names differ. The questions behind them are the same: is the connection encrypted, and is the server’s certificate checked against a CA and against the host name.
| System | Choices | Default | From a terminal |
|---|---|---|---|
| PostgreSQL | Disable, Prefer, Require, Verify CA, Verify full (below) | Require (Prefer in 0.1.25 and earlier) | --ssl-mode disable|prefer|require|verify-ca|verify-full, --ssl-ca, --ssl-cert, --ssl-key, --ssl-key-passphrase-env VAR or --ssl-key-passphrase-stdin |
| MySQL | The same five, under MySQL’s names: Disabled, Preferred, Required, Verify CA, Verify identity (Verify full) | Required (Preferred in 0.1.25 and earlier) | --ssl-mode DISABLED|PREFERRED|REQUIRED|VERIFY_CA|VERIFY_IDENTITY, then the same certificate and passphrase flags as PostgreSQL |
| Redis, Valkey | Disable, Require, Verify CA, Verify full. No Prefer: Redis cannot negotiate TLS, it serves it on a separate port. | Disable | --ssl-mode disable|require|verify-ca|verify-full, --ssl-ca, --ssl-cert, --ssl-key |
| SQL Server | As SSMS: Optional, Mandatory, Strict, with Trust server certificate and a host name for the certificate. Encryption | Mandatory, trusting the server’s certificate | --encrypt optional|mandatory|strict, --trust-server-certificate, --host-name-in-certificate NAME, --ssl-ca |
| Elasticsearch, OpenSearch | Always encrypted with an https:// URL. Verification, in Elastic’s terms: Full (CA and host name), Certificate (CA only), None | Full | --verification full|certificate|none, --ca, --cert, --key (--no-verify still means none) |
| Kubernetes | A kubeconfig context brings its own CA and sign-in. A token connection names the API server’s CA and a Verification of Full, Certificate or None. | Full | --ca, --verification full|certificate|none |
| Prometheus, Splunk | Decided by the URL (https://). The certificate is always checked. A private CA goes in Trusted CA. | — | Nothing: the terminal trusts the app’s Trusted CA and the computer’s trust store. Without the app, NODE_EXTRA_CA_CERTS set to the CA file |
Unreleased change for 0.1.26: a new PostgreSQL or MySQL connection starts on Require, so a server without TLS is refused instead of reached unencrypted. The current download, 0.1.25, starts on Prefer; choose Verify full for production. Connections saved earlier keep their explicit mode. A legacy connection with no stored mode still uses Prefer for compatibility; edit it explicitly to strengthen protection.
What the modes mean
For PostgreSQL, MySQL and Redis:
| TLS mode | Encrypted | Checks the certificate | Use when |
|---|---|---|---|
| Prefer | When the server offers it | No | A lab, or only while you find out whether the server offers TLS. When it does not, the connection is not encrypted and the test shows not encrypted. Not offered for Redis. |
| Require | Always | No | The server has a self-signed certificate, or you do not have its CA certificate yet. It encrypts, but does not prove which server answered. |
| Verify CA | Always | Signed by a trusted CA | You connect by an address the certificate does not name. |
| Verify full | Always | Trusted CA and matching host name | Production. The strictest. |
| Disable | Never | — | A lab only, or a Redis port that does not serve TLS. |
- Insecure tick. Insecure: don't check the server's certificate encrypts without checking. On a database form it switches the mode to Require. Unticking it switches to Verify full. SQL Server’s equivalent is Trust server certificate. Elasticsearch’s and Kubernetes’ is Verification None.
- CA certificate. For a private CA, choose its
.pemfile. It is added to the CAs your computer already trusts. - Client certificate and key. For servers that ask for one (mutual TLS, certificate login): PostgreSQL, MySQL, Redis, Elasticsearch and OpenSearch, and a Kubernetes kubeconfig. A certificate login needs no password.
- Key passphrase (PostgreSQL and MySQL). For a key protected by one. Kept in the Keychain or Credential Manager like a password, and never sent to the server: it only opens the key on your computer. From a terminal:
--ssl-key-passphrase-env VAR, or--ssl-key-passphrase-stdinto pipe it in. Other systems need a key without a passphrase. - One CA for everything. Settings › Trusted CA (below Endpoint) names a CA every connection trusts, Prometheus and Splunk included. A terminal on the same computer trusts it too, along with everything in the computer’s trust store. Without the app,
VERBIQO_TLS_CAnames it for every connection.
From a terminal, for example:
verbiqo pg add orders --host db1.example.com --database orders --user verbiqo --password-stdin \
--ssl-mode verify-full --ssl-ca /etc/ssl/company-ca.pem
verbiqo redis add cache --host cache1 --port 6380 --password-stdin --ssl-mode verify-full --ssl-ca /etc/ssl/company-ca.pem
verbiqo mssql add sales --host sql01 --user verbiqo_monitor --password-stdin --encrypt mandatory --ssl-ca /etc/ssl/company-ca.pem
verbiqo es add logs --url https://es.example.com:9200 --auth apikey --secret-stdin --ca /etc/ssl/company-ca.pem --verification full
test shows the TLS in use, for example TLS 1.3, certificate and host name verified. When TLS fails, it says what to change: a CA to add, a server name to correct, or a client certificate to give. Keep Verify full for production. See also Troubleshooting.
Where sign-in details are kept
| What | Where |
|---|---|
| Passwords, API keys and tokens | The macOS Keychain, or Windows Credential Manager. Never in a file, a log or an error. |
| Host, port, user, certificate paths | A file only your user account can read. |
| On a Linux server (command line only) | A file only your user account can read, as plain text: Linux has no standard secure store. Use read-only credentials. |
Attach and ask
/pg orders
/mssql sales
/redis cache
/k8s prod
/es logs
/prom prod
/splunk prod
/security all
Up to three at once. Verbiqo asks each and shows the answers together. /sources lists what is attached, /pg off detaches. How to phrase questions: Ask about your systems.
Reading findings
After the answer, Verbiqo adds what its own checks found, always in the same shape:
| Part | What it tells you |
|---|---|
| The finding | What was found, marked Critical, Warning or Note, with the numbers behind it. |
| Recommended | What to do, and the statement Verbiqo recommends when there is one. Read it, and the two rows below, before running it. |
| Risk and Check first | What the change could disturb, and what to confirm before acting. |
| Afterwards | How to see that it worked. |
| Also noticed | Serious problems your question did not ask about. |
| To see more | What could not be read, why, and the grant or setting that would let Verbiqo read it. Ask what should I enable? for the full list. |
Verbiqo and MCP
MCP (Model Context Protocol) is a standard for connecting AI applications to tools and data. Verbiqo packages supported investigations, checks, controls and evidence presentation into an application. The two answer different questions: MCP is how a tool is plugged into an assistant. Verbiqo is a tool for investigating systems, with its own interface.
| Need | In Verbiqo, out of the box | With an assistant and MCP servers |
|---|---|---|
| Knowing what to check | Checks written for each supported system, run by Verbiqo before the model writes anything, with findings computed in code (all checks) | Depends on the servers chosen: some offer ready-made checks, others only queries |
| Read-only access | Every request checked against the system’s rules before it is sent. Database and cluster connectors also check account privileges; Splunk requires a least-privilege search role configured by your administrator | Depends on each server’s settings and the credentials given to it |
| Bounded reads | Time, row and cost limits per system, and limits your organization can add (limits) | Depends on the server or gateway |
| A record of every read | Built in, on the computer, forwardable to a SIEM (access record) | Depends on the client, the servers or a gateway |
| Checking the answer | Findings shown beside the explanation. Figures and some claims checked against what was read, for several systems | Depends on the product, client and servers; equivalent validation can be implemented |
| Reach | Verbiqo’s own app and command line, for the systems it supports | Any MCP client, any server: far more tools and tasks |
Some MCP-based products also ship these controls ready-made. With general-purpose servers, a team assembles them: choosing and configuring servers, credentials, a gateway, audit and validation, and maintaining them. Verbiqo is one way to have them ready-made for the systems above.
LLM gateways and MCP gateways
An LLM gateway carries model calls: prompts and answers between an app and a model. Verbiqo can use one today, through its OpenAI-compatible endpoint setting (gateways). An MCP gateway controls MCP tool calls. Verbiqo makes no MCP tool calls, so connecting it to an LLM gateway does not make it MCP-compatible.
Planned, not available: Verbiqo as an MCP server, so that other assistants could call its checks and receive its findings, never direct access to your systems.