SingleStore logo

SingleStore

Organization
singlestore-labs

MCP server for interacting with SingleStore Management API and services

Publishersinglestore-labs
Repositorymcp-server-singlestore
LanguagePython
Forks
17
Stars
33
Available tools
0
Transport typestdio
Categories
LicenseMIT
Links
  • Connect tools to AI workflows

    SingleStore exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    33 stars and 17 forks from the linked repository.

SingleStore MCP Server

MIT Licence PyPI Downloads

Model Context Protocol (MCP) is a standardized protocol designed to manage context between large language models (LLMs) and external systems. This repository provides an installer and an MCP Server for Singlestore, enabling seamless integration.

With MCP, you can use Claude Desktop, Claude Code, Cursor, or any compatible MCP client to interact with SingleStore using natural language, making it easier to perform complex operations effortlessly.

πŸ’‘ Pro Tip: Not sure what the MCP server can do? Just call the /help prompt in your chat!

Requirements

  • Python >= v3.10.0
  • uvx installed on your python environment
  • VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Goose or any other MCP client

Getting started

Getting started

First, install the SingleStore MCP server with your client.

Standard config works in most of the tools:

json
{
  "mcpServers": {
    "singlestore-mcp-server": {
      "command": "uvx",
      "args": [
        "singlestore-mcp-server",
        "start"
      ]
    }
  }
}

No API keys, tokens, or environment variables required! The server automatically handles authentication via browser OAuth when started.

Automatic setup:

bash
uvx singlestore-mcp-server init --client=claude-desktop

Manual setup: Follow the MCP install guide, use the standard config above.

Automatic setup:

bash
uvx singlestore-mcp-server init --client=claude-code

This will automatically run the Claude CLI command for you.

Manual setup:

bash
claude mcp add singlestore-mcp-server uvx singlestore-mcp-server start

Automatic setup:

bash
uvx singlestore-mcp-server init --client=cursor

Manual setup: Go to Cursor Settings -> MCP -> Add new MCP Server. Name to your liking, use command type with the command uvx singlestore-mcp-server start. You can also verify config or add command line arguments via clicking Edit.

Automatic setup:

bash
uvx singlestore-mcp-server init --client=vscode

Manual setup: Follow the MCP install guide, use the standard config above. You can also install using the VS Code CLI:

bash
code --add-mcp '{"name":"singlestore-mcp-server","command":"uvx","args":["singlestore-mcp-server","start"]}'

After installation, the SingleStore MCP server will be available for use with your GitHub Copilot agent in VS Code.

Automatic setup:

bash
uvx singlestore-mcp-server init --client=windsurf

Manual setup: Follow Windsurf MCP documentation. Use the standard config above.

Automatic setup:

bash
uvx singlestore-mcp-server init --client=gemini

Manual setup: Follow the MCP install guide, use the standard config above.

Automatic setup:

bash
uvx singlestore-mcp-server init --client=lm-studio

Manual setup: Go to Program in the right sidebar -> Install -> Edit mcp.json. Use the standard config above.

Manual setup only: Go to Advanced settings -> Extensions -> Add custom extension. Name to your liking, use type STDIO, and set the command to uvx singlestore-mcp-server start. Click "Add Extension".

Manual setup only: Open Qodo Gen chat panel in VSCode or IntelliJ β†’ Connect more tools β†’ + Add new MCP β†’ Paste the standard config above.

Click Save.

Using Docker

NOTE: An API key is required when using Docker because the OAuth flow isn't supported for servers running in Docker containers.

json
{
  "mcpServers": {
    "singlestore-mcp-server": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", "--init", "--pull=always",
        "-e", "MCP_API_KEY=your_api_key_here",
        "singlestore/mcp-server-singlestore"
      ]
    }
  }
}

You can build the Docker image yourself:

bash
docker build -t singlestore/mcp-server-singlestore .

For better security, we recommend using Docker Desktop to configure the SingleStore MCP serverβ€”see this blog post for details on Docker's new MCP Catalog.

Components

Tools

The server implements the following tools:

  • get_user_info: Retrieve details about the current user

    • No arguments required
    • Returns user information and details
  • organization_info: Retrieve details about the user's current organization

    • No arguments required
    • Returns details of the organization
  • choose_organization: Choose from available organizations (only available when API key environment variable is not set)

    • No arguments required
    • Returns a list of available organizations to choose from
  • set_organization: Set the active organization (only available when API key environment variable is not set)

    • Arguments: organization_id (string)
    • Sets the specified organization as active
  • workspace_groups_info: Retrieve details about the workspace groups accessible to the user

    • No arguments required
    • Returns details of the workspace groups
  • workspaces_info: Retrieve details about the workspaces in a specific workspace group

    • Arguments: workspace_group_id (string)
    • Returns details of the workspaces
  • resume_workspace: Resume a suspended workspace

    • Arguments: workspace_id (string)
    • Resumes the specified workspace
  • list_starter_workspaces: List all starter workspaces accessible to the user

    • No arguments required
    • Returns details of available starter workspaces
  • create_starter_workspace: Create a new starter workspace

    • Arguments: workspace configuration parameters
    • Returns details of the created starter workspace
  • terminate_starter_workspace: Terminate an existing starter workspace

    • Arguments: workspace_id (string)
    • Terminates the specified starter workspace
  • list_regions: Retrieve a list of all regions that support workspaces

    • No arguments required
    • Returns a list of available regions
  • list_sharedtier_regions: Retrieve a list of shared tier regions

    • No arguments required
    • Returns a list of shared tier regions
  • run_sql: Execute SQL operations on a connected workspace

    • Arguments: workspace_id, database, sql_query, and connection parameters
    • Returns the results of the SQL query in a structured format
  • create_notebook_file: Create a new notebook file in SingleStore Spaces

    • Arguments: notebook_name, content (optional)
    • Returns details of the created notebook
  • upload_notebook_file: Upload a notebook file to SingleStore Spaces

    • Arguments: file_path, notebook_name
    • Returns details of the uploaded notebook
  • create_job_from_notebook: Create a scheduled job from a notebook

    • Arguments: job configuration including notebook_path, schedule_mode, etc.
    • Returns details of the created job
  • get_job: Retrieve details of an existing job

    • Arguments: job_id (string)
    • Returns details of the specified job
  • delete_job: Delete an existing job

    • Arguments: job_id (string)
    • Deletes the specified job
  • stage_list_files: List files and folders in a Stage deployment's file system

    • Arguments: deployment_id (string), path (string, optional)
    • Returns folder contents including files and subfolders
  • stage_get_file: Get a file from Stage by path

    • Arguments: deployment_id (string), path (string), return_type (string: 'metadata', 'url', or 'content')
    • Returns file metadata, a download URL, or text content
  • stage_create_folder: Create a folder in Stage

    • Arguments: deployment_id (string), path (string)
    • Returns creation status
  • stage_upload_file: Upload a file to Stage with text content

    • Arguments: deployment_id (string), path (string), content (string), local_path (string)
    • Returns upload status
  • stage_move: Move or rename a file or folder in Stage

    • Arguments: deployment_id (string), source_path (string), destination_path (string)
    • Returns move status
  • stage_delete: Delete a file or folder from Stage

    • Arguments: deployment_id (string), path (string)
    • Returns deletion status

Note: Organization management tools (choose_organization and set_organization) are only available when the API key environment variable is not set, allowing for interactive organization selection during OAuth authentication.

Development

Prerequisites

  • Python >= 3.11
  • uv for dependency management

Setup

  1. Clone the repository:
bash
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
  1. Install dependencies:
bash
uv sync --dev
  1. Set up pre-commit hooks (optional but recommended):
bash
uv run pre-commit install

Development Workflow

bash
# Quick quality checks (fast feedback)
./scripts/check.sh

# Run tests independently
./scripts/test.sh

# Comprehensive validation (before PRs)
./scripts/check-all.sh

# Create and publish releases
./scripts/release.sh

Running Tests

bash
# Run test suite with coverage
./scripts/test.sh

# Or use pytest directly
uv run pytest
uv run pytest --cov=src --cov-report=html

Code Quality

We use Ruff for both linting and formatting:

bash
# Format code
uv run ruff format src/ tests/

# Lint code
uv run ruff check src/ tests/

# Lint and fix issues automatically
uv run ruff check --fix src/ tests/

Release Process

Releases are managed through git tags and automated PyPI publication:

  1. Create release: ./scripts/release.sh (interactive tool)
  2. Automatic publication: Triggered by pushing version tags
  3. No manual PyPI uploads - fully automated pipeline

See scripts/dev-workflow.md for detailed workflow documentation.

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "singlestore-mcp-server": {
      "command": "uvx",
      "args": [
        "singlestore-mcp-server",
        "start"
      ]
    }
  }
}

Use SingleStore MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once SingleStore is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add SingleStore as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the SingleStore MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "singlestore": {
      "command": "npx",
      "args": [
        "-y",
        "singlestore-mcp-server"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the SingleStore MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the SingleStore MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use SingleStore to help me with this task?
SingleStore
Sure. I read it.
Here is what I found using SingleStore.

Frequently asked questions

What is the SingleStore MCP server used for?

SingleStore is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use SingleStore MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use SingleStore with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use SingleStore MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With SingleStore connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect SingleStore MCP to TypingMind?

SingleStore runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does SingleStore MCP provide in TypingMind?

SingleStore exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use SingleStore MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If SingleStore requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter πŸ‘‡