ShadowLens
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ShadowLens帮我查一下当前卡在审批节点超过48小时的协同公文有哪些?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ShadowLens (影子透镜) - 企业级 Oracle MCP 只读穿透微服务
零侵入 · 绝对只读安全 · 免装 Oracle 客户端 · 智能跨库穿透与对账
ShadowLens 是专门为**政企与大中型企业老旧系统(致远协同 OA、用友 ERP/NCC、若依供应链等)**打造的私有化只读 MCP (Model Context Protocol) 微服务代理。
它帮助 AI Agent 在完全不侵入生产代码、不依赖老系统排期开接口、零写操作风险的前提下,通过语义字典外挂与受控查询原语,实现自然语言驱动的跨表数据穿透、审批卡点追溯与智能双向对账。
🌟 核心特性
纯 Python Thin 模式,免装 Oracle Instant Client
彻底摒弃传统配置
oracle-instantclient-basic、设置LD_LIBRARY_PATH/OCI动态库的繁重工作。基于纯 Python TCP/IP Socket 直连 Oracle 11gR2 / 12c / 18c / 19c / 21c / 23c,极致轻量,单容器开箱即用。
多层只读与注入拦截防线
连接层:只读账号连接 +
SET TRANSACTION READ ONLY会话锁;应用层:SQL 语法树严格校验,彻底阻断任何
INSERT/UPDATE/DELETE/DROP/ALTER及存储过程调用;熔断防线:单次查询默认 5s 强制超时,默认行数严格截断(防笛卡尔积打垮数据库)。
外挂语义字典(Semantic Overlay)
通过
config/schema-dictionary.yaml补充中文字段名、业务枚举(如0:草稿, 1:审批中, 2:已生效)与关联链路,解决老旧系统字段命名反人类、无注释的顽疾。
隐私与涉密动态脱敏(Automatic Masking)
手机号、身份证号、银行卡号、金额等级、密码敏感词自动打码(如
138****5678、110101********1234),满足国企与涉密数据合规要求。
开箱即用的高保真仿真数据集(Dry-Run Mode)
内置离线高保真仿真业务数据集,在内网数据库未联通或离线演示时自动无缝接管,开发与测试零阻力。
Related MCP server: mssql-readonly-mcp
📁 目录结构
shadowlens/
├── config/
│ ├── config.yaml # 数据库连接、安全阈值与微服务端口配置
│ ├── schema-dictionary.yaml # 业务模块、表名、中文字段及枚举字典映射
│ └── reconciliation-rules.yaml # 跨表双向对账规则配置
├── docs/
│ └── ideas/
│ └── shadowlens-mcp.md # 固化的项目论证与架构规格 One-Pager
├── src/
│ ├── config.py # 配置加载器
│ ├── server.py # FastMCP 服务端 (支持 SSE 与 Stdio)
│ ├── db/
│ │ ├── oracle_pool.py # Oracle Thin Mode 连接池与只读执行器
│ │ └── mock_data.py # 高保真离线仿真数据集
│ ├── security/
│ │ ├── sql_validator.py # SQL 严格只读白名单校验器
│ │ └── data_masker.py # 敏感数据动态脱敏引擎
│ └── services/
│ ├── schema_service.py # 字典元数据检索服务
│ ├── query_service.py # 受控参数化查询与枚举转换
│ ├── reconciler.py # 跨表智能对账引擎
│ └── workflow_monitor.py # 审批流长超时卡点监控
├── tests/
│ └── test_shadowlens.py # 完备自动化测试套件
├── Dockerfile # 私有化轻量部署镜像
├── docker-compose.yml # 客户内网单机一键启停编排
└── requirements.txt # 核心依赖清单🚀 客户内网私有化快速部署
方式一:Docker Compose 一键部署(推荐)
修改数据库配置: 编辑
docker-compose.yml中的环境变量,填入客户内网 Oracle 的只读用户与 DSN:environment: - ORACLE_DSN=192.168.1.100:1521/ORCLPDB1 - ORACLE_USER=SHADOW_RO - ORACLE_PASSWORD=ReadOnlyPassword#2026 - SHADOWLENS_DRY_RUN=false启动服务:
docker compose up -d验证健康状态: 内网微服务将在
http://<服务器IP>:8000/sse暴露标准 MCP SSE 端点。
方式二:原生 Python 运行
# 1. 安装依赖 (Python 3.10+)
pip install -r requirements.txt
# 2. 运行自动化测试
python -m unittest tests/test_shadowlens.py
# 3. 启动内网 SSE 微服务 (监听 8000 端口)
python -m src.server --transport sse --host 0.0.0.0 --port 8000🔌 客户端与 AI IDE 接入指引
1. Antigravity / Cursor / Cherry Studio / Claude 接入配置
在 AI Agent 客户端的 MCP 配置文件(如 mcp_settings.json)中添加 SSE 远程微服务配置:
{
"mcpServers": {
"shadowlens-oracle": {
"url": "http://192.168.1.50:8000/sse"
}
}
}注:若使用本地开发模式,亦可配置为 Stdio 命令行模式:
{
"mcpServers": {
"shadowlens-local": {
"command": "python",
"args": ["-m", "src.server", "--transport", "stdio"],
"cwd": "/path/to/shadowlens"
}
}
}🛠️ 暴露给 Agent 的核心 Tools 清单
工具名称 | 功能描述 | 典型触发 Prompt 示例 |
| 检索表字典、字段中文定义、业务枚举与关联关系 | "查一下采购管理模块有哪些表,订单状态枚举分别代表什么?" |
| 在受控白名单表/视图中按条件查询(带自动脱敏与枚举反显) | "查询订单状态为已审批的所有采购订单,返回前 20 条" |
| 获取系统已预配置的跨表自动化对账规则清单 | "系统支持哪些跨系统对账规则?" |
| 执行配置化跨表双向对账,检测漏单、金额不一致及异常状态 | "执行采购单与入库验收对账,找出有差异的批次" |
| 盘点协同 OA / 业务审批流中停留超时(默认 >48h)的卡点单据与当前责任人 | "帮我查一下当前卡在审批节点超过 48 小时的协同公文有哪些?" |
| 检查内网 Oracle 数据库连通性、当前模式 (Thin Mode) 与网络延迟 | "检查当前数据库连接状态" |
🔒 安全合规白皮书摘要
零写权限:只读账号 +
SET TRANSACTION READ ONLY物理级会话隔离;防注入与防全表扫描:所有查询经过 AST/正则表达式白名单二次过滤,禁止注释符逃逸,强制绑定参数化变量;
隐私保护:脱敏引擎按规则对联系电话、身份证件、银行账户等自动加掩码,防止高密级数据在对话界面泄露。
This server cannot be deployed
Maintenance
Related MCP Connectors
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
Ask your organization's connected business data in plain language, with each person's permissions.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables GitHub Copilot and other LLMs to execute read-only SQL queries against Oracle databases with secure connection pooling and schema introspection capabilities.256 npm5AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query Microsoft SQL Server safely through natural language, with an iron-clad read-only guarantee enforced at both database and application levels.MIT
- FlicenseNot gradedqualityBmaintenanceEnables read-only exploration of Oracle databases through natural language, providing schema inspection and safe bounded SQL query execution.-
- FlicenseNot gradedqualityBmaintenanceEnables AI chatbots to securely answer natural-language questions against Oracle databases by discovering metadata, generating and validating read-only SQL, executing with limits, masking sensitive data, and logging all activity.-