Files
Neo-ZQYY/apps/mcp-server

MCP Server

为阿里云百炼 AI 应用提供 PostgreSQL 只读查询能力的 MCP 服务。

用途

小程序端调用百炼 AI 应用时,百炼通过 MCP 协议连接本服务,读取 etl_feiqiu 数据库中的运营数据(会员、订单、支付、助教业绩、财务汇总等)。

架构

微信小程序 → 百炼 AI 应用 → MCP (Streamable HTTP) → 本服务 → PostgreSQL (etl_feiqiu)

暴露的 Tools

Tool 说明
list_tables 列出指定 schema 下的表
describe_table 查看单表结构
describe_schemas 批量返回多个 schema 的表结构(含主键)
query_sql 在指定 schema 内执行只读 SQL

可访问的 Schema

ods / dwd / dws / core / meta / appetl_feiqiu 六层架构)

安全策略

  • 仅允许 SELECT/WITH/SHOW/EXPLAIN禁止 DDL/DML
  • 正则 + sqlparse 双重校验
  • 跨 schema 引用白名单限制
  • 可选 Bearer Token 鉴权(MCP_TOKEN 环境变量)
  • 生产环境建议使用只读数据库账号

配置

环境变量优先级:MCP_PG_* > DB_* / ETL_DB_NAME / PG_NAME(分离式回退) > 项目根 .env

变量 说明 默认值
MCP_PG_HOST 数据库主机(优先) 回退 DB_HOST
MCP_PG_PORT 数据库端口(优先) 回退 DB_PORT,默认 5432
MCP_PG_DATABASE 数据库名(优先) 回退 ETL_DB_NAMEPG_NAME(分离式配置)
MCP_PG_USER 数据库用户(优先) 回退 DB_USER
MCP_PG_PASSWORD 数据库密码(优先) 回退 DB_PASSWORD
MCP_TOKEN 鉴权 token空则不启用
MCP_MAX_ROWS query_sql 最大返回行数 500
PORT 服务监听端口 9000

启动

cd apps/mcp-server
python server.py

百炼端 MCP 服务地址配置为:https://mcp.langlangzhuoqiu.cn/mcp