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

uc-mcp-server

v0.2.17

Published

MCP server for UnknownCheats forum — Cloudflare bypass, thread scraping, code extraction

Readme

uc-mcp-server

An MCP (Model Context Protocol) server for programmatically interacting with the UnknownCheats forum. Bypasses Cloudflare protection using a real Chrome instance and provides structured data extraction via Cheerio.

npm version License: MIT

Features

  • Cloudflare bypass — Uses puppeteer-real-browser with a headed Chrome instance to solve Turnstile challenges automatically
  • Cookie persistence — Session cookies saved to cookies.json and reused across restarts
  • Auto-recovery — Detects detached frame / browser crash errors and relaunches automatically
  • 6 MCP tools — Login, search, thread reading, pagination, code extraction, and debug

Tools

| Tool | Description | Parameters | |---|---|---| | check_login | Check if the browser session is logged in | — | | login | Auto-fill credentials and log in | username, password | | search_forum | Search UC or browse a subforum | query, subforum? | | get_thread | Fetch thread posts with pagination | url, fetch_all_pages? | | extract_code | Extract C++/C#/Python/Lua code blocks | url, limit?, export_to_file? | | debug_page | Inspect raw page structure for debugging | url |

extract_code details

| Parameter | Default | Description | |---|---|---| | url | required | Thread URL | | limit | 10 (max 50) | Max blocks to return inline | | export_to_file | false | Save all blocks to exports/<slug>_<timestamp>.json |

When the limit is hit, the response includes truncated: true, last_post_id (so you know where to resume), and a hint on how many blocks were skipped. Each block also carries a postId so you can trace it back to the exact post on the page.

Stack

Requirements

  • Bun v1.0+
  • Google Chrome installed (required by puppeteer-real-browser)

Installation

# via npm
npx uc-mcp-server

# or clone
git clone https://github.com/amaralkaff/mcp-unknowncheat.git
cd mcp-unknowncheat
bun install

Setup with Claude Code

claude mcp add uc-mcp bun -- run "/path/to/mcp-unknowncheat/src/index.ts"

Or with npx:

claude mcp add uc-mcp npx -- uc-mcp-server

Setup with Claude Desktop

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

{
  "mcpServers": {
    "uc-mcp": {
      "command": "npx",
      "args": ["uc-mcp-server"]
    }
  }
}

Usage

On first run, Chrome opens in headed mode. Log in manually or use the login tool:

login({ username: "your_username", password: "your_password" })

Cookies are saved automatically. Subsequent runs reuse the session.

Examples

# Check login status
check_login()

# Browse the Apex Legends subforum
search_forum({ subforum: "apex-legends" })

# Search across all forums
search_forum({ query: "pubg offsets" })

# Get a thread (single page)
get_thread({ url: "https://www.unknowncheats.me/forum/..." })

# Get all pages of a thread
get_thread({ url: "https://www.unknowncheats.me/forum/...", fetch_all_pages: true })

# Extract code blocks (up to 10 inline)
extract_code({ url: "https://www.unknowncheats.me/forum/..." })

# Extract all code blocks and save to file
extract_code({ url: "https://www.unknowncheats.me/forum/...", export_to_file: true })

Project Structure

src/
├── index.ts          # MCP server entry + tool registration
├── browser.ts        # Chrome lifecycle, Cloudflare bypass, cookie persistence
├── types.ts          # Shared TypeScript interfaces
├── tools/
│   ├── check-login.ts
│   ├── login.ts
│   ├── search-forum.ts
│   ├── get-thread.ts
│   ├── extract-code.ts
│   └── debug-page.ts
└── parsers/
    ├── thread.ts         # Post extraction, pagination
    ├── search-results.ts # Search result parsing
    ├── code-blocks.ts    # Code extraction + language detection
    └── tags.ts           # Thread tag detection ([Source], [Release], etc.)

Notes

  • All logging uses console.error()console.log() is reserved for the MCP stdio transport
  • Thread pagination capped at 50 pages by default for fetch_all_pages
  • Language detection supports: C++, C#, Python, Lua
  • Exported files are saved to ./exports/ and are excluded from git and npm

Issues

Found a bug or want to request a feature? Open an issue at:

https://github.com/amaralkaff/mcp-unknowncheat/issues