# AlphaBook Event & Seasonal MCP (`neeenja/alphabook-event-seasonal`) Actor

Event & seasonal signal engine as a remote MCP server. Five tools: get_earnings_drift, get_seasonality, get_event_window, get_dividend_signal, rank_event_alpha. Returns event/seasonal verdicts with historical edge and invalidation, not forecast. A-shares, HK, US, no API key.

- **URL**: https://apify.com/neeenja/alphabook-event-seasonal.md
- **Developed by:** [Neeen Ja](https://apify.com/neeenja) (community)
- **Categories:** MCP servers, AI
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 analysis calls

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

## AlphaBook Event & Seasonal MCP

Event & seasonal signal engine as a remote MCP server. It gives your agent **event / seasonal verdicts (earnings-drift proxy, monthly seasonality, calendar-anchor window, dividend signal)** — not forecasts. Five tools cover post-shock drift, month-of-year effect, recurring calendar windows, a dividend/income read, and a basket event-alpha ranking. All metrics are pure price- or valuation-snapshot derived. No API key. **Not investment advice.**

> **Honest boundary:** the free source gives price/valuation only — there is no real earnings calendar or event feed, so "earnings drift" is a post-shock continuation *proxy*; seasonality and calendar windows are in-sample historical averages that do not guarantee repetition; dividend yield is `n/a` when the free source exposes no DPS (never fabricated as `0`). Every output carries `NOT_ADVICE`.

### Tools

| Tool | Event | Returns |
|------|-------|---------|
| `get_earnings_drift` | tool-call $0.02 | Post-shock up/down drift + net drift (PEAD proxy) |
| `get_seasonality` | tool-call $0.02 | 12-month in-sample average daily return table |
| `get_event_window` | tool-call $0.02 | Avg/median return after a calendar anchor (month/quarter/year) |
| `get_dividend_signal` | tool-call $0.02 | Dividend yield (if DPS available) + valuation snapshot |
| `rank_event_alpha` | **screen-call $0.05** | Basket ranked by z-scored event/seasonal alpha blend |

### Connect (MCP client)

```
https://neeenja--alphabook-event-seasonal.apify.actor/mcp
Authorization: Bearer <APIFY_TOKEN>
```

POST JSON-RPC: `initialize`, `tools/list`, `tools/call`. Example:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": { "name": "get_earnings_drift", "arguments": { "code": "600519" } }
}
```

### Pricing

Pay-per-event. `initialize` and `tools/list` are free. Each analysis call is **$0.02**; a basket event-alpha ranking (`rank_event_alpha`) is **$0.05** because it scores up to 10 symbols.

### Data sources & honest limits

- **Klines:** Tencent `gtimg.cn` (A/HK/US) and Yahoo (global). Free, no key.
- **Valuation snapshot:** East Money datacenter (A-shares only). Snapshot, no history.
- **Dividend:** best-effort East Money bonus feed; when unavailable the tool returns `n/a` (not `0`).
- Missing data → `n/a`, never a fabricated `0`. Every output carries a `NOT_ADVICE` disclaimer.

***

## AlphaBook 事件与季节性 MCP

事件与季节性信号引擎，以远程 MCP 服务器形式提供。它给 agent 的是 **事件 / 季节性判定（盈余漂移代理、月度季节性、日历锚点窗口、股息信号）**，而非预测。五个工具覆盖大波动后惯性、月份效应、周期日历窗口、股息 / 收入判读，以及篮子事件超额收益排名。所有指标均为纯价格或估值快照派生，免费公开数据，无需 API Key。**不构成投资建议。**

> **诚实边界：** 免费源只给价格 / 估值，无真实财报日历或事件源，故「盈余漂移」为事件冲击后惯性的 *代理*；季节性与日历窗口均为样本内历史平均，不保证重复；免费源未提供 DPS 时股息率如实返回 `n/a`（不编造 `0`）。所有输出带 `NOT_ADVICE`。

### 工具

| 工具 | 计费事件 | 返回 |
|------|----------|------|
| `get_earnings_drift` | tool-call $0.02 | 上行 / 下行冲击后漂移 + 净漂移（PEAD 代理） |
| `get_seasonality` | tool-call $0.02 | 12 个月样本内平均日收益表 |
| `get_event_window` | tool-call $0.02 | 日历锚点（月 / 季 / 年）后平均 / 中位收益 |
| `get_dividend_signal` | tool-call $0.02 | 股息率（若有 DPS）+ 估值快照 |
| `rank_event_alpha` | **screen-call $0.05** | 篮子按 z 分组合的事件 / 季节性 alpha 排名 |

### 连接（MCP 客户端）

```
https://neeenja--alphabook-event-seasonal.apify.actor/mcp
Authorization: Bearer <APIFY_TOKEN>
```

发送 JSON-RPC：`initialize`、`tools/list`、`tools/call`。示例：

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": { "name": "get_earnings_drift", "arguments": { "code": "600519" } }
}
```

