Token导航 LogoToken导航TokenDH.com
Single Store MCP Server logo
数据服务stdio官方级别未说明来源级核验

Single Store MCP Server

MCP Server

@smithery/cli

SingleStore MCP Server是一个用于与SingleStore数据库交互的模型上下文协议服务器,提供查询表、描述模式和生成ER图等功能。

工具数

8

提示词数

0

GitHub Stars

4

资源数

0
数据库工具数据分析JavaScriptClaudeClaude DesktopClaudeCursorWindsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

madhukarkumar

提供方

madhukarkumar

最后核验

2026/5/17 21:06

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y @smithery/cli install @madhukarkumar/singlestore-mcp-server --client claude

详细介绍

单存储MCP服务器

](https://smithery.ai/server/@madhukarkumar/singlestore-mcp-server)

用于与SingleStore数据库交互的模型上下文协议(MCP)服务器。此服务器提供用于查询表、描述模式和生成ER图的工具。

特性

  • 列出数据库中的所有表
  • 执行自定义SQL查询
  • 获取包括模式和示例数据在内的详细表信息
  • 生成数据库模式的Mermaid ER图
  • SSL支持自动获取CA包
  • 正确的错误处理和TypeScript类型安全

先决条件

  • Node.js 16或更高版本
  • npm或纱线
  • 访问SingleStore数据库
  • SingleStore CA捆绑包(自动从门户获取)

安装

通过Smithery安装

通过以下方式自动安装克劳德桌面的SingleStore MCP服务器 史密瑟里:

npx -y @smithery/cli install @madhukarkumar/singlestore-mcp-server --client claude
  1. 克隆存储库:
git clone 
cd mcp-server-singlestore
  1. 安装依赖项:
npm install
  1. 构建服务器:
npm run build

环境变量

所需的环境变量

服务器需要以下环境变量才能连接数据库:

SINGLESTORE_HOST=your-host.singlestore.com
SINGLESTORE_PORT=3306
SINGLESTORE_USER=your-username
SINGLESTORE_PASSWORD=your-password
SINGLESTORE_DATABASE=your-database

服务器需要所有这些环境变量才能建立与SingleStore数据库的连接。该连接使用SSL和SingleStore CA捆绑包,该捆绑包是从SingleStore门户自动获取的。

可选环境变量

对于SSE(服务器发送事件)协议支持:

SSE_ENABLED=true       # Enable the SSE HTTP server (default: false if not set)
SSE_PORT=3333          # HTTP port for the SSE server (default: 3333 if not set)

设置环境变量

  1. 在你的壳:

在运行服务器之前,在终端中设置变量:

   export SINGLESTORE_HOST=your-host.singlestore.com
   export SINGLESTORE_PORT=3306
   export SINGLESTORE_USER=your-username
   export SINGLESTORE_PASSWORD=your-password
   export SINGLESTORE_DATABASE=your-database
  1. 在客户端配置文件中:

将变量添加到MCP客户端配置文件中,如下面的集成部分所示。

用法

协议支持

此服务器支持两种客户端集成协议:

  1. MCP协议:使用stdio通信的标准模型上下文协议,由Claude Desktop、Windsurf和Cursor使用。
  2. SSE协议:服务器通过HTTP发送事件,用于需要实时数据流的基于web的客户端和应用程序。

这两种协议都公开了相同的工具和功能,允许您为您的用例选择最佳的集成方法。

可用工具

  1. list_tables

- 列出数据库中的所有表 - 无需参数

   use_mcp_tool({
     server_name: "singlestore",
     tool_name: "list_tables",
     arguments: {}
   })
  1. 查询表

- 执行自定义SQL查询 - 参数: - 查询:SQL查询字符串

   use_mcp_tool({
     server_name: "singlestore",
     tool_name: "query_table",
     arguments: {
       query: "SELECT * FROM your_table LIMIT 5"
     }
   })
  1. describe_table

- 获取有关表的详细信息 - 参数: - 表:表名称

   use_mcp_tool({
     server_name: "singlestore",
     tool_name: "describe_table",
     arguments: {
       table: "your_table"
     }
   })
  1. 发电机图

- 生成数据库模式的Mermaid ER图 - 无需参数

   use_mcp_tool({
     server_name: "singlestore",
     tool_name: "generate_er_diagram",
     arguments: {}
   })
  1. run_read_query

- 对数据库执行只读(SELECT)查询 - 参数: - 查询:要执行的SQL SELECT查询

   use_mcp_tool({
     server_name: "singlestore",
     tool_name: "run_read_query",
     arguments: {
       query: "SELECT * FROM your_table LIMIT 5"
     }
   })
  1. create_table

- 在数据库中创建具有指定列和约束的新表 - 参数: - table_name:要创建的表的名称 - columns:列定义数组 - table_options:可选表配置

   use_mcp_tool({
     server_name: "singlestore",
     tool_name: "create_table",
     arguments: {
       table_name: "new_table",
       columns: [
         {
           name: "id",
           type: "INT",
           nullable: false,
           auto_increment: true
         },
         {
           name: "name",
           type: "VARCHAR(255)",
           nullable: false
         }
       ],
       table_options: {
         shard_key: ["id"],
         sort_key: ["name"]
       }
     }
   })
  1. 生成_合成_数据

- 生成合成数据并将其插入到现有表中 - 参数: - table:要插入数据的表的名称 - count:要生成的行数(默认值:100) - column_generators:特定列的自定义生成器 - batch_size:每批中要插入的行数(默认值:1000)

   use_mcp_tool({
     server_name: "singlestore",
     tool_name: "generate_synthetic_data",
     arguments: {
       table: "customers",
       count: 1000,
       column_generators: {
         "customer_id": {
           "type": "sequence",
           "start": 1000
         },
         "status": {
           "type": "values",
           "values": ["active", "inactive", "pending"]
         },
         "signup_date": {
           "type": "formula",
           "formula": "NOW() - INTERVAL FLOOR(RAND() * 365) DAY"
         }
       },
       batch_size: 500
     }
   })
  1. optimize_sql

- 使用PROFILE分析SQL查询并提供优化建议 - 参数: - 查询:用于分析和优化的SQL查询

   use_mcp_tool({
     server_name: "singlestore",
     tool_name: "optimize_sql",
     arguments: {
       query: "SELECT * FROM customers JOIN orders ON customers.id = orders.customer_id WHERE region = 'west'"
     }
   })

- 答复包括: - 原始查询 - 性能概要(总运行时间、编译时间、执行时间) - 检测到的瓶颈列表 - 影响水平(高/中/低)的优化建议 - 索引、连接、内存使用和其他优化建议

独立运行

  1. 构建服务器:
npm run build
  1. 仅使用MCP协议运行服务器:
node build/index.js
  1. 使用MCP和SSE协议运行服务器:
SSE_ENABLED=true SSE_PORT=3333 node build/index.js

使用SSE协议

启用SSE后,服务器将公开以下HTTP端点:

  1. 根端点
   GET /

返回服务器信息和可用终结点。

  1. 健康检查
   GET /health

返回服务器的状态信息。

  1. SSE 连接
   GET /sse

建立服务器发送事件连接以进行实时更新。

  1. 列出工具
   GET /tools

返回所有可用工具的列表,与MCP相同 list_tools 功能。

还支持MCP检查器兼容性的POST请求:

   POST /tools
   Content-Type: application/json

   {
     "jsonrpc": "2.0",
     "id": "request-id",
     "method": "mcp.list_tools",
     "params": {}
   }
  1. 呼叫工具
   POST /call-tool
   Content-Type: application/json

   {
     "name": "tool_name",
     "arguments": {
       "param1": "value1",
       "param2": "value2"
     },
     "client_id": "optional_sse_client_id_for_streaming_response"
   }

使用提供的参数执行工具。

- 如果 client_id 响应被流式传输到该SSE客户端。 - 如果 client_id 如果省略,则直接在HTTP响应中返回响应。

还支持标准MCP格式,以兼容MCP检查器:

   POST /call-tool
   Content-Type: application/json

   {
     "jsonrpc": "2.0",
     "id": "request-id",
     "method": "mcp.call_tool",
     "params": {
       "name": "tool_name",
       "arguments": {
         "param1": "value1",
         "param2": "value2"
       },
       "_meta": {
         "client_id": "optional_sse_client_id_for_streaming_response"
       }
     }
   }

SSE事件类型

使用SSE连接时,服务器会发送以下事件类型:

  1. 消息 (未命名事件):成功建立SSE连接时发送。
  2. 打开:已建立其他连接事件。
  3. 消息:用于所有MCP协议消息,包括工具启动、结果和错误事件。

所有事件都遵循MCP协议使用的JSON-RPC 2.0格式。系统使用标准 message 事件类型,以与MCP检查器和大多数SSE客户端库兼容。

JavaScript客户端示例

// Connect to SSE endpoint
const eventSource = new EventSource('http://localhost:3333/sse');
let clientId = null;

// Handle connection establishment via unnamed event
eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data);
  if (data.type === 'connection_established') {
    clientId = data.clientId;
    console.log(`Connected with client ID: ${clientId}`);
  }
};

