TokenLite MySQL MCP
A robust MySQL server for MCP that ensures safety through AST-based query optimization, write permissions, and session-level read-only enforcement. It bridges raw data with business logic via semantic dictionaries and templates, while optimizing token usage through CSV compression and intelligent schema context packaging.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Execute safe, pre-analyzed SQL queries with automatic LIMIT injection
- Enforce strict read-only access with AST-based write permission controls
- Generate semantic schema context to reduce LLM context window usage
- Compress database results into CSV format to save output tokens
Source and maintenance
- Last repository push
- Latest release
- tokenlite-mysql-mcp-v4.1.0
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
@andezdev/tokenlite-mysql-mcp 4.1.0
{
"version": "4.1.0",
"transport": "stdio",
"identifier": "@andezdev/tokenlite-mysql-mcp",
"registryType": "npm",
"environmentVariables": [
{
"name": "DB_HOST",
"format": "string",
"description": "MySQL Host address (defaults to localhost)"
},
{
"name": "DB_PORT",
"format": "string",
"description": "MySQL Port (defaults to 3306)"
},
{
"name": "DB_USER",
"format": "string",
"description": "MySQL Username (defaults to root)"
},
{
"name": "DB_PASSWORD",
"format": "string",
"description": "MySQL Password (defaults to empty string)"
},
{
"name": "DB_NAME",
"format": "string",
"isRequired": true,
"description": "MySQL Database name"
},
{
"name": "MCP_EXPLAIN_MAX_SCAN_ROWS",
"format": "string",
"description": "EXPLAIN guardrail: max estimated rows for unindexed full table scans before blocking (defaults to 1000). MCP_SAFE_QUERY_MAX_ROWS is a deprecated alias."
},
{
"name": "MCP_QUERY_ROW_LIMIT",
"format": "string",
"description": "Max rows returned per SELECT; injected as LIMIT at the AST level (defaults to 500)"
},
{
"name": "MCP_SAFE_QUERY_MAX_ROWS",
"format": "string",
"description": "Deprecated alias for MCP_EXPLAIN_MAX_SCAN_ROWS"
},
{
"name": "MCP_SAFE_QUERY_ENABLE_BLOCKING",
"format": "string",
"description": "Enable or disable the EXPLAIN guardrail (defaults to true)"
},
{
"name": "MCP_METADATA_PATH",
"format": "string",
"description": "Absolute path to your custom metadata.json dictionary"
},
{
"name": "MCP_TEMPLATES_PATH",
"format": "string",
"description": "Absolute path to your custom templates.json pre-approved queries"
},
{
"name": "TOOL_PREFIX",
"format": "string",
"description": "Prefix for tool names, e.g., to run multiple instances (defaults to DB_NAME, e.g. mydb_). Only set to override."
},
{
"name": "MCP_RATE_LIMIT_RPM",
"format": "string",
"description": "Max tool invocations per minute, sliding window (defaults to 60). Set to 0 to disable."
},
{
"name": "MYSQL_QUERY_TIMEOUT",
"format": "string",
"description": "Max execution time for a query in milliseconds to protect against DoS (defaults to 15000)"
},
{
"name": "MYSQL_CONNECTION_LIMIT",
"format": "string",
"description": "Max concurrent pool connections (defaults to 10)"
},
{
"name": "MYSQL_CONNECT_TIMEOUT",
"format": "string",
"description": "Max time to wait for a connection socket to establish in milliseconds (defaults to 10000)"
},
{
"name": "MYSQL_RETRY_ATTEMPTS",
"format": "string",
"description": "Max retries on transient connection errors (defaults to 3)"
},
{
"name": "MYSQL_RETRY_DELAY_MS",
"format": "string",
"description": "Base delay in milliseconds for exponential backoff between retries (defaults to 1000)"
},
{
"name": "MYSQL_QUEUE_LIMIT",
"format": "string",
"description": "Max queued requests when all pool connections are busy to prevent memory leak (defaults to 50)"
},
{
"name": "MCP_DDL_CACHE_TTL",
"format": "string",
"description": "Time-to-live in seconds for cached DDL statements (defaults to 60)"
},
{
"name": "MCP_LOG_LEVEL",
"format": "string",
"description": "Minimum severity level for MCP log notifications (defaults to info). Levels: debug, info, notice, warning, error, critical, alert, emergency"
},
{
"name": "ALLOW_INSERT_OPERATION",
"format": "string",
"description": "Enable INSERT and REPLACE queries (defaults to false)"
},
{
"name": "ALLOW_UPDATE_OPERATION",
"format": "string",
"description": "Enable UPDATE queries (defaults to false)"
},
{
"name": "ALLOW_DELETE_OPERATION",
"format": "string",
"description": "Enable DELETE and TRUNCATE queries (defaults to false)"
},
{
"name": "ALLOW_DDL_OPERATION",
"format": "string",
"description": "Enable Data Definition Language queries like CREATE, ALTER, DROP, RENAME (defaults to false)"
},
{
"name": "DB_SSL",
"format": "string",
"description": "Enable TLS for the MySQL connection (defaults to false)"
},
{
"name": "DB_SSL_REJECT_UNAUTHORIZED",
"format": "string",
"description": "Reject self-signed or untrusted TLS certificates when DB_SSL is true (defaults to true)"
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"tokenlite-mysql-mcp": {
"command": "npx",
"args": [
"-y",
"@andezdev/tokenlite-mysql-mcp@4.1.0"
],
"env": {
"DB_HOST": "<YOUR_DB_HOST>",
"DB_PORT": "<YOUR_DB_PORT>",
"DB_USER": "<YOUR_DB_USER>",
"DB_PASSWORD": "<YOUR_DB_PASSWORD>",
"DB_NAME": "<YOUR_DB_NAME>",
"MCP_EXPLAIN_MAX_SCAN_ROWS": "<YOUR_MCP_EXPLAIN_MAX_SCAN_ROWS>",
"MCP_QUERY_ROW_LIMIT": "<YOUR_MCP_QUERY_ROW_LIMIT>",
"MCP_SAFE_QUERY_MAX_ROWS": "<YOUR_MCP_SAFE_QUERY_MAX_ROWS>",
"MCP_SAFE_QUERY_ENABLE_BLOCKING": "<YOUR_MCP_SAFE_QUERY_ENABLE_BLOCKING>",
"MCP_METADATA_PATH": "<YOUR_MCP_METADATA_PATH>",
"MCP_TEMPLATES_PATH": "<YOUR_MCP_TEMPLATES_PATH>",
"TOOL_PREFIX": "<YOUR_TOOL_PREFIX>",
"MCP_RATE_LIMIT_RPM": "<YOUR_MCP_RATE_LIMIT_RPM>",
"MYSQL_QUERY_TIMEOUT": "<YOUR_MYSQL_QUERY_TIMEOUT>",
"MYSQL_CONNECTION_LIMIT": "<YOUR_MYSQL_CONNECTION_LIMIT>",
"MYSQL_CONNECT_TIMEOUT": "<YOUR_MYSQL_CONNECT_TIMEOUT>",
"MYSQL_RETRY_ATTEMPTS": "<YOUR_MYSQL_RETRY_ATTEMPTS>",
"MYSQL_RETRY_DELAY_MS": "<YOUR_MYSQL_RETRY_DELAY_MS>",
"MYSQL_QUEUE_LIMIT": "<YOUR_MYSQL_QUEUE_LIMIT>",
"MCP_DDL_CACHE_TTL": "<YOUR_MCP_DDL_CACHE_TTL>",
"MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>",
"ALLOW_INSERT_OPERATION": "<YOUR_ALLOW_INSERT_OPERATION>",
"ALLOW_UPDATE_OPERATION": "<YOUR_ALLOW_UPDATE_OPERATION>",
"ALLOW_DELETE_OPERATION": "<YOUR_ALLOW_DELETE_OPERATION>",
"ALLOW_DDL_OPERATION": "<YOUR_ALLOW_DDL_OPERATION>",
"DB_SSL": "<YOUR_DB_SSL>",
"DB_SSL_REJECT_UNAUTHORIZED": "<YOUR_DB_SSL_REJECT_UNAUTHORIZED>"
}
}
}
}Cline
{
"mcpServers": {
"tokenlite-mysql-mcp": {
"command": "npx",
"args": [
"-y",
"@andezdev/tokenlite-mysql-mcp@4.1.0"
],
"env": {
"DB_HOST": "<YOUR_DB_HOST>",
"DB_PORT": "<YOUR_DB_PORT>",
"DB_USER": "<YOUR_DB_USER>",
"DB_PASSWORD": "<YOUR_DB_PASSWORD>",
"DB_NAME": "<YOUR_DB_NAME>",
"MCP_EXPLAIN_MAX_SCAN_ROWS": "<YOUR_MCP_EXPLAIN_MAX_SCAN_ROWS>",
"MCP_QUERY_ROW_LIMIT": "<YOUR_MCP_QUERY_ROW_LIMIT>",
"MCP_SAFE_QUERY_MAX_ROWS": "<YOUR_MCP_SAFE_QUERY_MAX_ROWS>",
"MCP_SAFE_QUERY_ENABLE_BLOCKING": "<YOUR_MCP_SAFE_QUERY_ENABLE_BLOCKING>",
"MCP_METADATA_PATH": "<YOUR_MCP_METADATA_PATH>",
"MCP_TEMPLATES_PATH": "<YOUR_MCP_TEMPLATES_PATH>",
"TOOL_PREFIX": "<YOUR_TOOL_PREFIX>",
"MCP_RATE_LIMIT_RPM": "<YOUR_MCP_RATE_LIMIT_RPM>",
"MYSQL_QUERY_TIMEOUT": "<YOUR_MYSQL_QUERY_TIMEOUT>",
"MYSQL_CONNECTION_LIMIT": "<YOUR_MYSQL_CONNECTION_LIMIT>",
"MYSQL_CONNECT_TIMEOUT": "<YOUR_MYSQL_CONNECT_TIMEOUT>",
"MYSQL_RETRY_ATTEMPTS": "<YOUR_MYSQL_RETRY_ATTEMPTS>",
"MYSQL_RETRY_DELAY_MS": "<YOUR_MYSQL_RETRY_DELAY_MS>",
"MYSQL_QUEUE_LIMIT": "<YOUR_MYSQL_QUEUE_LIMIT>",
"MCP_DDL_CACHE_TTL": "<YOUR_MCP_DDL_CACHE_TTL>",
"MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>",
"ALLOW_INSERT_OPERATION": "<YOUR_ALLOW_INSERT_OPERATION>",
"ALLOW_UPDATE_OPERATION": "<YOUR_ALLOW_UPDATE_OPERATION>",
"ALLOW_DELETE_OPERATION": "<YOUR_ALLOW_DELETE_OPERATION>",
"ALLOW_DDL_OPERATION": "<YOUR_ALLOW_DDL_OPERATION>",
"DB_SSL": "<YOUR_DB_SSL>",
"DB_SSL_REJECT_UNAUTHORIZED": "<YOUR_DB_SSL_REJECT_UNAUTHORIZED>"
}
}
}
}VS Code
{
"servers": {
"tokenlite-mysql-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@andezdev/tokenlite-mysql-mcp@4.1.0"
],
"env": {
"DB_HOST": "<YOUR_DB_HOST>",
"DB_PORT": "<YOUR_DB_PORT>",
"DB_USER": "<YOUR_DB_USER>",
"DB_PASSWORD": "<YOUR_DB_PASSWORD>",
"DB_NAME": "<YOUR_DB_NAME>",
"MCP_EXPLAIN_MAX_SCAN_ROWS": "<YOUR_MCP_EXPLAIN_MAX_SCAN_ROWS>",
"MCP_QUERY_ROW_LIMIT": "<YOUR_MCP_QUERY_ROW_LIMIT>",
"MCP_SAFE_QUERY_MAX_ROWS": "<YOUR_MCP_SAFE_QUERY_MAX_ROWS>",
"MCP_SAFE_QUERY_ENABLE_BLOCKING": "<YOUR_MCP_SAFE_QUERY_ENABLE_BLOCKING>",
"MCP_METADATA_PATH": "<YOUR_MCP_METADATA_PATH>",
"MCP_TEMPLATES_PATH": "<YOUR_MCP_TEMPLATES_PATH>",
"TOOL_PREFIX": "<YOUR_TOOL_PREFIX>",
"MCP_RATE_LIMIT_RPM": "<YOUR_MCP_RATE_LIMIT_RPM>",
"MYSQL_QUERY_TIMEOUT": "<YOUR_MYSQL_QUERY_TIMEOUT>",
"MYSQL_CONNECTION_LIMIT": "<YOUR_MYSQL_CONNECTION_LIMIT>",
"MYSQL_CONNECT_TIMEOUT": "<YOUR_MYSQL_CONNECT_TIMEOUT>",
"MYSQL_RETRY_ATTEMPTS": "<YOUR_MYSQL_RETRY_ATTEMPTS>",
"MYSQL_RETRY_DELAY_MS": "<YOUR_MYSQL_RETRY_DELAY_MS>",
"MYSQL_QUEUE_LIMIT": "<YOUR_MYSQL_QUEUE_LIMIT>",
"MCP_DDL_CACHE_TTL": "<YOUR_MCP_DDL_CACHE_TTL>",
"MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>",
"ALLOW_INSERT_OPERATION": "<YOUR_ALLOW_INSERT_OPERATION>",
"ALLOW_UPDATE_OPERATION": "<YOUR_ALLOW_UPDATE_OPERATION>",
"ALLOW_DELETE_OPERATION": "<YOUR_ALLOW_DELETE_OPERATION>",
"ALLOW_DDL_OPERATION": "<YOUR_ALLOW_DDL_OPERATION>",
"DB_SSL": "<YOUR_DB_SSL>",
"DB_SSL_REJECT_UNAUTHORIZED": "<YOUR_DB_SSL_REJECT_UNAUTHORIZED>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"tokenlite-mysql-mcp": {
"command": "npx",
"args": [
"-y",
"@andezdev/tokenlite-mysql-mcp@4.1.0"
],
"env": {
"DB_HOST": "<YOUR_DB_HOST>",
"DB_PORT": "<YOUR_DB_PORT>",
"DB_USER": "<YOUR_DB_USER>",
"DB_PASSWORD": "<YOUR_DB_PASSWORD>",
"DB_NAME": "<YOUR_DB_NAME>",
"MCP_EXPLAIN_MAX_SCAN_ROWS": "<YOUR_MCP_EXPLAIN_MAX_SCAN_ROWS>",
"MCP_QUERY_ROW_LIMIT": "<YOUR_MCP_QUERY_ROW_LIMIT>",
"MCP_SAFE_QUERY_MAX_ROWS": "<YOUR_MCP_SAFE_QUERY_MAX_ROWS>",
"MCP_SAFE_QUERY_ENABLE_BLOCKING": "<YOUR_MCP_SAFE_QUERY_ENABLE_BLOCKING>",
"MCP_METADATA_PATH": "<YOUR_MCP_METADATA_PATH>",
"MCP_TEMPLATES_PATH": "<YOUR_MCP_TEMPLATES_PATH>",
"TOOL_PREFIX": "<YOUR_TOOL_PREFIX>",
"MCP_RATE_LIMIT_RPM": "<YOUR_MCP_RATE_LIMIT_RPM>",
"MYSQL_QUERY_TIMEOUT": "<YOUR_MYSQL_QUERY_TIMEOUT>",
"MYSQL_CONNECTION_LIMIT": "<YOUR_MYSQL_CONNECTION_LIMIT>",
"MYSQL_CONNECT_TIMEOUT": "<YOUR_MYSQL_CONNECT_TIMEOUT>",
"MYSQL_RETRY_ATTEMPTS": "<YOUR_MYSQL_RETRY_ATTEMPTS>",
"MYSQL_RETRY_DELAY_MS": "<YOUR_MYSQL_RETRY_DELAY_MS>",
"MYSQL_QUEUE_LIMIT": "<YOUR_MYSQL_QUEUE_LIMIT>",
"MCP_DDL_CACHE_TTL": "<YOUR_MCP_DDL_CACHE_TTL>",
"MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>",
"ALLOW_INSERT_OPERATION": "<YOUR_ALLOW_INSERT_OPERATION>",
"ALLOW_UPDATE_OPERATION": "<YOUR_ALLOW_UPDATE_OPERATION>",
"ALLOW_DELETE_OPERATION": "<YOUR_ALLOW_DELETE_OPERATION>",
"ALLOW_DDL_OPERATION": "<YOUR_ALLOW_DDL_OPERATION>",
"DB_SSL": "<YOUR_DB_SSL>",
"DB_SSL_REJECT_UNAUTHORIZED": "<YOUR_DB_SSL_REJECT_UNAUTHORIZED>"
}
}
}
}Let your agent find its tools
Find servers like TokenLite MySQL MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.