ocis-mcp-server

mcp
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in .github/workflows/release.yml
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

MCP server exposing ownCloud Infinite Scale (oCIS) as 80 AI-accessible tools

README.md

oCIS MCP Server

License ownCloud OSPO Docker Hub

A standalone Model Context Protocol (MCP) server written in Go that exposes ownCloud Infinite Scale as a set of 80+ AI-accessible tools. It enables AI assistants such as Claude, Ollama, and other MCP-compatible clients to manage oCIS users, groups, spaces, files, shares, and more through natural language, communicating exclusively over the public oCIS APIs (LibreGraph, WebDAV, OCS).

Getting Started

See the Getting Started Guide for a full walkthrough.

Quick Setup

# Build
make build

# Configure
export OCIS_URL=https://your-ocis-instance.example.com
export OCIS_ACCESS_TOKEN=your-token

# Run
./ocis-mcp-server

Docker

make docker-build
docker run -e OCIS_URL=... -e OCIS_ACCESS_TOKEN=... owncloud/ocis-mcp-server

Run Tests

make test
make lint

Documentation

Part of ownCloud Infinite Scale

This MCP server is an external integration for oCIS. It communicates over the public API surface and has no dependency on oCIS internals, allowing independent versioning and release cycles.

Docker Hub

Tool Inventory

The server exposes 80 tools in 13 categories:

Category Tools Examples
Users 6 ocis_list_users, ocis_create_user, ocis_get_me
Groups 7 ocis_list_groups, ocis_create_group, ocis_add_group_member
Spaces 14 ocis_list_spaces, ocis_create_space, ocis_invite_to_space
Files 14 ocis_list_files, ocis_upload_file, ocis_download_file, ocis_move_file
Shares 11 ocis_create_share, ocis_create_link, ocis_list_shared_by_me
Search 2 ocis_search, ocis_search_by_tag
Notifications 2 ocis_list_notifications, ocis_delete_notification
Settings 3 ocis_list_roles, ocis_assign_role
App Tokens 3 ocis_list_app_tokens, ocis_create_app_token
Admin 4 ocis_health_check, ocis_get_version, ocis_get_capabilities
Education 5 ocis_list_education_schools, ocis_create_education_user
OCM 4 ocis_ocm_create_share, ocis_ocm_list_received
Workflows 5 ocis_upload_and_share, ocis_create_project_space

Authentication

App Tokens (recommended): Create in the oCIS web UI under Settings > Security > App tokens.

export OCIS_MCP_OCIS_URL="https://ocis.example.com"
export OCIS_MCP_APP_TOKEN_USER="admin"
export OCIS_MCP_APP_TOKEN_VALUE="<token>"

OIDC (alternative):

export OCIS_MCP_AUTH_MODE="oidc"
export OCIS_MCP_OIDC_ACCESS_TOKEN="<access-token>"

Key Environment Variables

Variable Required Description
OCIS_MCP_OCIS_URL Yes Base URL of the oCIS instance
OCIS_MCP_TRANSPORT No stdio (default) or http
OCIS_MCP_HTTP_ADDR No Listen address for HTTP transport (default 127.0.0.1:8090)
OCIS_MCP_HTTP_SECRET No* Shared secret required as Authorization: Bearer <secret> on /mcp. *Required when the HTTP transport binds a non-loopback address.
OCIS_MCP_LOG_LEVEL No debug, info, warn, error

Securing the HTTP transport

The HTTP transport runs every tool with the server's configured oCIS credential (often an
admin app token). The /mcp endpoint therefore controls the full tool inventory, so it must
not be reachable by untrusted callers.

  • Authenticate callers. Set OCIS_MCP_HTTP_SECRET to a long random value. The server then
    requires Authorization: Bearer <secret> on every /mcp request and rejects others with
    401. Configure your MCP client to send that header.
  • Non-loopback binds require a secret. When OCIS_MCP_TRANSPORT=http binds a non-loopback
    address (for example 0.0.0.0:8090, a routable IP, or a bare :8090) and no
    OCIS_MCP_HTTP_SECRET is set, the server refuses to start. Binding the default
    127.0.0.1:8090 without a secret is allowed but logs a warning, because any local process
    could otherwise drive the tools.
  • Terminate TLS and restrict the network. Front the server with TLS (a reverse proxy) and
    limit reachability with firewall / network policy; do not expose /mcp directly to the
    internet.
  • Prefer stdio (the default) for single-client, local use such as Claude Desktop — it has
    no network listener.
  • There is no per-caller authorization. OCIS_MCP_HTTP_SECRET gates access to the endpoint,
    not to individual tools or accounts. Every caller who presents a valid bearer token gets the
    full tool inventory running with the one oCIS credential configured on the server — if that
    credential is an admin app token, every caller effectively has admin access. Do not put this
    behind a gateway that forwards a shared secret to multiple end users unless you're comfortable
    granting all of them that credential's privileges.
  • Credential rotation requires a restart. The configured app token or OIDC access token is
    read once at startup; there is no hot-reload. If it expires or is revoked, every tool call
    starts failing with an authentication error from oCIS until the process is restarted with a
    fresh credential. Factor the resulting downtime into how short you make the app token's TTL.

MCP Resources and Prompts

5 read-only resources (ocis://capabilities, ocis://version, ocis://sharing-roles, ocis://drive-types, ocis://auth-mode) and 4 guided workflow prompts (ocis_onboard_user, ocis_migrate_files, ocis_audit_space, ocis_share_report).

Community & Support

Star this repo and Watch for release notifications!

Contributing

We welcome contributions! Please read the Contributing Guidelines
and our Code of Conduct before getting started.

Workflow

  • Rebase Early, Rebase Often! We use a rebase workflow. Always rebase on the target branch before submitting a PR.
  • Dependabot: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly.
  • Signed Commits: All commits must be PGP/GPG signed. See GitHub's signing guide.
  • DCO Sign-off: Every commit must carry a Signed-off-by line:
    git commit -s -S -m "your commit message"
    
  • GitHub Actions Policy: Workflows may only use actions that are (a) owned by owncloud, (b) created by GitHub (actions/*), or (c) verified in the GitHub Marketplace.

Security

Do not open a public GitHub issue for security vulnerabilities.

Report vulnerabilities at https://security.owncloud.com -- see SECURITY.md.

Bug bounty: YesWeHack ownCloud Program

License

This project is licensed under the Apache-2.0.

About the ownCloud OSPO

The Kiteworks Open Source Program Office, operating under
the ownCloud brand, launched on May 5, 2026, to steward the open source
ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance,
community health, and sustainable collaboration between the open source community and
Kiteworks, which acquired ownCloud in 2023.

For questions about the OSPO or licensing, contact [email protected].

License status: This repository is already licensed under Apache-2.0 -- the OSPO target license.
No migration is required.

Yorumlar (0)

Sonuc bulunamadi