// Handle open event
eventSource.addEventListener('open', (event) => {
  console.log('SSE connection opened via open event');
});

// Handle all MCP messages
eventSource.addEventListener('message', (event) => {
  const data = JSON.parse(event.data);
  
  if (data.jsonrpc === '2.0') {
    if (data.result) {
      console.log('Tool result:', data.result);
    } else if (data.error) {
      console.error('Tool error:', data.error);
    } else if (data.method === 'mcp.call_tool.update') {
      console.log('Tool update:', data.params);
    }
  }
});

// Call a tool with streaming response (custom format)
async function callTool(name, args) {
  const response = await fetch('http://localhost:3333/call-tool', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      name: name,
      arguments: args,
      client_id: clientId
    })
  });
  return response.json();
}

// Call a tool with streaming response (MCP format)
async function callToolMcp(name, args) {
  const response = await fetch('http://localhost:3333/call-tool', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: 'request-' + Date.now(),
      method: 'mcp.call_tool',
      params: {
        name: name,
        arguments: args,
        _meta: {
          client_id: clientId
        }
      }
    })
  });
  return response.json();
}

// Example usage
callTool('list_tables', {})
  .then(response => console.log('Request accepted:', response));

与MCP检查器一起使用

MCP Inspector是一个基于浏览器的工具,用于测试和调试MCP服务器。要将其与此服务器一起使用,请执行以下操作:

  1. 在一个命令中启动服务器和MCP检查器:
   npm run inspector

