Goldnat Plugins
← Back to XenForo

XenForo AI Connect — Installation & Setup Guide

Install, activate, and connect the chgold/AIConnect add-on (Servio Protocol) to your XenForo forum. 5 free read tools + Pro upgrade.

📅 Updated: 2026-07-07 🎬 Video: xenforo-install-connect

Overview

Goldnat AI Connect for XenForo (add-on: chgold/AIConnect) turns your forum into a Servio Protocol tool server. The Free add-on ships 5 read tools — search threads, get a full thread, search posts, get a post, and identify the current user. The Pro add-on (chgold/AIConnectPro) adds 67 tools across eight permission groups — posting and moderation, engagement, profiles, conversations, attachments including PDF reading, and forum discovery.

What you get:

  • 5 free toolssearchThreads, getThread, searchPosts, getPost, getCurrentUser
  • Built-in translationtranslation.translate + translation.getSupportedLanguages (XenForo-exclusive bonus)
  • Pro upgradegetForumList, createThread, replyToThread, editPost, sendConversation
  • Future editions: xenforo-engagement-pro and xenforo-moderation-pro (Reactions, Reports, Ban)

Prerequisites

  • XenForo 2.2.0 or higher
  • PHP 7.2 or higher (8.1+ recommended)
  • MySQL/MariaDB 5.7+
  • Friendly URLs enabled (Options → Basic board information)
  • HTTPS recommended
  • “Manage add-ons” admin permission

Installation

  1. Download the latest add-on ZIP from the official XenForo Resource Manager (or from your personal area at goldnat.ai).
  2. Extract to src/addons/chgold/AIConnect/.
  3. Admin → Add-ons → Install/upgrade an add-on — select chgold/AIConnectInstall.
  4. Add-ons → chgold/AIConnect — verify status is “Active”.
  5. Options → AI Connect → Verify manifest — clicking “Test” should return ✅.

Connecting to an AI Agent

  1. Members → Your account → AI Connect Tokens (or /account/webmcp-tokens).
  2. Generate Prompt — a ready-to-paste BBCode/Markdown block appears.
  3. Copy and paste into your agent:
    • Claude Desktop: via the Goldnat MCP extension
    • goldnat.ai: add https://your-forum.example/ to your vault
    • ChatGPT / Gemini: connect directly to /api/aiconnect-manifest
  4. OAuth PKCE runs in the browser → approve.

First Test

  • “Who am I on the forum?” → xenforo.getCurrentUser
  • “Search threads about AI” → xenforo.searchThreads with search=AI
  • “What does post #3738 say?” → xenforo.getPost with post_id=3738

With Pro:

  • “Create a new thread in the ‘General’ forum” → xenforo_pro.createThread
  • “Reply to this post with the following message” → xenforo_pro.replyToThread

Reconnecting

Tokens valid for 30 days. Automatic refresh every hour. Manual reconnect:

  1. Your account → AI Connect Tokens → Revoke the old token.
  2. Generate Prompt again → paste into your agent.

Token Management

Like the other plugins: /account/webmcp-tokens page with 6 filters (Active / Renewable / Unused / Inactive / Revoked / All), bulk revoke, and last_used_ip + last_used_ua display.

Uninstalling the Add-on

1. Revoke all tokens

  • Your account → AI Connect Tokens → Revoke All — kills every active agent session.

2. Disable the add-on

  • Admin → Add-ons → chgold/AIConnect → Disable.
  • The add-on stops working, but DB tables remain intact.

3. Uninstall the add-on

  • Admin → Add-ons → chgold/AIConnect → Uninstall.
  • XenForo prompts you to confirm removal of DB tables → confirm.

4. Remove the files

rm -rf src/addons/chgold/AIConnect/
# Also for Pro:
rm -rf src/addons/chgold/AIConnectPro/

5. Rebuild caches

php cmd.php xf-rebuild:caches

Common Troubleshooting

