Finviz+SEC EDGAR MCP服务器
A. 自由 MCP服务器,用于使用Finviz筛选和SEC EDGAR文件进行股票研究。无需付费订阅。
适用于任何兼容MCP的客户端:Claude Desktop、Claude Code、Cursor、Windsurf、Cline、Zed等。
https://financial-research-finviz-sec-mcp.onrender.com/mcp
协作偏好
该项目在MIT许可下发布。如果你在此基础上继续努力,我非常希望并赞赏积极的合作。
这是关于我希望如何进行协作的请求,而不是额外的许可限制。
所得
24工具 可通过任何MCP客户端进行对话访问:
| 工具 | 它做什么 |
|---|---|
screen_stocks | 全Finviz筛选器,具有67个以上筛选器:市盈率、净资产收益率、利润率、债务比率等。 |
screen_value_stocks | 具有合理默认值的快速值屏幕 |
screen_from_url | 粘贴任何finviz.com筛选器URL并运行它 |
list_filter_options | 发现所有可用的过滤代码 |
get_stock_fundamentals | 任何股票的90多个数据点 |
compare_stocks | 并列基本面比较 |
get_sec_filings | 列出最近向美国证券交易委员会提交的文件(10-K、10-Q、8-K等) |
get_filing_text | 阅读SEC文件的干净文本(iXBRL已正确剥离) |
get_financial_history | XBRL数据的历史收入、净收入、每股收益 |
get_per_share_fundamentals | SEC XBRL文件中的历史每股估值输入 |
get_financial_snapshot | 最新提交的完整损益表、资产负债表和现金流量表 |
get_financial_ttm | 一家或多家公司连续12个月 |
compare_financials | 比较给定年份多家公司的指标 |
get_insider_filings | 美国证券交易委员会表格3/4/5,包含结构化交易数据的内幕申报 |
compare_sectors | 部门级比较 |
compare_industries | 行业总体比较 |
stock_vs_industry | 将一只股票与其行业总量进行比较 |
screen_industry | 特定行业内的过滤器 |
get_analyst_ratings | 分析师的价格目标和评级 |
get_insider_activity | 内幕交易活动 |
get_stock_news | 最近的新闻头条 |
get_earnings_news | 与收入和成绩单相关的头条新闻 |
get_annual_price_history | 雅虎财经的年度最高、最低和平均收盘价历史 |
get_inputs_tab_data | 《化学武器公约》特定估值工作簿的综合提取包 |
数据源
- 芬维兹 (自由层):筛选器、基本面、新闻、内部人士、分析师数据。延迟15-20分钟(与价值研究无关)。
- 第二埃德加 (免费、公开):10-K/10-Q/8-K文件、XBRL财务数据、内幕人士表格。不需要API密钥。
______________________________________________________________________
安装指南(macOS/Linux/Windows)
第一步:先决条件
你需要 Python 3.10+ 和 点。请与以下人员核实:
python3 --version # Should be 3.10 or higher
pip3 --version如果你没有Python 3.10+,请从以下位置安装 python.org.
步骤2:分叉、克隆和安装
首选工作流程:首先在GitHub上分叉这个存储库,然后克隆你的分叉,这样改进就可以干净地回流。
git clone https://github.com/YOUR_USERNAME/finviz-sec-mcp.git
cd finviz-sec-mcp
# Create a virtual environment
python3 -m venv venv
# Activate it
source venv/bin/activate # macOS/Linux
# venv\Scripts\activate # Windows
# Install the package
pip install -e .对于远程服务器入口点,该软件包还安装了:
finviz-sec-mcp-remote步骤3:配置环境
复制示例env文件并添加您的电子邮件(SEC要求EDGAR API访问):
cp .env.example .env编辑 .env 并设置您的联系电子邮件:
SEC_EMAIL=your-email@example.com步骤4:测试它是否有效
# Quick test — should print the current tool count
python -c "
from finviz_sec_mcp.server import server
print(f'{len(server._tool_manager._tools)} tools registered')
"
# Full test — runs a live value screen
python -c "
from finviz_sec_mcp.clients.finviz_client import FinvizClient
results = FinvizClient.screen(
filters=['cap_largeover', 'fa_pe_u20', 'fa_roe_o15'],
table='Valuation',
)
print(f'Found {len(results)} value stocks')
for s in results[:3]:
print(f' {s[\"Ticker\"]} — P/E: {s.get(\"P/E\")}')
"步骤5:配置Claude桌面
打开您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
添加以下内容(替换 /path/to/ 根据您的实际路径):
{
"mcpServers": {
"finviz-sec": {
"command": "/path/to/finviz-sec-mcp/venv/bin/finviz-sec-mcp"
}
}
}找到你的实际路径:
# Run this in the project folder to get the exact paths
echo "\"command\": \"$(pwd)/venv/bin/finviz-sec-mcp\""步骤6:重新启动克劳德桌面
退出并重新打开Claude Desktop。你应该看到一个锤子图标(🔨) 在 聊天输入区。点击查看全部24个工具。
______________________________________________________________________
远程服务器部署
此仓库还可以通过FastMCP流式HTTP作为公共远程MCP运行。这是组织范围内使用的首选设置,因为生产服务可以从GitHub部署 main 用户不再需要 .mcpb 上传。
远程环境
从以下位置设置远程变量 .env.example:
MCP_HOST=0.0.0.0
MCP_PORT=8000
MCP_STREAMABLE_HTTP_PATH=/mcp
SEC_EMAIL=your-email@example.com本地远程运行
finviz-sec-mcp-remote这暴露了:
/mcp/healthz
渲染部署
此回购包括一个启动器 render.yaml 即:
- 从GitHub部署web服务
- 跑
finviz-sec-mcp-remote - 健康检查
/healthz
保持生产与GitHub的联系 main,将Render生产服务配置为仅从部署 main 支。未推送的本地更改不会影响实时服务器。
此公共远程部署不需要OAuth或支持数据库。任何已部署的人 /mcp URL可以连接,因此如果您期望外部流量,请将速率限制或基本WAF规则放在它前面。
______________________________________________________________________
筛选器表视图
这 screen_stocks 工具接受 table 控制返回哪些列的参数。每个视图显示不同的指标:
| 查看 | 返回的列 |
|---|---|
| 概述 | 公司、行业、行业、市值、市盈率、价格、变动、交易量 |
| 估值 | 市值、市盈率、Fwd市盈率、PEG、P/S、P/B、P/C、P/FCF、本年每股收益、下一年每股收益 |
| 金融的 | 市值、股息、ROA、ROE、ROI、流动比率、速动比率、LTDebt/Eq、债务/Eq、毛利率、营业利润率、利润率、收益、价格、变动、交易量 |
| 所有权 | 市值、未平仓、浮动、内部人持有、内部人交易、机构间持有、机构间交易、浮动空头、空头比率、平均交易量、价格、变动、交易量 |
| 演出 | 绩效周、绩效月、绩效季度、绩效半年、绩效年、绩效年初至今、波动率W、波动率M、建议、平均交易量、相关交易量、价格、变化、交易量 |
| 技术的 | 贝塔系数、ATR、SMA20、SMA50、SMA200、52W高、52W低、RSI、价格、变化、交易量 |
默认值为 估值。您可以用不同的视图运行同一屏幕,以更全面地了解结果。
______________________________________________________________________
示例提示
一旦设置好,你就可以自然地说话:
“找到我低估的大盘股,利润率高,债务低”
“比较AAPL、MSFT和GOOGL的估值和盈利能力指标”
“给我看看伯克希尔哈撒韦公司最近提交的10-K文件”
“美国证券交易委员会文件中NVDA的历史收入趋势是什么?”
筛选收益率超过3%、派息低于60%、净资产收益率超过15%的股息股票
“显示所有市盈率低于20的消费者防御性股票”
“苹果公司最新的内幕交易是什么?”
“获取META的分析师价格目标”
______________________________________________________________________
故障排除
“没有名为'finviz'的模块” → 确保你启动了venv并跑了 pip install -e .
No module named 'src' 或陈旧 value-investor-mcp 路径 → 您重命名了项目,但仍使用旧的可编辑安装或旧的Claude配置。重新创建venv,用重新安装 pip install -e .,并将Claude Desktop指向 venv/bin/finviz-sec-mcp.
筛选器返回空值 → 某些过滤器组合的限制性太强。尝试 list_filter_options 检查有效代码。
SEC EDGAR利率限制 → 客户端自动节流至10请求/秒。如果遇到问题,请等待几秒钟。
Claude Desktop未显示工具 → 仔细检查路径 claude_desktop_config.jsonThe command 应该指向 venv/bin/finviz-sec-mcp 在这个项目中,而不是你的系统Python。
许可证
MIT。看 许可证.
