feat: add stdio transport support for local MCP usage
Add a lightweight stdio transport path so users can run the server locally with MCP clients like Claude Code using `uvx nextcloud-mcp-server run`. - New `nextcloud_mcp_server/stdio.py` with minimal FastMCP setup for single-user BasicAuth (no OAuth, semantic search, or background sync) - Default transport changed from streamable-http to stdio - Dockerfile updated to explicitly use streamable-http for containers - CLI `--enable-app` now includes news, collectives, and sharing - README Quick Start section with uvx and MCP client config examples Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
23995ce64d
commit
09006fcea9
@@ -15,7 +15,39 @@ This is a **dedicated standalone MCP server** designed for external MCP clients
|
||||
> [!NOTE]
|
||||
> **Looking for AI features inside Nextcloud?** Nextcloud also provides [Context Agent](https://github.com/nextcloud/context_agent), which powers the Assistant app and runs as an ExApp inside Nextcloud. See [docs/comparison-context-agent.md](docs/comparison-context-agent.md) for a detailed comparison of use cases.
|
||||
|
||||
## Quick Start (Docker)
|
||||
## Quick Start
|
||||
|
||||
Run the server locally with [uvx](https://docs.astral.sh/uv/) (no installation required):
|
||||
|
||||
```bash
|
||||
NEXTCLOUD_HOST=https://your.nextcloud.instance.com \
|
||||
NEXTCLOUD_USERNAME=your_username \
|
||||
NEXTCLOUD_PASSWORD=your_app_password \
|
||||
uvx nextcloud-mcp-server run
|
||||
```
|
||||
|
||||
Or add it directly to your MCP client configuration (e.g. `claude_desktop_config.json` or `.claude/settings.json`):
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"nextcloud": {
|
||||
"command": "uvx",
|
||||
"args": ["nextcloud-mcp-server", "run"],
|
||||
"env": {
|
||||
"NEXTCLOUD_HOST": "https://your.nextcloud.instance.com",
|
||||
"NEXTCLOUD_USERNAME": "your_username",
|
||||
"NEXTCLOUD_PASSWORD": "your_app_password"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
> Generate an [app password](https://docs.nextcloud.com/server/latest/user_manual/en/session_management.html#managing-devices) in Nextcloud under **Settings > Security > Devices & sessions** instead of using your login password.
|
||||
|
||||
### Docker
|
||||
|
||||
For full features including semantic search, run with Docker:
|
||||
|
||||
@@ -35,9 +67,6 @@ docker run -p 127.0.0.1:8000:8000 --env-file .env --rm \
|
||||
curl http://127.0.0.1:8000/health/ready
|
||||
|
||||
# 4. Connect to the endpoint
|
||||
http://127.0.0.1:8000/sse
|
||||
|
||||
# Or with --transport streamable-http
|
||||
http://127.0.0.1:8000/mcp
|
||||
```
|
||||
|
||||
@@ -62,7 +91,7 @@ docker compose --profile login-flow up -d # Port 8004
|
||||
- **Document Processing** - OCR and text extraction from PDFs, DOCX, images with progress notifications
|
||||
- **Flexible Deployment** - Docker, Kubernetes ([Helm chart](https://github.com/cbcoutinho/helm-charts)), VM, or local installation
|
||||
- **Production-Ready Auth** - Basic Auth with app passwords (recommended) or OAuth2/OIDC (experimental)
|
||||
- **Multiple Transports** - SSE, HTTP, and streamable-http support
|
||||
- **Multiple Transports** - stdio (default) and streamable-http
|
||||
|
||||
## Supported Apps
|
||||
|
||||
|
||||
Reference in New Issue
Block a user