NodeLoc MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NODELOC_LOCALE | No | Default zh-CN (used by the check-in request header) | zh-CN |
| NODELOC_APPS_CLI | No | nodeloc-apps CLI path, defaults to PATH lookup, required for apps tools | |
| NODELOC_BASE_URL | No | Default https://www.nodeloc.com | https://www.nodeloc.com |
| NODELOC_DATA_DIR | No | Session/docs cache directory, default ~/.nodeloc-mcp | ~/.nodeloc-mcp |
| NODELOC_PASSWORD | Yes | Forum password (only used to obtain a cookie session; the session is stored in a local file) | |
| NODELOC_TIMEZONE | No | Default Asia/Shanghai | Asia/Shanghai |
| NODELOC_USERNAME | Yes | Forum username or email (required) | |
| NODELOC_PAYMENT_ID | No | Payment app ID (pay_xxx), required for payment tools, apply at https://www.nodeloc.com/payment/applications | |
| NODELOC_PAYMENT_TOKEN | No | Payment app token (tk_xxx), required for payment tools | |
| NODELOC_SECOND_FACTOR_METHOD | No | 2FA: 0 none / 1 SMS / 2 TOTP, default 0 | 0 |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_current_userA | Get the currently logged-in NodeLoc user (id, username, trust level, unread notification counts). Logs in automatically if needed. |
| list_latest_topicsA | List latest topics on the forum homepage. Anonymous; page starts at 0. |
| list_top_topicsA | List top/trending topics. Anonymous. |
| read_topicA | Read a topic with its posts (trimmed HTML bodies). Anonymous. |
| list_category_topicsB | List topics in a category. |
| get_site_infoA | Get site configuration: categories (id/name/slug) etc. Anonymous. |
| get_user_profileA | Get a user's public profile (trust level, bio, stats). Anonymous. |
| get_user_summaryB | Get a user's activity summary (posts, likes, badges). Anonymous. |
| search_usersA | Search users by name/username, e.g. to resolve @mentions or PM recipients. |
| list_notificationsA | List notifications for the logged-in user (mentions, replies, likes, PMs). |
| mark_notifications_readA | Mark all notifications as read, or a single one when notification_id is given. |
| list_private_messagesA | List private-message topics of a user (defaults to the logged-in user). |
| create_topicA | Create a new topic. |
| reply_to_topicB | Reply to a topic (Markdown body). Optionally reply to a specific post number. |
| send_private_messageC | Send a private message. |
| like_postC | Like a post. |
| unlike_postB | Remove a like from a post. |
| bookmark_postC | Bookmark a post. |
| vote_pollC | Vote in a poll attached to a post. |
| unvote_pollC | Retract a poll vote. |
| list_nodesA | List all nested communities (nodes) and my memberships. |
| list_node_topicsB | List topics inside a node (nested community). |
| join_nodeC | Join a node (nested community). |
| leave_nodeC | Leave a node (nested community). |
| create_nodeC | Create a new node (nested community). |
| check_node_slugA | Check whether a node slug is available before creating a node. |
| get_chat_messagesB | Fetch messages of a chat channel (paginated). |
| get_chat_thread_messagesC | Fetch messages of a chat thread inside a channel. |
| send_chat_messageB | Send a chat message to a channel, optionally into a thread. |
| mark_chat_readA | Mark a chat channel as read up to a message id. |
| checkinA | Perform the daily check-in and collect energy points. Once per day; a repeated call returns the 'already checked in' result from the server. |
| create_red_envelopeA | Create a red envelope in a topic: total_points energy split into total_count shares, claimable by users who reply. |
| give_rewardB | Tip energy points to the author of a post. |
| get_points_historyA | Get energy points income/expense history (defaults to the logged-in user). |
| get_points_scoresA | Get energy points score breakdown (defaults to the logged-in user). |
| payment_createA | Create a payment request (official Payment API). Returns a payment_url the buyer must open to pay. |
| payment_queryC | Query the status of a payment transaction (official Payment API). |
| payment_transferA | Transfer energy points from the payment-app owner to a user (official Payment API). to_user_id and to_username must refer to the same user. Sender pays a trust-level-based fee; idempotent per order_id. |
| docs_list_pagesA | List all pages of the NodeLoc knowledge base (title, url, description). |
| docs_get_pageA | Fetch a knowledge-base page as Markdown. |
| docs_searchA | Search the knowledge base by keyword (titles, descriptions, cached bodies). |
| apps_cliA | Run an official nodeloc-apps CLI command for in-site miniprograms, e.g. 'init my-app', 'playtest', 'submit'. Requires the CLI installed and logged in (interactive |
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 42 tools
Most tools target distinct actions and resources, with clear boundaries between topic listing, node membership, chat, points, and payments. A few pairs like get_user_profile vs get_user_summary or list_latest_topics vs list_top_topics could cause minor hesitation, but descriptions generally make the differences clear.
The set uses recognizable patterns for many groups (list_*, get_*, create_*, payment_*, docs_*), but mixes read verbs inconsistently: get_current_user, list_latest_topics, read_topic. Some actions are unprefixed like checkin, and payment tools use prefix-noun while most others use verb-noun, so the naming is readable but not uniform.
With 42 tools, the server exceeds the threshold where a tool set feels heavy and hard to navigate. The broad domain explains part of the size, but many tools are granular variants that could be consolidated without losing clarity.
The server covers a wide range of community features: topics, posts, PMs, nodes, chat, points, payments, and docs. However, there are notable gaps such as no topic search, no update/delete for topics or posts, no node update/delete, and no chat channel discovery or management, leaving important workflows incomplete.