Skip to content

MCP Server Reference

The GolemDrive MCP server lets AI assistants (Claude Desktop, Cursor, Claude Code, or any MCP client) manage encrypted files through natural language. It exposes 104 tools, 8 resources, and 5 prompts over stdio transport (JSON-RPC over stdin/stdout).

Requirements: Node.js 18 or later.

VariableRequiredDefaultDescription
GOLEMDRIVE_API_KEYYesJWT token or API key. Whitespace-only values are rejected.
GOLEMDRIVE_API_URLNohttps://api.golemdrive.comAPI base URL (trailing slashes stripped automatically).
GOLEMDRIVE_PASSPHRASENoUser passphrase for E2EE file content operations (read, download, upload). If set, the keypair is loaded on startup.
GOLEMDRIVE_FILE_SERVER_URLNoSame as GOLEMDRIVE_API_URLFile server URL for chunk upload/download.

Add to ~/.claude/claude_desktop_config.json:

{
"mcpServers": {
"golemdrive": {
"command": "npx",
"args": ["golemdrive-mcp"],
"env": {
"GOLEMDRIVE_API_KEY": "your-jwt-token",
"GOLEMDRIVE_API_URL": "http://localhost:50080"
}
}
}
}

Add to project .mcp.json:

{
"mcpServers": {
"golemdrive": {
"command": "npx",
"args": ["golemdrive-mcp"],
"env": {
"GOLEMDRIVE_API_KEY": "your-jwt-token"
}
}
}
}

Add to Cursor MCP settings with the same config format as Claude Desktop.

Terminal window
cd mcp-server
npm install && npm run build
export GOLEMDRIVE_API_KEY="your-token"
node dist/index.js

Search files and folders using full-text search. Supports quick, filtered, and content search modes.

ParameterTypeRequiredDescription
querystringYesSearch query (min 2 characters)
modeenumNoquick (default), filtered, or content
categorystringNoFilter by file category (e.g. image, document, video)
extstringNoFilter by file extension (e.g. pdf, jpg)
date_fromstringNoFilter files created after this date (ISO 8601)
date_tostringNoFilter files created before this date (ISO 8601)
pagenumberNoPage number (default 1)
page_sizenumberNoResults per page (1-100, default 20)
include_teamsbooleanNoInclude team files in search results

Returns: Paginated search results with file/folder metadata.

List files and folders in a directory.

ParameterTypeRequiredDescription
folder_uuidUUIDNoFolder to list (root if omitted)
pagenumberNoPage number (default 1)
page_sizenumberNoResults per page (1-100, default 20)
sort_byenumNoname, size, or date

Returns: Paginated file/folder listing with metadata.

Get detailed metadata for a file or folder by UUID.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file or folder

Returns: Name, size, type, tags, labels, creation date, and more.

Create a new folder.

ParameterTypeRequiredDescription
namestringYesFolder name
parent_uuidUUIDNoParent folder UUID (root if omitted)

Returns: Created folder metadata including UUID.

Move a file or folder to a different parent folder.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file or folder to move
target_folder_uuidUUIDYesUUID of the destination folder

Returns: Updated file/folder metadata.

Rename a file or folder.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file or folder to rename
new_namestringYesNew name

Returns: Updated file/folder metadata.

Copy a file or folder to a target folder. Creates a duplicate.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file or folder to copy
target_folder_uuidUUIDYesUUID of the destination folder

Returns: Copied file/folder metadata. Note: uses a two-step workflow (resolve target ID, then copy) with a known TOCTOU limitation.

Delete a file or folder (moves to trash). Trashed items can be restored later or permanently deleted by emptying the trash.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file or folder to delete

Returns: Success confirmation.


Create multiple nested folders in one call. Each folder level is created iteratively.

ParameterTypeRequiredDescription
pathstringYesSlash-separated folder path (e.g. Work/Reports/2026). Max 20 levels.
parent_uuidUUIDNoParent folder UUID to start from (root if omitted)

