mcpField
C
cninfo-to-notebooklm

cninfo-to-notebooklm

github.com/jarodiseData & databases365329 installsUpdated 19w ago
Repository

About cninfo-to-notebooklm

A skill that retrieves periodic reports for China A-share and Hong Kong stocks from cninfo and uploads them to NotebookLM, where a financial analyst persona supports report analysis.

Key features

  1. 01A-share and Hong Kong stock lookup
  2. 02Download annual and periodic reports
  3. 03Create and configure NotebookLM notebooks
  4. 04Upload report PDFs

Use cases

  1. 01Gather a company's reports for financial research
  2. 02Prepare stock reports for analysis in NotebookLM

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jarodise/cninfo2notebookllm --skill cninfo-to-notebooklm

After installing, type/cninfo-to-notebooklmin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.gitignore
README.md
package.json
install.sh
requirements.txt
assets/
financial_analyst_prompt.txt
scripts/
download.py
upload.py
run.py

Details

From the project README

CNinfo to NotebookLM

Overview

Download annual and periodic reports for China A-share and Hong Kong stocks from cninfo.com.cn and upload them to NotebookLM for AI-powered analysis with a specialized "Financial Analyst" persona.

When to Use

  • User provides a China stock name or code (A-share or Hong Kong)
  • User wants to analyze a company's financial reports
  • User asks to "download reports" or "research" a Chinese stock
  • User wants to upload stock reports to NotebookLM

Supported Markets

MarketCode PatternExamples
A-share6-digit codes (0xxxxx, 3xxxxx, 6xxxxx)600519 (贵州茅台), 000001 (平安银行)
Hong Kong5-digit codes (00xxx, 01xxx, 02xxx, 09xxx)00700 (腾讯控股), 09988 (阿里巴巴)

Core Workflow

User provides stock name/code
        ↓
1. Look up stock in database (auto-detect market)
        ↓
2. Download reports from cninfo:
   - Last 5 years annual reports (年度报告)
   - Current year: Q1, semi-annual, Q3 reports
        ↓
3. Create NotebookLM notebook
        ↓
4. Configure "Financial Analyst" persona with custom prompt
        ↓
5. Upload all PDFs as sources
        ↓
6. Return notebook ID ✅

Step-by-Step Instructions

Step 0: Environment Setup (First Run Only)

Crucial: Before running the script, verify the environment is ready.

  1. Check Dependencies: Verify if the dependencies are installed (specifically notebooklm and playwright).

  2. Install: If dependencies are missing or this is the first run, execute the installation script:

    chmod +x install.sh && ./install.sh
    
  3. Authenticate: Ensure the user has authenticated with NotebookLM (notebooklm login). If not, ask them to do so.

Step 1: Run Main Orchestration Script

Run the script from the skill directory:

python3 scripts/run.py <stock_code_or_name>

Examples:

  • python3 scripts/run.py 600350 - A-share stock
  • python3 scripts/run.py 山东高速 - A-share by name
  • python3 scripts/run.py 00700 - Hong Kong stock (Tencent)
  • python3 scripts/run.py 腾讯控股 - Hong Kong by name

This script handles everything:

  1. Downloads reports to a temp directory.
  2. Creates a NotebookLM notebook.
  3. Configures the notebook with assets/financial_analyst_prompt.txt.
  4. Uploads all PDFs.
  5. Cleans up temp files.
Step 2: Report to User

Provide:

  • ✅ Number of reports downloaded & uploaded
  • 📚 NotebookLM notebook ID
  • 📊 Market type (A-share or Hong Kong)
  • 💡 Remind user the notebook creates a "Financial Analyst" persona for deep analysis.

Configuration

The skill uses a custom system prompt located at: assets/financial_analyst_prompt.txt

This prompt configures NotebookLM to act as a "Financial Report Analyst" based on "Hand-holding Financial Reporting" methodology.

Error Handling

ErrorSolution
Stock not foundCheck if code is valid A-share or Hong Kong stock
NotebookLM CLI not foundEnsure notebooklm-py matches requirements.txt and is in PATH
Auth missingRun notebooklm login to authenticate via browser
Upload failedCheck network connection and NotebookLM service status

Dependencies

  • Python 3.8+
  • httpx package
  • notebooklm-py package
  • playwright (for authentication)

Quick Reference

A-share Report Types
Report TypeCategory CodePeriod
Annualcategory_ndbg_szshPrevious 5 years
Semi-Annualcategory_bndbg_szshCurrent year
Q1 Reportcategory_yjdbg_szshCurrent year
Q3 Reportcategory_sjdbg_szshCurrent year
Hong Kong Stock Differences
AspectA-shareHong Kong
Market codeszsehke
CategoriesUses category codesEmpty categories
Search keyUses Chinese search termsEmpty search key
Report namingYYYY年年度报告May use Arabic/Chinese numerals
Search periodFollowing year (March-June)Same year or following year

Comments

Markdown supported