内容
# 薄空气数据 MCP 服务器
**唯一支持 PostgreSQL、MySQL 和 SQL Server 的 MCP 数据库服务器** — 23 种方言感知工具,涵盖 4 个层级,从模式检查到跨数据库比较、查询防火墙、个人身份信息扫描和 N+1 检测。设计为只读。
**23 种只读工具** · PostgreSQL · MySQL · SQL Server · 模式发现、性能分析、SQL 安全、异常检测
[](https://www.npmjs.com/package/@thinairtelematics/data)
[](LICENSE)
[](https://smithery.ai/servers/thinair/data)
```console
> describe_schema("fleet")
✓ 发现 42 张表 · 6 个高价值实体
✓ 未启用写入权限
> ask("哪些车辆在上周有最多的空闲时间?")
✓ 生成安全的只读 SQL · 返回 10 行 · 标记 3 个异常
```
## 薄空气平台的一部分
薄空气数据是薄空气平台的一部分,用于提供车队可见性、分析、运营搜索、报告和 AI 辅助决策支持。
## 托管产品与本仓库
- `data.thinair.co` 是托管的薄空气产品。
- 本仓库是针对开发者和 AI 代理客户端的公开 MCP 包/指针。
- 生产环境使用可能需要薄空气账户、API 密钥、OAuth 连接或托管工作区。
## 功能
薄空气数据是一个 [模型上下文协议(MCP)](https://modelcontextprotocol.io) 服务器,为 AI 代理提供对数据库的安全 **只读** 访问权限,无需自定义后端。设计用于正确的只读生产环境访问。薄空气数据通过 SQL 守卫、数据库会话只读模式(如果支持)和可选的每个连接防火墙规则强制执行只读行为。您仍然应该使用最小权限数据库凭证,避免暴露敏感表格,除非必要。
- **多数据库** — PostgreSQL、MySQL、SQL Server 在单个会话中。跨数据库比较,单次工具调用。
- **设计为只读** — SQL 守卫、数据库会话只读模式(如果支持),以及可选的每个连接防火墙规则。
- **方言感知** — 每个工具都了解 `SELECT TOP 10`(mssql)与 `LIMIT`(其他)并根据连接正确路由语法。
- **分层功能** — 23 种工具,涵盖 4 个层级:模式检查、查询执行 + 历史记录、EXPLAIN/优化、异常检测、个人身份信息扫描、N+1 检测、查询防火墙、跨 DB 比较。
- **运行时连接管理** — 通过 `add_connection` 工具在运行时添加每个租户的连接。永不使用环境变量或安装时配置。
## 产品链接
- **产品:** https://data.thinair.co
- **连接数据库:** https://data.thinair.co/connect
- **文档:** https://data.thinair.co/docs/getting-started
- **定价:** https://data.thinair.co/checkout
- **薄空气:** https://thinair.co
## 工具(精选 - 完整列表 23 个,见 [文档](https://data.thinair.co/docs/tools))
| 工具 | 层级 | 描述 |
|------|------|-------------|
| `list_connections` | discover | 列出连接的数据库,包含名称和方言 |
| `describe_schema` | discover | 获取模式、列、索引、外键,跨任意连接 |
| `query_sql` | discover | 执行参数化只读 SQL 查询 |
| `query_history` | build | 最近的查询,包含时间、行数、状态 |
| `data_profile` | build | 表的分布、空值率、基数 |
| `cross_db_query` | architect | 在 2-4 个连接上运行相同的查询(区域/方言比较) |
| `detect_anomalies` | architect | 行增长、延迟、值分布的统计异常 |
| `pii_scan` | architect | 扫描表格中的个人身份信息模式(SSN、电子邮件、电话、信用卡) |
| `find_n_plus_one` | architect | 在 `query_history` 中识别 N+1 查询模式 |
| `query_firewall` | architect | 每个连接的自定义阻止规则(拒绝特定表格/查询) |
`add_connection`、`query_optimize`、`explain_query`、`suggest_queries`、`generate_migration`、`watch_table`、`saved_queries`、`impact_analysis` 等等完善了 23 种工具。
## 快速开始
### Claude Desktop, Cursor, Windsurf — OAuth(推荐,无密钥)
将以下内容添加到客户端的 MCP 配置中(例如 `~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"thinair-data": {
"url": "https://data.thinair.co/mcp"
}
}
}
```
OAuth 流程在首次使用时完成 - 无需手动设置令牌。登录后,您的代理调用 `add_connection` 以使用 DSN 注册数据库 - 连接按租户范围划分,可在会话中重复使用。
### API 密钥(适用于非 OAuth 客户端)
```json
{
"mcpServers": {
"thinair-data": {
"url": "https://data.thinair.co/mcp",
"headers": {
"Authorization": "Bearer ta_live_..."
}
}
}
}
```
在 https://data.thinair.co/connect 获取密钥。
### npx(CLI / 脚本)
```bash
npx -y @thinairtelematics/data
```
将配置块打印到 stdout。默认情况下,无密钥 OAuth。
## 支持的数据库
数据库连接在运行时通过 `add_connection` MCP 工具添加 - 传送 DSN 一次,连接成为一个命名资源,代理可以在会话中重复使用。支持三种方言:
| 数据库 | 连接字符串格式 |
|----------|--------------------------|
| PostgreSQL | `postgresql://user:pass@host:5432/db` |
| MySQL | `mysql://user:pass@host:3306/db` |
| SQL Server | `sqlserver://user:pass@host:1433/db` |
您 **不** 需要在客户端配置中放置 DSN。`add_connection` 工具是连接进入会话的方式。
## 示例用法
连接后,询问您的 AI:
- *"显示上周所有未更新的行,跨越 staging 和 prod"*
- *"本周查询速度最慢的前 10 个查询是什么?"*
- *"扫描 customers 表中的个人身份信息模式"*
- *"哪些表格具有最多的 N+1 查询暴露?"*
## 不用于机密信息
不要提交 DSN、密码、令牌、私钥或生产凭证。使用 OAuth、托管连接流程或您的 MCP 客户端的秘密存储。
## npm 包
[npmjs.com/package/@thinairtelematics/data](https://www.npmjs.com/package/@thinairtelematics/data)
> 以前发布为 `thinair-data`(现已弃用, favor 使用范围限定包)。
## 许可证
MIT © [薄空气 Telematics](https://thinair.co)