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

Related MCP server: crypto-news-mcp

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

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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