hotcopper-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hotcopper-mcpsearch for ASX: BHP threads"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
HotCopper MCP
Unofficial Model Context Protocol server for HotCopper — Australia’s largest ASX share-trading forum.
HotCopper has no public API. This server reverse-engineers the site’s session cookies and HTML pages so agents can search, read threads, and (optionally) reply as a logged-in user.
Not affiliated with HotCopper / Gumtree Australia Markets. Personal use only. Respect HotCopper’s terms of service and rate limits. Never commit session cookies.
Features
Tool | Description |
| Whether a session is loaded ( |
| Live feed ( |
| Discussion threads for an ASX ticker |
| Read posts in a thread |
| Site search |
| Homepage news / opinion |
| Account page + auth summary |
| Post a reply ( |
Related MCP server: mcp-financex
Requirements
Node.js 20+
A HotCopper account
Playwright Chromium (for the one-time login capture)
Install
git clone https://github.com/mKlus/hotcopper-mcp.git
cd hotcopper-mcp
npm install
npx playwright install chromiumAuthenticate (once)
npm run capture
# or use your installed Google Chrome:
npm run capture:chromeA browser window opens on HotCopper.
Log in.
Optionally browse search / a stock / a thread so capture notes the flows.
Press Enter in the terminal (or
touch auth/DONE).
This writes (gitignored):
auth/storage-state.json— Playwright storage state (cookies)auth/cookies.json— cookie jar dumpcaptures/*— optional network HAR / endpoint summary
Re-run capture when the session expires.
Run the MCP server
npm startGrok
[mcp_servers.hotcopper]
command = "node"
args = ["/absolute/path/to/hotcopper-mcp/src/server.js"]
enabled = true
startup_timeout_sec = 30
tool_timeout_sec = 120grok mcp add hotcopper -- node /absolute/path/to/hotcopper-mcp/src/server.jsClaude Desktop / Cursor
Add a stdio MCP server pointing at node + src/server.js (same as above).
Smoke test
With a valid auth/storage-state.json:
npm run smokeArchitecture
capture (Playwright, headed)
→ auth/storage-state.json
↓
MCP tools → HTTP + Cheerio HTML parse
→ latest posts / stock threads / thread body / search / replyReverse-engineered surface
Auth: XenForo-style cookies
xf_user,xf_sessionSearch:
POST /search/search/withkeywords,visitorXfToken,user_idReply:
POST /threads/{slug}.{id}/add-replywithmessage_html,_xfToken,thread_idReads: server-rendered HTML (
/postview/,/asx/{ticker}/,/threads/…)
There is no stable official JSON API for forum content; parsers may need updates if HotCopper changes markup.
Safety
auth/andcaptures/are gitignored — do not commit them.reply_to_threadrefuses to post unlessconfirm=true. Preferdry_run=truefirst.Use your own account; do not mass-scrape or spam.
Development
npm run capture # headed login + network sniff
npm run analyze # summarize latest captures/endpoints-*.json
npm run smoke # exercise read tools
npm start # stdio MCP serverLicense
MIT — see LICENSE.
This server cannot be installed
Maintenance
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mKlus/hotcopper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server