ErrorCauseFix
Manifest not foundFriendly URLs disabledOptions → Basic → Enable Friendly URLs
Add-on files are missingFiles not extracted properlyRun xf-rebuild:addon via CLI
Route not registeredRebuild missingphp cmd.php xf-addon:build-release chgold/AIConnect
Bearer token invalidPrefix mismatchEnsure the URL in the token matches the URL in the prompt

Support

Need help? Contact us and we’ll get back to you.

Video Tutorial (Coming Soon)

3-4 minute walkthrough: (A) Goldnat AI Connect on the Servio Protocol, (B) installing the add-on in XenForo admin, (C) connecting to an AI agent, (D) 3 typical forum queries.

Screenshots

XenForo Add-ons page
Navigate to Add-ons → Install/upgrade an add-on
Upload the add-on ZIP
Upload + install chgold/AIConnect
My Tokens page
Generate prompt for AI agent connection

🎬 Video Tutorial — Coming Soon

A 3-5 minute video covering: intro → install → connect → demo.

Tag: xenforo-install-connect

Status: Awaiting production

Pro

XenForo AI Connect Pro — Tool Reference

New here? Start with the basic setup guide above.

What Pro adds

The free XenForo add-on gives AI agents read-only access: search threads and posts, read a thread, read a post, identify the connected account. That is five tools.

Pro adds 67 more, organised into eight groups. Every group is a separate permission entry, and every tool inside it has its own entry too — so you can allow replying without allowing deletion, or reading the forum structure without allowing anything to be written.

Pro ships as a separate XenForo add-on (chgold/AIConnectPro) that declares a dependency on the free chgold/AIConnect. It will not install standalone, and its tools are registered onto the core only when a valid licence is present.

The rule that governs everything

Every Pro tool runs as the connected member. XenForo’s own permission system does the enforcement — the add-on adds no privileged path of its own.

If a member cannot delete a post through the web interface, an agent connected as that member cannot delete it either. If a forum is invisible to them, it stays invisible to the agent. This is worth internalising before pointing an agent at a live forum: you are not granting the agent power, you are lending it an account.

Board administration — creating and deleting nodes, creating and deleting members, changing another member’s avatar — is deliberately not part of Pro. Those act on the board rather than as a member, and live in a separate add-on requiring the admin scope.

Tool groups

GroupToolsCovers
Moderation14Lock, stick, feature, move, delete, solutions, thread type
Discovery11Node tree, board stats, recent and trending threads, tags, polls, reactions, profiles
Conversation9Read and manage conversations, invitations, alerts
Media9Attachments, PDF reading, thumbnails, your own avatar
Engagement7Reactions, votes, polls, read state
Profile6Profile posts, comments, your own profile
Core6Posting, conversations, forum list, member lookup
Writing5Thread tags, conversation replies and edits

Core

Available whenever any other group is enabled — the rest depend on it for identity and posting.

ToolWhat it does
createThreadCreate a thread. Accepts attachment_hash to attach a file in the same call
replyToThreadReply to a thread, optionally with attachments
editPostEdit a post. When passing attachment_hash, include existing attachments — anything omitted is treated as removed
sendConversationStart a private conversation
getForumListList forums the member can see
findUserByNameLook up a member by name prefix. Requires the member-list permission

Moderation

Standard moderator actions. Each is checked against the member’s moderator permissions for that specific node.

ToolWhat it does
editThreadChange a thread’s title or prefix
lockThread / unlockThreadClose or reopen a thread
stickThread / unstickThreadPin or unpin
featureThread / unfeatureThreadAdd to or remove from featured content
moveThreadMove to another node
deleteThread / deletePostSoft or hard delete
markSolutionMark a post as the solution to a question thread
changeThreadTypeConvert between discussion, question and article
deleteProfilePost / deleteProfilePostCommentRemove profile content

Discovery

Reading the shape of the forum. All read-only, all filtered by what the connected member may see — a private forum never appears.

