Skip to content

About

No description, website, or topics provided.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Repository files navigation

OpenCloud MCP Server

License Lab status

Warning

Lab status: This project is under active development. It is intended for testing and evaluation, not production use. Features, APIs and behavior may change without notice.

An AI model knows a lot, but nothing about your organization: what you promised a customer or what the last project decided is in your files. This MCP server connects an MCP client to OpenCloud, so the model can look there, always as the signed-in user and with that user's permissions.

An AI agent talks MCP to OpenCloud MCP, which calls OpenCloud's APIs as the signed-in user

What you can do with it

Ask your files, get the overview, find files fast, file and share, undo mistakes, combine with other MCP servers

A few things to ask:

  • "What did we promise Meridian on availability?"
  • "Summarise the project folder before my meeting."
  • "Find the signed offers from last quarter tagged open."
  • "Put the offer into Sales 2026 and share it with Team Product, read only."
  • "Bring back the version of the budget from Monday."

Example chat: the agent reads the contract and names the file and section

In detail, the server lets a client:

  • read: list spaces and folders, read markdown, text, CSV and PDF, open one section of a document by its heading, see previews of images and documents
  • search: OpenCloud's own search by words, folder, tags, type, date, size or KQL
  • write: write text files, create folders, copy, move and delete
  • undo: restore from the trash and earlier versions of a file
  • share: with people and groups, by links; accept what others share
  • organize: tags, favorites, activity, notifications, open a file in an office app
  • manage spaces: as a space admin, create project spaces and manage their members

Every tool is listed in Tools. The documents are MCP resources too, with notice when one changes.

What the agent can and cannot do

  • Your permissions, nothing more. Every request goes to OpenCloud as the signed-in user. The agent sees what that user sees and can do what that user may do.
  • Read only if you want. --read-only offers only the tools that change nothing, and --toolsets only the groups you name. A client cannot talk the server out of either.
  • Writing tools say so. Every tool carries MCP annotations (readOnlyHint, destructiveHint), so the client can ask before anything is changed or deleted.
  • No copy of your data. The server keeps no index, no cache and no background copy.
  • Only your OpenCloud and your provider. Calls with a user's token go to the configured OpenCloud only: a request or redirect to any other host is stopped before it leaves. With OpenID Connect the server also talks to your own provider, for the token exchange. It does not fetch files from URLs.
  • Left out on purpose: admin and education routes, app tokens and passwords, locks, binary uploads. See Tools for why.

Want no data to leave the house? Run the model locally, for example with Ollama or vLLM. The server and the tools stay the same.

Install

Tested with OpenCloud 9.0.0. Earlier versions are not supported; later ones should work but are not checked.

For Claude Desktop, download opencloud-mcp-<version>.mcpb from the latest release and open it. Claude Desktop asks for the OpenCloud address, your user name and an app token, and keeps the token in the system's keychain.

For other clients, the release has the binary for Linux, macOS and Windows on amd64 and arm64.

From source, with mise providing Go and the linter:

mise install
mise run build      # bin/opencloud-mcp

Or as a container image:

mise run image      # opencloud-mcp:dev
docker run -i --rm -e OPENCLOUD_URL -e OPENCLOUD_USER -e OPENCLOUD_APP_TOKEN opencloud-mcp:dev

Quick start

Create an app token for the user, then connect a client.

Claude Code:

claude mcp add opencloud \
  -e OPENCLOUD_URL=https://cloud.example.com -e OPENCLOUD_USER=alice -e OPENCLOUD_APP_TOKEN='<app token>' \
  -- /path/to/opencloud-mcp

Claude Desktop, Cursor and other clients that take a JSON config:

{
  "mcpServers": {
    "opencloud": {
      "command": "/path/to/opencloud-mcp",
      "env": {
        "OPENCLOUD_URL": "https://cloud.example.com",
        "OPENCLOUD_USER": "alice",
        "OPENCLOUD_APP_TOKEN": "<app token>"
      }
    }
  }
}

To start carefully, add "args": ["--read-only"].

Any MCP client works, over stdio or streamable HTTP: Claude, LibreChat and Open WebUI as well as clients for local models. Configuration has the HTTP setup.

Modes

Mode Who it acts as Sign-in
stdio one user app token
HTTP, one user one user, loopback only app token
HTTP, sign-in per request every user of the instance app token, or MCP authorization with OpenID Connect

With OpenID Connect the server exchanges the client's token for one issued for OpenCloud (RFC 8693) and keeps nothing between requests. Settings are in Configuration, the details of sign-in in Sign-in.

Try it

compose.yaml runs OpenCloud, an OpenID Connect provider (Rauthy), this server and LibreChat on this machine. It needs an OpenAI-compatible model API:

cp .env.example .env    # then set OPENAI_API_BASE_URL, OPENAI_API_KEY and DEFAULT_MODELS
mise run demo

Open http://localhost and sign in as alice@example.com / demo. The rest is in Demo.

At a glance

Topic Details
Protocol MCP 2026-07-28 (stateless, server/discover, subscriptions/listen) and the older revisions as far as the go-sdk serves them
Modes stdio, HTTP as one user, HTTP with sign-in per request; see Modes
Sign-in app token (basic auth) or MCP authorization with OpenID Connect and token exchange (RFC 8693)
Tools 57 in 10 toolsets, limited with --toolsets, read only with --read-only
APIs LibreGraph, WebDAV, OCS and the app provider
Resources documents as opencloud:///spaces/<space id>/<path>, with change notices
Left out admin and education routes, credentials, locks, binary uploads; see why
Tested with OpenCloud 9.0.0
Runs as one Go binary or a container
License Apache 2.0

Docs

  • Configuration: the settings, the three modes, app tokens, connecting a client
  • Tools: every tool, the documents as resources, and search
  • Sign-in: app tokens and OpenID Connect per HTTP request
  • Demo: the compose demo and its users
  • Development: the tests and the live test against the demo
  • Evaluation: questions for a model, to see whether the tools guide it

License

Apache 2.0, see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages