Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/exasol/mcp-server/exasol-sql-dialectnpx skills add exasol/mcp-server --skill exasol-sql-dialectgit clone --depth 1 https://github.com/exasol/mcp-serverWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00030 | $0.01769 |
| Opus 5 | $0.00015 | $0.00885 |
| Sonnet 5 | $0.00006 | $0.00354 |
| Haiku 4.5 | $0.00003 | $0.00177 |
Grade A, and why
exasol-sql-dialect scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 207 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Exasol SQL Dialect
Identifiers
- Identifiers (schema, table, column names) are case-insensitive by default and stored uppercase.
- To preserve case or use reserved words as identifiers, wrap them in double quotes:
"myColumn". - Embed a literal double-quote inside a quoted identifier by doubling it:
"MY""COLUMN".
String Literals
- Use single quotes:
'value'. - Embed a literal single-quote by doubling it:
'it''s a value'.
Data Types
| Type | Notes |
|---|---|
VARCHAR(n) |
Variable-length string, up to 2,000,000 characters; n counts characters (not bytes); empty string is NULL |
CHAR(n) |
Fixed-length, blank-padded; up to 2,000 characters |
DECIMAL(p, s) |
Exact numeric; also written NUMERIC(p, s); default DECIMAL(18, 0) |
DOUBLE PRECISION |
64-bit floating point; also FLOAT or DOUBLE; NaN is treated as NULL; Infinity is not supported |
BOOLEAN |
TRUE / FALSE |
DATE |
Calendar date only (no time component) |
TIMESTAMP(p) |
Date + time; precision p 0–9, default 3 (milliseconds) |
TIMESTAMP WITH LOCAL TIME ZONE |
Stored in UTC, displayed in session time zone |
INTERVAL YEAR TO MONTH |
Period expressed as years and months |
INTERVAL DAY TO SECOND |
Period expressed as days through seconds |
HASHTYPE(n BYTE) |
Fixed-length hash/binary; 1–1,024 bytes (default 16); accepts hex, UUID, base64 |
GEOMETRY |
Spatial data type |
Row Limiting
Exasol uses LIMIT/OFFSET. FETCH FIRST … ROWS ONLY is not supported.
SELECT * FROM my_table ORDER BY id LIMIT 100;
SELECT * FROM my_table ORDER BY id LIMIT 20 OFFSET 10;
OFFSET requires ORDER BY. LIMIT is not allowed in correlated subqueries.
String Operations
- Concatenation: use
||, not+ SUBSTR(str, pos, len)— 1-based positionsLENGTH(str)— character countTRIM,LTRIM,RTRIM— whitespace or specific charactersUPPER,LOWER,INITCAPREPLACE(str, search, replacement)LPAD(str, len, pad),RPAD(str, len, pad)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 207 lines · 30 tokens per session scan A 45bb2e4c2f09
exasol-sql-dialect is a skill published in the GitHub repository exasol/mcp-server (18 stars, last pushed 7d ago), licensed MIT. It adds 30 tokens to every session and 1,769 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
pg-bloat-analysis
Detects and remediates table and index bloat in PostgreSQL using pgstattuple analysis. Identifies fragmentation, dead tuples, and wasted space with prioritized maintenance actions including VACUUM, REINDEX, and pgrepack recommendations.
pg-index-optimization
Performs comprehensive PostgreSQL index optimization including unused index cleanup, duplicate detection, missing index recommendations, and hypothetical index testing with HypoPG. Provides actionable CREATE/DROP INDEX statements with estimated impact.
pg-performance-baseline
Generates a comprehensive PostgreSQL performance baseline report capturing health metrics, query workload patterns, table statistics, configuration settings, index utilization, and I/O patterns. Designed for before/after comparison when making changes.
pg-query-rewrite
Guides SQL query optimization through execution plan analysis and common rewrite patterns. Covers subquery-to-JOIN conversion, CTE materialization control, OR-to-UNION, NOT IN-to-NOT EXISTS, pagination optimization, and SELECT elimination. Uses analyzequery with format and settings parameters for deep plan analysis.
pg-slow-query-diagnosis
Diagnoses slow PostgreSQL queries by analyzing pgstatstatements, execution plans, index opportunities, and table statistics. Guides the agent through a systematic investigation workflow using pgtuner-mcp tools to produce actionable optimization recommendations.
pg-vacuum-tuning
Monitors and tunes PostgreSQL vacuum operations including autovacuum configuration, vacuum progress tracking, wraparound prevention, and per-table vacuum strategy. Provides tuning recommendations for high-churn OLTP and large analytical tables.