mcpField
S
Signal Scanner

Signal Scanner

本地服务
github.com/cstamigo-droid金融数据04 周前更新

关于 Signal Scanner

Signal Scanner 按 YAML 规则筛选股票、ETF、外汇和加密货币,并报告符合条件的信号。适合希望通过 CLI、Telegram 或 MCP 使用可配置指标的用户。

主要功能

  1. 01通过 YAML 配置观察列表和规则
  2. 02扫描股票、ETF、外汇和加密货币
  3. 03计算技术指标
  4. 04通过控制台和 Telegram 提醒
  5. 05支持单次扫描和持续监控

适用场景

  1. 01按自定义指标条件筛选标的
  2. 02定时监控市场变化
  3. 03通过 MCP 主机请求扫描结果

MCP 相关

它通过 MCP 服务提供 `scan` 工具,MCP 主机(如 Claude Desktop 或 Claude Code)可借此运行扫描。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

signal-scanner — 基于规则的股票/加密货币筛选器,支持提醒

signal-scanner MCP server

License: MIT Python MCP

signal-scanner - live scan demo

定义一个观察列表和一个规则集(纯 YAML);筛选器会获取市场数据、 计算指标,并告诉你哪些交易品种符合条件——在控制台、Telegram 中, 或通过任何 MCP 主机(Claude Desktop / Claude Code)获取结果。

一次构建,按客户端定制:替换 watchlist.txt + rules.yaml,即可交付。

有何不同

  • 默认无需密钥。 通过 yfinance 获取市场数据——无需 API 密钥。支持股票、ETF、外汇(EURUSD=X)和加密货币(BTC-USD)。随处演示。
  • 无代码规则。 客户端编辑 rules.yaml(基于指标设置条件)——无需修改代码。
  • 信号真实可靠。 指标根据已收盘的 K 线计算(不使用未来数据);没有数据的交易品种会如实报告,绝不伪造。
  • 交付方式灵活。 设置了机器人令牌时发送 Telegram 提醒;否则输出到控制台。筛选器始终运行。
  • 三种使用方式,一个引擎。 CLI(运行一次或使用 --watch)、Telegram 推送,以及 MCP scan 工具。

指标与规则

每个交易品种的指标:price、pct_change、rsi、sma_fast、sma_slow、 sma_cross(golden/death)、vol_ratio(与 20 日均值相比)、pct_from_52w_high、pct_from_52w_low。

当所有条件都成立时,规则会触发:

rules:
  - name: oversold
    when:
      - {indicator: rsi, op: "<", value: 30}
  - name: volume_spike_up
    when:
      - {indicator: vol_ratio, op: ">", value: 2.0}
      - {indicator: pct_change, op: ">", value: 1.0}

快速开始

pip install -r requirements.txt
PYTHONUTF8=1 python tests/test_smoke.py     # deterministic, no network — proves the engine

python -m signal_scanner                    # scan the watchlist once, print matches
python -m signal_scanner AAPL MSFT BTC-USD  # scan ad-hoc symbols
python -m signal_scanner --watch            # loop every SCAN_INTERVAL_S (default 15m)
python -m signal_scanner --notify           # also push matches to Telegram (if configured)
Telegram(可选)

使用 @BotFather 创建机器人并获取令牌;通过 @userinfobot 获取你的聊天 ID。然后在 .env 中:

TELEGRAM_BOT_TOKEN=...
TELEGRAM_CHAT_ID=...
作为 MCP 服务(Claude Desktop)
{
  "signal-scanner": {
    "command": "python",
    "args": ["-m", "signal_scanner.server"],
    "cwd": "C:/path/to/signal-scanner"
  }
}

如果 python 不在 PATH 中,请使用 Python 的完整路径(例如运行 pip install -r requirements.txt 时所用的 Python)。然后向 Claude 提问:"运行我的筛选器" 或 "NVDA 和 BTC-USD 有什么信号吗?"——它会调用 scan 工具。

配置

所有可调参数都在 config.py / .env 中(参见 .env.example):RSI 周期、SMA 快速/慢速周期、 成交量窗口、回溯期、轮询间隔、数据后端、Telegram。通常,只需替换 watchlist.txt + rules.yaml, 即可按客户端定制。

架构

watchlist.txt ─┐
               ├─ scanner.py ─ data.py(yfinance) ─ indicators.py ─ rules.py(rules.yaml)
rules.yaml ────┘                                                         │
                                                  signals ──> console / Telegram / MCP `scan`

复用 mcp-factory 合约(Result、formatting、cache),因此可与目录中的其他工具组合使用。

许可证

MIT。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。