ToolWhat it does
listNodesThe node tree — categories, forums and pages
listNodesFlatThe same tree flattened, with depth, for rendering
getNodeA single node by ID
getForumNodeForum details including counts
getForumStatsBoard totals — threads, posts, members
getRecentThreadsRecently active threads, optionally scoped to a node
getTrendingThreadsThreads with the most replies in a time window
getThreadTagsTags on a thread
getThreadPollA thread’s poll, responses and vote counts
getPostReactionsReactions on a post, grouped by type, with the members who reacted
getUserProfileA member’s profile and activity counters

On reaction counts. getPostReactions returns both total_reactions and reaction_score. They are different numbers. The score is weighted — XenForo assigns each reaction type a weight, and several default types weigh zero. A post with one “Wow” has a total of 1 and a score of 0. Use the total when you mean “how many people reacted”.

Conversation

Private conversations and alerts. Conversations are always loaded through the member’s own record, so an agent cannot reach a conversation the member is not part of.

ToolWhat it does
getConversationMessagesRead messages in a conversation
markConversationReadMark as read
starConversationStar or unstar
leaveConversationLeave
inviteToConversationInvite members. Anyone already present is reported separately rather than counted as invited
listAlerts / getAlertRead alerts
markAlertRead / markAllAlertsReadMark alerts read

Media

Attachments and your own avatar. Note that changing another member’s avatar is an administrative action and is not in Pro.

ToolWhat it does
uploadAttachmentUpload from a URL. Requires a target — node_id, thread_id, post_id or conversation_id — because XenForo derives the permission from the container, not from the member alone
deleteAttachmentRemove an attachment
listAttachmentsByKeyList attachments under an upload key
getAttachmentInfoMetadata for one attachment
getPostAttachmentsAttachments on a post
readAttachmentTextRead text content — plain text formats and PDF documents
getAttachmentThumbnailThumbnail URL
uploadMyAvatar / deleteMyAvatarYour own avatar

Reading PDFs. Extraction is built into the add-on — nothing needs installing on your server. Scanned, image-only PDFs contain no text to extract; those are detected and reported as such rather than returning noise. If you need text from a scan, that is OCR, and it belongs on the agent’s side: the tools return a direct file URL, and models that read images can work from it.

Temporary attachments. A file that has been uploaded but not yet attached to anything is not “missing” — XenForo simply does not consider it viewable yet. Pass the hash returned by uploadAttachment to inspect it before attaching.

Engagement

ToolWhat it does
reactToPostReact to a post
reactToProfilePostReact to a profile post
reactToConversationMsgReact to a conversation message
votePostVote on a post
votePollVote in a poll
createPollAdd a poll to a thread
markThreadReadMark a thread read

Two of these depend on forum configuration rather than on the add-on. createPoll requires the target forum to allow the poll thread type, and reacting to your own content is refused by XenForo itself.

Profile

ToolWhat it does
postProfileMessagePost on a member’s profile
editProfilePostEdit a profile post
commentOnProfilePostComment on one
editProfilePostCommentEdit a comment
getProfilePostsRead a member’s profile posts
updateMyProfileUpdate your own profile

Writing

ToolWhat it does
addThreadTags / removeThreadTagsManage thread tags. Requires tagging to be enabled board-wide and the member to hold the tagging permission
replyToConversationReply to a conversation
editConversationMsgEdit a conversation message
updateConversationUpdate conversation settings

Permissions

Every tool has its own entry under Groups & Permissions → AI Connect, grouped into the eight sets above. Each set also has a master switch: denying it disables everything beneath it in one action.

A practical starting point is to enable Discovery and Core for a general account, and add Moderation only for an account that already moderates.

After installing or upgrading, tools may return a permission error until XenForo rebuilds its permission cache. On an active forum this resolves itself within minutes. If background tasks are disabled on your board, rebuild permissions manually from the control panel. This is not a fault in the add-on, but it looks like one if you are not expecting it.

Licensing

Licences are managed at goldnat.ai.

  1. Setup → Options → AI Connect Pro License
  2. Paste your licence key and save
  3. Click Check licence now

A licence is bound to one domain, matched against your boardUrl. If you move the forum or run staging separately, change the licensed domain from your account page.

