npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

equity-research-mcp

v1.0.0

Published

MCP server for Indian equity research — Screener.in + Google Workspace + 8 analytical personas

Readme

equity-research-mcp

MCP server for Indian equity research. 34 tools — Screener.in + Google Workspace + 8 analytical personas.

What It Does

  • Fetch financials, shareholding, peers, announcements, transcripts for 50,000+ Indian-listed companies (Screener.in)
  • Analyze through structured frameworks — business quality, moat, governance, valuation, scenarios
  • Apply 8 investor persona lenses (Buffett, Munger, Lynch, Dalio, Yartseva, Marks, Smith/Train, Sell-Side)
  • Generate one-pagers, IC memos, earnings reviews, peer comparison tables
  • Integrate Gmail, Calendar, Drive, Docs, Contacts — search emails, find documents, check events
  • Research in one shot — full_research combines Screener.in + Gmail + Drive + Calendar → executive summary → detailed memo

Install

Linux / macOS

Prerequisites: Node.js 18+

curl -fsSL https://raw.githubusercontent.com/roroRathod/equity-analyst-mcp/main/quick-install.sh | bash

Windows (PowerShell)

Prerequisites: Node.js 18+

irm https://raw.githubusercontent.com/roroRathod/equity-analyst-mcp/main/quick-install.ps1 | iex

Manual MCP config

If you manage your own MCP config, add directly:

{
  "equity-research": {
    "type": "local",
    "command": ["npx", "-y", "equity-research-mcp"]
  }
}

Option 3 — Clone + build

git clone https://github.com/roroRathod/equity-analyst-mcp.git
cd equity-research-mcp
bash install.sh

The interactive installer builds TypeScript, sets up Google Workspace OAuth, and registers with opencode.

Config: ~/.config/equity-research/config.json (permissions: chmod 600)


Google Workspace Setup (once per device)

The OAuth flow lives entirely in this MCP — no separate google-workspace server needed.

Step 1 — Create OAuth credentials (one-time)

  1. Go to Google Cloud Console
  2. Create a new project (or select existing)
  3. Enable APIs — Go to APIs & Services → Library, enable:
    • Gmail API
    • Google Calendar API
    • Google Drive API
    • Google Docs API
    • People API (for Contacts)
  4. Configure OAuth consent screen — Go to APIs & Services → OAuth consent screen:
    • User type: External
    • App name: anything (e.g. "Equity Research MCP")
    • User support email: your email
    • Developer contact email: your email
    • Save and continue through Scopes and Data Use screens
  5. Add test users — On the OAuth consent screen → Audience tab:
    • Click Add users
    • Add every Gmail address you want to connect
    • Only added users can authorize until the app is published
  6. Create credentials — Go to Credentials → Create Credentials → OAuth client ID:
    • Application type: Desktop app
    • Name: anything
    • Click Create
  7. Copy the Client ID and Client Secret (or download JSON)

Step 2 — Connect your account

Run in opencode:

equity-research setup_workspace                          # → get instructions
equity-research setup_workspace_auth step=generate_url   # → get auth URL
# Open URL in browser → sign in → authorize → paste code:
equity-research setup_workspace_auth step=exchange_code  # → tokens stored

Or use the interactive installer: bash install.sh and answer y when asked.

Credentials stored at ~/.config/equity-research/config.json (chmod 600).

Tools

Screener.in (7 tools)

search_stock get_company_data get_shareholding get_announcements get_concall get_peers get_price_history

Analysis (4 tools)

business_quality_check moat_assessment governance_check apply_lens

Reports (5 tools)

one_pager ic_memo earnings_review peer_comparison full_research

Gmail (5 tools)

search_emails read_email send_email list_labels list_drafts

Calendar (3 tools)

list_events create_event find_free_time

Drive (3 tools)

search_drive list_folder read_drive_file

Docs (3 tools)

create_doc read_doc append_to_doc

Contacts (2 tools)

search_contacts list_contacts

Setup (2 tools)

setup_workspace setup_workspace_auth

Multi-Source Research

// full_research:
{ "ticker": "TCS", "with_email": true, "with_drive": true, "with_calendar": true }

Produces: Executive Summary → One-pager → Peer Comparison → Email/Drive/Calendar sections → IC Memo

Project Structure

src/
├── index.ts          # MCP server — 34 tool definitions + handlers
├── config.ts         # Config persistence, old→new migration, chmod 600
├── types.ts          # Domain types
├── screener.ts       # Screener.in scraper
├── frameworks/       # Business quality, moat, valuation, scenarios
├── personas/         # 8 investor lenses
├── governance/       # India governance checks
├── templates/        # Report formatters
└── workspace/        # Google Workspace sub-system (Gmail, Calendar, Drive, Docs, Contacts)
    ├── auth.ts       # OAuth2 client factory, scope constants
    ├── gmail.ts      # search, read, send, labels, drafts
    ├── calendar.ts   # list, create with Meet, find free time
    ├── drive.ts      # search, list folder, read (content-type-aware)
    ├── docs.ts       # create, read, append
    ├── contacts.ts   # search, list
    └── index.ts      # barrel exports + setup guide

Tests

npm test    # 49 tests — config, auth, gmail query

Design

  • Single OAuth2 flow per account with all 8 scopes — authenticate once
  • Centralized getAuth() in auth.ts — all 5 service modules import from it
  • Single config.ts — old email config auto-migrated to workspace format
  • Workspace modules individually try/caught — failures show "unavailable"
  • chmod 600 on config file, env vars instead of bash expansion in install.sh