Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LEAFWIKI_URLNoThe URL of the LeafWiki instancehttp://localhost:8080
LEAFWIKI_PASSWORDNoThe password for authentication
LEAFWIKI_USERNAMENoThe username for authentication

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
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_pagesA

Search pages by text and tags, returning excerpts and tag facets.

Args: query: Full-text search query. tags: Optional tags used to filter results. offset: Zero-based result offset. limit: Maximum number of results.

Returns: Search result object returned by LeafWiki.

get_pageB

Get a page by ID or path, including content and metadata.

Args: id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: JSON-compatible page.

browse_treeC

Browse the page hierarchy, optionally limited to a depth.

Args: depth: Optional maximum tree depth.

Returns: LeafWiki page-tree object.

get_page_linksB

Get backlinks, outgoing links, and broken links for a page.

Args: id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: Link information returned by LeafWiki.

list_tagsB

List tags and usage counts, optionally filtering by name.

Args: query: Optional tag-name filter. selected: Tags LeafWiki should retain in the result set. limit: Maximum number of tags.

Returns: Tag objects returned by LeafWiki.

find_pages_by_propertyB

Find pages carrying a property key and optional value.

Args: key: Required property key. value: Optional property value to match.

Returns: Matching page summaries.

list_page_revisionsA

List page revisions; requires revisions to be enabled.

Args: id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path. cursor: Optional pagination cursor. limit: Maximum number of revisions.

Returns: Revision metadata and pagination information.

get_page_revisionA

Get a page revision; requires revisions to be enabled.

Args: revision_id: Revision identifier to retrieve. id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: Historical page snapshot.

compare_page_revisionsB

Compare two historical page snapshots.

Args: base_revision_id: Revision used as the comparison base. target_revision_id: Revision compared with the base. id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: Revision comparison returned by LeafWiki.

get_indexing_statusB

Get full-text search indexing status.

Returns: Indexing status returned by LeafWiki.

list_property_keysC

List available property keys.

Args: query: Optional property-key filter. limit: Maximum number of keys.

Returns: Property-key objects returned by LeafWiki.

find_page_by_titleC

Find pages by title.

Args: title: Title to match.

Returns: Title-match result returned by LeafWiki.

lookup_pathB

Resolve a path into tree segments.

Args: path: Slash-separated page path to resolve.

Returns: Existing and missing path segments.

suggest_slugB

Suggest an available slug for a title.

Args: title: Title from which to derive a slug. parent_id: Parent used to determine availability. current_id: Existing page to exclude from conflicts.

Returns: Slug suggestion returned by LeafWiki.

list_favoritesB

List the authenticated user's favorite pages.

Returns: Favorite page summaries.

move_pageB

Move a page under a new parent.

Args: id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path. parent_id: Destination parent identifier, or empty for root. position: Optional zero-based position under the parent.

Returns: Serializable move confirmation.

copy_pageB

Copy a page and its assets.

Args: title: Title for the copied page. slug: Slug for the copied page. id: Source page identifier, preferred when both selectors are supplied. path: Slash-separated source page path. target_parent_id: Destination parent identifier, or empty for root.

Returns: JSON-compatible copied page.

ensure_pathB

Ensure a nested page path exists.

Args: path: Slash-separated path to ensure. title: Title for the final node. kind: Kind for the final node, either page or section.

Returns: JSON-compatible final page.

convert_pageB

Convert a page to a section or a section to a page.

Args: target_kind: Destination kind, either page or section. id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: Serializable conversion confirmation.

add_favoriteC

Favorite a page for the authenticated user.

Args: id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: Serializable favorite confirmation.

remove_favoriteA

Remove a page from the authenticated user's favorites.

Args: id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: Serializable removal confirmation.

pin_pageB

Pin or unpin a page.

Args: pinned: Whether the page should be pinned. id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: JSON-compatible updated page.

append_to_pageB

Append Markdown content to a page.

Args: content: Markdown content to append. id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: JSON-compatible updated page.

update_page_tagsA

Replace a page's tags.

Args: tags: Complete replacement tag list. id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: JSON-compatible updated page.

update_page_propertiesB

Replace a page's properties.

Args: properties: Complete replacement property mapping. id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path.

Returns: JSON-compatible updated page.

sort_pagesB

Set the child ordering under a parent page.

Args: parent_id: Parent identifier, or empty for root. ordered_ids: Child identifiers in their desired order.

Returns: Serializable sort confirmation.

add_pageB

Create a page or section, optionally with content and metadata.

Args: title: Display title for the new page. slug: URL path segment for the new page. parent_id: Parent identifier, or empty for the root. kind: Page kind, either page or section. content: Optional Markdown content. tags: Optional tags. properties: Optional structured properties.

Returns: JSON-compatible created page.

edit_pageB

Edit a page while preserving omitted fields.

Args: id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path. title: Optional replacement title; omitted values are preserved. slug: Optional replacement slug; omitted values are preserved. content: Optional replacement content; omitted values are preserved. tags: Optional replacement tags; omitted values are preserved. properties: Optional replacement properties; omitted values are preserved.

Returns: JSON-compatible updated page.

delete_pageB

Delete a page after fetching its current version.

Args: id: Page identifier, preferred when both selectors are supplied. path: Slash-separated page path. recursive: Whether to delete descendants recursively. Defaults to False.

Returns: Serializable deletion confirmation.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 29 tools

Disambiguation3/5

Most tools have distinct purposes, but several boundaries are blurred: edit_page can replace tags, properties, and content, duplicating update_page_tags, update_page_properties, and append_to_page; move_page overlaps sort_pages, and add_page overlaps ensure_path. Descriptions help, but the set still presents multiple overlapping update and path-creation options.

Naming Consistency5/5

All tool names use consistent snake_case with a verb-first pattern (get_, list_, find_, update_, add_, delete_, etc.). Synonym variation (get/find/search/browse/lookup) exists but does not break the predictable naming convention.

Tool Count2/5

At 29 tools, the surface is heavy for a wiki MCP server, and several tools are redundant conveniences (e.g., update_page_tags, update_page_properties, append_to_page) that edit_page already covers. The count exceeds the 25+ threshold for 'too many' in the rubric.

Completeness4/5

The set covers the core wiki lifecycle well: page CRUD, move, copy, sort, revisions, tags, properties, favorites, search, tree browsing, and link inspection. Minor gaps exist (e.g., dedicated asset management, tag rename/delete, bulk operations), but no major dead ends.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive