使用说明
SMKRV MCP Studio
Turn Your Database Into an AI Data Source.
连接您的分析数据库,编写SQL,让Claude、GPT或Cursor通过以下方式查询您的数据 主控程序.
没有样板。没有后端代码。一个Docker镜像-部署需要60秒。
系统要求
| 最低 | 推荐 | |
|---|---|---|
| 中央处理器 | 2芯 | 4+芯 |
| 随机存取存储器 | 2GB | 4GB |
| 磁盘 | 4 GB | 10 GB |
| 拱 | x86_64(amd64)或ARM64 | - |
最小 在轻负载下以1-2个数据库连接运行应用程序。 推荐 为多个连接和并发查询提供了空间。该图像开箱即用地运行L0正则表达式提示注入检测。包含L1 ML层(DeBERTa ONNX),但选择加入:set STUDIO_PROMPT_GUARD_ML_DOWNLOAD=true 获取模型(约180 MB,在首次启动时下载到数据卷中)并启用它。当L1打开时,添加大约300 MB的RAM。
对于高负载场景(10+连接,大量并发查询):4-8个CPU内核,8 GB RAM,20 GB磁盘。
快速开始
# 1. Pull the image
docker pull smkrv/smkrv-mcp-studio:latest
# 2. Generate secrets
export STUDIO_ENCRYPTION_KEY=$(python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())")
export STUDIO_JWT_SECRET=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))")
export STUDIO_AGENT_SERVICE_TOKEN=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))")
export REDIS_PASSWORD=$(openssl rand -base64 32)
# 3. Run
docker run -d \
--name mcp-studio \
-p 3000:3000 \
-p 80:80 \
-p 443:443 \
-e STUDIO_ENCRYPTION_KEY=$STUDIO_ENCRYPTION_KEY \
-e STUDIO_JWT_SECRET=$STUDIO_JWT_SECRET \
-e STUDIO_AGENT_SERVICE_TOKEN=$STUDIO_AGENT_SERVICE_TOKEN \
-e REDIS_PASSWORD=$REDIS_PASSWORD \
-v mcp-studio-data:/app/data \
-v mcp-studio-generated:/shared/generated \
-v mcp-studio-certs:/etc/letsencrypt \
-v mcp-studio-redis:/data/redis \
smkrv/smkrv-mcp-studio:latest
# 4. Open http://localhost:3000
端口80/443是可选的,只需要通过Let's Encrypt进行SSL/HTTPS。如果没有SSL,端口3000就足够了。
运作原理
┌──────────────┐ ┌──────────────────┐ ┌────────────────┐ ┌──────────────┐
│ 1. Connect │───▶│ 2. Write SQL │───▶│ 3. Test Live │───▶│ 4. AI Queries│
│ Database │ │ Define Tools │ │ Preview Data │ │ Your Data │
└──────────────┘ └──────────────────┘ └────────────────┘ └──────────────┘
PostgreSQL SELECT revenue Execute against Claude, GPT,
ClickHouse FROM analytics real database Cursor - via MCP
BigQuery WHERE date > :start with parameters
+ 7 more
连接 您的分析数据库-PostgreSQL、ClickHouse、BigQuery、Snowflake或6个以上。静态加密凭据。
编写SQL -使用参数化查询定义工具。每个工具都成为MCP端点。
现场测试 -使用类型化参数对真实数据库执行只读查询。
AI查询您的数据 -部署后,任何兼容MCP的AI助手都会从您的数据库中提取实时数据。
支持的数据库
| 数据库 | 驱动程序 | 状态 |
|---|---|---|
| PostgreSQL | asyncpg | 稳定 |
| ClickHouse | ClickHouse连接 | 稳定 |
| MySQL/MariaDB | aiomysql | 稳定 |
| SQLite | aiosqlite | 稳定 |
| Microsoft SQL Server | pymssql | 稳定 |
| Cassandra/ScyllaDB | 卡桑德拉驱动程序 | 稳定 |
| Greenplum | asyncpg | 稳定 |
| Supabase(PostgreSQL) | asyncpg | 稳定 |
| 雪花 | 雪花连接器 | 稳定 |
| 谷歌BigQuery | 谷歌云BigQuery | 稳定 |
建筑学
单个Docker镜像,由supervisord管理的5个服务:
┌─────────────────────────────────────────────────────┐
│ Ports 3000 / 80 / 443 (nginx) │
│ ┌──────────┐ ┌──────────┐ ┌───────┐ ┌────────┐ │
│ │ Frontend │ │ Backend │ │ MCP │ │ Agent │ │
│ │ SPA │ │ FastAPI │ │FastMCP│ │ MCP │ │
│ │ │ │ :8000 │ │ :8080 │ │ :8090 │ │
│ └──────────┘ └────┬─────┘ └───┬───┘ └───┬────┘ │
│ │ │ │ │
│ └────────┬───┘ │ │
│ ┌──┴──┐ │ │
│ │Redis│────────────┘ │
│ │:6379│ │
│ └─────┘ │
└─────────────────────────────────────────────────────┘
| 服务 | 端口 | 角色 |
|---|---|---|
| nginx | 3000、80、443(暴露) | 反向代理、SPA、SSL |
| 后端 | 8000 | FastAPI REST API,代码生成,身份验证 |
| mcp | 8080 | 生成的FastMCP v3服务器 |
| 代理mcp | 8090 | AI代理mcp接口(45个工具) |
| redis | 6379 | 队列、信号量、指标 |
配置
所需的环境变量
| 变量 | 描述 |
|---|---|
STUDIO_ENCRYPTION_KEY |
用于凭证加密的Fernet密钥 |
STUDIO_JWT_SECRET |
JWT签名秘密 |
STUDIO_AGENT_SERVICE_TOKEN |
代理mcp和后端通信的共享令牌 |
可选环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
REDIS_PASSWORD |
-(必填) | Redis身份验证密码。生成: openssl rand -base64 32 |
STUDIO_DATABASE_URL |
sqlite+aiosqlite:///data/studio.db |
后端数据库URL |
STUDIO_SSL_STAGING |
false |
使用Let’s Encrypt测试环境进行测试 |
STUDIO_EXTERNAL_HTTPS_PORT |
443 |
用于HTTP到HTTPS重定向的外部HTTPS端口 |
管理员帐户不是通过环境变量设置的。首次启动时,打开web UI并通过创建管理员用户名/密码 设置 屏幕。
卷
| 体积 | 容器路径 | 内容 |
|---|---|---|
mcp-studio-data |
/app/data |
SQLite数据库,配置 |
mcp-studio-generated |
/shared/generated |
生成的MCP服务器文件 |
mcp-studio-certs |
/etc/letsencrypt |
SSL证书(SSL持久性所需) |
mcp-studio-redis |
/data/redis |
Redis持久性(指标、令牌、速率限制) |
Docker Compose
services:
studio:
image: smkrv/smkrv-mcp-studio:latest
ports:
- "3000:3000"
- "80:80"
- "443:443"
environment:
STUDIO_ENCRYPTION_KEY: "${STUDIO_ENCRYPTION_KEY}"
STUDIO_JWT_SECRET: "${STUDIO_JWT_SECRET}"
STUDIO_AGENT_SERVICE_TOKEN: "${STUDIO_AGENT_SERVICE_TOKEN}"
REDIS_PASSWORD: "${REDIS_PASSWORD}"
volumes:
- studio-data:/app/data
- studio-generated:/shared/generated
- studio-certs:/etc/letsencrypt
- studio-redis:/data/redis
restart: unless-stopped
volumes:
studio-data:
studio-generated:
studio-certs:
studio-redis:
链接
| 网站 | smcps.net |
| 文件 | docs.smcps.net |
| Docker Hub | smkrv/smkrv mcp工作室 |
许可证
专有软件许可协议v1.0
版权所有(c)2025-2026谢尔盖·马卡罗夫。保留所有权利。
- 非商业用途 -免费(个人、教育、研究、评估)
- 商业用途 -需要单独的许可证(ms@smcps.net)
- 无逆向工程 混淆的组件
完整许可证: 许可证
Open-Source Attribution
SMKRV MCP Studio包含以下开源组件,每个组件都有自己的许可证:
后端(Python)
| 软件包 | 许可证 | 目的 |
|---|---|---|
| 快速API | MIT | Web框架 |
| Uvicorn | BSD-3 | ASGI服务器 |
| SQLAlchemy | 麻省理工学院 | ORM/数据库工具包 |
| 异步SQLite Async SQLite 驱动程序 | ||
| 蒸馏器 | MIT | 数据库迁移 |
| 皮丹提克 | MIT | 数据验证 |
| 媒染剂设置 | MIT | 配置管理 |
| Jinja2 | BSD-3 | 模板引擎(代码生成器) |
| asyncpg | Apache-2.0 | PostgreSQL异步驱动程序 |
| 异步MySQL MySQL异步驱动程序 | ||
| 卡桑德拉司机 | Apache-2.0 | Cassandra驱动程序 |
| 雪花连接器python | Apache-2.0 | 雪花驱动程序 |
| 谷歌云bigquery | Apache-2.0 | BigQuery客户端 |
| clickhouse连接 | Apache-2.0 | ClickHouse驱动程序 |
| pymssql | LGPL-2.1 | MSSQL驱动程序 |
| 密码学 | Apache-2.0/BSD-3 | Fernet加密 |
| bcrypt | Apache-2.0 | 密码哈希 |
| PyJWT | MIT | JWT 代币 |
| pyotp | MIT | TOTP 2FA |
| 二维码 | BSD-3 | 二维码生成 |
| httpx | BSD-3 | HTTP客户端 |
| websockets | BSD-3 | WebSocket支持 |
| redis-py Redis 客户端 | ||
| ONNX 运行时 | MIT | L1提示保护层的ML推理(选择加入) |
| 令牌化器 | Apache-2.0 | L1提示保护层的文本标记化(选择加入) |
| FastMCP | Apache-2.0 | MCP服务器框架 |
| maxminddb | Apache-2.0 | GeoIP查找 |
前端(JavaScript/TypeScript)
| 软件包 | 许可证 | 目的 |
|---|---|---|
| 反应 | MIT | 用户界面框架 |
| React DOM | MIT | DOM渲染 |
| React路由器 | MIT | 客户端路由 |
| 反应流(@xyflow/React) | MIT | 流/图编辑器 |
| TanStack React Query | MIT | 服务器状态管理 |
| Recharts | MIT | 图表和数据 |
| 摩纳哥编辑器 | MIT | 代码编辑器 |
| 状态 | 麻省理工学院 | 州管理 |
| 佐德 | MIT | 模式验证 |
| Lucide React | ISC | 图标 |
| Radix UI | MIT | 可访问的UI原语 |
| Tailwind CSS | MIT | 实用程序优先的CSS |
| 维特 | MIT | 构建工具 |
| TypeScript | Apache-2.0 | 类型系统 |
| sql格式化程序 | MIT | SQL格式化 |
| 类差异权限 | Apache-2.0 | 组件变体 |
| 扩大的封闭圆环状支持体系 | MIT | 类名实用程序 |
| 顺风合并 | 麻省理工学院 | 顺风级合并 |
基础设施
| 组件 | 许可证 | 目的 |
|---|---|---|
| python | PSF-2.0 | 运行时 |
| Node.js | MIT | 构建工具链 |
| Nginx | BSD-2 | 反向代理 |
| 瑞迪斯 | BSD-3 | 内存存储 |
| 码头工人 | Apache-2.0 | 集装箱化 |
| 超级守护进程 | 类似BSD的进程管理器 | |
| 盖斯特字体 | OFL-1.1 | UI排版 |
| shadcn/ui | MIT | UI组件集合 |
SMKRV MCP Studio许可证中的任何内容都不限制您在这些开源许可证下的权利。
Trademark Notice
SMKRV MCP Studio是一个独立的产品,不隶属于本文引用的任何第三方商标所有者,也不受其认可或赞助。
PostgreSQL®和Postgres®是加拿大PostgreSQL社区协会的商标。MySQL®是Oracle公司的注册商标。Redis®是Redis有限公司的注册商标。Apache Cassandra™和Apache™是Apache软件基金会在美国和/或其他国家/地区的商标。ClickHouse®是ClickHouse,股份有限公司的注册商标。Snowflake®是Snowflak,股份有限公司的注册商标,Google BigQuery™和Google Cloud™是Google LLC的商标。Microsoft SQL Server®是Microsoft Corporation的商标。Subabase™是Subabase,股份有限公司的商标。Greenplum®是VMware,股份有限公司的商标。Docker®是Docker,股份有限公司的注册商标。Claude™是Anthropic,PBC的商标。GPT™和OpenAI™是OpenAI,股份有限公司的商标。Cursor™是Anysphere,股份有限公司的商标。
本项目中使用的所有其他商标、徽标和品牌名称均为其各自所有者的财产,仅用于识别目的。