数据分析工具服务器

将Redshift数据分析数据转化为OpenAI代理工具的MCP服务器,适用于数据分析、监控和问题排查。

  • by teozeng1205
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 teozeng1205/ds-mcp

使用说明

ds-mcp

模型上下文协议(MCP)服务器,将我们的分析Redshift数据转化为OpenAI代理的一流工具。
它作为子进程启动,注册表感知实用程序,并将JSON结果流式传输回任何符合MCP的客户端(CLI、FastAPI后端或其他代理)。

特性

  • AnalyticsLeader包装器 –重复使用内部 threevictors.dao.redshift_connector 用于认证访问。
  • 基于FastMCP的服务器 –使用stdio传输的轻量级异步实现。
  • 刀具目录 –描述表、检查模式、预览行、执行有界SQL和运行提供程序监控帮助程序(get_top_site_issues, analyze_issue_scope).
  • 可配置表 –通行证 --table <schema.table> 反复限制代理可以看到的内容。
  • 安全默认值 –仅选择强制加自动 LIMIT 任意SQL的行为。

安装

cd ds-agentic-workflows/ds-mcp
python -m venv .venv && source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt         # mcp[cli], pandas, boto3, redshift-connector …
pip install -e .                        # optional editable install

在仓库级别设置您的AWS配置文件/凭据和OpenAI密钥 env.sh 在运行任何东西之前。AnalyticsReader期望VPN+AWS SSO访问分析Redshift环境(例如。, aws sso login --profile 3VDEV).

运行服务器

# From ds-mcp/
python -m ds_mcp.server --name "Analytics Server"

# Limit tools to specific tables
python -m ds_mcp.server --name "Provider Audit" \
  --table prod.monitoring.provider_combined_audit \
  --table local.analytics.market_level_anomalies_v3

通过调用时 agent_core.AgentExecutor 或 scripts/run_mcp_server.sh,包装器会自动获取资源 env.sh 并注射 PYTHONPATH 因此,该包装无需安装即可使用。

暴露的工具

工具 目的
describe_table(table_name) 表元数据的信息模式查找。
get_table_schema(table_name) 具有类型、可空性和默认值的列定义。
read_table_head(table_name, limit=50) 预览前N行(跨数据库工作)。
query_table(query, limit=1000) 执行带有强制限制的SELECT/WITH语句。
get_top_site_issues(target_date?) 比较今天与上周/每月的提供商问题。
analyze_issue_scope(providercode?, sitecode?, target_date?, lookback_days=7) 按地理位置、行程类型、客舱、服务水平等细分供应商/现场问题。

每个工具返回JSON(DataFrame orient='records'),上游代理以结构化答案的形式呈现。

直接使用AnalyticsLeader

from ds_mcp.core.connectors import AnalyticsReader

reader = AnalyticsReader()
df = reader.read_table_head('prod.monitoring.provider_combined_audit', limit=10)
issues = reader.get_top_site_issues('20251109')
scope = reader.analyze_issue_scope(providercode='QL2', sitecode='QF', lookback_days=14)

扩展服务器

  1. 添加新的辅助方法 AnalyticsReader 对于您需要的任何自定义SQL。
  2. 将它们注册到 src/ds_mcp/server.py 使用 @mcp.tool() 装饰师。
  3. 碰撞 EXPOSED_TOOLS / allowed_tools 在消费代理中使它们可用。

MCP二进制文件保持与传输无关,因此任何理解模型上下文协议的客户端都可以立即使用新功能。