singlestore-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SINGLESTORE_URL | No | Alternative to SINGLESTORE_HOST: user:password@host:port/database | |
| SINGLESTORE_HOST | No | The SingleStore host. Either this or SINGLESTORE_URL must be set. | |
| SINGLESTORE_PORT | No | The SingleStore port. Defaults to 3306. | 3306 |
| SINGLESTORE_USER | No | The SingleStore user. Defaults to root. | root |
| SINGLESTORE_DATABASE | No | Default database for queries. | |
| SINGLESTORE_PASSWORD | No | The SingleStore password. | |
| SINGLESTORE_SSL_DISABLED | No | Set to 'true' for a self-managed cluster without TLS configured. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pipeline_monitorA | Open an interactive monitor of SingleStore pipelines. |
| pipeline_monitor_dataC | Refresh data for the Pipeline Monitor app. |
| pipeline_errorsC | Most recent errors for one pipeline, for the Pipeline Monitor app. |
| query_gridA | Run a read-only SQL query and show the results in an interactive grid. |
| query_grid_rowsB | Full rows of an earlier query_grid result, for the Query Results Grid app. |
| schema_explorerA | Open an interactive Schema Explorer for the SingleStore cluster. |
| schema_explorer_databasesA | List databases with table/view counts, for the Schema Explorer app. |
| schema_explorer_tablesB | Tables and views of one database with storage type, rows and size, for the Schema Explorer app. |
| schema_explorer_tableB | Columns, keys, DDL and stats of one table, for the Schema Explorer app. |
| schema_explorer_previewB | First rows of a table or view, for the Schema Explorer app. |
| cleanup_work_tablesA | Open the Schema Explorer's Clean-up panel for leftover SAS work tables. |
| schema_explorer_cleanup_scanA | Find leftover work tables by name pattern (and age), for the Schema Explorer's Clean-up panel. |
| schema_explorer_cleanup_settingsC | Read (or change the dry-run default of) the Clean-up settings, plus recent log entries. |
| schema_explorer_cleanup_dropA | Drop the selected work tables one statement at a time (DROP TABLE IF EXISTS), for the Clean-up panel. |
| cluster_monitorA | Open a live monitor of the SingleStore cluster. |
| cluster_monitor_dataC | Refresh data (including CPU history) for the Cluster Monitor app. |
| app_pageB | HTML of one of this server's app pages (the workspace loads its views with this). |
| sql_editorA | Open the SingleStore workspace: an interactive SQL editor plus views. |
| sql_editor_queryA | Run a read-only statement from the SQL Editor app. |
| sql_editor_executeB | Run any single statement the user confirmed in the SQL Editor app (writes and DDL included). |
| files_browseA | List a folder for the file browser: subfolders and .sql (kind="sql") or .ipynb (kind="notebook") files. |
| sql_editor_filesB | The .sql files in the SQL Editor's folder, newest first. |
| sql_editor_open_fileB | Read one .sql file from the SQL Editor's folder. |
| sql_editor_save_fileA | Save the editor's SQL as a .sql file in the SQL Editor's folder. |
| sql_editor_inboxB | Replies sent to one SQL Editor's chat panel, newer than |
| sql_editor_assistantC | Whether the SQL Editor can answer questions in the app (Claude Code installed). |
| sql_editor_askC | Answer a SQL Editor chat question in the app; the reply arrives in the editor's inbox. |
| sql_editor_assistant_warmA | Start the editor's assistant process ahead of the first question (no model call). |
| sql_editor_ask_cancelB | Stop the in-app answer that is running for one SQL Editor. |
| sql_editor_schemaB | Tables, columns and routines of one database, for the SQL Editor's tree and autocomplete. |
| notebookA | Open a SingleStore notebook: SQL and Python cells on a Jupyter kernel. |
| notebook_environmentB | Status of the notebook Python environment (and install progress). |
| notebook_environment_installA | Create the notebook Python environment (ipykernel, pandas, matplotlib, singlestoredb) with uv. |
| notebook_packagesB | Packages installed in the notebook Python environment (name, version, summary, core). |
| notebook_packages_installB | Install packages (space-separated names with optional version pins) into the notebook environment. |
| notebook_kernel_startA | Start the notebook's Python kernel ahead of the first cell (no code runs). |
| notebook_kernel_stateB | The notebook kernel's state: stopped, starting, idle, busy, error or dead. |
| notebook_kernel_controlB | Interrupt, restart or shut down the notebook's kernel (action: interrupt | restart | shutdown). |
| notebook_runA | Run one notebook cell in its kernel; returns a run id to poll with notebook_poll. |
| notebook_pollB | New output of a running (or finished) cell since output index |
| notebook_filesB | The .ipynb notebooks in the SQL folder, newest first. |
| notebook_openB | Read one .ipynb notebook from the SQL folder. |
| notebook_saveC | Save a notebook (nbformat 4 JSON) as a .ipynb file in the SQL folder. |
| notebook_askA | Ask the in-app assistant about the notebook; the reply arrives in the notebook's inbox (sql_editor_inbox). |
| notebook_assistant_warmA | Start the notebook's assistant process ahead of the first question (no model call). |
| connections_windowA | Open the Connections window: add, edit, test and switch between saved SingleStore connections. |
| connections_stateB | Saved connections, the active one and where passwords are stored. |
| connection_saveB | Create or update a saved connection. |
| connection_deleteA | Delete a saved connection and its stored password. |
| connection_testC | Try a connection: a saved one by |
| connection_activateA | Make a saved connection the active one, and test it (token connections may need a sign-in first). |
| connection_sso_sign_inA | Browser sign-in for SSO connections (Helios or Microsoft Entra ID): open the sign-in page in the user's browser and wait for the token (up to 2 min). |
| sas_viya_stateB | SAS Viya settings and sign-in status (for SAS cells in notebooks). |
| sas_viya_saveC | Save the SAS Viya address, compute context, certificate check and SingleStore libref. |
| sas_viya_sign_inA | Without |
| sas_viya_sign_outC | Forget the SAS Viya sign-in. |
| sas_viya_testA | Check the SAS Viya sign-in and compute context (lists the compute contexts; starts no SAS session). |
| connection_helios_caA | Download SingleStore's CA bundle (needed for Helios / TLS) to ~/.singlestore-mcp once; returns its path. |
| query_historyA | Open the Query History: every finished query on the cluster with its runtime, user, database and result, filtered by minimum runtime (1 s and up). Select a query in the app for tuning recommendations. |
| query_history_dataC | Refresh the Query History list. |
| query_history_eventB | One query from the history with its full SQL and details. |
| query_history_tuningB | Tuning recommendations for one query from the history (EXPLAIN, plan cache statistics, table design). |
| query_history_advisorB | Table-design advice from the whole query history: sort keys, shard keys, reference tables, indexes, statistics, plus workload findings. EXPLAINs every distinct query (without running it). |
| query_advisor_reportB | Recommend table design changes from the whole query history: SORT KEY and SHARD KEY per table, REFERENCE table candidates, indexes and missing statistics, plus workload issues (huge results, SELECT *, failures). |
| query_history_assistantC | Whether Claude can answer in the app (Claude Code installed). |
| query_history_askB | Ask Claude, in the app, how to tune one query from the history; poll query_history_answer for the reply. |
| query_history_answerC | Claude's in-app answer for one query (or its progress while it works). |
| query_history_ask_cancelC | Stop Claude's in-app answer for one query. |
| query_history_assistant_warmA | Start the screen's Claude process ahead of the first question (no model call). |
| alertsA | Open the Alerts view: alerts the server raised while watching the SingleStore cluster in the background (queries running too long, slow or failed queries, failed pipeline batches / pipeline errors, node memory and disk thresholds, nodes not online), with the rules to edit and acknowledge / clear buttons. |
| alerts_dataB | Alerts, rules and checker status for the Alerts view (no cluster queries). |
| alerts_badgeA | Unacknowledged alert count for the workspace rail (in-memory state only; cheap to poll). |
| alerts_updateB | Change alert rules ({name: {enabled, seconds, percent}}) and settings ({interval_s, notify}). |
| alerts_ackB | Acknowledge alerts by id, or all of them. |
| alerts_clearB | Remove alerts from the list (all, or only the acknowledged ones). |
| alerts_check_nowA | Run every enabled check now (read-only queries) and return the new state. |
| query_history_trendsB | Daily / hourly query counts, runtime, failures and p95 from the local copy of the history, plus query shapes that got slower than the week before. |
| query_history_trend_runsB | The queries behind one Trends bar (a day "YYYY-MM-DD" or an hour "YYYY-MM-DD HH"), slowest first. |
| query_history_compare_candidatesB | The heaviest read-only queries in the history that read |
| query_history_compare_startB | Run the selected candidate queries against the original and the new table (wrapped in COUNT(*)),
alternating, |
| query_history_compare_statusC | Progress and results of a before/after comparison. |
| query_history_compare_cancelC | Stop a running comparison (the statement running now is cancelled too). |
| run_sqlA | Run one arbitrary SQL statement against SingleStore and return the results. |
| list_databasesA | List all databases visible to the connected user. |
| list_tablesA | List tables (and views) in a database. |
| describe_tableA | Show column definitions for a table. |
| list_pipelinesA | List all pipelines in a database and their current state (Running/Stopped/Error). |
| pipeline_statusA | Get the current state of one pipeline by name. |
| get_pipeline_ddlA | Get the full CREATE PIPELINE statement that reproduces an existing pipeline. |
| create_pipelineA | Create a new pipeline from a full CREATE PIPELINE statement. |
| alter_pipelineA | Alter an existing pipeline from a full ALTER PIPELINE statement. |
| start_pipelineA | Start a pipeline so it begins (or resumes) loading data. |
| stop_pipelineA | Stop a running pipeline. |
| drop_pipelineA | Delete a pipeline. Running pipelines are stopped automatically before being dropped. |
| test_pipelineA | Test an existing pipeline: extract and transform data without loading it into the table. |
| browser_linkA | Get a link that opens one of the interactive apps full-window in the user's web browser. |
| sql_editor_replyA | Send an answer to the chat panel of an open SQL Editor app. |
| list_connectionsA | List the saved SingleStore connections (no passwords) and which one is active. |
| use_connectionA | Switch the active SingleStore connection; all tools, apps and new notebook kernels then use it. |
| restart_serverA | Restart the SingleStore MCP server so code and app changes load, without reconnecting. Open apps keep working after a reload of the app; browser links made before the restart stop working. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| workspace | Open the SingleStore Workspace (SQL editor, schema, pipelines, cluster). |
| explain_query | Explain a SingleStore query and suggest how to make it faster. |
| create_pipeline | Create a SingleStore pipeline from an S3 path, Kafka topic or other source. |
| pipeline_health | Check all pipelines for errors, stalls and lag. |
| table_report | Summarize a table: size, storage, keys and data profile. |
| restart | Restart the SingleStore MCP server to load code and app changes. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Pipeline Monitor | Live status of SingleStore pipelines with start/stop/test controls |
| Query Results Grid | Sortable, filterable, exportable grid of a read-only SQL query's results |
| Schema Explorer | Browse SingleStore databases, tables, columns, shard/sort keys, DDL and sample rows |
| Cluster Monitor | CPU, memory and disk usage per SingleStore node, and the queries running right now |
| SQL Editor | SQL editor with SingleStore autocomplete, schema tree and results |
| SingleStore Workspace | SQL editor with notebook, schema explorer, pipeline monitor and cluster monitor views |
| Notebook | SQL and Python notebook on a Jupyter kernel |
| Connections | Saved SingleStore connections and the active one |
| Query History | Every finished query on the cluster, filtered by runtime, with tuning recommendations |
| Alerts | Alerts on long-running and failed queries, pipeline failures, memory, disk and nodes |
TDQS
Scored across 100 tools
Many tools overlap: run_sql, query_grid, and sql_editor_query all execute SQL; query_history_advisor and query_advisor_report both give table-design advice; list_connections/connections_state and use_connection/connection_activate duplicate functions. Descriptions clarify some context, but with 100 tools an agent faces multiple unclear boundaries and near-duplicates.
All names use snake_case, but the pattern is inconsistent: verb_noun (list_tables), noun-only (schema_explorer), prefix_noun_action (sql_editor_save_file), and singular/plural mixing (connection_* vs connections_*). Mixed conventions but still readable.
100 tools is an extreme mismatch for an MCP server, far beyond the typical 3-15 range. Many app-specific tools likely overwhelm the agent and dilute focus.
Core SingleStore surface is well covered: SQL execution, schema listing, pipeline CRUD/start/stop/test, notebook lifecycle, query history, alerts, and connections. Minor gaps like general query cancellation, user/permission management, and backup can be worked around with run_sql, but no full admin coverage.