Returns: Array of created folders with UUIDs, plus the leaf folder UUID.

Restore a previously deleted file or folder from the trash back to its original location.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the trashed file or folder to restore

Returns: Success confirmation.

Permanently delete all files and folders currently in the trash. This action is irreversible.

No parameters.

Returns: Success confirmation.

Add or remove a file/folder from favorites.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file or folder
actionenumYesadd or remove

Returns: Success confirmation.

Set or update the description text on a file or folder. Pass an empty string to clear.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file or folder
descriptionstringYesDescription text (empty string to clear)

Returns: Updated file/folder metadata.

List the version history of a file.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file

Returns: All stored versions with version IDs, timestamps, sizes, and uploaders.

Restore a file to a previous version. The current version is preserved in history and the specified version becomes active.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file
version_idstringYesID of the version to restore

Returns: Restored file metadata.

Set classification labels on a file for organization, filtering, and compliance.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file to classify
labelsobjectYesKey-value pairs (e.g. {"category": "financial", "sensitivity": "internal"})

Returns: Updated file metadata with classification labels.

Use AI to automatically categorize all files in a folder based on extensions and metadata. Token-gated: Standard = 100 files/month, Professional = 1000/month, Premium = unlimited.

ParameterTypeRequiredDescription
folder_uuidUUIDYesUUID of the folder to auto-classify
confirm_token_usebooleanYesMust be true to confirm token usage

Returns: Classification results for each file in the folder.


File Content — E2EE Operations (5 tools)

Section titled “File Content — E2EE Operations (5 tools)”

All tools in this group require GOLEMDRIVE_PASSPHRASE to be set. Files are encrypted with AES-256-GCM client-side.

Read and decrypt a file, returning its content inline.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file to read
encodingenumNotext (default, max 10 MB) or base64 (max 50 MB)

Returns: File content as text or base64 string, plus file name and size. Returns an error if the file exceeds the size limit — use download_file instead.

Download and decrypt a file, saving it to the local filesystem. No size limit.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file to download
output_pathstringYesLocal filesystem path to save the decrypted file. System directories (/etc, /usr, /bin, /sbin, /var, /proc, /sys, /dev) are rejected.

Returns: Success with saved path and file size.

Download and decrypt an entire folder to a local directory. Recreates the folder structure locally.

ParameterTypeRequiredDescription
folder_uuidUUIDYesUUID of the folder to download
output_pathstringYesLocal directory path. System directories rejected.

Returns: Count of files downloaded, skipped (already exist with matching size), and failed. Warns at 1 GB total, rejects at 5 GB. Downloads 5 files concurrently.

Encrypt and upload a local file to GolemDrive.

ParameterTypeRequiredDescription
local_pathstringYesLocal filesystem path. System directories rejected. Max 500 MB.
folder_uuidUUIDNoTarget folder UUID (root if omitted)
file_namestringNoOverride file name (uses local filename if omitted)

Returns: Uploaded file UUID, name, and size.

Recursively encrypt and upload all files from a local directory. Creates matching folder structure on GolemDrive.

ParameterTypeRequiredDescription
local_pathstringYesLocal directory path
folder_uuidUUIDNoTarget folder UUID on GolemDrive (root if omitted)
recursivebooleanNoRecurse into subdirectories (default true)

Returns: Count of files uploaded, folders created, total bytes, and any per-file errors. Individual files are capped at 500 MB.


Create a new share link for a file or folder.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file or folder to share
storage_typeenumNoVR_FILE (default) or VR_FOLDER
expiry_daysnumberNoDays until the link expires. Omit for no expiry.
passwordstringNoPlaintext password (hashed server-side with bcrypt)
download_limitnumberNoMax downloads before the link returns 410 Gone
allowed_emailsstring[]NoUp to 20 email addresses. Omit for public access.
access_modeenumNodownload (default) or view_only
active_fromdatetimeNoISO 8601 datetime when the link becomes active
active_untildatetimeNoISO 8601 datetime when the link deactivates

Returns: Share link details including short code, UUID, and all settings.

List all share links owned by the current user.

ParameterTypeRequiredDescription
pagenumberNoPage number, zero-based (default 0)
page_sizenumberNoItems per page (1-100, default 20)

Returns: Array of share links with access counts, download counts, and status.

Update an existing share link’s settings.

ParameterTypeRequiredDescription
short_codestringYesShort code or UUID of the share link
expiry_daysnumberNoNew expiry in days from now
passwordstringNoNew password (bcrypt-hashed server-side)
is_activebooleanNofalse to deactivate, true to reactivate
access_modeenumNodownload or view_only
allowed_emailsstring[]NoReplace allowed emails (empty array to clear, max 20)

Returns: Updated share link details.

Delete a share link, permanently revoking access.

ParameterTypeRequiredDescription
short_codestringYesShort code or UUID of the share link

Returns: Success confirmation.

Create a share link and email it to a recipient. If email dispatch fails, the share link is still returned.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file to share
emailstringYesRecipient email address
expiry_daysnumberNoDays until the link expires
view_onlybooleanNoIf true, recipient can only view, not download

Returns: Share link details plus email_sent boolean.

Create share links for multiple files in a single request. Returns partial results on individual failures.

ParameterTypeRequiredDescription
file_uuidsUUID[]YesArray of file UUIDs (1-20)

Returns: Per-file results with short codes, plus total/succeeded/failed counts.

View or update the user’s default settings for new share links. Call with no parameters to view current defaults.

ParameterTypeRequiredDescription
default_expiry_daysnumberNoDefault expiry in days (0 for no default). Omit to keep current.
default_access_modeenumNodownload or view_only. Omit to keep current.
notify_on_downloadbooleanNoNotify when a share link is downloaded. Omit to keep current.

Returns: Current or updated default settings.

Toggle a share link’s active state. If currently active, deactivates it; if inactive, activates it.

ParameterTypeRequiredDescription
short_codestringYesShort code or UUID of the share link

Returns: Previous and new active state.

View or update the portal theme (share page branding). Call with no parameters to view current theme.

ParameterTypeRequiredDescription
display_namestringNoDisplay name on share pages (max 100 chars)
biostringNoBio or tagline (max 500 chars)
logo_urlstringNoURL to logo image (must be HTTPS)
accent_colorstringNoHex color #RRGGBB
background_colorstringNoHex color #RRGGBB
css_classenumNotheme-dark, theme-light, theme-minimal, theme-bold, theme-elegant, or empty string to clear

Returns: Current or updated theme settings.

Get the access log for a share link showing who accessed it, when, and how much data was served. IP addresses are masked for privacy.

ParameterTypeRequiredDescription
short_codestringYesShort code of the share link

Returns: Array of access entries (email/anonymous, masked IP, bytes served, timestamp) with total count.


Lists all teams the current user belongs to, including teams they own, administer, or are a member of.

No parameters.

Returns: Array of teams with names, roles, and member counts.

Retrieves detailed information about a specific team. Requires team membership.

ParameterTypeRequiredDescription
team_uuidUUIDYesUUID of the team

Returns: Team name, owner, member count, creation date.

Lists all members of a team with roles and join dates. Requires team membership.

ParameterTypeRequiredDescription
team_uuidUUIDYesUUID of the team

Returns: Array of members with roles (owner, admin, member), emails, and join dates.

Creates a new team. The current user becomes the owner.

ParameterTypeRequiredDescription
namestringYesTeam name (1-255 characters)

Returns: Created team metadata including UUID.

Send an invitation email to add a new member. Requires owner or admin role.

ParameterTypeRequiredDescription
team_uuidUUIDYesUUID of the team
emailstringYesEmail address of the person to invite

Returns: Invitation details.

Change a team member’s role. Requires owner or admin role. The team owner’s role cannot be changed.

