@achi/drive-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ACHI_API_URL | No | Override for self-hosted or staging endpoints. | https://api.achi.cc |
| ACHI_API_TOKEN | Yes | Required. Your Achi API token (achi_pat_*). |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Show the authenticated Achi Drive user, auth method, and whether the token has file-content access. |
| list_teamsA | List all teams the user is a member of, with their roles. Use the returned team IDs as the |
| list_filesA | List files and folders. Omit parentFolderId for the root. Pass teamId to list inside a team. Supports cursor-based pagination via the returned nextCursor. |
| get_fileA | Get metadata for a single file (name, mimeType, sizeBytes, etc.). Does NOT return content — use read_file for that. |
| get_folderC | Get metadata for a folder. |
| list_folder_childrenB | List the immediate children (files + subfolders) of a folder. |
| searchA | Search files and folders by name (case-insensitive substring match). Scans up to 5,000 items per scope; results may be truncated for huge drives. |
| read_fileA | Download a file and return its content inline. Default cap: 1 MB; absolute cap: 5 MB. For larger files, pass rangeStart/rangeEnd to fetch a specific byte range. Text mime types return as text. Images return as MCP image content. Other binaries return as embedded resource. |
| read_file_textA | Read a file as plain text, decoded as UTF-8. Convenience wrapper around read_file with a default 1 MB cap. Returns an error if the file is not text-encodable. |
| read_thumbnailA | Get the JPEG thumbnail of a file (if it has one). Returns MCP image content. Useful for previewing images/videos without downloading the full file. |
| upload_fileA | Upload a new file. Provide content as base64 (for binaries) or text. Set mimeType for proper handling. |
| update_fileA | Rename, move, star/unstar, trash/restore a file in one call. Pass only the fields you want to change. |
| delete_fileA | Move a file to trash, or delete it permanently (irreversible). Default is trash. |
| create_folderC | Create a new folder. |
| update_folderB | Rename, move, star/unstar, trash/restore a folder. |
| delete_folderA | Move a folder to trash (recursive — all descendants trashed) or delete it permanently (also recursive — all contents wiped from R2 + DB). Permanent delete is irreversible. |
| list_unitsA | List Properties (Vermietung) apartments the user can see. Pass teamId for a space such as Chi Ross. scope=all lists every space. |
| get_unitA | Load one apartment: tenant, rent, address, trail folder. Does not invent Anschrift or IBAN. |
| update_unitA | Write Properties fields (squareMeters, rooms, rent, tenant, notes, …). Snapshots the current row first so restore_unit can undo a bad write. Always pass versionReason. Use ifUpdatedAt from get_unit.updatedAt to avoid clobbering. |
| list_unit_versionsA | List Properties unit snapshots (newest first). Use restore_unit if an earlier write was wrong. |
| restore_unitA | Revert a Properties unit to a prior snapshot. The live row is snapshotted first so this restore can also be undone. |
| list_unit_documentsA | List the Properties document trail for an apartment (HV, heating, tax, prior NK letters). |
| create_unit_documentA | Create a Properties trail document (NK letter, HV file, …). Send contentBase64 for the PDF/file. Use this instead of asking the user to re-attach. Uploading into Achi Properties/{unit} also creates a trail row. |
| update_unit_documentA | Patch a trail document’s title, documentDate (YYYY-MM-DD or DD.MM.YYYY), or notes. Use this for a wrong letter date — do not ask the user to edit the UI. |
| download_unit_documentB | Download one trail document (PDF/ODT). Use this instead of asking the user to re-attach HV or heating files. |
| list_unit_paymentsB | Bank-statement payment trail for an apartment (cold/warm/NK). Source of rent-paid truth. |
| get_landlord_profileC | Stored Vermieter letterhead for a space. Empty fields stay empty — never invent legal name, street, or IBAN. |
| list_bank_transactionsD | Kontoauszug lines for a team space. Requires teamId. |
| list_mail_accountsC | Mailboxes the user can read. Never returns passwords. |
| search_mailB | Search mail the user can read (subject/from/snippet). No passwords. |
| read_mailB | Read one mail message including plaintext body. No passwords. |
| list_agent_notesA | List Drive /Agent notes in a space (agent.md, learnings/letters.md, …). Requires a content-access token. |
| list_git_foldersA | List Drive folders that mirror a private git repo. Agents read the Drive copy — never ask for a GitHub token. |
| list_skillsB | List SKILL.md files mirrored from git folders in this space (e.g. novel-dialogue). Then read_file on the fileId. |
| read_skillA | Find one mirrored skill by name (novel-dialogue) and return its Drive fileId. Use read_file next. |
| create_nk_letterA | Compile a tenant Nebenkostenabrechnung PDF on the Achi server (no browser pdf.js). Pass recoverable line items only. Do not invent amounts, Anschrift, or IBAN. Do not include Eigentümerkosten leftovers or Quellenangabe — the server strips them. If tenants changed mid-year, pass occupancyId + periodFrom + periodTo so this letter does not overwrite the other stay. Returns a PDF. Also files the unit trail and a settlement (x-achi-nk-settlement-id). |
| list_nk_settlementsB | List tenant NK settlements for an apartment and year. Mid-year move-out → two rows, not one. |
| update_nk_settlementA | Patch one NK settlement (status, amounts, notes). Does not change other tenants in the same year. |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/EBIElimited/drive-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server