Back to MCP directory
publicPublicdnsLocal runtime

openbb-widgets-json-mcp

一个基于OpenBB widgets.json规范的MCP服务器,将各种小部件类型、参数和配置示例映射为结构化工具,方便开发者和AI助手直接查询并生成合规的OpenBB应用JSON配置。

article

README

🚀 OpenBB Widgets JSON MCP 服务器

OpenBB Widgets JSON MCP 服务器将 OpenBB 的 widgets.json 规范以结构化、可调用的工具形式呈现。开发者(以及像 Claude Code 这样的 AI 代码助手)无需再解析冗长的文档,可直接通过该服务器查询小部件类型、输入和配置示例。

🚀 快速开始

前提条件

  • Python 3.12 或更高版本
  • uv 包管理器
  • Node.js 和 npx(可选,用于 Smithery CLI 和 playground)

操作步骤

  1. 克隆仓库
git clone https://github.com/OpenBB-finance/openbb-widgets-json-mcp.git
cd openbb-widgets-json-mcp
  1. 安装依赖
uv sync
  1. 运行服务器
uv run python main.py
  1. 测试服务器是否正常工作: 服务器将在 http://localhost:8081 启动。

  2. 启动 Smithery Playground(可选)

npm install -g @smithery/cli
smithery playground --port 8081

这将打开一个界面,用于交互式测试 MCP 工具。

✨ 主要特性

每个小部件类型都对应一个独立的工具,便于在构建新的 OpenBB 应用时生成、混合和匹配有效的 JSON 规范。该服务器使用 FastMCP 构建,从 OpenBB 开发者文档以编程方式生成,并托管在 Smithery.ai 上,方便发现和使用。

服务器提供以下内容:

  • 小部件配置和类型文档
  • 小部件参数(下拉框、日期选择器、开关等)
  • 小部件、应用和代理的 JSON 规范
  • 构建 OpenBB 小部件所需的基本样板代码
  • 数据集成和 AI 代理文档

💻 使用示例

基础用法

以下是一个通过 MCP 服务器构建 OpenBB 小部件的基础示例,以 playground/ 文件夹中的蒙特卡罗模拟小部件为例:

cd playground
uv sync
uv run python main.py

高级用法

该示例展示了完整的开发工作流程:

  1. Claude Code 向 MCP 服务器查询 OpenBB 小部件规范。
  2. MCP 工具 提供样板代码、Plotly 图表文档和 JSON 参考规范。
  3. 生成的小部件 包含:
    • 3 个参数:股票代码(文本)、开始日期(日期)、是否使用波动率调整(布尔值)。
    • 带有 50 条模拟路径和百分位数带的 Plotly 可视化。
    • 返回纯模拟数组的原始数据模式。
    • 用于手动执行的运行按钮。
    • 与完整的 OpenBB 工作区集成。

📦 可用的 MCP 工具

通过遍历 OpenBB 文档获取的工具

小部件配置工具

  • widget_configuration_category_subcategory - 类别和子类别配置
  • widget_configuration_error_handling - 小部件中的错误处理
  • widget_configuration_grid_size - 网格大小配置
  • widget_configuration_refetch_interval - 重新获取数据的间隔设置
  • widget_configuration_render_functions - 渲染函数
  • widget_configuration_run_button - 运行按钮配置
  • widget_configuration_stale_time - 数据过期时间设置

小部件参数工具

  • widget_parameters_text_input - 文本输入参数
  • widget_parameters_date_picker - 日期选择器参数
  • widget_parameters_boolean_toggle - 布尔开关参数
  • widget_parameters_dropdown - 下拉框参数
  • widget_parameters_advanced_dropdown - 高级下拉框参数
  • widget_parameters_dependent_dropdown - 依赖下拉框参数
  • widget_parameters_number_input - 数字输入参数
  • widget_parameters_input_form - 输入表单参数
  • widget_parameters_parameter_grouping - 参数分组
  • widget_parameters_parameter_positioning - 参数定位
  • widget_parameters_cell_click_grouping - 单元格点击分组

小部件类型工具

  • widget_types_plotly_charts - Plotly 图表
  • widget_types_highcharts - Highcharts 图表
  • widget_types_tradingview_charts - TradingView 图表
  • widget_types_aggrid_table_charts - AgGrid 表格图表
  • widget_types_markdown - Markdown 小部件
  • widget_types_html - HTML 小部件
  • widget_types_metric - 指标小部件
  • widget_types_newsfeed - 新闻源小部件
  • widget_types_file_viewer - 文件查看器小部件
  • widget_types_live_grid - 实时网格小部件
  • widget_types_omni - 全能小部件
  • widget_types_ssrm_mode - SSRM 模式

JSON 参考工具

  • json_specs_widgets_json_reference - 小部件 JSON 参考
  • json_specs_apps_json_reference - 应用 JSON 参考
  • json_specs_agents_json_reference - 代理 JSON 参考

其他工具

  • data_integration - 数据源集成
  • ai_agents_ai_agents - AI 代理文档
  • apps_apps - OpenBB 应用文档

临时添加的工具

  • building_widgets_on_openbb - OpenBB 小部件的基本样板代码(务必首先调用此工具)

🚀 部署到 Smithery

要部署你的 MCP 服务器:

  • 将代码推送到 GitHub(包含 smithery.yamlDockerfile)。
  • https://smithery.ai/new 连接你的仓库。

部署后,你的服务器将通过 HTTP 可用,并可与任何 MCP 兼容的客户端配合使用!

🔧 停止服务器

在终端中按 Ctrl+C 停止服务器。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client