经济情报MCP服务器

一个生产就绪的模型上下文协议(MCP)服务器,作为Databricks应用部署,为AI监督代理提供实时宏观经济数据访问。

  • by VNSHANPR
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 VNSHANPR/databricks-mcp-server

使用说明

经济情报MCP服务器

生产准备就绪 模型上下文协议(MCP)服务器 部署为a copula应用程序,旨在让AI监管代理实时访问外部宏观经济数据-大多数来源不需要API密钥。

该服务器是作为copula Supervisor Agent模式的伴侣而构建的,它通过Streamable HTTP上的标准化MCP协议,公开来自世界银行、澳大利亚统计局(ABS)和任何公共经济网页的实时经济指标。


建筑

Databricks Supervisor Agent
        │
        │  MCP over HTTPS (Streamable HTTP / JSON-RPC 2.0)
        ▼
Unity Catalog HTTP Connection  ──────────────────────────────────────┐
(OAuth M2M, auto-refreshing token)                                   │
        │                                                            │
        ▼                                                            │
Economic Intelligence MCP Server (Databricks App)                    │
├── FastMCP  (MCP protocol layer)                                     │
├── FastAPI  (HTTP server)                                            │
└── Tools                                                            │
    ├── get_inflation            ──▶  World Bank Open Data API        │
    ├── get_macro_indicators     ──▶  World Bank Open Data API        │
    ├── analyze_economic_webpage ──▶  Claude (Databricks Model Serving)
    ├── list_abs_dataflows       ──▶  ABS SDMX REST API               │
    └── get_abs_data             ──▶  ABS SDMX REST API               │

工具

🌍 get_inflation

使用世界银行开放数据API返回任何国家的最新CPI通货膨胀率。

{ "country_code": "AU" }
→ { "country": "Australia", "year": "2023", "inflation_rate_pct": 5.6, "source": "World Bank" }

📊 get_macro_indicators

一次调用即可获取一系列关键宏观经济指标——CPI通胀、GDP增长、实际利率和失业率。

{ "country_code": "US" }
→ [
    { "indicator_name": "Inflation, consumer prices (annual %)", "value": 4.12, "year": "2023" },
    { "indicator_name": "GDP growth (annual %)", "value": 2.54, "year": "2023" },
    ...
  ]

🔍 analyze_economic_webpage

获取任何公共URL并使用 克劳德 (通过copula Model Serving)从页面内容中提取并回答特定的经济问题。

{
  "url": "https://www.rba.gov.au/statistics/",
  "question": "What is the current cash rate target?"
}
→ "The RBA cash rate target is 4.35% as of November 2023."

适用于:

  • 澳大利亚储备银行(RBA)
  • 澳大利亚统计局(ABS)
  • 美国劳工统计局(BLS)
  • 经合组织、国际货币基金组织和任何其他公共经济数据页面

🇦🇺 list_abs_dataflows

返回澳大利亚统计局SDMX数据流的精选目录,其中包含维度描述和现成的关键示例。

→ {
    "CPI":     { "description": "Consumer Price Index — all groups (quarterly)", ... },
    "LF":      { "description": "Labour Force — unemployment, participation (monthly)", ... },
    "WPI":     { "description": "Wage Price Index — hourly rates (quarterly)", ... },
    "ANA_AGG": { "description": "National Accounts — GDP aggregates (quarterly)", ... },
    ...
  }

📈 get_abs_data

直接从ABS SDMX REST API获取时间序列数据。返回完全标记的记录——没有密码。

{
  "dataflow": "LF",
  "key": "M13.3.1599.20.AUS.M",
  "start_period": "2025-01"
}
→ [
    { "MEASURE": "Unemployment rate", "REGION": "Australia",
      "TSEST": "Seasonally Adjusted", "period": "2026-01", "value": 4.07 },
    ...
  ]

支持的数据流:

ID 数据集 频率
CPI 消费者价格指数 季度
LF 劳动力调查 每月
WPI 工资价格指数 季度
ANA_AGG 国民账户(GDP) 季度
RPPI 住宅物业价格指数 季度
MERCH_EXP 商品出口 每月
MERCH_IMP 商品进口 每月
BOP 国际收支 季度

项目结构

databricks-mcp-server/
├── server/
│   ├── app.py       # FastMCP + FastAPI combined ASGI app, header middleware
│   ├── main.py      # Uvicorn entry point
│   ├── tools.py     # All MCP tool definitions
│   └── utils.py     # Databricks OAuth / on-behalf-of auth utilities
├── static/
│   └── index.html   # Status page served at /
├── app.yaml         # Databricks App command config
├── pyproject.toml   # Project metadata + dependencies (uv / hatchling)
└── requirements.txt # Bootstrap: just "uv"

技术栈

组件 技术
MCP框架 FastMCP ≥ 2.12.5
HTTP服务器 FastAPI+Uvicorn
包管理器 紫外线
部署 copula应用程序
Auth OAuth M2M通过Unity目录HTTP连接
LLM Claude通过copula模型服务(Claude_for_Analysis)
外部数据 世界银行开放数据API、ABS SDMX REST API

部署

先决条件

  • 已安装并验证了copula CLI
  • 启用了应用程序的copula工作区
  • 部署了服务于端点的Claude模型(命名为 Claude_for_Analysis)

部署

# 1. Create the app
databricks apps create --json '{"name": "economic-intelligence-mcp"}'

# 2. Sync source code to workspace
databricks sync . /Workspace/Users/<your-email>/databricks-mcp-server

# 3. Deploy
databricks apps deploy economic-intelligence-mcp \
  --source-code-path /Workspace/Users/<your-email>/databricks-mcp-server

在Unity目录中注册

在copula笔记本或SQL编辑器中运行此SQL,使主管代理可以发现MCP服务器:

CREATE CONNECTION economic_intelligence_mcp TYPE HTTP OPTIONS (
  host              = 'https://<your-app-url>.databricksapps.com',
  port              = '443',
  base_path         = '/mcp',
  is_mcp_connection = 'true',
  token_endpoint    = 'https://<your-workspace>.cloud.databricks.com/oidc/v1/token',
  client_id         = '<app-service-principal-client-id>',
  client_secret     = '<client-secret-from-account-console>',
  oauth_scope       = 'all-apis'
);

GRANT USE CONNECTION ON CONNECTION economic_intelligence_mcp TO `account users`;

注: 得到 client_id 从应用程序详细信息(service_principal_client_id)并生成 client_secret 从帐户控制台→ 服务负责人→ 生成密钥。

添加到主管代理

在Rancher Agent Bricks中,添加 economic_intelligence_mcp 作为一个 MCP连接 代理工具配置中的工具。


认证

此服务器使用 OAuth M2M(机器对机器) 用于身份验证:

  • Unity目录连接保持不变 client_id + client_secret
  • Unity Catalog在每次调用之前自动获取一个新的OAuth JWT
  • ConnectionApps代理验证JWT并转发请求
  • 调用ViewModel的工具(例如。 analyze_economic_webpage)通过转发代表身份验证使用 x-forwarded-access-token 头球

⚠️ PAT令牌(个人访问令牌) 不 使用copula Apps代理——始终使用OAuth M2M进行UC连接。


本地开发

# Install dependencies
pip install uv
uv sync

# Run locally
uv run economic-intelligence-mcp --port 8000

服务器将在以下时间可用 http://localhost:8000 MCP端点位于 http://localhost:8000/mcp.


参考文献