ParameterTypeRequiredDescription
team_uuidUUIDYesUUID of the team
user_idUUIDYesUUID of the team member
roleenumYesadmin or member

Returns: Updated member details.

Remove a member from a team. Requires owner or admin role. The team owner cannot be removed.

ParameterTypeRequiredDescription
team_uuidUUIDYesUUID of the team
user_idUUIDYesUUID of the member to remove

Returns: Success confirmation.

Retrieves storage, bandwidth, and member quota status for a team. Requires team membership.

ParameterTypeRequiredDescription
team_uuidUUIDYesUUID of the team

Returns: Current usage vs. limits for storage, bandwidth, and members.

Retrieves the RBAC permission matrix for the current user in a team.

ParameterTypeRequiredDescription
team_uuidUUIDYesUUID of the team

Returns: Allowed actions (invite, remove, edit, upload, etc.) based on the user’s role.

Offboard a member: removes them from the team and revokes all their shared file access. Requires owner or admin role.

ParameterTypeRequiredDescription
team_uuidUUIDYesUUID of the team
user_idUUIDYesUUID of the member to offboard

Returns: Success confirmation.

Retrieves per-member storage usage breakdown for a team. Requires admin or owner role.

ParameterTypeRequiredDescription
team_uuidUUIDYesUUID of the team

Returns: Per-member storage consumption.


Retrieves a user’s public social profile.

ParameterTypeRequiredDescription
user_idUUIDYesUUID of the user

Returns: Display name, bio, avatar URL, follower/following counts, verification status.

Updates the current user’s social profile. Only provided fields are updated.

ParameterTypeRequiredDescription
display_namestringNoNew display name (max 100 characters)
biostringNoNew bio (max 500 characters)
avatar_urlstringNoURL of the new avatar image

Returns: Updated profile data.

Follow another user. Their public files and activity will appear in your feed. Mutual follows create a friends connection.

ParameterTypeRequiredDescription
target_user_idUUIDYesUUID of the person to follow

Returns: Follow confirmation.

Unfollow a previously followed user.

ParameterTypeRequiredDescription
user_idUUIDYesUUID of the person to unfollow

Returns: Unfollow confirmation.

Lists all users who follow the current user.

No parameters.

Returns: Array of followers with display names, usernames, and relationship status.

Lists all users the current user is following.

No parameters.

Returns: Array of followed users with display names, usernames, and relationship status.

Retrieves the user’s social content feed showing recent activity from followed users.

ParameterTypeRequiredDescription
pagenumberNoPage number (default 1). Page size is controlled server-side.

Returns: Paginated feed entries.

Send a monetary tip to a content creator’s tip jar. Supports fiat and token-based tips.

ParameterTypeRequiredDescription
tip_jar_uuidUUIDYesUUID of the recipient’s tip jar
amountstringYesTip amount as a decimal string (e.g. "5.00"). Range: 0.01-10000.00.
currency_typeenumNofiat (default) or tokens
token_amountnumberNoToken amount in cents (required when currency_type is tokens)
messagestringNoOptional message (max 1000 chars)
is_anonymousbooleanNoSend tip anonymously

Returns: Tip confirmation and receipt.

Follow multiple users in one operation.

ParameterTypeRequiredDescription
user_idsUUID[]YesArray of user UUIDs (1-20)

Returns: Per-user results with success/failure, plus total counts.

Retrieves suggested users to follow based on mutual connections and activity.

No parameters.

Returns: Array of suggested users.

Retrieves the connection status between the current user and a target user.

ParameterTypeRequiredDescription
user_idUUIDYesUUID of the user to check

Returns: Follow status, block status, and mute status.

Block a user. Blocked users cannot follow you, view your profile, or interact with your content. Automatically unfollows them.

ParameterTypeRequiredDescription
user_idUUIDYesUUID of the user to block

Returns: Block confirmation.

Unblock a previously blocked user.

ParameterTypeRequiredDescription
user_idUUIDYesUUID of the user to unblock

