Tokenlite Mysql MCP
What it does
A secure, efficient, and intelligent MySQL server for the Model Context Protocol
- Connects Runs on your computer
- Account or key Needs DB_PASSWORD, DB_NAME
- Category Databases & datasets
Install
Pick the AI app you use, then copy the settings.
Passed 3/3 checks · Runs on your computer
First: which AI do you use?
Pick your app and the steps appear below.
Install Node.js
One time only; it works for every server that needs Node.js
Sign up and create a Tokenlite Mysql MCP key
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
Open the Claude desktop app’s settings file
SettingsDeveloperEdit Config
Paste these settings and save the file
Checking the commands · copy buttons appear once they pass
Paste the key only into the app’s field, never into a chat or to anyone
Quit Claude and open it again
Try it
Use Tokenlite Mysql MCP and tell me what you can do for me, then show me one thing✓ If Claude says it is using Tokenlite Mysql MCP or shows a Tokenlite Mysql MCP tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect Tokenlite Mysql MCP yet
Tokenlite Mysql MCP runs on your computer, but ChatGPT can only connect servers that run on the web
What you can do instead
A · Use an app that can connect Tokenlite Mysql MCP
- You need a Tokenlite Mysql MCP key (create it on the maker’s site) · Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
- You need a Tokenlite Mysql MCP key (create it on the maker’s site) · Install Node.js on your computer first (one time)
- You need a Tokenlite Mysql MCP key (create it on the maker’s site) · Install Node.js on your computer first (one time)
- You need a Tokenlite Mysql MCP key (create it on the maker’s site) · Install Node.js on your computer first (one time)
B · Others in Databases & datasets that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
- Supabase✓ ChatGPT
- Appwrite MCP✓ ChatGPT
- Pg Aiguide✓ ChatGPT
Works with Claude Code, with some setup first
You need a Tokenlite Mysql MCP key (create it on the maker’s site) · Install Node.js on your computer first (one time)
Install Node.js
One time only; it works for every server that needs Node.js
Sign up and create a Tokenlite Mysql MCP key
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
Open Terminal
Mac: press Command+Space and type Terminal · Windows: open PowerShell
Paste this command and press Enter
Checking the commands · copy buttons appear once they pass
Replace “your-value” with your key before pressing Enter
Paste the key only into the app’s field, never into a chat or to anyone
Type /mcp in Claude Code
You should see Tokenlite Mysql MCP listed as connected
Try it
Use Tokenlite Mysql MCP and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Tokenlite Mysql MCP or shows a Tokenlite Mysql MCP tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
You need a Tokenlite Mysql MCP key (create it on the maker’s site) · Install Node.js on your computer first (one time)
Install Node.js
One time only; it works for every server that needs Node.js
Sign up and create a Tokenlite Mysql MCP key
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
Click this button to open Cursor
Checking the commands · copy buttons appear once they pass
Fill in your key
In the Tokenlite Mysql MCP settings, DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME, MCP_EXPLAIN_MAX_SCAN_ROWS, MCP_QUERY_ROW_LIMIT, MCP_SAFE_QUERY_MAX_ROWS, MCP_SAFE_QUERY_ENABLE_BLOCKING, MCP_METADATA_PATH, MCP_TEMPLATES_PATH, TOOL_PREFIX, MCP_RATE_LIMIT_RPM, MYSQL_QUERY_TIMEOUT, MYSQL_CONNECTION_LIMIT, MYSQL_CONNECT_TIMEOUT, MYSQL_RETRY_ATTEMPTS, MYSQL_RETRY_DELAY_MS, MYSQL_QUEUE_LIMIT, MCP_DDL_CACHE_TTL, MCP_LOG_LEVEL, ALLOW_INSERT_OPERATION, ALLOW_UPDATE_OPERATION, ALLOW_DELETE_OPERATION, ALLOW_DDL_OPERATION, DB_SSL, DB_SSL_REJECT_UNAUTHORIZED is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Open the AI chat in Cursor in Agent mode
Try it
Use Tokenlite Mysql MCP and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Tokenlite Mysql MCP or shows a Tokenlite Mysql MCP tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
You need a Tokenlite Mysql MCP key (create it on the maker’s site) · Install Node.js on your computer first (one time)
Install Node.js
One time only; it works for every server that needs Node.js
Sign up and create a Tokenlite Mysql MCP key
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
Click this button to open VS Code
Checking the commands · copy buttons appear once they pass
Fill in your key
In the Tokenlite Mysql MCP settings, DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME, MCP_EXPLAIN_MAX_SCAN_ROWS, MCP_QUERY_ROW_LIMIT, MCP_SAFE_QUERY_MAX_ROWS, MCP_SAFE_QUERY_ENABLE_BLOCKING, MCP_METADATA_PATH, MCP_TEMPLATES_PATH, TOOL_PREFIX, MCP_RATE_LIMIT_RPM, MYSQL_QUERY_TIMEOUT, MYSQL_CONNECTION_LIMIT, MYSQL_CONNECT_TIMEOUT, MYSQL_RETRY_ATTEMPTS, MYSQL_RETRY_DELAY_MS, MYSQL_QUEUE_LIMIT, MCP_DDL_CACHE_TTL, MCP_LOG_LEVEL, ALLOW_INSERT_OPERATION, ALLOW_UPDATE_OPERATION, ALLOW_DELETE_OPERATION, ALLOW_DDL_OPERATION, DB_SSL, DB_SSL_REJECT_UNAUTHORIZED is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Open the AI chat in VS Code in Agent mode
Try it
Use Tokenlite Mysql MCP and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Tokenlite Mysql MCP or shows a Tokenlite Mysql MCP tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
JSON settings are under “For developers” below
For developers: Terminal commands and JSON settings
Installed on your computer
Claude Code
Checking the commands · copy buttons appear once they pass
Claude Desktop (claude_desktop_config.json)
Checking the commands · copy buttons appear once they pass
Cursor (~/.cursor/mcp.json)
Checking the commands · copy buttons appear once they pass
VS Code (mcp.json)
Checking the commands · copy buttons appear once they pass
Values you fill in
DB_HOSTenvMySQL Host address (defaults to localhost)DB_PORTenvMySQL Port (defaults to 3306)DB_USERenvMySQL Username (defaults to root)DB_PASSWORDsecret envMySQL Password (defaults to empty string)DB_NAMErequired envMySQL Database nameMCP_EXPLAIN_MAX_SCAN_ROWSenvEXPLAIN guardrail: max estimated rows for unindexed full table scans before blocking (defaults to 1000). MCP_SAFE_QUERY_MAX_ROWS is a deprecated alias.MCP_QUERY_ROW_LIMITenvMax rows returned per SELECT; injected as LIMIT at the AST level (defaults to 500)MCP_SAFE_QUERY_MAX_ROWSenvDeprecated alias for MCP_EXPLAIN_MAX_SCAN_ROWSMCP_SAFE_QUERY_ENABLE_BLOCKINGenvEnable or disable the EXPLAIN guardrail (defaults to true)MCP_METADATA_PATHenvAbsolute path to your custom metadata.json dictionaryMCP_TEMPLATES_PATHenvAbsolute path to your custom templates.json pre-approved queriesTOOL_PREFIXenvPrefix for tool names, e.g., to run multiple instances (defaults to DB_NAME, e.g. mydb_). Only set to override.MCP_RATE_LIMIT_RPMenvMax tool invocations per minute, sliding window (defaults to 60). Set to 0 to disable.MYSQL_QUERY_TIMEOUTenvMax execution time for a query in milliseconds to protect against DoS (defaults to 15000)MYSQL_CONNECTION_LIMITenvMax concurrent pool connections (defaults to 10)MYSQL_CONNECT_TIMEOUTenvMax time to wait for a connection socket to establish in milliseconds (defaults to 10000)MYSQL_RETRY_ATTEMPTSenvMax retries on transient connection errors (defaults to 3)MYSQL_RETRY_DELAY_MSenvBase delay in milliseconds for exponential backoff between retries (defaults to 1000)MYSQL_QUEUE_LIMITenvMax queued requests when all pool connections are busy to prevent memory leak (defaults to 50)MCP_DDL_CACHE_TTLenvTime-to-live in seconds for cached DDL statements (defaults to 60)MCP_LOG_LEVELenvMinimum severity level for MCP log notifications (defaults to info). Levels: debug, info, notice, warning, error, critical, alert, emergencyALLOW_INSERT_OPERATIONenvEnable INSERT and REPLACE queries (defaults to false)ALLOW_UPDATE_OPERATIONenvEnable UPDATE queries (defaults to false)ALLOW_DELETE_OPERATIONenvEnable DELETE and TRUNCATE queries (defaults to false)ALLOW_DDL_OPERATIONenvEnable Data Definition Language queries like CREATE, ALTER, DROP, RENAME (defaults to false)DB_SSLenvEnable TLS for the MySQL connection (defaults to false)DB_SSL_REJECT_UNAUTHORIZEDenvReject self-signed or untrusted TLS certificates when DB_SSL is true (defaults to true)
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
At a glance
Which apps can use it
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Related guides
What it can do
Runs on your computer; the tool list appears in your AI app after you install it.
Basic checksi
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 13, 2026
- ✓ Pass
Maker matches the repo
The registry name was verified with the GitHub account andezdev, which owns the repo
- ✓ Pass
Still maintained
Code last changed 2 months ago
- ✓ Pass
Has a licence
Uses MIT
- – Not applicable
Endpoint responds
This one runs on your computer; there is no internet endpoint
- – Not applicable
Sign-in with OAuth
Runs on your computer and uses local settings instead
- … Not checked yet
No hidden instructions in tool descriptions
Runs on your computer; we can only read tool lists from internet endpoints
Discussion
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
User reviews
No reviews yet
Compared with others in Databases & datasetsi
- More stars than 0% of the other 1183 servers in this category
- Published to the registry more recently than 13% of the other 1183 servers in this category
- Basic checks equal to or better than 100% of the other 1183 servers in this category
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
Common questions
Is Tokenlite Mysql MCP safe?
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
What keys or codes does it need?
You need to fill in: DB_PASSWORD, DB_NAME
Does it run on my computer or in the cloud?
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
Is it still maintained?
The GitHub repo last changed 2 months ago, and the latest version (4.1.0) reached the registry 5 months ago.
Which apps can use it?
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
What can I use instead?
In the same category: Dbx, MCP Toolbox for Databases, MCP Toolbox for Databases
Others in the same category
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
README from the maker
Open the README
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
TokenLite MySQL MCP
A robust and secure MySQL database server implemented under Anthropic's Model Context Protocol (MCP). Designed specifically to solve the shortcomings of current generic MCP servers through Graceful Degradation, Active Performance Protection, and Aggressive Token Optimization.
🌟 Core Pillars
- Safe-Query Optimizer (AST & EXPLAIN): Protects production databases by pre-analyzing queries. Blocks unindexed Full Table Scans that exceed configurable thresholds and injects strict
LIMITclauses automatically at the AST level. - Granular AST-Based Write Permissions: By default, TokenLite is 100% Read-Only. You can surgically enable specific write operations (INSERT, UPDATE, DELETE, DDL) via environment variables. The firewall uses strict AST parsing to prevent SQL injection and comment-bypass attacks, and strictly prohibits privilege escalation commands (like
GRANTorCALL). - Session-Level Defense in Depth: If the server is configured in strict Read-Only mode (all write variables disabled), TokenLite injects
SET SESSION TRANSACTION READ ONLYdirectly into the connection pool sockets. This guarantees that even if a theoretical bypass exists in the AST parser, the MySQL engine itself will physically reject any data modification. - Business Intelligence Injection: Bridges the gap between raw data and company logic. Automatically attaches semantic dictionaries (
metadata.json) to database schema exploration, and exposes Semantic Templates via the official MCP Prompts API (templates.json) so the LLM uses pre-approved analytical queries instead of hallucinating them. - Graph-Based Semantic Schema: Avoids sending giant schemas to the LLM that saturate the context window. When a table is searched, the engine uses heuristics to deduce implicit relationships and packages the exact "Auto-Join Context".
- CSV Token Compression: Database results are efficiently transformed into tabular CSV markdown with unambiguous NULL representation (
∅), saving up to 50% of Output Tokens compared to verbose JSON. When results hit the appliedLIMIT, a-- rows: N (truncated at LIMIT X)footer is appended so the LLM does not assume a complete dataset. - MCP Completions: Table names and template keywords support the official
completions/completecapability for resource templates (mysql://tables/{name}) and thequery_templatesprompt.
📋 Requirements
- Node.js v20 or higher
- MySQL 5.7 or higher (MySQL 8.0+ recommended)
- A MySQL user with
SELECTandSHOW VIEWprivileges.
🚀 Installation & Usage
You can use this MCP server with any compatible client. Below are the configurations for the most popular ones.
1. Claude Desktop
Edit your claude_desktop_config.json (usually located at %APPDATA%\Claude\claude_desktop_config.json on Windows or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS) and add the following:
Using NPX (Recommended)
{
"mcpServers": { "tokenlite-mysql": { "command": "npx", "args": [ "-y", "@andezdev/tokenlite-mysql-mcp" ], "env": { "DB_HOST": "localhost", "DB_PORT": "3306", "DB_USER": "your_db_user", "DB_PASSWORD": "your_password", "DB_NAME": "your_database", "MCP_EXPLAIN_MAX_SCAN_ROWS": "1000", "MCP_QUERY_ROW_LIMIT": "500", "MCP_SAFE_QUERY_ENABLE_BLOCKING": "true" } } } }
2. Claude Code (CLI)
You can easily integrate this server globally into Claude Code:
claude mcp add tokenlite_mysql \
-e DB_HOST="127.0.0.1" \ -e DB_PORT="3306" \ -e DB_USER="root" \ -e DB_PASSWORD="your_password" \ -e DB_NAME="your_database" \ -- npx -y @andezdev/tokenlite-mysql-mcp
3. Cursor IDE
To use within Cursor IDE:
- Open Cursor Settings > Features > MCP.
- Click + Add New MCP Server.
- Set the Type to
command. - Name it
tokenlite-mysql. - Set the command to:
npx -y @andezdev/tokenlite-mysql-mcp
*(Note: Cursor handles environment variables directly in the IDE UI, make sure to add your DB credentials there).*
⚙️ Environment Variables Reference
Understanding Query Limits (two independent knobs)
execute_safe_query applies two separate limits. Do not confuse them:
| Variable | What it controls | Default | Example |
|---|---|---|---|
MCP_EXPLAIN_MAX_SCAN_ROWS | Security gate: blocks queries whose EXPLAIN plan shows a full table scan (type: ALL) with more estimated rows than this threshold. The query is rejected *before* execution. | 1000 | 5000 allows scanning tables up to ~5000 rows without an index |
MCP_QUERY_ROW_LIMIT | Result cap: max rows returned to the LLM. Injected as LIMIT at the AST level. When reached, CSV includes -- rows: N (truncated at LIMIT X). | 500 | 1000 returns up to 1000 rows per SELECT |
Deprecated alias: MCP_SAFE_QUERY_MAX_ROWS still works as a fallback for MCP_EXPLAIN_MAX_SCAN_ROWS only. It does not control the result LIMIT.
Worked example with MCP_EXPLAIN_MAX_SCAN_ROWS=5000 and MCP_QUERY_ROW_LIMIT=500 on a customers table (~1502 rows):
SELECT * FROM customers→ passes EXPLAIN (1502 < 5000), executes withLIMIT 500, returns 500 rows + truncation footer.- Same config but table has 8000 rows → blocked by EXPLAIN before execution.
| Variable | Description | Default | Required |
|---|---|---|---|
DB_HOST | MySQL Host address | localhost | No |
DB_PORT | MySQL Port | 3306 | No |
DB_USER | MySQL Username | root | No |
DB_PASSWORD | MySQL Password | '' | No |
DB_NAME | MySQL Database name | test | Yes |
MCP_EXPLAIN_MAX_SCAN_ROWS | EXPLAIN guardrail: max estimated rows for unindexed full table scans before blocking. | 1000 | No |
MCP_QUERY_ROW_LIMIT | Max rows returned per SELECT (AST-injected LIMIT + truncation footer). | 500 | No |
MCP_SAFE_QUERY_ENABLE_BLOCKING | Enable or disable the EXPLAIN guardrail. | true | No |
MCP_METADATA_PATH | Absolute path to your custom metadata.json dictionary. | (Disabled) | No |
MCP_TEMPLATES_PATH | Absolute path to your custom templates.json queries. | (Disabled) | No |
TOOL_PREFIX | Prefix for tool names (useful when running multiple instances). | Derived from DB_NAME (e.g., mydb_). Random fallback only if DB_NAME is unset. | No |
MCP_RATE_LIMIT_RPM | Max tool invocations per minute (sliding window). Set to 0 to disable. | 60 | No |
MYSQL_QUERY_TIMEOUT | Max execution time for a query (in ms). Aborts heavy queries to protect against DoS. | 15000 | No |
MYSQL_CONNECTION_LIMIT | Max concurrent pool connections. | 10 | No |
MYSQL_CONNECT_TIMEOUT | Max time to wait for a socket to establish (in ms). | 10000 | No |
MYSQL_RETRY_ATTEMPTS | Max retries on transient connection errors (ECONNREFUSED, PROTOCOL_CONNECTION_LOST, etc.). | 3 | No |
MYSQL_RETRY_DELAY_MS | Base delay (ms) for exponential backoff between retries (1s, 2s, 4s...). | 1000 | No |
MYSQL_QUEUE_LIMIT | Max queued requests when all pool connections are busy. Prevents unbounded growth if MySQL is down. | 50 | No |
MCP_DDL_CACHE_TTL | Time-to-live (in seconds) for cached DDL statements. Reduces latency on repeated search_schema calls. Invalidated by refresh_schema. | 60 | No |
MCP_LOG_LEVEL | Minimum severity for MCP log notifications: debug, info, notice, warning, error, critical, alert, emergency. | info | No |
ALLOW_INSERT_OPERATION | Enable INSERT and REPLACE queries. | false | No |
ALLOW_UPDATE_OPERATION | Enable UPDATE queries. | false | No |
ALLOW_DELETE_OPERATION | Enable DELETE and TRUNCATE queries. | false | No |
ALLOW_DDL_OPERATION | Enable Data Definition Language (CREATE, ALTER, DROP, RENAME). | false | No |
DB_SSL | Enable TLS for the MySQL connection (recommended for managed/cloud databases). | false | No |
DB_SSL_REJECT_UNAUTHORIZED | Reject self-signed or untrusted TLS certificates when DB_SSL=true. | true | No |
🛡️ Business Intelligence Features (Opt-in)
TokenLite can teach the LLM about your company's business rules. To enable this, map the absolute paths of two JSON files via .env or your MCP client config:
metadata.json (Semantic Dictionary)
Translate integer statuses or internal jargon so the LLM understands the data.
{
"orders.status": { "pending": "The order is waiting for payment validation", "shipped": "The order has left the warehouse" } }
Custom Relationships
Define FK mappings the heuristic engine can't auto-detect (e.g., created_by → users). Add a _relationships key to your metadata.json:
{
"orders.status": { "pending": "...", "shipped": "..." }, "_relationships": { "orders.created_by": "users.id", "categories.parent_id": "categories.id" } }
These are treated as authoritative (not heuristic) and take priority over automatic detection.
The heuristic engine also assigns a confidence score (0–100) to each inferred FK based on name matching (+40), data type validation (+30), primary key verification (+20), and index presence (+10). Only FKs scoring ≥70 are accepted.
templates.json (Pre-approved SQL)
Stop the LLM from hallucinating complex metrics by providing vetted templates.
[
{ "name": "Customer Lifetime Value (LTV)", "description": "Calculates total revenue generated by delivered orders per customer.", "sql": "SELECT c.id, SUM(oi.price) FROM customers c JOIN orders o... WHERE o.status='delivered'" } ]
📈 Benchmarks & Token Savings
TokenLite includes an automated benchmark suite using o200k_base tokenization (GPT-4o/GPT-5 standard) to measure efficiency improvements. Token counts are approximate — Claude 4.x uses a proprietary tokenizer; actual counts may vary slightly.
To run the benchmark in your own environment:
npm run benchmark
Baseline: Standard MCP Pattern
The benchmark compares against the standard pattern used by generic MySQL MCP servers: full schema exposed as information_schema.columns in pretty-printed JSON, and query results returned as JSON.stringify(rows, null, 2) with execution time metadata.
1. Schema Discovery (Input Tokens)
Standard MCP servers dump the entire schema to the LLM. For large databases, this consumes thousands of input tokens on every turn. TokenLite's relational graph serves a localized Auto-Join Context (target table + direct parent tables + direct child tables).
| Scenario | Standard MCP Pattern | TokenLite | 📉 Savings |
|---|---|---|---|
| Mock (50 tables, Enterprise CRM) | 15,566 tokens | 883 tokens | 94.3% |
| Live (9 tables, Test DB) | 2,208 tokens | 531 tokens | 75.9% |
Savings scale with the number of tables: the more tables in the database, the higher the savings because the standard pattern dumps all of them while TokenLite only fetches the target + 1-hop relationships.
2. Query Result Payloads (Output Tokens)
TokenLite converts raw database rows to a dense, structured CSV layout. This avoids JSON syntax overhead (brackets, braces, repeated keys) and compresses the output payload returned to the LLM. When the row count reaches the server-injected LIMIT, results include a truncation footer (e.g. -- rows: 500 (truncated at LIMIT 500)) so agents know more data may exist.
Mock data (varied: NULLs, long descriptions, mixed lengths):
| Rows Returned | Standard MCP Pattern (Tokens) | TokenLite CSV (Tokens) | 📉 Output Savings (%) |
|---|---|---|---|
| 10 rows |