或者只启动服务器:

   npm run start:inspector
  1. 要单独安装和运行MCP检查器:
   npx @modelcontextprotocol/inspector

检查器将在默认浏览器中打开。

  1. 当MCP检查器打开时:

a.在连接字段中输入URL:

   http://localhost:8081

注意:实际端口可能因配置而异。检查服务器 正在使用的实际端口的启动日志。服务器将输出:

   MCP SingleStore SSE server listening on port XXXX

b.确保选择“SSE”作为传输类型

c.点击“连接”

  1. 如果您遇到连接问题,请尝试以下替代方案:

a.尝试连接到特定端点:

   http://localhost:8081/stream

b.尝试使用您计算机的实际IP地址:

   http://192.168.1.x:8081

c.如果在Docker中运行:

   http://host.docker.internal:8081
  1. 调试连接问题:

a.通过访问验证服务器是否正在运行http://localhost:8081在您的浏览器中

b.检查服务器日志中的连接尝试

c.尝试重新启动服务器和检查器

d.确保没有其他服务正在使用端口8081

e.使用提供的脚本测试SSE连接:

   npm run test:sse

或者手动使用curl:

   curl -N http://localhost:8081/sse

f.验证防火墙设置是否允许连接到端口8081

  1. 连接后,检查器将显示所有可用工具,并允许您以交互方式对其进行测试。

⚠️ 备注:使用MCP检查器时,您必须使用完整的URL,包括 http:// 前缀。

MCP客户端集成

在Claude Desktop中安装

  1. 将服务器配置添加到位于以下位置的Claude Desktop配置文件中:

- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "singlestore": {
      "command": "node",
      "args": ["path/to/mcp-server-singlestore/build/index.js"],
      "env": {
        "SINGLESTORE_HOST": "your-host.singlestore.com",
        "SINGLESTORE_PORT": "3306",
        "SINGLESTORE_USER": "your-username",
        "SINGLESTORE_PASSWORD": "your-password",
        "SINGLESTORE_DATABASE": "your-database",
        "SSE_ENABLED": "true",
        "SSE_PORT": "3333"
      }
    }
  }
}

