Skip to main content
Glama
megamaced

collectives-mcp

by megamaced

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NEXTCLOUD_URLYesThe URL of your Nextcloud instance (e.g., https://your-nextcloud.example.com)
NEXTCLOUD_USERYesYour Nextcloud username
NEXTCLOUD_APP_PASSWORDYesAn app-specific password generated in Nextcloud Settings > Security

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

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
pingA

Verify connectivity to the configured Nextcloud instance and report how many collectives are visible.

list_collectivesA

List all Collectives the authenticated user has access to. Returns id, name, slug, emoji, and permission levels.

create_collectiveA

Create a new Collective. Also creates the underlying Nextcloud Team. Optionally set an emoji icon.

update_collectiveA

Change a Collective's emoji or adjust edit/share permission levels. Provide the id and any fields to change. Note: collective renaming is not supported by the API.

delete_collectiveA

Soft-delete a Collective (moves it to the Collectives trash, recoverable). Use permanently_delete_collective to remove it permanently and optionally delete the underlying Team.

list_trashed_collectivesA

List Collectives that have been soft-deleted. These can be restored or permanently deleted.

restore_trashed_collectiveA

Restore a soft-deleted Collective from the trash.

permanently_delete_collectiveA

Permanently delete a Collective from the trash. THIS IS IRREVERSIBLE. The Collective must already be in the trash (use delete_collective first). Set deleteTeam=true to also remove the underlying Nextcloud Team.

list_pagesA

List all pages in a Collective. Returns flat metadata (id, title, parentId, emoji, tags, timestamps, paths). Use parentId to reconstruct the tree.

get_pageA

Fetch a page as markdown. Returns the metadata block followed by the page body.

searchA

Full-text search across all Collectives pages the user can access. Uses the Nextcloud unified search provider. For searching within a specific Collective, use search_in_collective instead.

search_in_collectiveA

Search for pages by content within a specific Collective. Returns matching page metadata.

create_pageA

Create a new page under a parent. If the parent is a leaf page, it is automatically promoted to a folder. Optionally initialise from a template.

update_pageB

Replace, append to, or prepend to a page's markdown body. Mode defaults to "replace".

delete_pageA

Trash a page (recoverable from the Collectives page trash). Folder pages take their entire subtree with them. The Landing page cannot be deleted — delete the collective itself instead.

rename_pageB

Rename a page within its current parent.

move_pageA

Move a page to a new parent within the same collective. If the new parent is a leaf, it is promoted first.

move_page_to_collectiveA

Move or copy a page (with its subpages and attachments) into a different Collective. Set copy: true to duplicate instead of moving. The page id changes on arrival, so use the returned page for follow-up calls. For reorganising within one Collective use move_page or copy_page instead.

set_page_emojiA

Set the single-emoji icon on a page. Pass an empty string to clear.

copy_pageA

Duplicate a page under the same parent. If newTitle is provided, the copy gets that title. Works for both leaf and folder pages.

set_page_full_widthA

Toggle a page's full-width layout. This is a Collective-wide display property of the page, not a per-user preference.

set_subpage_orderA

Set the explicit left-to-right ordering of a page's immediate child pages. Every id must be a direct child of the page; duplicates are rejected. Pass an empty array to clear the manual order and fall back to the Collective sort. Only takes effect for users whose page order is set to "byOrder".

touch_pageA

Bump a page's modification timestamp and record the authenticated user as its last editor, without changing content. Useful for marking a page as reviewed.

favorite_pageA

Mark a page as a favorite for the authenticated user.

unfavorite_pageA

Remove a page from the authenticated user's favorites.

list_tagsA

List all tags defined for a Collective.

create_tagB

Create a new tag in a Collective. Requires a name and a hex color code (e.g. "#FF0000").

update_tagA

Update a tag. Both name and color are always applied, so pass the existing value for whichever one you are not changing — omitting a field is not supported by the API. Read current values with list_tags first.

delete_tagA

Delete a tag from a Collective.

set_page_tagsA

Replace the tags on a page. Tags must already exist in the Collective; pass tag ids (use list_tags to look them up).

list_trashed_pagesA

List pages in the trash for a Collective. These can be restored or permanently purged.

restore_pageB

Restore a trashed page back to its original location.

purge_pageA

Permanently delete a trashed page. THIS IS IRREVERSIBLE — the page content cannot be recovered after this call. The page must already be in the trash (use delete_page first).

list_page_versionsA

List available versions (revision history) for a page. Returns version ids that can be used with restore_page_version.

restore_page_versionA

Restore a specific historical version of a page. The current content is replaced with the selected version (the current version is preserved as a new version entry).

list_recent_pagesA

List recently-modified pages for a Collective, ordered by last edit time.

get_backlinksA

Find pages that link to the given page. Scans the linkedPageIds field on all pages in the Collective.

list_attachmentsA

List attachments for a page. Returns name, size, content type, and the relative markdown path to reference each file.

upload_attachmentA

Upload an attachment to a page. Creates the attachment directory if needed. Returns a percent-encoded relativePath ready to paste into markdown (e.g. ![alt](.attachments.{pageId}/filename.png)).

delete_attachmentA

Delete an attachment from a page. Returns the deleted attachment including its id, which restore_attachment needs to undo this.

get_attachmentA

Download an attachment's contents. Returns the bytes as utf8 text or a base64 string, with the encoding stated in the result. Refuses files over 5 MB, which should be fetched from Nextcloud directly.

rename_attachmentA

Rename an attachment on a page. Existing references to the old filename in page bodies are NOT rewritten — update them yourself, using the returned relativePath.

restore_attachmentA

Restore a deleted attachment from the page's attachment trash. Takes the numeric attachment id — a trashed attachment no longer appears in list_attachments, so there is no name to look up. delete_attachment returns the id you need.

list_templatesA

List page templates defined for a Collective.

create_templateB

Create a page template in a Collective.

update_templateB

Rename a page template.

set_template_emojiA

Set or clear the emoji icon on a page template.

delete_templateC

Delete a page template.

get_templateA

Read a page template's metadata and markdown body. Use this to inspect what create_page(templateId) will produce.

update_template_contentA

Write a page template's markdown body. This is the content create_page(templateId) copies into new pages. An empty body is allowed and clears the template. Append and prepend are protected against concurrent edits and fail rather than overwriting someone else's change.

list_sharesA

List all public share links on a Collective, including per-page shares. Each entry reports its scope ("collective" or "page"), token, whether visitors can edit, and whether a password is set. Passwords themselves are never returned.

create_collective_shareA

Create a public share link for an entire Collective. Anyone with the link can read it (and edit, if you later enable that with update_share). Returns the share token; build the URL as {nextcloud}/apps/collectives/p/{token}.

create_page_shareA

Create a public share link for a single page rather than the whole Collective. Returns the share token; build the URL as {nextcloud}/apps/collectives/p/{token}.

update_shareA

Update an existing share link. editable is required by the API and is always applied, so state it explicitly or you may silently change it. Pass pageId for a page share; omit it for the Collective-wide share. Pass an empty password to remove an existing one.

delete_shareA

Revoke a public share link. The link stops working immediately for everyone holding it. Pass pageId for a page share; omit it for the Collective-wide share.

set_page_modeA

Set the default page mode for a Collective — whether pages open in view or edit mode. This applies to every member of the Collective, unlike set_user_settings which is per-user.

set_user_settingsA

Update the authenticated user's own display preferences for one Collective: page sort order, and whether the members and recent-pages widgets on the landing page are expanded. These are per-user and do not affect other members — use set_page_mode for the Collective-wide setting. Provide at least one field; omitted fields are left unchanged.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 57 tools

Disambiguation4/5

Most tools use a clear resource+action pattern, so pages, tags, templates, attachments, and shares are easy to tell apart. A few near-neighbors require careful reading, such as search vs search_in_collective, update_collective vs set_page_mode, and update_template vs update_template_content, but their descriptions disambiguate them effectively.

Naming Consistency4/5

The snake_case verb_noun convention is strong and consistently used across collectives, pages, tags, templates, attachments, and shares. Minor deviations like search and ping as bare verbs, plus the inconsistent permanent-delete terms (permanently_delete_collective vs purge_page), keep it from a perfect 5.

Tool Count1/5

With 57 tools, this is far beyond a typical agent-facing MCP surface and creates significant selection overhead. Even though the domain is broad, the count sits in the extreme-mismatch range and would benefit from consolidation or splitting into smaller focused servers.

Completeness4/5

The surface covers nearly all lifecycle operations for collectives, pages, tags, templates, attachments, and shares, including trash, versions, and search. Minor gaps exist, such as no way to list favorited pages or list/purge trashed attachments, but agents can generally work around them.

Maintenance

ActivityMaintained
ResponsivenessResponsive