Returns: Unblock confirmation.

Mute a user. Their activity is hidden from your feed without unfollowing. The muted user is not notified.

ParameterTypeRequiredDescription
user_idUUIDYesUUID of the user to mute

Returns: Mute confirmation.

Set or update the current user’s unique username.

ParameterTypeRequiredDescription
usernamestringYes1-30 characters, alphanumeric plus hyphens and underscores

Returns: Updated profile data.

Set or update the current user’s vanity URL slug (e.g. golemdrive.com/@slug).

ParameterTypeRequiredDescription
vanity_urlstringYes3-30 characters, alphanumeric plus hyphens and underscores

Returns: Updated profile data.

Set the visibility of the current user’s profile.

ParameterTypeRequiredDescription
visibilityenumYespublic, private, or followers_only

Returns: Updated visibility setting.

Report a user for violating platform guidelines. Reports are reviewed by the moderation team.

ParameterTypeRequiredDescription
user_idUUIDYesUUID of the user to report
reasonenumYesspam, harassment, impersonation, inappropriate_content, or other
detailsstringNoAdditional details (max 1000 chars)

Returns: Report confirmation.


Retrieves the current user’s subscription plan, status, renewal date, and tier details.

No parameters.

Returns: Subscription plan details.

Returns the user’s remaining AI token balance.

No parameters.

Returns: Token balance.

Returns AI usage statistics for the current billing period, including token consumption and cost breakdown.

No parameters.

Returns: AI usage details.

Returns a URL to the Stripe billing portal for managing payment methods, invoices, and subscription details.

No parameters.

Returns: Stripe billing portal URL.

Returns the user’s wallet balance including fiat balance, token holdings, and pending payouts.

No parameters.

Returns: Wallet balance details.

Returns available AI token packs with pricing. Since payment requires a browser checkout, this tool provides pack info and directs the user to complete the purchase in the dashboard.

No parameters.

Returns: Three packs — Starter (500 tokens, $4.99), Standard (2000 tokens, $14.99), Professional (10000 tokens, $49.99).

Check whether a coupon or promo code is valid.

ParameterTypeRequiredDescription
codestringYesCoupon or promo code (1-50 characters)

Returns: Discount details, description, and expiration date.

Retrieves the user’s spending alert preferences.

No parameters.

Returns: Monthly budget thresholds and notification settings.

Update spending alert preferences.

ParameterTypeRequiredDescription
monthly_budgetnumberNoMonthly spending budget (positive number)
alert_threshold_percentnumberNoPercentage of budget at which to alert (1-100)
email_alerts_enabledbooleanNoEnable/disable email alerts

Returns: Updated spending alert preferences.

Create a new subscription plan as a content creator.

ParameterTypeRequiredDescription
namestringYesPlan name (1-100 chars, e.g. “Supporter”)
price_monthlystringYesMonthly price as decimal string (e.g. "4.99")
descriptionstringNoDescription of benefits (max 500 chars)

Returns: Created plan metadata.

Lists all subscription plans the current user has created as a content creator.

No parameters.

Returns: Array of creator plans.

Subscribe to a creator’s plan. Starts a recurring payment.

ParameterTypeRequiredDescription
plan_uuidUUIDYesUUID of the creator plan

Returns: Subscription confirmation.

Cancel a subscription to a specific creator. Access continues until the end of the current billing period.

ParameterTypeRequiredDescription
creator_idUUIDYesUUID of the creator

Returns: Cancellation confirmation.

Returns the user’s creator earnings summary including total, pending, and paid out amounts, plus subscriber count.

No parameters.

Returns: Earnings breakdown.

Request a withdrawal of creator token earnings. Processed asynchronously.

ParameterTypeRequiredDescription
amountstringYesWithdrawal amount as decimal string (e.g. "50.00"). Range: 0.01-100000.00.

Returns: Withdrawal request confirmation.


Returns the current user’s full account information including profile, subscription tier, storage quota, and settings.

No parameters.

Returns: Composite account data.

Retrieves the user’s most recent notifications.

ParameterTypeRequiredDescription
limitnumberNoMax notifications to return (1-100, default 20)

Returns: Array of notifications (share invites, comments, follow events, system alerts).

Mark a single notification as read.

ParameterTypeRequiredDescription
notification_idstringYesID of the notification

Returns: Confirmation.

Check whether the user has set up an encryption recovery key. Essential for regaining access to encrypted files if the passphrase is lost.

No parameters.

Returns: Recovery key setup status.

Returns a summary of storage usage: total quota, used space, file count, and bandwidth consumption. Extracts storage-relevant fields from the composite account endpoint.

No parameters.

Returns: Storage and bandwidth usage metrics.

Initiate recovery key setup for the encrypted file vault. The server generates a recovery key that is shown only once.

ParameterTypeRequiredDescription
passphrase_hashstringYesClient-side PBKDF2-derived hash of the user’s passphrase (hex-encoded)

Returns: Recovery key (shown only once).

Returns an audit trail of encryption-related events: key rotations, recovery key setup, and passphrase changes.

No parameters.

Returns: Array of encryption audit events.

Initiate a soft-deletion of the account. The account enters a 60-day grace period during which it can be restored. After 60 days, the account and all data are permanently deleted. Destructive operation.

No parameters.

Returns: Confirmation with grace period details.

Cancel a pending account deletion and restore the account. Only works within the 60-day grace period.

No parameters.

Returns: Restoration confirmation.

Returns email notification preferences: share notifications, follow notifications, system announcements, and marketing emails.

No parameters.

Returns: Current email preference settings.

Update email notification preferences. Only provided fields are updated.

ParameterTypeRequiredDescription
share_notificationsbooleanNoEnable/disable share notification emails
follow_notificationsbooleanNoEnable/disable follow notification emails
system_announcementsbooleanNoEnable/disable system announcement emails
marketing_emailsbooleanNoEnable/disable marketing emails
unsubscribe_allbooleanNoSet to true to disable ALL email notifications at once

Returns: Updated preferences.

Lists all API keys for the current user with names, prefixes, expiration dates, last-used timestamps, and active status.

No parameters.

Returns: Array of API key metadata.

Create a new API key for headless CLI or MCP access. The full key value is returned only once. Max 10 active keys per user.

ParameterTypeRequiredDescription
namestringYesHuman-readable label (1-100 chars, e.g. “CI pipeline”)
expires_instringNoExpiration duration (e.g. 30d, 90d, 365d). Omit for never.

Returns: Full API key value (shown only once) plus metadata.


Add a new top-level comment to a file.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file to comment on
textstringYesComment text (1-5000 characters)

Returns: Created comment with ID, body, author, and timestamp.

List all comments on a file, including threaded replies, in chronological order.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file

Returns: Array of comments with nested replies and total count.

Reply to an existing comment, creating a threaded reply.

ParameterTypeRequiredDescription
file_uuidUUIDYesUUID of the file the comment belongs to
parent_idstringYesID of the parent comment
textstringYesReply text (1-5000 characters)

Returns: Created reply with ID, parent ID, body, author, and timestamp.

Delete a comment by ID. You can only delete your own comments.

ParameterTypeRequiredDescription
comment_idstringYesID of the comment to delete

Returns: Success confirmation.


Register a new webhook endpoint that receives HTTP POST callbacks on specified events.

ParameterTypeRequiredDescription
urlstringYesHTTPS callback URL. Private/internal IP ranges are blocked (localhost, 10.x, 172.16-31.x, 192.168.x, link-local, cloud metadata endpoints).
eventsstring[]YesEvent types to subscribe to (e.g. ["file.uploaded", "file.deleted"])

Returns: Created webhook details.

Returns all webhook endpoints registered by the current user.

No parameters.

Returns: Array of webhooks with subscribed events and status.

Remove a webhook. The endpoint stops receiving callbacks immediately.