SSE_ENABLED和SSE_PORT变量是可选的。如果您想在标准MCP协议的同时启用支持SSE的HTTP服务器,请将它们包括在内。

  1. 重新启动Claude桌面应用程序
  1. 在与Claude的对话中,您现在可以使用SingleStore MCP服务器:
use_mcp_tool({
  server_name: "singlestore",
  tool_name: "list_tables",
  arguments: {}
})

在Windsurf中安装

  1. 将服务器配置添加到位于以下位置的Windsurf配置文件中:

- macOS: ~/Library/Application Support/Windsurf/config.json - 窗户: %APPDATA%\Windsurf\config.json

{
  "mcpServers": {
    "singlestore": {
      "command": "node",
      "args": ["path/to/mcp-server-singlestore/build/index.js"],
      "env": {
        "SINGLESTORE_HOST": "your-host.singlestore.com",
        "SINGLESTORE_PORT": "3306",
        "SINGLESTORE_USER": "your-username",
        "SINGLESTORE_PASSWORD": "your-password",
        "SINGLESTORE_DATABASE": "your-database",
        "SSE_ENABLED": "true",
        "SSE_PORT": "3333"
      }
    }
  }
}

SSE_ENABLED和SSE_PORT变量是可选的,但可以通过SSE HTTP服务器启用其他功能。

  1. 重新启动Windsurf
  1. 在Windsurf中与Claude的对话中,当Claude需要访问数据库信息时,SingleStore MCP工具将自动可用。

在Cursor中安装

  1. 将服务器配置添加到游标设置中:

- 打开的游标 - 前往设置(齿轮图标)>扩展>Claude AI>MCP服务器 - 添加具有以下配置的新MCP服务器:

{
  "singlestore": {
    "command": "node",
    "args": ["path/to/mcp-server-singlestore/build/index.js"],
    "env": {
      "SINGLESTORE_HOST": "your-host.singlestore.com",
      "SINGLESTORE_PORT": "3306",
      "SINGLESTORE_USER": "your-username",
      "SINGLESTORE_PASSWORD": "your-password",
      "SINGLESTORE_DATABASE": "your-database",
      "SSE_ENABLED": "true",
      "SSE_PORT": "3333"
    }
  }
}

SSE_ENABLED和SSE_PORT变量允许web应用程序通过HTTP连接到服务器,并通过服务器发送事件接收实时更新。

  1. 重新启动游标
  1. 在Cursor中使用Claude AI时,SingleStore MCP工具将可用于数据库操作。

安全考虑

  1. 从不将凭据提交到版本控制
  2. 使用环境变量或安全配置管理
  3. 考虑将连接池机制用于生产环境
  4. 在SingleStore中实施适当的访问控制和用户权限
  5. 保持SingleStore CA捆绑包最新

发展

项目结构

mcp-server-singlestore/
├── src/
│   └── index.ts      # Main server implementation
├── package.json
├── tsconfig.json
├── README.md
└── CHANGELOG.md

建筑

npm run build

测试

npm test

故障排除

  1. 连接问题

- 验证环境变量中的凭据和主机信息 - 检查SSL配置 - 确保数据库可以从您的网络访问 - 检查防火墙设置,以允许出站连接到SingleStore数据库

  1. 构建问题

- 清除node_modules并重新安装依赖项 - 验证TypeScript配置 - 检查Node.js版本兼容性(应为16+)

  1. MCP集成问题

- 验证客户端配置中服务器build/index.js文件的路径是否正确 - 检查客户端配置中是否正确设置了所有环境变量 - 更改配置后重新启动客户端应用程序 - 检查客户端日志中是否有与MCP服务器相关的任何错误消息 - 首先尝试独立运行服务器,以验证它在客户端之外是否正常工作

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件

目录标签

目录标签

数据库工具数据分析JavaScriptClaude本地部署SQL查询ER图生成数据库管理实时数据流

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

remote-capable

来源包(packageName,安装包名)

@smithery/cli

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP