Package detail

inshow-ai-query-mcp

zhycx1995277MIT1.4.1

MCP服务器,用于连接Supabase数据库并提供表结构查询功能

mcp, supabase, query, database

readme

Inshow AI Query MCP

Inshow AI Query MCP 是一个基于 MCP (Model Context Protocol) 协议的supabase 服务,支持 Streamable HTTP 和 STDIO 两种运行模式,可用于 AI 辅助数据库查询和分析。

本项目仅作为MCP学习项目用途

功能特性

  • 支持最新的 Streamable HTTP 协议(与 Cherry Studio 兼容)
  • 支持 STDIO 模式,方便集成到其他应用
  • 提供数据库查询工具
  • 支持数据分析工具和提示
  • 基于 Supabase 的数据存储

安装

# 克隆仓库
git clone https://github.com/zhycx1995/inshow-ai-query-mcp.git
cd inshow-ai-query-mcp

# 安装依赖
npm install

# 准备环境变量
cp .env.example .env
# 编辑 .env 文件,填入你的 Supabase 配置

使用方法

STDIO 模式 (默认)

npm start
# 或者
node src/index.js

STDIO inspector调试模式

npm run inspect

Streamable HTTP 模式

# 基本启动
npm start -- -m http -p 9000

# 带调试信息的启动
npm start -- -m http -p 9000 -d

# 完整配置启动
npm start -- -m http -p 9000 -d --allow-anonymous --session-timeout 60

命令行参数

参数 说明 默认值
-p, --port <number> 服务端口号 9000
-m, --mode <string> 运行模式 (stdio\ http) stdio
-d, --debug 启用调试模式 false
-e, --env <path> 环境变量文件路径 .env
--supabase-url <url> Supabase项目URL -
--supabase-key <key> Supabase项目API密钥 -
--supabase-config <path> Supabase配置文件路径(JSON) -
--allow-anonymous 允许匿名SSE连接(仅HTTP模式) false
--session-timeout <minutes> HTTP会话超时时间(分钟) 30
--disable-session-cleanup 禁用HTTP会话自动清理 false
--cors-origin <origin> 允许的CORS来源 *

与 Cherry Studio 集成

本服务完全支持最新的 Streamable HTTP 协议,可以与 Cherry Studio 无缝集成。

测试集成

我们提供了一个测试脚本,可以验证服务器是否正确实现了Streamable HTTP协议,并且可以与Cherry Studio集成:

# 先启动服务器
npm run start:streamable

# 在另一个终端运行测试
npm run test:cherry

# 或者使用一条命令同时启动服务器和运行测试
npm run cherry:test-with-server

在 Cherry Studio 中添加 MCP 服务

  1. 确保你的服务已在 HTTP 模式下运行

    npm run start:streamable
    
  2. 打开 Cherry Studio 客户端 (v1.2.7 或更高版本)

  3. 点击 "MCP 服务器" 添加新服务器:

    • 名称:inshow-ai-query
    • 类型:Streamable HTTP
    • URLhttp://localhost:9000/mcp
    • 如果需要,可以添加鉴权请求头
  4. 点击保存,然后在工具面板中应该可以看到可用的数据库查询工具

会话和调试

  • 会话自动管理:服务器会生成会话ID并保持会话状态
  • 会话自动清理:默认30分钟没有活动的会话会被自动清理
  • 断线恢复支持:如果连接断开,Cherry Studio 可以使用相同的会话ID重新连接并继续交互
  • 健康检查:访问 http://localhost:9000/health 可查看服务状态

技术实现

本服务基于 MCP 协议的最新规范实现,包括:

  • 使用统一的 /mcp 端点处理所有请求
  • POST 请求用于初始化和发送查询
  • GET 请求用于建立 SSE 流接收流式响应
  • DELETE 请求用于终止会话
  • 支持会话状态恢复和无状态操作
  • 提供丰富的错误处理和调试信息

贡献

欢迎提交问题报告和请求功能。请随时提出 Pull Request。

许可证

MIT