ParameterTypeRequiredDescription
webhook_idstringYesID of the webhook to delete

Returns: Success confirmation.

Create a data-retention policy for a folder. Files inside are automatically deleted after the specified number of days.

ParameterTypeRequiredDescription
folder_uuidUUIDYesUUID of the folder
delete_after_daysnumberYesDays after which files are deleted (positive integer)
namestringYesHuman-readable name for the rule (1-255 chars)

Returns: Created retention rule details.


Diagnose whether the user can upload a file of a given size. Checks storage quota, bandwidth limits, and file count.

ParameterTypeRequiredDescription
file_size_bytesnumberNoSize of the file to upload in bytes. Omit for general quota status.

Returns: Diagnostic report with pass/fail/warn status for each check (storage_quota, bandwidth, file_count). Overall diagnosis: ready, warning, or upload_blocked.

Check the health of a share link. Verifies it exists, is active, has not expired, and has not exceeded download limits.

ParameterTypeRequiredDescription
short_codestringYesShort code of the share link

Returns: Health status (healthy or issues_found) with a list of issues (deactivated, expired, at download limit, not yet active, active window ended) and link info.

Verify the user’s E2EE setup status. Checks keypair existence and recovery key configuration.

No parameters.

Returns: encryption_ready boolean, recovery_key_configured boolean, per-check details, and recommendations.

Check GolemDrive API server health and response time.

No parameters.

Returns: Reachability status, response time in milliseconds, and server health payload.


Runs entirely in the MCP server. No API call is made.

Perform local data aggregation and formatting operations on provided values.

ParameterTypeRequiredDescription
operationenumYessum, count, average, min, max, filter, sort, format_bytes, format_table
valuesarrayNoArray of values to operate on. Numbers for numeric ops; objects for filter/sort/format_table; numbers for format_bytes.
fieldstringNoField name when values are objects. Used with sum, average, min, max, sort, filter.
filter_openumNoeq, neq, gt, gte, lt, lte, contains, startsWith, endsWith. Required for filter.
filter_valueanyNoValue to compare against. Required for filter.
sort_orderenumNoasc (default) or desc
columnsstring[]NoColumn names for format_table. Defaults to object keys from the first row.

Returns: Computed result. format_table returns a plain-text ASCII table; format_bytes returns human-readable sizes; others return numeric results with counts.


Runs entirely in the MCP server. No API call is made.

Generate GolemDrive CLI commands for common operations.

ParameterTypeRequiredDescription
operationstringYesOne of: upload, download, download_folder, list, tree, search, share, mkdir, move, delete, verify, info, versions, recovery_key, tokens, teams, config
file_pathstringNoLocal file path for upload operations
file_uuidstringNoFile or folder UUID for targeted operations
target_folder_uuidstringNoTarget folder UUID for move/upload
querystringNoSearch query or folder name for mkdir
optionsobjectNoAdditional CLI flags as key-value pairs (e.g. {"expiry": "7d", "password": "secret"})

Returns: Complete CLI command string, description, examples, and available flags for the operation.


Enhanced share access audit with date-range filtering, summary statistics, and aggregated access patterns. IP addresses are masked for privacy.

ParameterTypeRequiredDescription
short_codestringYesShort code of the share link to audit
date_fromdatetimeNoOnly include accesses after this ISO 8601 datetime
date_todatetimeNoOnly include accesses before this ISO 8601 datetime
include_summarybooleanNoInclude summary statistics (default true)

Returns: Filtered access entries (masked IPs, formatted bytes), optional summary (total accesses, unique visitors by email and IP, total bytes served, accesses-by-day breakdown).


Resources are read-only data endpoints that AI assistants can browse.

