# AI DC BOM Stock Screener MCP (`neeenja/ai-dc-bom-scanner`) Actor

MCP server that scans undervalued U.S. AI data-center bill-of-materials (BOM) stocks and ranks them by a 7-signal composite. Pay-per-event, no monthly fee.

- **URL**: https://apify.com/neeenja/ai-dc-bom-scanner.md
- **Developed by:** [Neeen Ja](https://apify.com/neeenja) (community)
- **Categories:** AI, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event + usage

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## AI DC BOM Stock Screener MCP

> **AI DC BOM** = **A**I **D**ata-Center **B**ill **O**f **M**aterials — the physical supply chain behind the AI buildout: silicon, memory, networking, optics, power, cooling, foundry.

A **Pay-Per-Event** MCP server that scans a curated universe of U.S.-listed **AI data-center bill-of-materials** stocks, scores each on **7 undervaluation / quality signals**, and returns a ranked list with a full per-signal breakdown. No monthly fee — you pay only for the calls you make.

🌐 **[English](#english)** · **[简体中文](#简体中文)** · **[繁體中文](#繁體中文)**

> **No API key needed.** Five of the seven signals are measured live from SEC EDGAR, Nasdaq and Yahoo. 无需 API key，七个信号里的五个来自 SEC EDGAR / Nasdaq / Yahoo 实测。无需 API key，七個訊號裡的五個來自 SEC EDGAR / Nasdaq / Yahoo 實測。

| Where it lives | Link |
|---|---|
| MCP endpoint | `https://neeenja--ai-dc-bom-scanner.apify.actor/mcp` |
| Apify Store | https://apify.com/neeenja/ai-dc-bom-scanner |
| Source | Available on request |

***

<a id="english"></a>

## English

### Why this exists

The obvious AI names are rarely cheap. The edge is in the long tail of the supply chain — memory, thermal, power, interconnect, optical, foundry — where valuation dislocations appear far more often than in the headline names.

This tool ships **a curated AI-BOM universe + one explainable 7-signal composite + an agent-native MCP interface**, metered per call.

### Tools

| Tool | Price | What it returns |
|---|---:|---|
| `scan` | $0.050 | Fresh scan of the whole universe + 7-signal ranking. Costliest event — pulls metered upstream data. |
| `get_list` | $0.020 | The latest cached weekly snapshot. No new upstream call. |
| `get_stock` | $0.015 | Full per-metric score breakdown for one ticker. |
| `get_universe` | $0.010 | The curated universe: company, ticker, category, moat rating. |
| `get_methodology` | Free | Metric definitions, weights, normalization bounds, disclaimer. |

**Discovery is always free.** `initialize` and `tools/list` are never billed — a client that cannot connect must never be charged.

There is also a `sunday_scan` prompt that guides an agent to refresh the list on a weekly cadence.

### The 7-signal composite

Composite = Σ (weightᵢ × normalizedScoreᵢ). Each signal is normalized to 0–100, then weighted. Weights sum to 1.0.

| Signal | Weight | Direction |
|---|:---:|---|
| PE ratio (TTM) | 0.20 | lower = better (inverted) |
| Analyst Buy % | 0.15 | higher |
| Earnings growth (36m) | 0.15 | higher |
| Forecast earnings growth (12m) | 0.15 | higher |
| Technical moat (curated 1–5) | 0.15 | higher |
| Revenue growth (36m) | 0.10 | higher |
| Forecast revenue growth (12m) | 0.10 | higher |

Every result is returned with its per-signal breakdown, so a ranking can be audited rather than taken on faith.

**Edge cases are labelled, never hidden:** PE ≤ 0 or non-finite → score 0 + `peInvalid`. A missing metric is imputed from the universe median with a 0.5× penalty + `MISSING_*`. Two or more missing quantitative signals → `lowCoverage`, and the composite is capped at 60. Zero analyst ratings → neutral 50 + `LOW_CONFIDENCE_BUY`.

### Connecting

The hosted endpoint speaks **MCP Streamable HTTP** (Apify retired HTTP+SSE in April 2026). Point any MCP client at the URL; authentication uses your own Apify token.

```json
{
  "mcpServers": {
    "ai-dc-bom-scanner": {
      "type": "http",
      "url": "https://neeenja--ai-dc-bom-scanner.apify.actor/mcp"
    }
  }
}
```

Some clients require both content types in `Accept`:

```
Accept: application/json, text/event-stream
```

Omitting `text/event-stream` returns **406** — that is the spec, not a fault.

### Data & honesty

**No API key is required.** The server measures five of the seven signals live from free, public sources:

| Signal | Source | How |
|---|---|---|
| PE ratio | SEC EDGAR + Yahoo | filed quarterly XBRL EPS over the last traded price |
| Analyst Buy % | Nasdaq | explicit buy/hold/sell counts, not a proxy |
| Earnings growth 36m | SEC EDGAR | annual `NetIncomeLoss`, latest FY vs FY three years back |
| Revenue growth 36m | SEC EDGAR | annual `Revenues`, same shape |
| Forward earnings growth 12m | Nasdaq | next-fiscal-year consensus EPS vs the last completed FY |
| Technical moat | curated | maintained by the author, reviewed quarterly — never fetched |

The curated universe (~30 U.S.-listed suppliers across 10 supply-chain categories) also ships with the server.

**Forward revenue growth has no free equivalent.** Rather than invent it, it is left undefined: the engine imputes it from the universe median with the usual 0.5x penalty, flags `MISSING_FWDREVENUEGROWTH12M`, and caps the composite at 60 when two or more quantitative signals are missing. A partly-sourced score never outranks a fully-sourced one.

**Every row carries its own provenance** — the price used, whether the PE denominator was a trailing-twelve-month window or a fiscal year (`PE_ANNUAL-FY`), how many estimates backed the forward figure, and how many signals were measured live. Comparing two rows tells you whether they were scored on the same basis.

If you set `FMP_API_KEY`, Financial Modeling Prep takes over and measures all seven. The scan reports its mode as `fmp`, `keyless` or `offline-demo`, and publishes `sourceHealth` (requests attempted, failures, first few error messages) so a silent degradation to the bundled sample is visible in the output rather than inferred from silence.

**NOT INVESTMENT ADVICE.** Informational and educational only; not a solicitation. Verify with primary sources. Past rankings do not predict future returns. Moat scores are a qualitative judgement, not a measurement. Upstream data © SEC EDGAR (US public filings), Nasdaq and Yahoo Finance; only derived scores are published.

### License

**Proprietary.** Source available on request.

***

<a id="简体中文"></a>

## 简体中文

### 为什么做这个

显眼的 AI 龙头股很少便宜。真正的机会在供应链的长尾里——内存、散热、电力、互联、光模块、晶圆代工——这些环节的估值错位远比龙头股常见。

本服务交付的是**精选 AI-BOM 宇宙 + 一套可解释的 7 信号综合评分 + 原生 MCP 接口**，按调用计费。

### 工具

| 工具 | 价格 | 返回内容 |
|---|---:|---|
| `scan` | $0.050 | 全宇宙重新扫描 + 7 信号排名。最贵的一次调用，会拉取计费的上游数据。 |
| `get_list` | $0.020 | 最新缓存的周榜快照，不发起新的上游请求。 |
| `get_stock` | $0.015 | 单只股票的逐指标评分拆解。 |
| `get_universe` | $0.010 | 精选宇宙：公司、代码、环节分类、护城河评级。 |
| `get_methodology` | 免费 | 指标定义、权重、归一化区间、免责声明。 |

**发现阶段永远免费。** `initialize` 与 `tools/list` 永不计费——连不上的客户端绝不该被收费。

另有 `sunday_scan` 提示词，引导 agent 按周刷新榜单。

### 7 信号综合评分

综合分 = Σ(权重ᵢ × 归一化分ᵢ)。每个信号先归一化到 0–100 再加权，权重和为 1.0。

| 信号 | 权重 | 方向 |
|---|:---:|---|
| PE 比率（TTM） | 0.20 | 越低越好（反向） |
| 分析师 Buy 占比 | 0.15 | 越高越好 |
| 盈利增长（36 个月） | 0.15 | 越高越好 |
| 预测盈利增长（未来 12 个月） | 0.15 | 越高越好 |
| 技术护城河（人工判定 1–5） | 0.15 | 越高越好 |
| 营收增长（36 个月） | 0.10 | 越高越好 |
| 预测营收增长（未来 12 个月） | 0.10 | 越高越好 |

每条结果都附逐信号拆解，排名可复核，不必盲信。

**边界情况一律标注、不做隐藏：** PE ≤ 0 或非有限值 → 计 0 分并标 `peInvalid`；某项指标缺失时用宇宙中位数填补并打 0.5× 折扣，同时标 `MISSING_*`；缺失 ≥ 2 个定量信号 → 标 `lowCoverage` 且综合分封顶 60；无分析师评级 → 计中性 50 分并标 `LOW_CONFIDENCE_BUY`。

### 接入方式

托管端点使用 **MCP Streamable HTTP**（Apify 已于 2026 年 4 月下线 HTTP+SSE）。把任意 MCP 客户端指向该 URL 即可，鉴权使用你自己的 Apify token。

```json
{
  "mcpServers": {
    "ai-dc-bom-scanner": {
      "type": "http",
      "url": "https://neeenja--ai-dc-bom-scanner.apify.actor/mcp"
    }
  }
}
```

部分客户端要求 `Accept` 同时声明两种内容类型：

```
Accept: application/json, text/event-stream
```

缺少 `text/event-stream` 会返回 **406**——这是协议要求，不是故障。

### 数据与诚实原则

**无需任何 API key。** 服务用三个免费公开源实测出七个信号里的五个：

| 信号 | 来源 | 口径 |
|---|---|---|
| PE 比率 | SEC EDGAR + Yahoo | 已申报季度 XBRL 的 EPS ÷ 最新成交价 |
| 分析师 Buy 占比 | Nasdaq | 真实的 buy/hold/sell 分布，不是推算 |
| 36 个月盈利增长 | SEC EDGAR | 年度 `NetIncomeLoss`，最新 FY 对三年前 FY |
| 36 个月营收增长 | SEC EDGAR | 年度 `Revenues`，同上 |
| 未来 12 个月盈利增长 | Nasdaq | 下一财年共识 EPS 对上一个完整 FY |
| 技术护城河 | 策展 | 作者维护、季度复核，从不外部获取 |

精选宇宙（约 30 家美国上市供应商，覆盖 10 个供应链环节）同样随服务提供。

**「未来 12 个月营收增长」没有免费等价源。** 与其编一个值，不如留空：引擎会用宇宙中位数填补、打0.5× 折扣、标 `MISSING_FWDREVENUEGROWTH12M`；缺失 ≥2 个定量信号时综合分封顶 60。**部分实测的分数永远压不过全实测的分数。**

**每一行都带自己的数据出处** —— 用的价格、PE 分母是滚动 12 个月还是整财年（`PE_ANNUAL-FY`）、前瞻数字由多少份预估支撑、实测了几个信号。两行摆一起比较，你能看到它们是不是同一口径打的分。

若设了 `FMP_API_KEY`，则改由 Financial Modeling Prep 供数，七个信号全测。扫描结果的 `source` 会标明 `fmp` / `keyless` / `offline-demo`，并附 `sourceHealth`（请求数、失败数、前几条错误）—— 万一悄悄退化成内置样例，**在输出里看得见，而不是靠沉默去猜**。

**非投资建议。** 仅供参考与教育，不构成要约；请以原始来源核验。过往排名不预示未来回报。护城河评分是定性判断，不是测量值。上游数据 © SEC EDGAR（美国公开申报文件）、Nasdaq、Yahoo Finance；仅发布衍生评分。

### 授权协议

**专有。** 源码可按需提供。

***

<a id="繁體中文"></a>

## 繁體中文

### 為什麼做這個

顯眼的 AI 龍頭股很少便宜。真正的機會在供應鏈的長尾裡——記憶體、散熱、電力、互連、光模組、晶圓代工——這些環節的估值錯位遠比龍頭股常見。

本服務交付的是**精選 AI-BOM 宇宙 + 一套可解釋的 7 訊號綜合評分 + 原生 MCP 介面**，按呼叫計費。

### 工具

| 工具 | 價格 | 回傳內容 |
|---|---:|---|
| `scan` | $0.050 | 全宇宙重新掃描 + 7 訊號排名。最貴的一次呼叫，會拉取計費的上游資料。 |
| `get_list` | $0.020 | 最新快取的週榜快照，不發起新的上游請求。 |
| `get_stock` | $0.015 | 單檔股票的逐指標評分拆解。 |
| `get_universe` | $0.010 | 精選宇宙：公司、代碼、環節分類、護城河評級。 |
| `get_methodology` | 免費 | 指標定義、權重、正規化區間、免責聲明。 |

**探索階段永遠免費。** `initialize` 與 `tools/list` 永不計費——連不上的用戶端絕不該被收費。

另有 `sunday_scan` 提示詞，引導 agent 依週刷新榜單。

### 7 訊號綜合評分

綜合分 = Σ(權重ᵢ × 正規化分ᵢ)。每個訊號先正規化到 0–100 再加權，權重和為 1.0。

| 訊號 | 權重 | 方向 |
|---|:---:|---|
| PE 比值（TTM） | 0.20 | 越低越好（反向） |
| 分析師 Buy 佔比 | 0.15 | 越高越好 |
| 獲利成長（36 個月） | 0.15 | 越高越好 |
| 預測獲利成長（未來 12 個月） | 0.15 | 越高越好 |
| 技術護城河（人工判定 1–5） | 0.15 | 越高越好 |
| 營收成長（36 個月） | 0.10 | 越高越好 |
| 預測營收成長（未來 12 個月） | 0.10 | 越高越好 |

每筆結果都附逐訊號拆解，排名可複核，不必盲信。

**邊界情況一律標註、不做隱藏：** PE ≤ 0 或非有限值 → 計 0 分並標 `peInvalid`；某項指標缺失時用宇宙中位數填補並打 0.5× 折扣，同時標 `MISSING_*`；缺失 ≥ 2 個定量訊號 → 標 `lowCoverage` 且綜合分封頂 60；無分析師評級 → 計中性 50 分並標 `LOW_CONFIDENCE_BUY`。

### 接入方式

託管端點使用 **MCP Streamable HTTP**（Apify 已於 2026 年 4 月下線 HTTP+SSE）。把任一 MCP 用戶端指向該 URL 即可，驗證使用你自己的 Apify token。

```json
{
  "mcpServers": {
    "ai-dc-bom-scanner": {
      "type": "http",
      "url": "https://neeenja--ai-dc-bom-scanner.apify.actor/mcp"
    }
  }
}
```

部分用戶端要求 `Accept` 同時宣告兩種內容型別：

```
Accept: application/json, text/event-stream
```

缺少 `text/event-stream` 會回傳 **406**——這是協定要求，不是故障。

### 資料與誠實原則

**不需要任何 API key。** 服務用三個免費公開源實測出七個訊號裡的五個：

| 訊號 | 來源 | 口徑 |
|---|---|---|
| PE 比值 | SEC EDGAR + Yahoo | 已申報季度 XBRL 的 EPS ÷ 最新成交價 |
| 分析師 Buy 佔比 | Nasdaq | 真實的 buy/hold/sell 分布，不是推算 |
| 36 個月獲利成長 | SEC EDGAR | 年度 `NetIncomeLoss`，最新 FY 對三年前 FY |
| 36 個月營收成長 | SEC EDGAR | 年度 `Revenues`，同上 |
| 未來 12 個月獲利成長 | Nasdaq | 下一財年共識 EPS 對上一個完整 FY |
| 技術護城河 | 策展 | 作者維護、每季複核，從不外部取得 |

精選宇宙（約 30 家美國上市供應商，涵蓋 10 個供應鏈環節）同樣隨服務提供。

**「未來 12 個月營收成長」沒有免費等價源。** 與其編一個值，不如留空：引擎會用宇宙中位數填補、打 0.5× 折扣、標 `MISSING_FWDREVENUEGROWTH12M`；缺失 ≥ 2 個定量訊號時綜合分封頂 60。**部分實測的分數永遠壓不過全實測的分數。**

**每一列都帶自己的資料出處** —— 用的價格、PE 分母是滾動 12 個月還是整財年（`PE_ANNUAL-FY`）、前瞻數字由多少份預估支撐、實測了幾個訊號。兩列擺一起比較，你能看到它們是不是同一口徑打的分。

若設了 `FMP_API_KEY`，則改由 Financial Modeling Prep 供數，七個訊號全測。掃描結果的 `source` 會標明 `fmp` / `keyless` / `offline-demo`，並附 `sourceHealth`（請求數、失敗數、前幾筆錯誤）—— 萬一悄悄退化成內建範例，**在輸出裡看得見，而不是靠沉默去猜**。

**非投資建議。** 僅供參考與教育，不構成要約；請以原始來源查核。過往排名不預示未來回報。護城河評分是定性判斷，不是量測值。上游資料 © SEC EDGAR（美國公開申報文件）、Nasdaq、Yahoo Finance；僅發布衍生評分。

### 授權條款

**專有。** 原始碼可依需求提供。

# Changelog

This Actor's version history is a separate document: https://apify.com/neeenja/ai-dc-bom-scanner/changelog.md

# Actor input Schema

## Actor input object example

```json
{}
```

# Actor output Schema

## `mcpEndpoint` (type: `string`):

Streamable HTTP MCP endpoint of this Actor run. Connect an MCP client here (Authorization: Bearer \<APIFY_TOKEN>). POST JSON-RPC messages: initialize, tools/list, tools/call.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("neeenja/ai-dc-bom-scanner").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("neeenja/ai-dc-bom-scanner").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call neeenja/ai-dc-bom-scanner --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,neeenja/ai-dc-bom-scanner"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GQQMIqHiqZBG7nLkG/builds/V0wfJT9m5hSmhNPST/openapi.json