### 计费

按事件付费。`initialize` 与 `tools/list` 免费。每次分析调用 **$0.02**；篮子事件超额收益排名（`rank_event_alpha`）为 **$0.05**，因其对最多 10 只标的打分。

### 数据源与诚实边界

- **K 线：** 腾讯 `gtimg.cn`（A/港/美）+ Yahoo（全球）。免费，无需 Key。
- **估值快照：** 东方财富 datacenter（仅 A 股）。快照，无历史。
- **股息：** 尽力取东方财富分红源；不可用时如实返回 `n/a`（非 `0`）。
- 数据缺失 → `n/a`，绝不编造 `0`。所有输出带 `NOT_ADVICE` 声明。

***

## AlphaBook 事件與季節性 MCP

事件與季節性信號引擎，以遠端 MCP 伺服器形式提供。它給 agent 的是 **事件 / 季節性判定（盈餘漂移代理、月度季節性、日曆錨點視窗、股息信號）**，而非預測。五個工具涵蓋大波動後慣性、月份效應、週期日曆視窗、股息 / 收益判讀，以及籃子事件超額收益排名。所有指標均為純價格或估值快照派生，免費公開資料，無需 API Key。**不構成投資建議。**

> **誠實邊界：** 免費源只給價格 / 估值，無真實財報日曆或事件源，故「盈餘漂移」為事件衝擊後慣性的 *代理*；季節性與日曆視窗均為樣本內歷史平均，不保證重複；免費源未提供 DPS 時股息率如實回傳 `n/a`（不捏造 `0`）。所有輸出帶 `NOT_ADVICE`。

### 工具

| 工具 | 計費事件 | 回傳 |
|------|----------|------|
| `get_earnings_drift` | tool-call $0.02 | 上行 / 下行衝擊後漂移 + 淨漂移（PEAD 代理） |
| `get_seasonality` | tool-call $0.02 | 12 個月樣本內平均日收益表 |
| `get_event_window` | tool-call $0.02 | 日曆錨點（月 / 季 / 年）後平均 / 中位收益 |
| `get_dividend_signal` | tool-call $0.02 | 股息率（若有 DPS）+ 估值快照 |
| `rank_event_alpha` | **screen-call $0.05** | 籃子按 z 分組合的事件 / 季節性 alpha 排名 |

### 連線（MCP 用戶端）

```
https://neeenja--alphabook-event-seasonal.apify.actor/mcp
Authorization: Bearer <APIFY_TOKEN>
```

傳送 JSON-RPC：`initialize`、`tools/list`、`tools/call`。範例：

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": { "name": "get_earnings_drift", "arguments": { "code": "600519" } }
}
```

### 計費

按事件付費。`initialize` 與 `tools/list` 免費。每次分析呼叫 **$0.02**；籃子事件超額收益排名（`rank_event_alpha`）為 **$0.05**，因其對最多 10 檔標的打分。

### 資料源與誠實邊界

- **K 線：** 騰訊 `gtimg.cn`（A/港/美）+ Yahoo（全球）。免費，無需 Key。
- **估值快照：** 東方財富 datacenter（僅 A 股）。快照，無歷史。
- **股息：** 盡力取東方財富分紅源；不可用時如實回傳 `n/a`（非 `0`）。
- 資料缺失 → `n/a`，絕不捏造 `0`。所有輸出帶 `NOT_ADVICE` 聲明。

# 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.

## `tools` (type: `string`):

Comma-separated list of the 5 tools: get_earnings_drift, get_seasonality, get_event_window, get_dividend_signal, rank_event_alpha.

# 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/alphabook-event-seasonal").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/alphabook-event-seasonal").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/alphabook-event-seasonal --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,neeenja/alphabook-event-seasonal"
        }
    }
}
```

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/tCNrikp57POQPTJeJ/builds/1LTfee1ZMtv4zFeT3/openapi.json
