TryHackMe MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| THM_SESSION | No | Your TryHackMe `connect.sid` session cookie. Free and public rooms work out of the box without logging in; provide this for VIP/subscriber rooms or account-specific progress. Can be obtained via the interactive login helper (which saves it into `.env`) or set directly in the MCP config `env` block. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| thm_check_authB | Check current TryHackMe authentication status and session validity. Returns details on whether the MCP server is currently connected under your account. |
| thm_search_roomsB | Search TryHackMe rooms by keyword (e.g., 'linux', 'bash', 'networking', 'privesc'). Args: query: Search term or topic. limit: Maximum number of rooms to return (default: 10). |
| thm_get_room_overviewB | Get an overview of a TryHackMe room, including difficulty, estimated time, and tasks outline. Args: room_code: The room identifier (e.g. 'linuxfundamentalspart1'). |
| thm_get_taskA | Get the full educational content, commands, theory, and questions for a specific task in a room. Args: room_code: The room identifier (e.g. 'linuxfundamentalspart1'). task_no: The task number (1-indexed). |
| thm_get_room_fullB | Extract complete room content into structured Markdown with all tasks, theory, code, and exercises. Args: room_code: The room identifier (e.g. 'linuxfundamentalspart1'). |
| thm_get_curated_topicsA | List curated TryHackMe foundational learning rooms grouped by category (Linux, Networking, Security). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Most tools have clearly distinct purposes: auth check, keyword search, curated listing, room overview, single task, and full-room extraction. The only mild overlap is granularity between thm_get_task/thm_get_room_full and thm_get_room_overview/thm_get_room_full, since full content subsumes the others, but the scopes are described clearly enough to choose between them.
All six tools follow a consistent `thm_` prefix plus verb_noun pattern (check_auth, search_rooms, get_room_overview, get_task, get_room_full, get_curated_topics). The convention is uniform and predictable throughout with no style mixing.
Six tools is well-scoped for a focused content-reading/extraction server. Each tool earns its place, covering auth, discovery, and content retrieval at varying granularities without bloat.
The content-access surface is fairly complete: auth, search, curated discovery, overview, task-level, and full-room extraction are all present. Minor gaps exist around user progress/completion tracking or answer retrieval, but the core read workflow has no dead ends.