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)
操作步骤
- 克隆仓库:
git clone https://github.com/OpenBB-finance/openbb-widgets-json-mcp.git
cd openbb-widgets-json-mcp
- 安装依赖:
uv sync
- 运行服务器:
uv run python main.py
-
测试服务器是否正常工作: 服务器将在
http://localhost:8081启动。 -
启动 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
高级用法
该示例展示了完整的开发工作流程:
- Claude Code 向 MCP 服务器查询 OpenBB 小部件规范。
- MCP 工具 提供样板代码、Plotly 图表文档和 JSON 参考规范。
- 生成的小部件 包含:
- 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.yaml和Dockerfile)。 - 在 https://smithery.ai/new 连接你的仓库。
部署后,你的服务器将通过 HTTP 可用,并可与任何 MCP 兼容的客户端配合使用!
🔧 停止服务器
在终端中按 Ctrl+C 停止服务器。
Scan to join WeChat group