Skip to main content
Glama
nofendian17

mcp-saham-news

by nofendian17

MCP Server - Indonesian Stock News Scraper

MCP (Model Context Protocol) server for scraping Indonesian stock market news from multiple sources.

Features

  • Multiple Sources: Scrapes from 4 major Indonesian financial news websites:

    • EmitenNews.com

    • CNBC Indonesia

    • Kontan

    • Bisnis Indonesia

  • MCP Compatible: Built with the official MCP SDK

  • Headless Chrome: Uses Puppeteer for reliable scraping

  • Type-Safe: Written in TypeScript with Zod validation

  • Keyword Filtering: Filter articles by keywords

  • Structured Logging: Pino logger for debugging

Installation

npm install -g mcp-saham-news

Configuration

The server requires Chrome/Chromium and uses environment variables:

# Required: Path to Chrome executable
export PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome

# Optional: Log level (debug, info, warn, error)
export LOG_LEVEL=info

Install Chrome (if not already installed)

# Ubuntu/Debian
sudo apt-get install chromium-browser

# macOS
brew install chromium

MCP Client Setup

KiloCode / Cline (VS Code)

Add to your MCP settings (global or workspace):

{
  "mcpServers": {
    "saham-news": {
      "command": "npx",
      "args": ["mcp-saham-news"],
      "env": {
        "PUPPETEER_EXECUTABLE_PATH": "/usr/bin/google-chrome",
        "LOG_LEVEL": "info"
      },
      "disabled": false,
      "alwaysAllow": ["scrape_stock_news"]
    }
  }
}

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "saham-news": {
      "command": "npx",
      "args": ["mcp-saham-news"],
      "env": {
        "PUPPETEER_EXECUTABLE_PATH": "/usr/bin/google-chrome"
      }
    }
  }
}

Alternatively, use the globally installed command:

{
  "mcpServers": {
    "saham-news": {
      "command": "mcp-saham-news",
      "env": {
        "PUPPETEER_EXECUTABLE_PATH": "/usr/bin/google-chrome"
      }
    }
  }
}

Restart Client

Restart Claude Desktop or VS Code to load the MCP server.

MCP Tool

scrape_stock_news

Scrape latest Indonesian stock market news.

Parameters:

  • source (required): News source - cnbc, kontan, bisnis, emitennews, or all

  • limit (optional): Number of articles to return (1-50, default: 10)

  • keywords (optional): Array of keywords to filter articles

  • includeContent (optional): Fetch full article body (default: false)

Example:

{
  "source": "emitennews",
  "limit": 5,
  "keywords": ["BBRI", "BBCA"]
}

Response:

[
  {
    "title": "Article title",
    "url": "https://...",
    "source": "EmitenNews.com",
    "publishedAt": "2026-02-14T02:00:00.000Z",
    "summary": "Optional summary",
    "imageUrl": "https://...",
    "relativeDateText": "4 jam yang lalu"
  }
]

Development

Build the Project

npm run build

Run in Development Mode

npm run dev

Test Individual Scrapers

# Test EmitenNews scraper
npx tsx src/scrapers/emitennews.ts

# Test CNBC scraper
npx tsx src/scrapers/cnbc-indonesia.ts

Project Structure

src/
├── index.ts              # MCP server entry point
├── types/index.ts        # TypeScript type definitions
├── browser-manager.ts    # Puppeteer browser manager
├── scrapers/
│   ├── base.ts           # Abstract base scraper
│   ├── emiteanews.ts
│   ├── cnbc-indonesia.ts
│   ├── kontan.ts
│   └── bisnis-indonesia.ts
└── tools/
    └── scrape-news.ts    # MCP tool implementation

License

ISC

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nofendian17/stock-news-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server