URIDescriptionBackend Endpoint
golemdrive://filesRoot-level file and folder listing (page 1, 50 items)GET /v2/nodes?page=1&page_size=50&state=active
golemdrive://files/{uuid}Metadata for a specific file or folder by UUIDGET /v2/nodes/{uuid}
golemdrive://sharesAll active share links (page 0, 50 items)GET /api/v1/webshare/url?page=0&size=50
golemdrive://teamsTeams the user belongs to (page 1, 50 items)GET /api/v1/team?page=1&page_size=50
golemdrive://teams/{uuid}Team details including members and rolesGET /api/v1/team/{uuid}
golemdrive://profileCurrent user’s social profile (display name, avatar, visibility)GET /api/v1/social/profile
golemdrive://usageStorage quota + AI usage composite (two API calls merged)GET /api/v1/useraccount/composite + GET /api/v1/ai/usage
golemdrive://notificationsUnread in-app notifications (limit 50)GET /api/v1/social/notifications?unread_only=true&limit=50

UUID parameters are validated (v4 format). Invalid UUIDs return an error resource. All resources return application/json.


Pre-built prompt templates that AI agents can invoke for common GolemDrive workflows.

Analyze the user’s files and suggest how to organize them by type, date, or project. The prompt instructs the agent to read golemdrive://files, build a full folder tree, identify patterns (file types, naming conventions, date clusters), suggest a reorganized structure with specific move actions, and highlight duplicates or misplaced files.

Summarize all active share links with access counts, expiry dates, download limits, and security status. Groups links by status (active, expiring soon, expired, at download limit). Highlights security concerns such as links with no expiry and no password.

Audit storage: check usage vs. quota, find the 10 largest files, identify files not modified in 90+ days, calculate potential space savings, and check bandwidth usage trends. Presents findings in sections (Usage Overview, Top 10 Largest Files, Stale Files, Recommended Actions).

Show all teams with member lists, roles, and shared folder counts. Flags any team where the user is the sole admin or owner (single point of failure). Recommends additional admins where needed.

Verify security posture: recovery key status, recent security notifications, share link hygiene (links without expiry or password), and overall security scorecard with prioritized recommendations.


The MCP server implements multiple security layers:

  • Authentication — All API requests include the GOLEMDRIVE_API_KEY as a Bearer token in the Authorization header.
  • HTTPS enforcement — Webhook URLs must use HTTPS. HTTP URLs are rejected at registration time.
  • Private IP blocking — Webhook URLs targeting private/reserved IP ranges are rejected to prevent SSRF. Blocked ranges: 127.x, 10.x, 172.16-31.x, 192.168.x, 169.254.x (link-local), fc00:/fd (IPv6 ULA), fe80: (IPv6 link-local), ::1, 0.0.0.0, metadata.*, internal.*.
  • UUID validation — All UUID parameters are validated with Zod’s .uuid() validator. Path parameters are encoded with encodeURIComponent() to prevent path traversal.
  • Path traversal prevention — File content tools validate output paths and reject system directories (/etc, /usr, /bin, /sbin, /var, /proc, /sys, /dev). Server-provided filenames are sanitized with path.basename().
  • Crypto error sanitization — Error messages containing crypto terms (decrypt, encrypt, AES, RSA, PBKDF, etc.) are replaced with a generic “Encryption operation failed” message to avoid leaking key lengths, algorithm details, or buffer contents.
  • IP address masking — Share access logs mask the last octet of IPv4 addresses and the last 4 groups of IPv6 addresses.
  • Size limitsread_file_content: 10 MB text, 50 MB base64. download_folder: 5 GB max (warns at 1 GB). upload_folder: 500 MB per file. Pagination capped at 100 items for tools, 50 items for resources.
  • Nesting limitscreate_nested_folders caps at 20 levels deep.
  • Tip amount boundssend_tip validates 0.01-10000.00 range. request_token_withdrawal validates 0.01-100000.00 range.

All tool errors follow a consistent format:

{
"isError": true,
"content": [
{
"type": "text",
"text": "{\"error\": \"Human-readable error message\"}"
}
]
}

Errors are caught by the safeHandler wrapper. Crypto-related error messages are sanitized before being returned.