singlestore-mcp-server
Provides tools for interacting with SingleStore, including running SQL statements, listing databases and tables, describing table schemas, and managing SingleStore Pipelines for continuously loading data from sources like S3, Kafka, Azure, GCS, and filesystems.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@singlestore-mcp-serverList all databases and show the schema of the users table."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
singlestore-mcp-server
A local MCP server for SingleStore, meant to run in stdio mode from VS Code. It's built on two official SDKs rather than reimplementing protocol or driver code:
mcp— the official Model Context Protocol Python SDK. It handles the stdio transport, JSON-RPC framing and tool-schema generation (FastMCP).singlestoredb— SingleStore's own official Python client. It handles the actual database connection.
Everything in src/singlestore_mcp is glue: a
connection wrapper (db.py) and a set of MCP
tools (server.py), including first-class
tools for Pipelines (SingleStore's mechanism for continuously loading
data from S3/Kafka/Azure/GCS/filesystem sources), which the official
mcp-server-singlestore package does not expose as dedicated tools.
Because it connects over the plain MySQL wire protocol via host/port/user/ password, it works identically against SingleStore Helios (cloud) and self-managed SingleStore clusters — there's no dependency on the Management API or browser OAuth.
Tools
General:
run_sql— run any SQL statementlist_databases,list_tables,describe_table
Pipelines:
list_pipelines,pipeline_status,get_pipeline_ddlcreate_pipeline,alter_pipeline(take a full statement — pipeline syntax varies too much by source/format to model as parameters)start_pipeline(background orFOREGROUND, with optional batch limit)stop_pipeline,drop_pipeline,test_pipeline
Related MCP server: mcp-mysql-server
Setup
Uses uv to manage the Python environment,
pinned to Python 3.12 via .python-version:
cd singlestore-mcp-server
uv syncThis creates .venv/ and installs everything from uv.lock.
Then give the server your SingleStore credentials. Supported variables (see
.env.example):
Variable | Required | Notes |
| yes* | |
| no | default |
| no | default |
| no | |
| no | default database for queries |
| no | set |
| yes* | alternative to the above: |
* set either SINGLESTORE_HOST or SINGLESTORE_URL.
How you wire these in depends on which MCP client you're using — the two below are unrelated mechanisms, use whichever matches your setup.
Claude Code (in VS Code, or the terminal)
There are two ways to register the server with Claude Code — pick one. They're independent; you don't need both.
Option A: project-scoped, via .mcp.json (already done)
.mcp.json at the project root already registers the server,
scoped to this project only:
{
"mcpServers": {
"singlestore": {
"command": "uv",
"args": ["run", "--directory", ".", "singlestore-mcp-server"],
"env": {
"SINGLESTORE_HOST": "${SINGLESTORE_HOST}",
"SINGLESTORE_USER": "${SINGLESTORE_USER}",
"SINGLESTORE_PASSWORD": "${SINGLESTORE_PASSWORD}",
"SINGLESTORE_DATABASE": "${SINGLESTORE_DATABASE:-}",
"SINGLESTORE_SSL_DISABLED": "${SINGLESTORE_SSL_DISABLED:-false}"
}
}
}
}Claude Code doesn't have an interactive "prompt me for the secret" flow the
way VS Code Copilot Chat does. Instead, the ${VAR} syntax above is expanded
from your actual shell/OS environment when Claude Code starts, so the
value never has to live in this tracked file — set the real variables
(Windows: System Properties → Environment Variables, or
setx SINGLESTORE_PASSWORD hunter2, then restart the terminal/VS Code so it
inherits the change) and .mcp.json stays safe to commit as-is.
Once the env vars are set, open this folder in VS Code with the Claude
Code extension (or run claude from a terminal cd'd into this folder) and
the singlestore server connects automatically — there's no separate mode
toggle to flip. Because the registration lives in this folder's .mcp.json,
it's only picked up when Claude Code's working directory is this project;
opening a different folder won't see it.
Option B: user-scoped, via claude mcp add (available everywhere)
To make the server available from any project — not just when this folder
is open — register it once at the user level instead, from a terminal (the
CLI reads your already-exported SINGLESTORE_* variables and bakes their
current values into the stored config, since claude mcp add doesn't do the
${VAR} expansion .mcp.json does):
claude mcp add singlestore -s user \
-e SINGLESTORE_HOST="$SINGLESTORE_HOST" \
-e SINGLESTORE_USER="$SINGLESTORE_USER" \
-e SINGLESTORE_PASSWORD="$SINGLESTORE_PASSWORD" \
-- uv run --directory "C:\path\to\singlestore-mcp-server" singlestore-mcp-server(Swap $SINGLESTORE_HOST etc. for literal values on Windows PowerShell,
where $VAR bash-expansion inside a bash-tool call won't apply — or just
type the real host/user/password in place of those placeholders.) If you
later rotate the password, re-run the same command — claude mcp add
overwrites an existing entry with the same name.
Either way
Run /mcp inside a Claude Code session to check the singlestore server's
connection status and see the tools it exposes. If you just registered it
(either option) in a session that's already running, its tools won't appear
until you restart that session — MCP servers are only loaded at startup.
Claude Desktop
Claude Desktop (the standalone app, not Claude Code) uses a different,
app-level config file — there's no per-project .mcp.json support and no
${VAR} expansion, so credentials have to be written into the file as
literal values.
Open the config file for your OS (create it if it doesn't exist yet — or in the Claude Desktop app, go to Settings → Developer → Edit Config, which creates and opens it for you):
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Add a
singlestoreentry tomcpServers, merging with whatever's already there rather than replacing the whole file:{ "mcpServers": { "singlestore": { "command": "uv", "args": [ "run", "--directory", "C:\\Users\\norjni\\claude code\\singlestore-mcp-server", "singlestore-mcp-server" ], "env": { "SINGLESTORE_HOST": "10.104.80.126", "SINGLESTORE_USER": "admin", "SINGLESTORE_PASSWORD": "your-actual-password-here", "SINGLESTORE_SSL_DISABLED": "false" } } } }Use an absolute path for
--directory(Desktop doesn't run this from the project folder the way VS Code does), and escape backslashes as\\on Windows. On macOS the path would look like/Users/you/singlestore-mcp-server.Quit Claude Desktop completely and reopen it — config changes only take effect on a full restart, not just closing the window.
Click the "Add files, connectors, and more" (+) control in the message box, open Connectors → Manage connectors, and confirm
singlestoreis listed and connected.
Since this file stores the password in plain text, treat it like any other
credentials file — don't commit it or share it, and rotate the password if
it ever leaks. Logs for debugging a failed connection live in
%APPDATA%\Claude\logs\mcp-server-singlestore.log (Windows) or
~/Library/Logs/Claude/mcp-server-singlestore.log (macOS).
VS Code + GitHub Copilot Chat
If you're using Copilot Chat's own MCP support instead, .vscode/mcp.json
registers the server for that. Copilot Chat does support an interactive
prompt via an inputs block + ${input:<id>} placeholders (VS Code pops a
masked input box on first start and caches the value), which is the closest
equivalent to Claude Code's env-var approach above — see the comments in
that file. Switch Copilot Chat's mode dropdown to Agent for the
server's tools to show up; they're invisible in Ask/Edit mode.
Manual smoke test
SINGLESTORE_HOST=127.0.0.1 SINGLESTORE_USER=root SINGLESTORE_PASSWORD=pw \
uv run singlestore-mcp-serverThis starts the stdio server and blocks waiting for JSON-RPC on stdin — that
hang is expected; it means it's up. Use the MCP Inspector
(npx @modelcontextprotocol/inspector uv run singlestore-mcp-server)
for interactive testing instead of talking to stdin by hand.
Example: an S3 pipeline
create_pipeline(create_pipeline_sql="""
CREATE PIPELINE orders_pipeline AS
LOAD DATA S3 's3://my-bucket/orders/'
CONFIG '{"region": "us-east-1"}'
CREDENTIALS '{"aws_access_key_id": "...", "aws_secret_access_key": "..."}'
INTO TABLE orders
FIELDS TERMINATED BY ','
""")
start_pipeline(pipeline_name="orders_pipeline")
pipeline_status(pipeline_name="orders_pipeline")Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables SQL query execution and database structure browsing via MCP tools and resources.MIT
- AlicenseNot gradedqualityDmaintenanceProvides a lightweight MySQL database interface via stdio, enabling query execution, data manipulation, schema inspection, and connection testing using FastMCP tools.3MIT
- AlicenseCqualityCmaintenanceConnects MCP-compatible clients like Claude to a MySQL database, enabling schema inspection and read/write queries via stdio transport.54541MIT
- AlicenseCqualityCmaintenanceEnables executing SQL queries, managing databases, and switching between multiple project environments via MCP, without requiring a local MySQL client.144541MIT
Related MCP Connectors
Connect to PlanetScale databases, branches, schema, query insights, and execute SQL
MCP server for managing Prisma Postgres.
Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jonasliesas/singlestore-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server