If the Pro tools do not appear at all, the licence is the first thing to check: without a valid one the tools are never registered, so they are absent from the manifest rather than failing when called.

Requirements

  • XenForo 2.2+, PHP 7.2+
  • The free AI Connect add-on, version 1.2.40 or later

This guide is informational and non-binding. Steps and behavior can vary between platforms and plugin versions. For the binding terms, see the Terms & Conditions.

Tools

Available tool calls.

181 tools exposed via the Servio protocol. Pro tools are marked.

xenforo

  • xenforo.getForumStats Get forum statistics: thread count, post count, member count, user online status
  • xenforo.getAttachmentsByPost List all attachments (files, images) associated with a specific post. Returns filenames, sizes, MIME types, upload dates, and attachment IDs. Metadata only—use downloadAttachment for content. Pro
  • xenforo.getPostsByThread Retrieve all posts within a specific thread with pagination support. Returns post content, authors, timestamps, reactions count, and attachment metadata. Essential for reading full thread conversations. Pro
  • xenforo.getThreadPollResults Retrieve poll results for a thread, including all options, vote counts, percentages, and whether the current user has voted. Does not reveal individual voter identities unless poll is public. Pro
  • xenforo.getThreadsByForum List all threads in a specific forum/node with filtering by prefix, tag, sticky status, and date range. Returns thread titles, authors, reply counts, view counts, and last post info. Supports pagination and sorting. Pro

conversation

  • conversation.getConversation
  • conversation.getConversationMessages
  • conversation.getConversations
  • conversation.replyToConversation
  • conversation.startConversation

CoreModule

  • xenforo.getCurrentUser Returns the currently authenticated user.
  • xenforo.getPost Returns a single post by ID.
  • xenforo.getThread Returns a single thread including its posts.
  • xenforo.searchPosts Searches posts by keywords.
  • xenforo.searchThreads Searches threads by keywords.

TranslationModule

  • translation.getSupportedLanguages Returns the list of supported translation languages.
  • translation.translate Translates text to a chosen language.

xenforo_pro

  • xenforo_pro.approveContent Approve queued content by content_type + content_id. Pro
  • xenforo_pro.deleteWarning Delete/revoke an existing warning by warning_id. Pro
  • xenforo_pro.downloadAttachment Download attachment content as base64 (5MB cap) Pro
  • xenforo_pro.getBookmarkedThreads List the current user's bookmarked threads/posts with labels and dates. Pro
  • xenforo_pro.getDraftContent Get the message body of a single saved draft by draft_key. Pro
  • xenforo_pro.getForumActivity Activity metrics for a forum node in a time window: new threads, posts, unique posters, top contributors. Pro
  • xenforo_pro.getNotifications List recent alerts/notifications for the current user Pro
  • xenforo_pro.getReport Get full details of a specific report + comment thread. Pro
  • xenforo_pro.getThreadAttachments List all attachments across all posts in a thread Pro
  • xenforo_pro.getThreadReactions Aggregate reactions across all posts within a thread (total + breakdown by type). Pro
  • xenforo_pro.getThreadWatchers List users watching a thread. Visible to thread author + moderators only. Pro
  • xenforo_pro.getUnansweredThreads List threads with zero replies (globally or within a node). Prioritises support forums / QA. Pro
  • xenforo_pro.getUnreadNotificationsCount Return count of unread alerts for the current user Pro
  • xenforo_pro.getUserActivity Recent posts + threads authored by a user in a time window (default 30d). Pro
  • xenforo_pro.getUserBookmarks List current user bookmarks with labels and dates Pro
  • xenforo_pro.getUserConversations List current user private conversations Pro
  • xenforo_pro.getUserDrafts List current user saved drafts Pro
  • xenforo_pro.getUsergroup Get a single usergroup by ID (title, priority, banner, user_title). Pro
  • xenforo_pro.getUsergroupMembers List members of a usergroup (post_count, register_date, last_activity). Uses xf_user_group_relation for indexed primary+secondary coverage. Admin/moderator gated. Pro
  • xenforo_pro.getUserWatchedThreads List threads the current user is watching Pro
  • xenforo_pro.getWatchedThreads List the current user's watched threads with notification prefs and unread state. Pro
  • xenforo_pro.issueWarning Issue a warning against a user for a post/thread/profile-post. Uses XF Service\User\Warn. Pro
  • xenforo_pro.listApprovalQueue List content awaiting moderator approval (unapproved posts/threads/profile posts). Pro
  • xenforo_pro.listDeletionLog List soft-deleted content (recoverable via undelete). Pro
  • xenforo_pro.listDrafts List the current user's saved drafts (metadata). Content via getDraftContent(draft_key). Pro
  • xenforo_pro.listReports List open/assigned/closed reports in the moderation queue. Pro
  • xenforo_pro.listUsergroups List all usergroups with title, priority, banner and display CSS. Pro
  • xenforo_pro.listUsers List all valid users paginated (alphabetical). Requires enableMemberList + canViewMemberList. Pro
  • xenforo_pro.listWarningDefinitions List available warning definitions (predefined types + points). Pro
  • xenforo_pro.listWarnings List warnings for a user (or all recent warnings). Returns points, expiry, notes. Pro
  • xenforo_pro.listWatchedForums List all forums the current user is watching with notification preferences. Pro
  • xenforo_pro.mergePosts Merge multiple posts into one (target post absorbs the message of the others). Pro
  • xenforo_pro.rejectContent Reject and delete queued content. Pro
  • xenforo_pro.rejectReport Reject a report (mark as rejected) with an optional reason. Pro
  • xenforo_pro.replyToReport Add a moderator comment to a report thread (without resolving). Pro
  • xenforo_pro.resolveReport Mark a report as resolved with an optional resolution comment. Pro
  • xenforo_pro.searchTags Search threads by tag (exact match) Pro
  • xenforo_pro.searchUsers Search users by username prefix (min 2 chars). Wraps UserFinder LIKE. Pro
  • xenforo_pro.splitPosts Split posts from a thread into a new thread. Pro
  • xenforo_pro.unwatchForum הסרת פורום ממעקב (unwatch) עבור המשתמש הנוכחי. Pro
  • xenforo_pro.watchForum הוספת פורום למעקב (watch) עבור המשתמש הנוכחי, כולל בחירת העדפות התראה על threads חדשים. Pro
  • xenforo_pro.addThreadTags Add tags to a thread. Pro
  • xenforo_pro.changeThreadType Change the type of a thread (discussion/question/etc). Pro
  • xenforo_pro.commentOnProfilePost Comment on a user profile post. Pro
  • xenforo_pro.createNode Create a new forum node (category, forum, page). Pro
  • xenforo_pro.createPoll Add a poll to a thread. Pro
  • xenforo_pro.createUser Create a new user account (admin). Pro
  • xenforo_pro.deleteAttachment Delete an uploaded attachment. Pro
  • xenforo_pro.deleteMyAvatar Delete the current user's avatar. Pro
  • xenforo_pro.deleteNode Delete a forum node. Pro
  • xenforo_pro.deletePost Permanently delete a post. Pro
  • xenforo_pro.deleteProfilePost Delete a post from a user profile wall. Pro
  • xenforo_pro.deleteProfilePostComment Delete a comment on a profile post. Pro
  • xenforo_pro.deleteThread Permanently delete a thread. Pro
  • xenforo_pro.deleteUser Delete a user account (admin). Pro
  • xenforo_pro.deleteUserAvatar Delete any user's avatar (admin). Pro
  • xenforo_pro.editConversationMsg Edit a message in a private conversation. Pro
  • xenforo_pro.editNode Edit an existing forum node. Pro
  • xenforo_pro.editProfilePost Edit a post on a user profile wall. Pro
  • xenforo_pro.editProfilePostComment Edit a comment on a profile post. Pro
  • xenforo_pro.editThread Edit thread title or other attributes. Pro
  • xenforo_pro.featureThread Feature a thread (promote to featured). Pro
  • xenforo_pro.findUserByName Find a user by username. Pro
  • xenforo_pro.getAlert Get a single alert by ID. Pro
  • xenforo_pro.getAttachmentInfo Get metadata for a specific attachment. Pro
  • xenforo_pro.getAttachmentThumbnail Get thumbnail URL for an attachment. Pro
  • xenforo_pro.getConversationMessages Get messages from a private conversation. Pro
  • xenforo_pro.getMe Get the authenticated user's profile. Pro
  • xenforo_pro.getNode Get details for a specific forum node. Pro
  • xenforo_pro.getProfilePosts Get the profile posts (wall) of a user. Pro
  • xenforo_pro.inviteToConversation Invite a user to an existing conversation. Pro
  • xenforo_pro.leaveConversation Leave a private conversation. Pro
  • xenforo_pro.listAlerts List the authenticated user's alerts. Pro
  • xenforo_pro.listAttachmentsByKey List attachments by attachment key. Pro
  • xenforo_pro.listNodes List all forum nodes with metadata. Pro
  • xenforo_pro.listNodesFlat List all nodes in a flat array. Pro
  • xenforo_pro.lockThread Lock a thread to prevent new replies. Pro
  • xenforo_pro.markAlertRead Mark a specific alert as read. Pro
  • xenforo_pro.markAllAlertsRead Mark all alerts as read. Pro
  • xenforo_pro.markConversationRead Mark a conversation as read. Pro
  • xenforo_pro.markSolution Mark a post as the solution to a Q&A thread. Pro
  • xenforo_pro.markThreadRead Mark a thread as read for the current user. Pro
  • xenforo_pro.moveThread Move a thread to a different forum node. Pro
  • xenforo_pro.postProfileMessage Post a message on a user profile wall. Pro
  • xenforo_pro.reactToConversationMsg Add a reaction to a conversation message. Pro
  • xenforo_pro.reactToPost Add a reaction to a forum post. Pro
  • xenforo_pro.reactToProfilePost Add a reaction to a profile wall post. Pro
  • xenforo_pro.removeThreadTags Remove tags from a thread. Pro
  • xenforo_pro.replyToConversation Reply to an existing private conversation. Pro
  • xenforo_pro.starConversation Star (bookmark) a conversation. Pro
  • xenforo_pro.stickThread Stick a thread to the top of its forum. Pro
  • xenforo_pro.unfeatureThread Remove featured status from a thread. Pro
  • xenforo_pro.unlockThread Unlock a previously locked thread. Pro
  • xenforo_pro.unstickThread Remove the sticky status from a thread. Pro
  • xenforo_pro.updateConversation Update conversation metadata (title, etc). Pro
  • xenforo_pro.updateMyProfile Update the authenticated user's profile. Pro
  • xenforo_pro.updateUser Update an existing user's details (admin). Pro
  • xenforo_pro.uploadAttachment Upload an attachment for use in a post. Pro
  • xenforo_pro.uploadMyAvatar Upload an avatar for the current user. Pro
  • xenforo_pro.uploadUserAvatar Upload an avatar for any user (admin). Pro
  • xenforo_pro.votePoll Cast a vote in a thread poll. Pro
  • xenforo_pro.votePost Vote on a post (up/down). Pro

ProModule

  • xenforo_pro.createThread Creates a new thread in a forum. Pro
  • xenforo_pro.editPost Edits an existing post. Pro
  • xenforo_pro.getForumList Returns the list of forums and their structure. Pro
  • xenforo_pro.replyToThread Replies to an existing thread in a forum. Pro
  • xenforo_pro.sendConversation Sends a private conversation to a user. Pro

xenforo_admin

  • xenforo_admin.addSecondaryGroup Add a secondary user group to a member. Idempotent. Pro
  • xenforo_admin.banUser Ban a user (permanent by default). Requires admin scope + is_admin. Super-admin guarded. Pro
  • xenforo_admin.changeUserEmail Change another users email address. Marks the new address as unconfirmed by default; pass mark_confirmed:true to bypass. Refuses self-edit. Pro
  • xenforo_admin.changeUserPassword Set a new password for another user. Provide either new_password OR generate_password:true (returns temp). Refuses self-edit (use standard reset flow). Pro
  • xenforo_admin.createNode Create a forum/category/page/link node. Requires admin OAuth scope + is_admin. Pro
  • xenforo_admin.createUser Create a new user. Requires admin scope + admin visitor. Pro
  • xenforo_admin.createUsergroup Create a new user group with title, priority, banner and CSS styling. Pro
  • xenforo_admin.deleteNode Delete a node. delete_children controls child handling (default: reparent). Pro
  • xenforo_admin.deleteUser Delete a user. Super-admins protected (rejected). Requires admin. Pro
  • xenforo_admin.deleteUserAvatar Remove another member's avatar. Requires admin + user admin permission. Pro
  • xenforo_admin.deleteUsergroup Delete a user group. Refuses built-in groups (id 1-4) and groups containing super admins. Pro
  • xenforo_admin.disableAddon Disable an enabled add-on. Refuses to disable AIConnect chain (would lock API). Pro
  • xenforo_admin.editNode Edit a node title/description/parent. Requires admin. Pro
  • xenforo_admin.enableAddon Enable a disabled add-on. Rebuilds caches. Pro
  • xenforo_admin.getOption Read a board option by option_id. Returns current value + type. Pro
  • xenforo_admin.getStyleProperty Read single style property with inheritance context (local/master/effective/is_overridden)
  • xenforo_admin.listAddons List all installed add-ons (id, title, version, active). No arguments. Pro
  • xenforo_admin.listCronTasks List all cron entries (id, description, next_run, active). No arguments. Pro
  • xenforo_admin.listStyles List all styles (id, title, parent, user_selectable, is_default). Pro
  • xenforo_admin.removeSecondaryGroup Remove a secondary user group from a member. Idempotent. Pro
  • xenforo_admin.reorderNodes Bulk update display_order for sibling nodes under the same parent. Positions assigned 0,10,20,... to leave room for later inserts. Pro
  • xenforo_admin.setDefaultStyle Set the site default style (persists to defaultStyleId option via XF OptionRepository). Pro
  • xenforo_admin.setNodePermission Grant/deny a permission for a usergroup on a specific node. XF content-permission model. permission_value=unset removes the entry. Pro
  • xenforo_admin.setOption Set a board option. Blocklist prevents site-locking keys (boardActive, boardUrl, homePageUrl). Pro
  • xenforo_admin.triggerCronTask Manually run a cron entry synchronously (ACP "Run now" equivalent). Pro
  • xenforo_admin.unbanUser Remove an active ban on a user. Idempotent. Pro
  • xenforo_admin.unsetStyleProperty DELETE style property override on child style; property inherits from Master
  • xenforo_admin.updateUser Update a user about text and/or primary user group. Pro
  • xenforo_admin.updateUsergroup Edit an existing user group (partial update — pass only fields to change). Pro
  • xenforo_admin.uploadUserAvatar Set another member's avatar from a URL. Requires admin + user admin permission. Rejects super-admin targets unless caller is also super-admin. Pro
  • xenforo_admin.createWidget Create a new widget. Common types: html (freeform), new_threads, new_posts, members_online, forum_statistics, share_page, quick_search.
  • xenforo_admin.deleteSiteLogo Remove the logo from a style (reverts to default/no logo).
  • xenforo_admin.deleteStyleAsset Delete a style asset by filename.
  • xenforo_admin.deleteWidget Delete a widget by widget_key.
  • xenforo_admin.editPhrase Edit a phrase (change its text). XF automatically records history — reverting is available via ACP.
  • xenforo_admin.editWidget Edit an existing widget by widget_key.
  • xenforo_admin.getAddonOptions List all options belonging to a specific add-on (by addon_id).
  • xenforo_admin.getEmailTransportConfig Read the site email transport configuration. Password field is always MASKED (e.g. "****1234") — never returned in plain text.
  • xenforo_admin.getNodePermissions Read all explicit + inherited permissions for a node. Use this AFTER setNodePermission to verify your changes actually blocked/granted the way you expected. Returns three sections: entries_on_node (rows on THIS node), entries_inherited (rows inherited from parent chain, each with inherited_from_node_id), effective_view_by_group (final per-group can_view boolean + derivation string showing WHY — e.g. "content=deny/base=allow"). RECIPE — verify a node is truly private after setNodePermission:
  • xenforo_admin.getOptionBlocklist Return the list of option_ids blocked from setOption (site-locking keys like boardActive, boardUrl, homePageUrl).
  • xenforo_admin.getPhrase Get a phrase by title (and optionally language_id).
  • xenforo_admin.getWidget Get full details of a widget by widget_key.
  • xenforo_admin.listOptionGroups List all option groups defined in this XF installation.
  • xenforo_admin.listOptionsByGroup List all options in a specific option group (e.g. email, payment, <addon_id>). Helps discover valid option_id values without guessing.
  • xenforo_admin.listStyleAssets List style asset files (logos, favicons, custom images, backgrounds) for a style. Read-only.
  • xenforo_admin.listStyleProperties List CSS-level style properties for a style. Returns EVERY property defined on Master (style 0), and for each: local_value (this style s override, or null), master_value, effective_value (what LESS compiler uses = local ?? master), and is_overridden. Agent can immediately see inheritance state without joining. Values are DECODED (native JSON structures, not raw JSON strings).
  • xenforo_admin.listWidgetPositions List all widget position keys available in the current templates (e.g. forum_list_sidebar, thread_view_sidebar, member_view_sidebar). Read-only.
  • xenforo_admin.listWidgets List all widgets with their positions and active state. Read-only.
  • xenforo_admin.searchPhrases Search phrases by title or content substring. Returns up to 100 matches. Case-insensitive.
  • xenforo_admin.setAddonOption Set a single option belonging to an add-on. Same as setOption but requires addon_id and refuses if the option is not from that add-on (prevents accidentally modifying core options).
  • xenforo_admin.setEmailTransportConfig Set email transport (smtp/default). v1.4.11: writes XF native option keys (smtpHost/smtpPort/smtpSsl/smtpLoginUsername/smtpLoginPassword/smtpAuth) so XF Mailer can consume without crashing (bug in v1.4.0-v1.4.10: missing smtpSsl key caused "Undefined array key smtpSsl" on any mail send, including createUser welcome mail). Recommended: call testEmailConfig after.
  • xenforo_admin.setNodePrivate Toggle a node s "Private" flag — same checkbox XF ACP exposes on the Node Permissions page. When private=true, ONLY groups/users with an explicit content_allow entry (via setNodePermission) can view the node; base group permissions no longer apply. This is XF s intended way to make a node truly private, and it defeats the "deny + base=allow" quirk that setNodePermission alone cannot solve. RECIPE — proper private node: 1. setNodePrivate(node_id, is_private=true) // flip the flag 2. setNode
  • xenforo_admin.setStyleProperty Set a single CSS property value on a style. For value_type=color properties value MUST be an object {default: ..., alternate: ...} (tool will REJECT plain strings with 400 + hint). For fontFamily/string properties, pass a plain string. Changes flush CSS caches synchronously.
  • xenforo_admin.simulatePermissionChange Dry-run a setNodePermission call — computes whether the change would lock out the caller or any admin group, WITHOUT applying it. Use before destructive permission changes to preview impact.
  • xenforo_admin.testEmailConfig Send a test email using the current transport config. Verifies connectivity before saving password changes.
  • xenforo_admin.uploadSiteLogo Upload/replace the site logo from a URL. Validates file type (png/jpg/svg/webp) and max size (5MB). Applies to the given style or master (style_id=0) by default.
  • xenforo_admin.uploadStyleAsset Upload an arbitrary style asset from URL (favicon, custom image). Path is validated — cannot overwrite XF core files.