name: rootdata-scraper description: Using Browser MCP, scrape rootdata fundraising data (Token Issuance = No Token) from https://www.rootdata.com/Fundraising
Rootdata Scraper Skill
Instructions
The current date is: !date Please use this date for any time-sensitive tasks.
Step 1: Navigate to Fundraising Page
Open the RootData fundraising page using Browser MCP:
- Use
browser_navigateaction with URL:https://www.rootdata.com/Fundraising - Wait for the page to fully load using
browser_wait_for(wait for text "Project" or table element to appear)
Step 2.5: Select "No Token" in Token Issuance Filter
After the page loads, you need to first expand the Token Issuance menu, then select No Token filter. The "No Token" option is hidden until the menu is expanded:
First, click the "Token Issuance" collapse button to expand the menu:
- Use
browser_clickorbrowser_evaluateto find and click the Token Issuance header button - Look for element with
role="tab"containing text "Token Issuance" or element withid="el-collapse-head-7949"(or similar dynamic ID) - The button structure:
<div role="tab"><div role="button" class="el-collapse-item__header">Token Issuance</div></div> - Wait for the menu to expand using
browser_wait_for(wait for text "No Token" to appear)
- Use
Then, select the "No Token" radio option:
- Use
browser_clickorbrowser_evaluateto run JavaScript that finds and clicks the "No Token" radio button - The radio is inside the expanded panel:
<div role="tabpanel" id="el-collapse-content-7949">(or similar dynamic ID) - Look for
<label role="radio">containing text "No Token" and click it
- Use
Important: After expanding the menu, wait 500ms-1s using
browser_wait_for(time-based wait) before trying to click "No Token", to ensure the menu animation completes.After clicking No Token, use
browser_wait_forto wait until the table finishes reloading (e.g., wait for a row with today's date to appear, or for the loading spinner to disappear) before proceeding to table extraction.
Step 3: Capture Page Snapshot
Take a snapshot to understand the page structure:
- Use
browser_snapshotto get the accessibility tree and identify the table element - Look for the table with
role="table"and class containing "table" or "b-table" - The table should have columns: Project, Round, Amount, Valuation, Date, Source, Investors
Step 4: Extract Today's Projects from Table
Extract all project links that match today's date:
Use
browser_evaluateto execute JavaScript that:- Finds all table rows (
<tr role="row">) - For each row, checks the Date column (5th column,
aria-colindex="5") - Extracts the date text and compares it with today's date format
- If date matches, extracts the project link from the Project column (1st column)
- The link is in format:
/Projects/detail/{ProjectName}?k={encodedId}
- Finds all table rows (
Store the list of project URLs for later processing
Step 5: Extract Project Details
For each project URL found in Step 4, perform the following:
5.1 Navigate to Project Detail Page
- Use
browser_navigateto open each project URL - Wait for page load using
browser_wait_for(wait for project name in<h1 class="name">)
5.2 Extract Project Name
- Use
browser_evaluateto extract text from<h1 class="name">element - Store as
project_name
5.3 Extract Official Website
- Use
browser_evaluateto find link in<div class="links">section - Look for
<a>tag withhrefstarting withhttp://orhttps://(excluding X/Twitter and LinkedIn) - Extract the
hrefattribute, store asofficial_website
5.4 Extract X (Twitter) Address
- Use
browser_evaluateto find link in<div class="links">section - Look for
<a>tag withhrefcontainingx.comortwitter.com - Extract the
hrefattribute, store astwitter_url
5.5 Extract Total Raised
- Use
browser_evaluateto find<div class="rank_container">section - Look for
<div class="rank_item">containing "Total Raised:" - Extract the value from
<span class="rank_value">element - Store as
total_raised(format: "$XXM" or "--")
5.6 Extract Core Investors
- Use
browser_evaluateto find<div class="comparison_table_tr">containing "Core Investors" - Extract all investor names from
<a class="investor_item_name">elements - Store as array
investors
5.7 Extract Tags
- Use
browser_evaluateto find<div class="side_bar_info">section - Look for
<div class="tag_item">containing "Tags:" - Extract all tag text from
<a class="chips">elements - Store as array
tags
5.8 Extract Founded Year
- Use
browser_evaluateto find<div class="side_bar_info">section - Look for
<div class="item">containing "Founded:" - Extract the year from
<span class="info_text">element - Store as
founded_year
5.9 Check for Premium Investors
Compare the investors list against the following premium investor list:
Coinbase Ventures
Galaxy
VanEck
Y Combinator
Polychain Capital
YZi Labs (Prev. Binance Labs)
Pantera Capital
Blockchain Capital
Anatoly Yakovenko
Delphi Ventures
Multicoin Capital
Santiago Roel Santos
HashKey Capital
Paradigm
Balaji Srinivasan
Sequoia Capital
Andreessen Horowitz (a16z crypto)
Dragonfly
Sandeep Nailwal
ConsenSys
a16z CSX
Stani Kulechov
BlackRock
Bryan Pellegrino
Raj Gokal
The Spartan Group
Circle
Paul Veradittakit
Vitalik Buterin
Alex Svanevik
Arthur Hayes
If any investor matches (case-insensitive, partial match allowed for variations like "Galaxy Ventures" matching "Galaxy"), add
is_premium: trueflagOtherwise,
is_premium: false
Step 6: Compile Results
After processing all projects, compile the data into a structured format:
projects_data = [
{
"name": "Project Name",
"official_website": "https://...",
"twitter_url": "https://x.com/...",
"total_raised": "$XXM",
"investors": ["Investor1", "Investor2", ...],
"tags": ["Tag1", "Tag2", ...],
"founded_year": "2022",
"is_premium": True/False
},
...
]
Step 7: Generate Markdown Output
Format the results as beautiful markdown with project separators (avoid tables for better CLI rendering):
# Today's Crypto Fundraising Projects (Dec 24, 2025)
---
## Project Name ⭐
**Website:** [project.com](https://project.com)
**Twitter:** [@handle](https://x.com/handle)
**Total Raised:** $52M
**Investors:** Investor1, Investor2, Investor3
**Tags:** Tag1, Tag2, Tag3
**Founded:** 2022
**Premium:** ⭐
---
## Another Project
**Website:** [another.com](https://another.com)
**Twitter:** [@another](https://x.com/another)
**Total Raised:** $2M
**Investors:** InvestorA, InvestorB
**Tags:** DeFi, DEX
**Founded:** 2025
---
Formatting Rules:
- Use
---horizontal rule as separator between projects - Add ⭐ emoji after project name in heading if
is_premium: true - Website: Show full URL as link, extract domain name for display
- Twitter: Extract handle from URL, show as
@handleformat with link - Investors: List all investors separated by commas (no truncation)
- Tags: List all tags separated by commas
- Premium: Show "⭐" on a separate line if premium, omit the line if not premium
- Use bold labels (
**Label:**) for field names - Keep consistent spacing and formatting
Step 8: Handle Edge Cases
- If a project detail page fails to load, skip it and continue with next project
- If any field is missing (shows "--" or empty), display "N/A" in the table
- If multiple official websites exist, use the first non-social-media link
- Handle date format variations (e.g., "Dec 24" vs "Dec 24, 2024")
Step 9: Error Handling
- If no projects found for today, display: "No new fundraising projects found for today."
- If browser navigation fails, retry once before skipping
- Log any errors but continue processing remaining projects
Step 10: Final Output
Present the final markdown table with all today's projects, sorted by total raised amount (descending), with premium projects highlighted.
Step 11: Send to Telegram (Optional)
After generating the final markdown output, check if the user has configured the telegram-notification MCP server:
Tool name: send_notification
Full name: mcp__telegram-notification__send_notification
Parameters:
- message (required): string - The message to send
- parse_mode (optional): string - The parse mode to use, defaults to "Markdown"
If telegram-notification is NOT configured:
- Skip this step and only display the results in the terminal/chat