nextcloud-agent 2.3.1__tar.gz → 2.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/PKG-INFO +11 -11
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/README.md +7 -7
- nextcloud_agent-2.3.2/nextcloud_agent/__init__.py +1 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/mcp_server.py +1 -1
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/PKG-INFO +11 -11
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/SOURCES.txt +1 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/requires.txt +3 -3
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/pyproject.toml +4 -4
- nextcloud_agent-2.3.2/tests/test_default_content_surfaces.py +43 -0
- nextcloud_agent-2.3.1/nextcloud_agent/__init__.py +0 -1
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/LICENSE +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/__main__.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/__init__.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/api_client_base.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/api_client_calendar.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/api_client_contacts.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/api_client_files.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/xml_security.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api_client.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/auth.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/connectors/__init__.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/connectors/mcp_source_presets.json +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/connectors/tool_schema_fingerprints.json +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/kg_ingest.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/mcp_config.json +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/__init__.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/certification.json +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/fixtures/records.json +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/mappings/source.yaml +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/migrations/manifest.json +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/nextcloud.ttl +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/shapes/connector.shacl.ttl +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/prompts/__init__.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/prompts/file_steward.json +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/__init__.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-agent-operations/SKILL.md +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-agent-operations/agents/openai.yaml +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-agent-operations/references/catalog.md +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-files/SKILL.md +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-files/WORKFLOW.md +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-ingest/SKILL.md +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-ingest/WORKFLOW.md +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-shares/SKILL.md +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-shares/WORKFLOW.md +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/dependency_links.txt +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/entry_points.txt +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/top_level.txt +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/scripts/security_sanitizer.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/scripts/verify_api_integration.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/setup.cfg +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/conftest.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_api_client.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_auth.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_cli_server.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_fleet_name.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_init.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_init_dynamics.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_kg_ingest.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_mcp_server.py +0 -0
- {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_xml_security.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextcloud-agent
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.2
|
|
4
4
|
Summary: Nextcloud MCP Server for Agentic AI!
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,16 +12,16 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.12
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.
|
|
15
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18
|
|
16
16
|
Requires-Dist: requests>=2.34.2
|
|
17
17
|
Requires-Dist: defusedxml>=0.7.1
|
|
18
18
|
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
19
19
|
Requires-Dist: icalendar>=7.3.0
|
|
20
20
|
Requires-Dist: vobject>=0.9.9
|
|
21
21
|
Provides-Extra: mcp
|
|
22
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.
|
|
22
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18; extra == "mcp"
|
|
23
23
|
Provides-Extra: all
|
|
24
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.
|
|
24
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18; extra == "all"
|
|
25
25
|
Provides-Extra: test
|
|
26
26
|
Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
|
|
27
27
|
Requires-Dist: pytest>=9.1.1; extra == "test"
|
|
@@ -51,7 +51,7 @@ Dynamic: license-file
|
|
|
51
51
|

|
|
52
52
|

|
|
53
53
|
|
|
54
|
-
*Version: 2.3.
|
|
54
|
+
*Version: 2.3.2*
|
|
55
55
|
|
|
56
56
|
> **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
|
|
57
57
|
> interfaces, and guidance for provisioning the backing Nextcloud instance are
|
|
@@ -353,7 +353,7 @@ services:
|
|
|
353
353
|
max-file: "3"
|
|
354
354
|
|
|
355
355
|
nextcloud-agent-agent:
|
|
356
|
-
image: knucklessg1/nextcloud-agent:2.3.
|
|
356
|
+
image: knucklessg1/nextcloud-agent:2.3.2
|
|
357
357
|
container_name: nextcloud-agent-agent
|
|
358
358
|
hostname: nextcloud-agent-agent
|
|
359
359
|
restart: always
|
|
@@ -524,15 +524,15 @@ One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `
|
|
|
524
524
|
| Image tag | Build target | Contents | Entrypoint |
|
|
525
525
|
|-----------|--------------|----------|------------|
|
|
526
526
|
| `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `epistemic-graph[full]`; no model-orchestration stack | `nextcloud-mcp` |
|
|
527
|
-
| `knucklessg1/nextcloud-agent:2.3.
|
|
527
|
+
| `knucklessg1/nextcloud-agent:2.3.2` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `epistemic-graph[full]` | `nextcloud-agent` |
|
|
528
528
|
|
|
529
529
|
```bash
|
|
530
530
|
docker build --target mcp -t knucklessg1/nextcloud-agent:mcp docker/ # connector-focused MCP server
|
|
531
|
-
docker build --target agent -t knucklessg1/nextcloud-agent:2.3.
|
|
531
|
+
docker build --target agent -t knucklessg1/nextcloud-agent:2.3.2 docker/ # agent runtime
|
|
532
532
|
```
|
|
533
533
|
|
|
534
534
|
`docker/mcp.compose.yml` runs the connector-focused `:mcp` server; `docker/agent.compose.yml` runs the
|
|
535
|
-
agent (`:2.3.
|
|
535
|
+
agent (`:2.3.2`) with a co-located `:mcp` sidecar.
|
|
536
536
|
|
|
537
537
|
### Knowledge-graph database (`epistemic-graph`)
|
|
538
538
|
|
|
@@ -596,7 +596,7 @@ to just this package. Ask your agent to **"deploy `nextcloud-agent` with agent-o
|
|
|
596
596
|
|------|---------|
|
|
597
597
|
| Bare-metal, prod (PyPI) | `uvx nextcloud-mcp` · or `uv tool install nextcloud-agent` |
|
|
598
598
|
| Bare-metal, dev (editable) | `uv pip install -e ".[all]"` · or `pip install -e ".[all]"` |
|
|
599
|
-
| Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.
|
|
599
|
+
| Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.2` via docker-compose / swarm / podman / podman-compose / kubernetes |
|
|
600
600
|
| Container, dev (editable) | deploy `docker/compose.dev.yml` (source-mounted at `/src`; edits live on restart) |
|
|
601
601
|
|
|
602
602
|
Secrets are read-existing + seeded via `vault_sync` — you are only prompted for what's missing.
|
|
@@ -617,7 +617,7 @@ to **"deploy `nextcloud-agent` with agent-connector-sdk-deployment"**.
|
|
|
617
617
|
|------|---------|
|
|
618
618
|
| Installed package | `uv tool install "nextcloud-agent[mcp]"`, then run `nextcloud-mcp` |
|
|
619
619
|
| Editable source | `uv pip install -e ".[agent]"`, then run `nextcloud-mcp` |
|
|
620
|
-
| Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.
|
|
620
|
+
| Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.2` (or a pinned `@sha256:<digest>`) through the operator-selected orchestrator |
|
|
621
621
|
|
|
622
622
|
The repository embeds no deployment profile, credential value, certificate path, or
|
|
623
623
|
environment-specific endpoint. Supply those at runtime through `AgentConfig` and the
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|

|
|
21
21
|

|
|
22
22
|
|
|
23
|
-
*Version: 2.3.
|
|
23
|
+
*Version: 2.3.2*
|
|
24
24
|
|
|
25
25
|
> **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
|
|
26
26
|
> interfaces, and guidance for provisioning the backing Nextcloud instance are
|
|
@@ -322,7 +322,7 @@ services:
|
|
|
322
322
|
max-file: "3"
|
|
323
323
|
|
|
324
324
|
nextcloud-agent-agent:
|
|
325
|
-
image: knucklessg1/nextcloud-agent:2.3.
|
|
325
|
+
image: knucklessg1/nextcloud-agent:2.3.2
|
|
326
326
|
container_name: nextcloud-agent-agent
|
|
327
327
|
hostname: nextcloud-agent-agent
|
|
328
328
|
restart: always
|
|
@@ -493,15 +493,15 @@ One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `
|
|
|
493
493
|
| Image tag | Build target | Contents | Entrypoint |
|
|
494
494
|
|-----------|--------------|----------|------------|
|
|
495
495
|
| `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `epistemic-graph[full]`; no model-orchestration stack | `nextcloud-mcp` |
|
|
496
|
-
| `knucklessg1/nextcloud-agent:2.3.
|
|
496
|
+
| `knucklessg1/nextcloud-agent:2.3.2` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `epistemic-graph[full]` | `nextcloud-agent` |
|
|
497
497
|
|
|
498
498
|
```bash
|
|
499
499
|
docker build --target mcp -t knucklessg1/nextcloud-agent:mcp docker/ # connector-focused MCP server
|
|
500
|
-
docker build --target agent -t knucklessg1/nextcloud-agent:2.3.
|
|
500
|
+
docker build --target agent -t knucklessg1/nextcloud-agent:2.3.2 docker/ # agent runtime
|
|
501
501
|
```
|
|
502
502
|
|
|
503
503
|
`docker/mcp.compose.yml` runs the connector-focused `:mcp` server; `docker/agent.compose.yml` runs the
|
|
504
|
-
agent (`:2.3.
|
|
504
|
+
agent (`:2.3.2`) with a co-located `:mcp` sidecar.
|
|
505
505
|
|
|
506
506
|
### Knowledge-graph database (`epistemic-graph`)
|
|
507
507
|
|
|
@@ -565,7 +565,7 @@ to just this package. Ask your agent to **"deploy `nextcloud-agent` with agent-o
|
|
|
565
565
|
|------|---------|
|
|
566
566
|
| Bare-metal, prod (PyPI) | `uvx nextcloud-mcp` · or `uv tool install nextcloud-agent` |
|
|
567
567
|
| Bare-metal, dev (editable) | `uv pip install -e ".[all]"` · or `pip install -e ".[all]"` |
|
|
568
|
-
| Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.
|
|
568
|
+
| Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.2` via docker-compose / swarm / podman / podman-compose / kubernetes |
|
|
569
569
|
| Container, dev (editable) | deploy `docker/compose.dev.yml` (source-mounted at `/src`; edits live on restart) |
|
|
570
570
|
|
|
571
571
|
Secrets are read-existing + seeded via `vault_sync` — you are only prompted for what's missing.
|
|
@@ -586,7 +586,7 @@ to **"deploy `nextcloud-agent` with agent-connector-sdk-deployment"**.
|
|
|
586
586
|
|------|---------|
|
|
587
587
|
| Installed package | `uv tool install "nextcloud-agent[mcp]"`, then run `nextcloud-mcp` |
|
|
588
588
|
| Editable source | `uv pip install -e ".[agent]"`, then run `nextcloud-mcp` |
|
|
589
|
-
| Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.
|
|
589
|
+
| Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.2` (or a pinned `@sha256:<digest>`) through the operator-selected orchestrator |
|
|
590
590
|
|
|
591
591
|
The repository embeds no deployment profile, credential value, certificate path, or
|
|
592
592
|
environment-specific endpoint. Supply those at runtime through `AgentConfig` and the
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.3.2"
|
|
@@ -34,7 +34,7 @@ from starlette.responses import JSONResponse
|
|
|
34
34
|
from nextcloud_agent.api_client import NextcloudAPI
|
|
35
35
|
from nextcloud_agent.auth import get_client
|
|
36
36
|
|
|
37
|
-
__version__ = "2.3.
|
|
37
|
+
__version__ = "2.3.2"
|
|
38
38
|
|
|
39
39
|
logger = get_logger(name="nextcloud-agent")
|
|
40
40
|
logger.setLevel(logging.INFO)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextcloud-agent
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.2
|
|
4
4
|
Summary: Nextcloud MCP Server for Agentic AI!
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,16 +12,16 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.12
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.
|
|
15
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18
|
|
16
16
|
Requires-Dist: requests>=2.34.2
|
|
17
17
|
Requires-Dist: defusedxml>=0.7.1
|
|
18
18
|
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
19
19
|
Requires-Dist: icalendar>=7.3.0
|
|
20
20
|
Requires-Dist: vobject>=0.9.9
|
|
21
21
|
Provides-Extra: mcp
|
|
22
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.
|
|
22
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18; extra == "mcp"
|
|
23
23
|
Provides-Extra: all
|
|
24
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.
|
|
24
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18; extra == "all"
|
|
25
25
|
Provides-Extra: test
|
|
26
26
|
Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
|
|
27
27
|
Requires-Dist: pytest>=9.1.1; extra == "test"
|
|
@@ -51,7 +51,7 @@ Dynamic: license-file
|
|
|
51
51
|

|
|
52
52
|

|
|
53
53
|
|
|
54
|
-
*Version: 2.3.
|
|
54
|
+
*Version: 2.3.2*
|
|
55
55
|
|
|
56
56
|
> **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
|
|
57
57
|
> interfaces, and guidance for provisioning the backing Nextcloud instance are
|
|
@@ -353,7 +353,7 @@ services:
|
|
|
353
353
|
max-file: "3"
|
|
354
354
|
|
|
355
355
|
nextcloud-agent-agent:
|
|
356
|
-
image: knucklessg1/nextcloud-agent:2.3.
|
|
356
|
+
image: knucklessg1/nextcloud-agent:2.3.2
|
|
357
357
|
container_name: nextcloud-agent-agent
|
|
358
358
|
hostname: nextcloud-agent-agent
|
|
359
359
|
restart: always
|
|
@@ -524,15 +524,15 @@ One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `
|
|
|
524
524
|
| Image tag | Build target | Contents | Entrypoint |
|
|
525
525
|
|-----------|--------------|----------|------------|
|
|
526
526
|
| `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `epistemic-graph[full]`; no model-orchestration stack | `nextcloud-mcp` |
|
|
527
|
-
| `knucklessg1/nextcloud-agent:2.3.
|
|
527
|
+
| `knucklessg1/nextcloud-agent:2.3.2` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `epistemic-graph[full]` | `nextcloud-agent` |
|
|
528
528
|
|
|
529
529
|
```bash
|
|
530
530
|
docker build --target mcp -t knucklessg1/nextcloud-agent:mcp docker/ # connector-focused MCP server
|
|
531
|
-
docker build --target agent -t knucklessg1/nextcloud-agent:2.3.
|
|
531
|
+
docker build --target agent -t knucklessg1/nextcloud-agent:2.3.2 docker/ # agent runtime
|
|
532
532
|
```
|
|
533
533
|
|
|
534
534
|
`docker/mcp.compose.yml` runs the connector-focused `:mcp` server; `docker/agent.compose.yml` runs the
|
|
535
|
-
agent (`:2.3.
|
|
535
|
+
agent (`:2.3.2`) with a co-located `:mcp` sidecar.
|
|
536
536
|
|
|
537
537
|
### Knowledge-graph database (`epistemic-graph`)
|
|
538
538
|
|
|
@@ -596,7 +596,7 @@ to just this package. Ask your agent to **"deploy `nextcloud-agent` with agent-o
|
|
|
596
596
|
|------|---------|
|
|
597
597
|
| Bare-metal, prod (PyPI) | `uvx nextcloud-mcp` · or `uv tool install nextcloud-agent` |
|
|
598
598
|
| Bare-metal, dev (editable) | `uv pip install -e ".[all]"` · or `pip install -e ".[all]"` |
|
|
599
|
-
| Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.
|
|
599
|
+
| Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.2` via docker-compose / swarm / podman / podman-compose / kubernetes |
|
|
600
600
|
| Container, dev (editable) | deploy `docker/compose.dev.yml` (source-mounted at `/src`; edits live on restart) |
|
|
601
601
|
|
|
602
602
|
Secrets are read-existing + seeded via `vault_sync` — you are only prompted for what's missing.
|
|
@@ -617,7 +617,7 @@ to **"deploy `nextcloud-agent` with agent-connector-sdk-deployment"**.
|
|
|
617
617
|
|------|---------|
|
|
618
618
|
| Installed package | `uv tool install "nextcloud-agent[mcp]"`, then run `nextcloud-mcp` |
|
|
619
619
|
| Editable source | `uv pip install -e ".[agent]"`, then run `nextcloud-mcp` |
|
|
620
|
-
| Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.
|
|
620
|
+
| Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.2` (or a pinned `@sha256:<digest>`) through the operator-selected orchestrator |
|
|
621
621
|
|
|
622
622
|
The repository embeds no deployment profile, credential value, certificate path, or
|
|
623
623
|
environment-specific endpoint. Supply those at runtime through `AgentConfig` and the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.3.
|
|
1
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.3.18
|
|
2
2
|
requests>=2.34.2
|
|
3
3
|
defusedxml>=0.7.1
|
|
4
4
|
python-dateutil>=2.9.0.post0
|
|
@@ -6,10 +6,10 @@ icalendar>=7.3.0
|
|
|
6
6
|
vobject>=0.9.9
|
|
7
7
|
|
|
8
8
|
[all]
|
|
9
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.3.
|
|
9
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.3.18
|
|
10
10
|
|
|
11
11
|
[mcp]
|
|
12
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.3.
|
|
12
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.3.18
|
|
13
13
|
|
|
14
14
|
[test]
|
|
15
15
|
pytest-xdist>=3.8.0
|
|
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nextcloud-agent"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.2"
|
|
8
8
|
description = "Nextcloud MCP Server for Agentic AI!"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
classifiers = [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Environment :: Console", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3",]
|
|
11
11
|
requires-python = ">=3.12"
|
|
12
|
-
dependencies = [ "agent-connector-sdk[mcp]>=0.3.
|
|
12
|
+
dependencies = [ "agent-connector-sdk[mcp]>=0.3.18,<1.0.0", "requests>=2.34.2", "defusedxml>=0.7.1", "python-dateutil>=2.9.0.post0", "icalendar>=7.3.0", "vobject>=0.9.9",]
|
|
13
13
|
[[project.authors]]
|
|
14
14
|
name = "Project Maintainers"
|
|
15
15
|
email = "maintainers@users.noreply.github.com"
|
|
@@ -21,8 +21,8 @@ text = "MIT"
|
|
|
21
21
|
nextcloud-mcp = "nextcloud_agent.mcp_server:mcp_server"
|
|
22
22
|
|
|
23
23
|
[project.optional-dependencies]
|
|
24
|
-
mcp = [ "agent-connector-sdk[mcp]>=0.3.
|
|
25
|
-
all = [ "agent-connector-sdk[mcp]>=0.3.
|
|
24
|
+
mcp = [ "agent-connector-sdk[mcp]>=0.3.18,<1.0.0",]
|
|
25
|
+
all = [ "agent-connector-sdk[mcp]>=0.3.18,<1.0.0",]
|
|
26
26
|
test = [
|
|
27
27
|
"pytest-xdist>=3.8.0", "pytest>=9.1.1", "pytest-asyncio>=1.4.0", "pytest-cov>=7.1.0",]
|
|
28
28
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""CONN-NEXTCLOUD-AGENT-CONNECTOR-CONTENT-R001: the server lists its packaged skills, ontology and prompts by default."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import asyncio
|
|
6
|
+
import importlib
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
|
|
9
|
+
import pytest
|
|
10
|
+
from fastmcp import Client
|
|
11
|
+
|
|
12
|
+
PACKAGE = "nextcloud_agent"
|
|
13
|
+
ROOT = Path(list(importlib.import_module(PACKAGE).__path__)[0])
|
|
14
|
+
|
|
15
|
+
pytestmark = pytest.mark.spec("CONN-NEXTCLOUD-AGENT-CONNECTOR-CONTENT-R001")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _server():
|
|
19
|
+
namespace = {"__name__": PACKAGE + ".mcp_server"}
|
|
20
|
+
exec(
|
|
21
|
+
"from agent_connector_sdk.mcp.server import create_mcp_server\n"
|
|
22
|
+
"result = create_mcp_server('nextcloud-mcp', version='0', command_args=[])",
|
|
23
|
+
namespace,
|
|
24
|
+
)
|
|
25
|
+
return namespace["result"][1]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
async def _listings():
|
|
29
|
+
async with Client(_server()) as client:
|
|
30
|
+
resources = {str(r.uri) for r in await client.list_resources()}
|
|
31
|
+
prompts = {p.name for p in await client.list_prompts()}
|
|
32
|
+
return resources, prompts
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def test_default_content_surfaces() -> None:
|
|
36
|
+
resources, prompts = asyncio.run(_listings())
|
|
37
|
+
if list(ROOT.glob("skills/*/SKILL.md")):
|
|
38
|
+
assert any(u.startswith("skill://") for u in resources)
|
|
39
|
+
if list(ROOT.glob("ontology/*.ttl")):
|
|
40
|
+
assert any(u.startswith("ontology://nextcloud-mcp/") for u in resources)
|
|
41
|
+
for path in ROOT.glob("prompts/*.json"):
|
|
42
|
+
if not path.name.startswith("_"):
|
|
43
|
+
assert path.stem in prompts
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.3.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/connectors/mcp_source_presets.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/fixtures/records.json
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/mappings/source.yaml
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/migrations/manifest.json
RENAMED
|
File without changes
|
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/shapes/connector.shacl.ttl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-files/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-files/WORKFLOW.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-ingest/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-ingest/WORKFLOW.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-shares/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-shares/WORKFLOW.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|