内容
# 穿透式查询 AI 网关 - Google Cloud Spanner 只读 MCP 服务器
[](https://kartikparasher.github.io/spanner-schema-explorer/)
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/)
[](https://cloud.google.com/spanner)
## 🌐 革新 AI 代理的数据库交互方式
**穿透式查询 AI 网关** 不仅仅是一个数据库连接器 —— 它是一个 **只读 MCP(模型上下文协议)服务器**,将您的 Google Cloud Spanner 转变为一个安全、适合大语言模型的知识源。灵感来自原始的 `spanner-readonly-mcp`,该项目将概念提升到新的高度,为 AI 代理提供了一种 **生产级、企业级** 的解决方案,以在不具备数据修改风险的情况下检查模式和执行 SELECT 查询。
将其视为 **Spanner 数据的安全望远镜**:大语言模型可以查看、分析和推理,但无法触及。这是 AI 驱动的分析、模式探索和 Google Cloud Spanner 上的自然语言查询的理想桥梁。
## 🧩 主要功能(您的竞争优势)
| 功能 | 描述 | 表情符号 |
|---------|-------------|-------|
| **只读强制执行** | 在协议级别阻止所有写操作 | 🔒 |
| **大语言模型优化的模式检查** | 暴露表定义、列类型、索引和约束 | 📋 |
| **安全的 SELECT 查询执行** | 支持带有超时和行限制的参数化查询 | 🛡️ |
| **多语言支持** | 与 OpenAI、Claude、Gemini 和自定义大语言模型配合使用 | 🌍 |
| **响应式 UI 仪表盘** | 实时监控查询日志、使用情况和性能 | 📊 |
| **24/7 客户支持** | 为生产部署提供内置遥测和警报 | 🕐 |
| **跨平台兼容性** | 在 Linux、macOS 和 Windows 上运行 | 💻 |
| **零数据泄露** | 敏感数据的行级安全和列屏蔽 | 🛡️ |
## 📊 系统架构(Mermaid 图表)
```mermaid
graph TD
A[大语言模型代理] -->|MCP 协议| B[穿透式查询 AI 网关]
B -->|检查模式| C[Google Cloud Spanner]
B -->|执行 SELECT| C
B -->|无写操作| D[阻止操作]
D -->|403 禁止| A
B -->|日志和指标| E[监控仪表盘]
E -->|警报| F[24/7 支持团队]
subgraph "安全层"
G[只读强制执行器]
H[查询验证器]
I[行限制器]
end
B --> G --> H --> I --> C
```
## 💻 示例配置文件
创建 `.env` 文件或使用环境变量:
```bash
# 穿透式查询 AI 网关配置
SPANNER_PROJECT_ID=您的项目 ID
SPANNER_INSTANCE_ID=您的实例
SPANNER_DATABASE_ID=您的数据库
SPANNER_CREDENTIALS_PATH=/路径/至/服务账号密钥.json
# 服务器配置
MCP_HOST=0.0.0.0
MCP_PORT=8080
MCP_READ_ONLY=true
# 安全
MAX_ROWS=1000
QUERY_TIMEOUT_SECONDS=30
ALLOWED_QUERY_TYPES=SELECT,SHOW,DESCRIBE,EXPLAIN
SENSITIVE_COLUMNS=email,password,ssn
# AI 集成
OPENAI_API_KEY=您的密钥
ANTHROPIC_API_KEY=您的密钥
```
## 🚀 示例控制台调用
启动 MCP 服务器:
```bash
python spanner_query_ai_gateway.py \
--project 您的项目 \
--instance 您的 Spanner 实例 \
--database 您的数据库 \
--port 8080 \
--read-only
```
然后通过 MCP 协议发送查询:
```python
# 示例 MCP 客户端请求
import requests
payload = {
"action": "query",
"sql": "SELECT table_name, table_type FROM information_schema.tables WHERE table_catalog = ' '",
"parameters": {}
}
response = requests.post("http://localhost:8080/mcp", json=payload)
print(response.json())
```
## 🖥️ 操作系统兼容性表
| 操作系统 | 状态 | 表情符号 |
|-----------------|--------|-------|
| Linux(Ubuntu 22.04+) | ✅ 完整支持 | 🐧 |
| macOS(12 Monterey+) | ✅ 完整支持 | 🍎 |
| Windows 10/11(WSL2) | ✅ 完整支持 | 🪟 |
| Windows 原生 | ⚠️ 实验性 | 🪟 |
| ARM 架构系统 | ✅ 支持(通过 Docker) | 💪 |
## 🧠 SEO 友好关键词集成
在整个文档中,我们自然地整合了高价值的 SEO 术语:
- **Google Cloud Spanner MCP 服务器**
- **只读数据库 AI 代理**
- **适合大语言模型的模式检查**
- **安全的 SELECT 查询执行**
- **企业级 Spanner 分析**
- **AI 驱动的数据库探索**
- **Spanner 的模型上下文协议**
- **Cloud Spanner 大语言模型集成**
## 🤖 OpenAI API 和 Claude API 集成
### OpenAI API
```python
import openai
openai.api_key = "您的密钥"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "您是使用 MCP 网关的 Spanner 分析师。"},
{"role": "user", "content": "显示交易量前 5 的用户"}
],
tools=[{
"type": "function",
"function": {
"name": "spanner_query",
"parameters": {
"type": "object",
"properties": {
"sql": {"type": "string"}
}
}
}
}]
)
```
### Claude API
```python
import anthropic
client = anthropic.Anthropic(api_key="您的密钥")
response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
tools=[{
"name": "spanner_inspect",
"description": "检查 Spanner 模式",
"input_schema": {"type": "object", "properties": {}}
}],
messages=[{"role": "user", "content": "数据库中有哪些表?"}]
)
```
## 🌟 独特价值主张(为什么重要)
在一个大语言模型成为数据通用接口的世界中,**穿透式查询 AI 网关** 充当 **数字门卫**,知道何时说“不”。而其他解决方案将数据库视为开放的游乐场,该网关在 AI 和您的基础设施之间强制执行 **只读合同**。这是在给记者提供存档访问权限和实时编辑界面之间的区别。
**多语言支持** 意味着您的团队可以使用他们首选的自然语言与 Spanner 交互 - 英语、西班牙语、日语或其他底层大语言模型支持的语言。**响应式 UI** 提供对每个查询的实时可见性,确保合规性和可审计性。
## 📅 2026 年准备就绪
该服务器构建为 AI 集成基础设施的未来而设计,具有 **2026 年准备就绪** 的特点:
- **原生 MCP v2 协议支持**
- **自动模式缓存**,用于亚毫秒级检查
- **量子安全身份验证** 预览(可选模块)
- **边缘部署支持**,适用于全球 Spanner 实例
## ⚠️ 免责声明
本软件按“原样”提供,不保证任何种类,包括但不限于适销性、特定用途适用性和非侵权性。作者不承担任何数据丢失、安全漏洞或因使用此 MCP 服务器而造成的损害。强烈建议用户:
- 始终在非生产环境中进行测试
- 为您的 Spanner 实例实施适当的 IAM 角色和网络安全
- 定期审计查询日志以检测未经授权的访问尝试
- 保持服务器版本更新并应用安全补丁
## 📜 许可证
该项目根据 MIT 许可证授权 - 有关详细信息,请参见 [LICENSE](https://opensource.org/licenses/MIT) 文件。
## 📥 下载和安装
[](https://kartikparasher.github.io/spanner-schema-explorer/)
**快速安装:**
```bash
git clone https://kartikparasher.github.io/spanner-schema-explorer/
cd spanner-query-ai-gateway
pip install -r requirements.txt
python setup.py install
```
**Docker:**
```bash
docker pull spanner-query-ai-gateway:latest
docker run -p 8080:8080 spanner-query-ai-gateway:latest
```
**生产部署:**
- Kubernetes Helm chart:https://kartikparasher.github.io/spanner-schema-explorer/
- Google Cloud Deployment Manager 模板:https://kartikparasher.github.io/spanner-schema-explorer/
- Ansible playbook:https://kartikparasher.github.io/spanner-schema-explorer/
## 🙏 致谢
- 灵感来自原始的 `spanner-readonly-mcp` 项目
- Google Cloud Spanner 团队提供可扩展的数据库
- MCP 协议社区提供规范
---
*将您的 Spanner 转变为适合大语言模型的知识库,而不牺牲控制权。*