返回 MCP 目录
public公开dns本地运行

singlestore-mcp-server

SingleStore数据库的MCP服务端,提供数据库查询、表结构分析、ER图生成等功能

article

README

🚀 单店数据库MCP协议服务器

这是一个专为SingleStore数据库设计的单进程MCP(Multi-Protocol Communications Protocol)协议服务器。它支持通过标准MCP协议或基于HTTP的Server-Sent Events (SSE) 进行通信,能帮助用户更便捷地与SingleStore数据库交互。

🚀 快速开始

你可以使用Node.js来安装并启动该服务器:

# 安装依赖
npm install mcp-server-singlestore

# 启动服务器(假设环境变量已配置)
node src/index.ts

✨ 主要特性

  • 数据库连接:支持通过MCP协议或HTTP与SingleStore数据库建立连接。
  • 查询执行:能够执行SQL查询并返回结果。
  • SSE支持:提供基于HTTP的流数据传输功能,适用于实时数据推送场景。

📦 安装指南

使用Node.js进行安装:

npm install mcp-server-singlestore

启动服务器:

node src/index.ts

💻 使用示例

基本用法

# 安装依赖
npm install mcp-server-singlestore

# 启动服务器(假设环境变量已配置)
node src/index.ts

配置文件示例

const config = {
  singleStoreHost: 'localhost',
  singleStorePort: 3307,
  singleStoreUser: 'admin',
  singleStorePassword: 'password',
  // 可选配置
  sslCaBundle: '/path/to/ca.pem',
  mcpServerPort: 4000,
  sseEnabled: true,
  ssePort: 4001
};

require('mcp-server-singlestore').start(config);

在Claude中使用

function useMCPTool(commands) {
  return {
    connectDatabase(options) {
      // 实现数据库连接逻辑
    },
    executeQuery(query, params) {
      // 执行查询并返回结果
    }
  };
}

export default useMCPTool;

在Windsurf中配置

const config = {
  type: 'singlestore',
  host: 'localhost',
  port: 3307,
  user: 'admin',
  password: 'password'
};

// 初始化数据库连接
const db = new Database(config);

在Cursor中使用

const { Cursor } = require('cursor');

const cursor = new Cursor({
  databaseConfig: {
    type: 'singlestore',
    host: 'localhost',
    port: 3307,
    user: 'admin',
    password: 'password'
  }
});

// 查询示例
cursor.query('SELECT * FROM users LIMIT 10', (err, result) => {
  if (err) throw err;
  console.log(result);
});

📚 详细文档

配置

运行时所需的环境变量包括: | 属性 | 详情 | |------|------| | SINGLESTORE_HOST | 单店数据库的主机名或IP地址 | | SINGLESTORE_PORT | 单店数据库的端口号 | | SINGLESTORE_USER | 连接单店数据库的用户名 | | SINGLESTORE_PASSWORD | 用户的密码 | | SINGLESTORE_DATABASE | 默认使用的数据库名称 | | SSL_CA_BUNDLE | 用于验证SSL证书的CA证书路径 | | MCP_SERVER_PORT | MCP协议服务器监听的端口号 | | SSE_ENABLED | 是否启用SSE支持 | | SSE_PORT | SSE服务器监听的端口号 |

集成

介绍了在Claude、Windsurf和Cursor中的使用和配置方法,具体代码示例见使用示例部分。

安全注意事项

⚠️ 重要提示

  • 凭证管理:绝不要将凭证提交到版本控制系统中。
  • 网络隔离:在生产环境中,建议将数据库和应用服务置于受控的网络内部。
  • 权限控制:严格限制数据库连接用户的权限。

项目结构

src/
├── index.ts                 # 入口文件
├── server.ts                # MCP服务器实现
└── sseServer.ts             # SSE服务器实现

开发

安装依赖

npm install express mysql2

启动开发环境

npm run dev

故障排除

连接问题

⚠️ 重要提示

  • 检查目标数据库是否运行。
  • 确认网络连接正常。
  • 验证提供的凭证是否正确。

查询问题

⚠️ 重要提示

  • 确保查询语法正确无误。
  • 检查是否有权限访问相关数据表和列。

贡献指南

如发现任何问题,请通过GitHub提交Issue或Pull Request。

📄 许可证

项目采用MIT许可证,具体条款参见LICENSE文件。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端