MCP for Flarum
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FLARUM_URL | Yes | Your forum's base URL, e.g. https://discuss.example.com | |
| FLARUM_MODE | No | write (default) or read. In read mode the server refuses every mutating request. READ_ONLY=1 does the same. | write |
| FLARUM_API_KEY | No | A Flarum API key (from the api_keys table). Without it, only public read access is available. | |
| FLARUM_TIMEOUT | No | Request timeout in ms (default 30000) | 30000 |
| FLARUM_USER_ID | No | Act as this user id when using a master API key |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| flarum_listA | List or search any Flarum resource collection (discussions, posts, users, tags, groups, notifications, flags, etc., including third-party extension resources). Supports JSON:API filter, include, sort, pagination, and sparse fieldsets. Long text fields are truncated by default to protect context -- raise maxFieldChars or use fields/flarum_get to read full content. Example: type="discussions", filter={ q: "search terms" }, include="user,tags". |
| flarum_getA | Fetch a single Flarum resource by type and id, optionally including relationships and narrowing fields. Returns full field values by default (no truncation). Example: type="discussions", id="42", include="posts,user". |
| flarum_searchA | Full-text search across discussions using Flarum's gambit/search (filter[q]). Long fields are truncated by default. Example: query="upgrade postgres". |
| flarum_requestA | Escape hatch: make an arbitrary request to any Flarum API endpoint, for anything not covered by the typed tools (custom extension routes, non-JSON:API endpoints, etc.). In read-only mode, non-GET methods are refused. Path is relative to the API root, e.g. "/discussions" or "/fof/gamification/ranks". |
| flarum_whoamiA | Return the forum's basic info and the user the configured API key acts as. Useful to verify connectivity and permissions. |
| flarum_createB | Create any Flarum resource via JSON:API. Provide the resource type, its attributes, and optional relationships. Requires an API key whose user has permission. Example: type="discussions", attributes={ title, content }, relationships={ tags: { data: [{ type: "tags", id: "1" }] } }. |
| flarum_updateA | Update (PATCH) any Flarum resource by type and id. Used for editing posts/discussions and for moderation: lock/sticky a discussion, approve/hide a post, change user groups, etc. Example: type="discussions", id="42", attributes={ isLocked: true }. |
| flarum_deleteA | Delete any Flarum resource by type and id (e.g. delete a post, discussion, or user). Irreversible. Requires appropriate permissions on the API key's user. |
| flarum_create_discussionA | Start a new discussion (thread) with a title and first-post content. Optionally attach tag ids (required by forums that use the Tags extension). |
| flarum_replyB | Post a reply (comment) to an existing discussion by its id. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/linkrobins/mcp-for-flarum'
If you have feedback or need assistance with the MCP directory API, please join our Discord server