nextcloud-agent 2.4.2__tar.gz → 3.0.0__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.
Files changed (93) hide show
  1. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/PKG-INFO +154 -61
  2. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/README.md +153 -60
  3. nextcloud_agent-3.0.0/nextcloud_agent/__init__.py +14 -0
  4. nextcloud_agent-3.0.0/nextcloud_agent/api/__init__.py +25 -0
  5. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_activity.py +51 -0
  6. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_admin.py +217 -0
  7. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/api/api_client_base.py +68 -0
  8. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_calendar.py +452 -0
  9. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_contacts.py +216 -0
  10. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_deck.py +166 -0
  11. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_files.py +347 -0
  12. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_notes.py +65 -0
  13. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_office.py +55 -0
  14. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_shares.py +126 -0
  15. nextcloud_agent-3.0.0/nextcloud_agent/api/api_client_talk.py +141 -0
  16. nextcloud_agent-3.0.0/nextcloud_agent/connector_contracts.py +1379 -0
  17. nextcloud_agent-3.0.0/nextcloud_agent/connector_sources.py +167 -0
  18. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/ontology/certification.json +4 -4
  19. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/ontology/mappings/source.yaml +1 -3
  20. nextcloud_agent-3.0.0/nextcloud_agent/ontology/nextcloud.ttl +175 -0
  21. nextcloud_agent-3.0.0/nextcloud_agent/ontology/shapes/connector.shacl.ttl +324 -0
  22. nextcloud_agent-3.0.0/nextcloud_agent/prompts/asset_publisher.json +173 -0
  23. nextcloud_agent-3.0.0/nextcloud_agent/prompts/file_steward.json +145 -0
  24. nextcloud_agent-3.0.0/nextcloud_agent/prompts/office_coordinator.json +184 -0
  25. nextcloud_agent-3.0.0/nextcloud_agent/prompts/operator.json +332 -0
  26. nextcloud_agent-3.0.0/nextcloud_agent/prompts/project_coordinator.json +173 -0
  27. nextcloud_agent-3.0.0/nextcloud_agent/prompts/workspace_admin.json +161 -0
  28. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-activity/SKILL.md +35 -0
  29. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-admin/SKILL.md +58 -0
  30. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/skills/nextcloud-agent-development/SKILL.md +8 -8
  31. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/skills/nextcloud-agent-operations/SKILL.md +2 -2
  32. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-agent-operations/references/catalog.md +17 -0
  33. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-calendar/SKILL.md +50 -0
  34. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-contacts/SKILL.md +39 -0
  35. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-deck/SKILL.md +53 -0
  36. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-files/SKILL.md +51 -0
  37. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-ingest/SKILL.md +41 -0
  38. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-notes/SKILL.md +37 -0
  39. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-office/SKILL.md +43 -0
  40. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-publish-asset/SKILL.md +64 -0
  41. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-shares/SKILL.md +40 -0
  42. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-talk/SKILL.md +50 -0
  43. nextcloud_agent-3.0.0/nextcloud_agent/skills/nextcloud-tasks/SKILL.md +40 -0
  44. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent.egg-info/PKG-INFO +154 -61
  45. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent.egg-info/SOURCES.txt +25 -4
  46. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/pyproject.toml +1 -1
  47. nextcloud_agent-3.0.0/tests/test_business_surface.py +263 -0
  48. nextcloud_agent-3.0.0/tests/test_content_surface.py +104 -0
  49. nextcloud_agent-3.0.0/tests/test_mcp_server.py +19 -0
  50. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/tests/test_publication_workflow.py +0 -1
  51. nextcloud_agent-2.4.2/nextcloud_agent/__init__.py +0 -11
  52. nextcloud_agent-2.4.2/nextcloud_agent/api/__init__.py +0 -7
  53. nextcloud_agent-2.4.2/nextcloud_agent/api/api_client_calendar.py +0 -106
  54. nextcloud_agent-2.4.2/nextcloud_agent/api/api_client_contacts.py +0 -89
  55. nextcloud_agent-2.4.2/nextcloud_agent/api/api_client_files.py +0 -196
  56. nextcloud_agent-2.4.2/nextcloud_agent/connector_sources.py +0 -82
  57. nextcloud_agent-2.4.2/nextcloud_agent/mcp_server.py +0 -290
  58. nextcloud_agent-2.4.2/nextcloud_agent/ontology/nextcloud.ttl +0 -91
  59. nextcloud_agent-2.4.2/nextcloud_agent/ontology/shapes/connector.shacl.ttl +0 -84
  60. nextcloud_agent-2.4.2/nextcloud_agent/prompts/file_steward.json +0 -41
  61. nextcloud_agent-2.4.2/nextcloud_agent/skills/nextcloud-agent-operations/references/catalog.md +0 -7
  62. nextcloud_agent-2.4.2/nextcloud_agent/skills/nextcloud-files/SKILL.md +0 -89
  63. nextcloud_agent-2.4.2/nextcloud_agent/skills/nextcloud-files/WORKFLOW.md +0 -78
  64. nextcloud_agent-2.4.2/nextcloud_agent/skills/nextcloud-ingest/SKILL.md +0 -82
  65. nextcloud_agent-2.4.2/nextcloud_agent/skills/nextcloud-ingest/WORKFLOW.md +0 -70
  66. nextcloud_agent-2.4.2/nextcloud_agent/skills/nextcloud-shares/SKILL.md +0 -81
  67. nextcloud_agent-2.4.2/nextcloud_agent/skills/nextcloud-shares/WORKFLOW.md +0 -70
  68. nextcloud_agent-2.4.2/tests/test_mcp_server.py +0 -52
  69. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/LICENSE +0 -0
  70. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/__main__.py +0 -0
  71. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/api/xml_security.py +0 -0
  72. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/api_client.py +0 -0
  73. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/auth.py +0 -0
  74. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/kg_ingest.py +0 -0
  75. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/mcp_config.json +0 -0
  76. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/ontology/__init__.py +0 -0
  77. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/ontology/fixtures/records.json +0 -0
  78. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/ontology/migrations/manifest.json +0 -0
  79. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent/skills/nextcloud-agent-operations/agents/openai.yaml +0 -0
  80. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent.egg-info/dependency_links.txt +0 -0
  81. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent.egg-info/entry_points.txt +0 -0
  82. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent.egg-info/requires.txt +0 -0
  83. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/nextcloud_agent.egg-info/top_level.txt +0 -0
  84. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/setup.cfg +0 -0
  85. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/tests/conftest.py +0 -0
  86. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/tests/test_api_client.py +0 -0
  87. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/tests/test_auth.py +0 -0
  88. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/tests/test_files_webdav.py +0 -0
  89. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/tests/test_fleet_name.py +0 -0
  90. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/tests/test_init.py +0 -0
  91. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/tests/test_init_dynamics.py +0 -0
  92. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/tests/test_kg_ingest.py +0 -0
  93. {nextcloud_agent-2.4.2 → nextcloud_agent-3.0.0}/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.4.2
3
+ Version: 3.0.0
4
4
  Summary: Nextcloud MCP Server for Agentic AI!
5
5
  Author-email: Repository Maintainers <maintainers@knuckles.team>
6
6
  License: MIT
@@ -82,58 +82,151 @@ This server use dynamic Action-Routed tools to optimize token overhead and maxim
82
82
 
83
83
  ### Available MCP Tools
84
84
 
85
- <!-- This table is auto-generated by `python -m scion_sdk.mcp.readme_tools` — do not edit by hand. -->
86
85
 
87
86
  <!-- MCP-TOOLS-TABLE:START -->
88
87
 
89
- #### Condensed action-routed tools (`MCP_TOOL_MODE=condensed`)
90
-
91
- | MCP Tool | Toggle Env Var | Description |
92
- |----------|----------------|-------------|
93
- | `nextcloud_calendar` | `CALENDARTOOL` | Manage nextcloud calendar operations. |
94
- | `nextcloud_contacts` | `CONTACTSTOOL` | Manage nextcloud contacts operations. |
95
- | `nextcloud_files` | `FILESTOOL` | Manage nextcloud files operations. |
96
- | `nextcloud_ingest_file` | `INGESTTOOL` | Fetch a Nextcloud file over WebDAV and natively store it in the knowledge |
97
- | `nextcloud_sharing` | `SHARINGTOOL` | Manage nextcloud sharing operations. |
98
- | `nextcloud_user` | `USERTOOL` | Manage nextcloud user operations. |
99
-
100
- #### Verbose 1:1 API-mapped tools (`MCP_TOOL_MODE=verbose` or `both`)
101
-
102
- <details>
103
- <summary>26 per-operation tools — one per public API method (click to expand)</summary>
104
-
105
- | MCP Tool | Toggle Env Var | Description |
106
- |----------|----------------|-------------|
107
- | `nextcloud_copy_item` | `APITOOL` | Alias for copy_resource to support MCP server action. |
108
- | `nextcloud_copy_resource` | `APITOOL` | Copy a file or directory. |
109
- | `nextcloud_create_calendar_event` | `APITOOL` | Alias for create_event to support MCP server action. |
110
- | `nextcloud_create_contact` | `APITOOL` | Invoke the create_contact operation. |
111
- | `nextcloud_create_directory` | `APITOOL` | Create a directory (MKCOL). |
112
- | `nextcloud_create_event` | `APITOOL` | Create an event with ICS data. |
113
- | `nextcloud_create_folder` | `APITOOL` | Alias for create_directory to support MCP server action. |
114
- | `nextcloud_create_share` | `APITOOL` | Create a share. |
115
- | `nextcloud_delete_item` | `APITOOL` | Alias for delete_resource to support MCP server action. |
116
- | `nextcloud_delete_resource` | `APITOOL` | Delete a file or directory. |
117
- | `nextcloud_delete_share` | `APITOOL` | Delete a share. |
118
- | `nextcloud_get_properties` | `APITOOL` | Helper to get properties of a path by listing its contents. |
119
- | `nextcloud_get_user_info` | `APITOOL` | Get current user info. |
120
- | `nextcloud_get_user_quota` | `APITOOL` | Get storage quota information. |
121
- | `nextcloud_list_address_books` | `APITOOL` | List address books. |
122
- | `nextcloud_list_calendar_events` | `APITOOL` | Alias for list_events to support MCP server action. |
123
- | `nextcloud_list_calendars` | `APITOOL` | List available calendars. |
124
- | `nextcloud_list_contacts` | `APITOOL` | List contacts in address book. |
125
- | `nextcloud_list_contents` | `APITOOL` | List files and folders in a directory using PROPFIND. |
126
- | `nextcloud_list_events` | `APITOOL` | List events in a calendar (returns basic info). |
127
- | `nextcloud_list_files` | `APITOOL` | Alias for list_contents to support MCP server action. |
128
- | `nextcloud_list_shares` | `APITOOL` | List all shares. |
129
- | `nextcloud_move_item` | `APITOOL` | Alias for move_resource to support MCP server action. |
130
- | `nextcloud_move_resource` | `APITOOL` | Move a file or directory. |
131
- | `nextcloud_read_file` | `APITOOL` | Download a file. |
132
- | `nextcloud_write_file` | `APITOOL` | Upload a file. |
133
-
134
- </details>
135
-
136
- _6 action-routed tool(s) · 26 verbose 1:1 tool(s). Each is enabled unless its `<DOMAIN>TOOL` toggle is set false; `MCP_TOOL_MODE` selects the surface (**`intent` default** — the six verb-tools, granular set loaded on demand · `condensed` action-routed · `verbose` 1:1 · `both`). Auto-generated — do not edit._
88
+ One typed tool per operation (89 tools), grouped by domain. Each domain is enabled unless its toggle is set false. Destructive tools ask for confirmation.
89
+
90
+ **activity** (toggle `ACTIVITYTOOL`)
91
+
92
+ | MCP Tool | Description |
93
+ |----------|-------------|
94
+ | `nextcloud_dismiss_notification` | Dismiss one notification. |
95
+ | `nextcloud_list_activities` | Read the activity stream, newest first; narrow to one object (``object_type="files"`` with a file id) when given. |
96
+ | `nextcloud_list_notifications` | List the account's current notifications. |
97
+
98
+ **admin** (toggle `ADMINTOOL`)
99
+
100
+ | MCP Tool | Description |
101
+ |----------|-------------|
102
+ | `nextcloud_add_user_to_group` | Add one account to a group. |
103
+ | `nextcloud_create_group` | Create one group. |
104
+ | `nextcloud_create_user` | Create one account. Give a password, or an email for a set-password invite. |
105
+ | `nextcloud_delete_group` | Delete one group (its members keep their accounts). |
106
+ | `nextcloud_delete_user` | Delete one account and its files. |
107
+ | `nextcloud_disable_app` | Disable one app. |
108
+ | `nextcloud_disable_user` | Disable one account (it can no longer log in; data is kept). |
109
+ | `nextcloud_enable_app` | Enable one installed app. |
110
+ | `nextcloud_enable_user` | Enable one disabled account. |
111
+ | `nextcloud_get_app` | Read one installed app's metadata (name, version, dependencies). |
112
+ | `nextcloud_get_user` | Read one account's details. |
113
+ | `nextcloud_get_user_info` | Read the connected account: id, display name, email, quota, groups. |
114
+ | `nextcloud_list_apps` | List installed app ids that are enabled, disabled, or all of them. |
115
+ | `nextcloud_list_group_members` | List the account ids in one group. |
116
+ | `nextcloud_list_groups` | List group ids, optionally matching a search string. |
117
+ | `nextcloud_list_users` | List account ids, optionally matching a search string. |
118
+ | `nextcloud_remove_user_from_group` | Remove one account from a group. |
119
+ | `nextcloud_update_user` | Change one field of an account. |
120
+
121
+ **calendar** (toggle `CALENDARTOOL`)
122
+
123
+ | MCP Tool | Description |
124
+ |----------|-------------|
125
+ | `nextcloud_create_calendar` | Create one calendar that holds events and, by default, tasks. |
126
+ | `nextcloud_create_event` | Create one event. Attendees get a draft invitation unless ``send_invitations``. |
127
+ | `nextcloud_create_task` | Create one task (VTODO) in a task-capable calendar (the Tasks app shows it). |
128
+ | `nextcloud_delete_calendar` | Delete one calendar and everything in it (it moves to the calendar trash). |
129
+ | `nextcloud_delete_calendar_object` | Delete one event or task. |
130
+ | `nextcloud_get_calendar_object` | Read one event or task: its parsed fields, etag and raw iCalendar text. |
131
+ | `nextcloud_list_calendars` | List the account's calendars and the components (VEVENT, VTODO) each holds. |
132
+ | `nextcloud_list_events` | List the events of one calendar, optionally within an ISO time range. |
133
+ | `nextcloud_list_tasks` | List the tasks (VTODO) of one task-capable calendar. |
134
+ | `nextcloud_update_event` | Change one event's fields; the write is guarded by the event's etag. |
135
+ | `nextcloud_update_task` | Change one task, or mark it complete or open again; guarded by its etag. |
136
+
137
+ **contacts** (toggle `CONTACTSTOOL`)
138
+
139
+ | MCP Tool | Description |
140
+ |----------|-------------|
141
+ | `nextcloud_create_contact` | Create one contact in an address book. |
142
+ | `nextcloud_delete_contact` | Delete one contact. |
143
+ | `nextcloud_get_contact` | Read one contact: parsed fields, etag and the raw vCard. |
144
+ | `nextcloud_list_address_books` | List the account's address books. |
145
+ | `nextcloud_list_contacts` | List the contacts of one address book with name, emails, phones and organization. |
146
+ | `nextcloud_update_contact` | Change one contact; omitted fields keep their value. Guarded by the etag. |
147
+
148
+ **deck** (toggle `DECKTOOL`)
149
+
150
+ | MCP Tool | Description |
151
+ |----------|-------------|
152
+ | `nextcloud_assign_card_user` | Assign one user to a card. |
153
+ | `nextcloud_create_board` | Create one board; ``color`` is a hex RGB value without ``#``. |
154
+ | `nextcloud_create_card` | Create one card in a stack; ``duedate`` is ISO 8601. |
155
+ | `nextcloud_create_stack` | Create one stack (column) on a board. |
156
+ | `nextcloud_delete_board` | Delete one board (Deck keeps it restorable for a while). |
157
+ | `nextcloud_delete_card` | Delete one card. |
158
+ | `nextcloud_delete_stack` | Delete one stack and its cards. |
159
+ | `nextcloud_get_board` | Read one board with its labels and members. |
160
+ | `nextcloud_get_card` | Read one card. |
161
+ | `nextcloud_list_boards` | List the Deck boards the account can see. |
162
+ | `nextcloud_list_stacks` | List the stacks (columns) of one board, each with its cards. |
163
+ | `nextcloud_move_card` | Move one card to a stack (column) of the board, at position ``order``. |
164
+ | `nextcloud_update_card` | Change one card's title, description or due date. |
165
+
166
+ **files** (toggle `FILESTOOL`)
167
+
168
+ | MCP Tool | Description |
169
+ |----------|-------------|
170
+ | `nextcloud_copy_item` | Copy one file or folder. |
171
+ | `nextcloud_create_folder` | Create one folder. |
172
+ | `nextcloud_delete_item` | Delete one file or folder (it moves to the trash bin). |
173
+ | `nextcloud_get_properties` | Read the properties of one file or folder (size, type, etag, file id). |
174
+ | `nextcloud_get_user_quota` | Read the storage quota of the connected account. |
175
+ | `nextcloud_list_files` | List the files and folders in one folder (PROPFIND, depth 1). |
176
+ | `nextcloud_list_trash` | List the items in the trash bin of the connected account. |
177
+ | `nextcloud_list_versions` | List the stored versions of one file, newest first. |
178
+ | `nextcloud_move_item` | Move or rename one file or folder. |
179
+ | `nextcloud_read_file` | Download one file; the bytes come back base64-encoded. |
180
+ | `nextcloud_restore_trash_item` | Restore one trash-bin item to its original location. |
181
+ | `nextcloud_restore_version` | Restore one stored version of a file; the current content becomes a version. |
182
+ | `nextcloud_search_files` | Search files by name (case-insensitive substring) under one folder. |
183
+ | `nextcloud_write_file` | Upload one file, creating missing parent folders. |
184
+
185
+ **notes** (toggle `NOTESTOOL`)
186
+
187
+ | MCP Tool | Description |
188
+ |----------|-------------|
189
+ | `nextcloud_create_note` | Create one note. |
190
+ | `nextcloud_delete_note` | Delete one note. |
191
+ | `nextcloud_get_note` | Read one note with its content. |
192
+ | `nextcloud_list_notes` | List the account's notes, optionally of one category. |
193
+ | `nextcloud_update_note` | Change one note's title, content, category or favorite flag. |
194
+
195
+ **office** (toggle `OFFICETOOL`)
196
+
197
+ | MCP Tool | Description |
198
+ |----------|-------------|
199
+ | `nextcloud_create_document` | Create one new document at ``path``; the extension picks the type (``.docx``, ``.xlsx``, ``.pptx``, ``.odg``, ``.md``). |
200
+ | `nextcloud_list_document_templates` | List the document types the server can create (document, spreadsheet, presentation, diagram, markdown) with their extensions and templates. |
201
+ | `nextcloud_open_document` | Open one document for editing and return a one-time editor ``url`` for the connected account (Office for office files, Text for markdown). |
202
+
203
+ **shares** (toggle `SHARESTOOL`)
204
+
205
+ | MCP Tool | Description |
206
+ |----------|-------------|
207
+ | `nextcloud_create_share` | Share one file or folder and return the share (a public link carries its ``url``). |
208
+ | `nextcloud_delete_share` | Revoke one share. |
209
+ | `nextcloud_get_share` | Read one share by id. |
210
+ | `nextcloud_list_shares` | List shares: all of the account's shares, the shares on one path, or the shares other people gave the account. |
211
+ | `nextcloud_update_share` | Change one share's permissions, password, expiry, label or note. |
212
+
213
+ **talk** (toggle `TALKTOOL`)
214
+
215
+ | MCP Tool | Description |
216
+ |----------|-------------|
217
+ | `nextcloud_add_participant` | Add a user, group, email guest or team to one conversation. |
218
+ | `nextcloud_create_conversation` | Create one conversation and return it with its ``token``. |
219
+ | `nextcloud_delete_conversation` | Delete one conversation for everyone (moderators only). |
220
+ | `nextcloud_delete_message` | Delete one chat message. |
221
+ | `nextcloud_get_conversation` | Read one conversation by its token. |
222
+ | `nextcloud_list_conversations` | List the conversations the account takes part in. |
223
+ | `nextcloud_list_messages` | Read the chat history of one conversation, newest first. |
224
+ | `nextcloud_list_participants` | List the participants of one conversation. |
225
+ | `nextcloud_remove_participant` | Remove one attendee (by attendee id from list_participants) from a conversation. |
226
+ | `nextcloud_rename_conversation` | Rename one conversation. |
227
+ | `nextcloud_send_message` | Post one chat message to a conversation. |
228
+
229
+
137
230
  <!-- MCP-TOOLS-TABLE:END -->
138
231
 
139
232
  Detailed tool schemas, parameter shapes, and validation constraints are preserved in [docs/usage.md](docs/usage.md).
@@ -187,8 +280,8 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
187
280
  "NEXTCLOUD_PASSWORD": "your_password",
188
281
  "NEXTCLOUD_URL": "https://nextcloud.example.com",
189
282
  "NEXTCLOUD_USERNAME": "your_username",
190
- "SHARINGTOOL": "True",
191
- "USERTOOL": "True"
283
+ "SHARESTOOL": "True",
284
+ "ADMINTOOL": "True"
192
285
  }
193
286
  }
194
287
  }
@@ -225,8 +318,8 @@ own runtime secret boundary.
225
318
  "NEXTCLOUD_PASSWORD": "your_password",
226
319
  "NEXTCLOUD_URL": "https://nextcloud.example.com",
227
320
  "NEXTCLOUD_USERNAME": "your_username",
228
- "SHARINGTOOL": "True",
229
- "USERTOOL": "True"
321
+ "SHARESTOOL": "True",
322
+ "ADMINTOOL": "True"
230
323
  }
231
324
  }
232
325
  }
@@ -264,8 +357,8 @@ docker run -i --rm \
264
357
  -e NEXTCLOUD_PASSWORD=your_password \
265
358
  -e NEXTCLOUD_URL=https://nextcloud.example.com \
266
359
  -e NEXTCLOUD_USERNAME=your_username \
267
- -e SHARINGTOOL=True \
268
- -e USERTOOL=True \
360
+ -e SHARESTOOL=True \
361
+ -e ADMINTOOL=True \
269
362
  registry.example.invalid/nextcloud-agent@sha256:<digest> nextcloud-mcp
270
363
  ```
271
364
 
@@ -426,8 +519,8 @@ Built directly upon the enterprise-ready [`scion-sdk`](https://github.com/Knuckl
426
519
  | `TLS_PROFILE_REF` | `secret://transport/provider` | Direct runtime profile reference |
427
520
  | `TLS_PROFILES_REF` | `secret://transport/catalog` | Named runtime profile catalog |
428
521
  | `FILESTOOL` | `True` | |
429
- | `USERTOOL` | `True` | |
430
- | `SHARINGTOOL` | `True` | |
522
+ | `ADMINTOOL` | `True` | |
523
+ | `SHARESTOOL` | `True` | |
431
524
  | `CALENDARTOOL` | `True` | |
432
525
  | `CONTACTSTOOL` | `True` | |
433
526
 
@@ -473,8 +566,8 @@ for a copy-paste starting point.
473
566
  | `MCP_ENABLED_TAGS` / `MCP_DISABLED_TAGS` | Comma-separated tag allow/deny list | — |
474
567
 
475
568
  ### Tool toggles
476
- Each action-routed tool can be disabled individually via its toggle env var (set to `false`):
477
- `FILESTOOL`, `USERTOOL`, `SHARINGTOOL`, `CALENDARTOOL`, `CONTACTSTOOL`. See the
569
+ Each tool domain can be disabled via its toggle env var (set to `false`):
570
+ `FILESTOOL`, `SHARESTOOL`, `CALENDARTOOL`, `CONTACTSTOOL`, `TALKTOOL`, `DECKTOOL`, `NOTESTOOL`, `OFFICETOOL`, `ACTIVITYTOOL`, `ADMINTOOL`. See the
478
571
  [Available MCP Tools](#available-mcp-tools) table above.
479
572
 
480
573
  ### Telemetry & governance
@@ -553,7 +646,7 @@ the recommended reference for installation, deployment, and day-to-day operation
553
646
  | [Deployment](https://knuckles-team.github.io/nextcloud-agent/deployment/) | run the MCP server and the agent, Compose, Caddy + Technitium, env config |
554
647
  | [Usage](https://knuckles-team.github.io/nextcloud-agent/usage/) | the MCP tools, the `NextcloudAPI` client, the agent CLI |
555
648
  | [Backing Platform](https://knuckles-team.github.io/nextcloud-agent/platform/) | deploy Nextcloud with Docker |
556
- | [Overview](https://knuckles-team.github.io/nextcloud-agent/overview/) | the action-routed tool surface and ecosystem role |
649
+ | [Overview](https://knuckles-team.github.io/nextcloud-agent/overview/) | the per-operation tool surface and ecosystem role |
557
650
  | [Concepts](https://knuckles-team.github.io/nextcloud-agent/concepts/) | concept registry (`CONCEPT:NC-*`) |
558
651
 
559
652
  ---
@@ -55,58 +55,151 @@ This server use dynamic Action-Routed tools to optimize token overhead and maxim
55
55
 
56
56
  ### Available MCP Tools
57
57
 
58
- <!-- This table is auto-generated by `python -m scion_sdk.mcp.readme_tools` — do not edit by hand. -->
59
58
 
60
59
  <!-- MCP-TOOLS-TABLE:START -->
61
60
 
62
- #### Condensed action-routed tools (`MCP_TOOL_MODE=condensed`)
63
-
64
- | MCP Tool | Toggle Env Var | Description |
65
- |----------|----------------|-------------|
66
- | `nextcloud_calendar` | `CALENDARTOOL` | Manage nextcloud calendar operations. |
67
- | `nextcloud_contacts` | `CONTACTSTOOL` | Manage nextcloud contacts operations. |
68
- | `nextcloud_files` | `FILESTOOL` | Manage nextcloud files operations. |
69
- | `nextcloud_ingest_file` | `INGESTTOOL` | Fetch a Nextcloud file over WebDAV and natively store it in the knowledge |
70
- | `nextcloud_sharing` | `SHARINGTOOL` | Manage nextcloud sharing operations. |
71
- | `nextcloud_user` | `USERTOOL` | Manage nextcloud user operations. |
72
-
73
- #### Verbose 1:1 API-mapped tools (`MCP_TOOL_MODE=verbose` or `both`)
74
-
75
- <details>
76
- <summary>26 per-operation tools — one per public API method (click to expand)</summary>
77
-
78
- | MCP Tool | Toggle Env Var | Description |
79
- |----------|----------------|-------------|
80
- | `nextcloud_copy_item` | `APITOOL` | Alias for copy_resource to support MCP server action. |
81
- | `nextcloud_copy_resource` | `APITOOL` | Copy a file or directory. |
82
- | `nextcloud_create_calendar_event` | `APITOOL` | Alias for create_event to support MCP server action. |
83
- | `nextcloud_create_contact` | `APITOOL` | Invoke the create_contact operation. |
84
- | `nextcloud_create_directory` | `APITOOL` | Create a directory (MKCOL). |
85
- | `nextcloud_create_event` | `APITOOL` | Create an event with ICS data. |
86
- | `nextcloud_create_folder` | `APITOOL` | Alias for create_directory to support MCP server action. |
87
- | `nextcloud_create_share` | `APITOOL` | Create a share. |
88
- | `nextcloud_delete_item` | `APITOOL` | Alias for delete_resource to support MCP server action. |
89
- | `nextcloud_delete_resource` | `APITOOL` | Delete a file or directory. |
90
- | `nextcloud_delete_share` | `APITOOL` | Delete a share. |
91
- | `nextcloud_get_properties` | `APITOOL` | Helper to get properties of a path by listing its contents. |
92
- | `nextcloud_get_user_info` | `APITOOL` | Get current user info. |
93
- | `nextcloud_get_user_quota` | `APITOOL` | Get storage quota information. |
94
- | `nextcloud_list_address_books` | `APITOOL` | List address books. |
95
- | `nextcloud_list_calendar_events` | `APITOOL` | Alias for list_events to support MCP server action. |
96
- | `nextcloud_list_calendars` | `APITOOL` | List available calendars. |
97
- | `nextcloud_list_contacts` | `APITOOL` | List contacts in address book. |
98
- | `nextcloud_list_contents` | `APITOOL` | List files and folders in a directory using PROPFIND. |
99
- | `nextcloud_list_events` | `APITOOL` | List events in a calendar (returns basic info). |
100
- | `nextcloud_list_files` | `APITOOL` | Alias for list_contents to support MCP server action. |
101
- | `nextcloud_list_shares` | `APITOOL` | List all shares. |
102
- | `nextcloud_move_item` | `APITOOL` | Alias for move_resource to support MCP server action. |
103
- | `nextcloud_move_resource` | `APITOOL` | Move a file or directory. |
104
- | `nextcloud_read_file` | `APITOOL` | Download a file. |
105
- | `nextcloud_write_file` | `APITOOL` | Upload a file. |
106
-
107
- </details>
108
-
109
- _6 action-routed tool(s) · 26 verbose 1:1 tool(s). Each is enabled unless its `<DOMAIN>TOOL` toggle is set false; `MCP_TOOL_MODE` selects the surface (**`intent` default** — the six verb-tools, granular set loaded on demand · `condensed` action-routed · `verbose` 1:1 · `both`). Auto-generated — do not edit._
61
+ One typed tool per operation (89 tools), grouped by domain. Each domain is enabled unless its toggle is set false. Destructive tools ask for confirmation.
62
+
63
+ **activity** (toggle `ACTIVITYTOOL`)
64
+
65
+ | MCP Tool | Description |
66
+ |----------|-------------|
67
+ | `nextcloud_dismiss_notification` | Dismiss one notification. |
68
+ | `nextcloud_list_activities` | Read the activity stream, newest first; narrow to one object (``object_type="files"`` with a file id) when given. |
69
+ | `nextcloud_list_notifications` | List the account's current notifications. |
70
+
71
+ **admin** (toggle `ADMINTOOL`)
72
+
73
+ | MCP Tool | Description |
74
+ |----------|-------------|
75
+ | `nextcloud_add_user_to_group` | Add one account to a group. |
76
+ | `nextcloud_create_group` | Create one group. |
77
+ | `nextcloud_create_user` | Create one account. Give a password, or an email for a set-password invite. |
78
+ | `nextcloud_delete_group` | Delete one group (its members keep their accounts). |
79
+ | `nextcloud_delete_user` | Delete one account and its files. |
80
+ | `nextcloud_disable_app` | Disable one app. |
81
+ | `nextcloud_disable_user` | Disable one account (it can no longer log in; data is kept). |
82
+ | `nextcloud_enable_app` | Enable one installed app. |
83
+ | `nextcloud_enable_user` | Enable one disabled account. |
84
+ | `nextcloud_get_app` | Read one installed app's metadata (name, version, dependencies). |
85
+ | `nextcloud_get_user` | Read one account's details. |
86
+ | `nextcloud_get_user_info` | Read the connected account: id, display name, email, quota, groups. |
87
+ | `nextcloud_list_apps` | List installed app ids that are enabled, disabled, or all of them. |
88
+ | `nextcloud_list_group_members` | List the account ids in one group. |
89
+ | `nextcloud_list_groups` | List group ids, optionally matching a search string. |
90
+ | `nextcloud_list_users` | List account ids, optionally matching a search string. |
91
+ | `nextcloud_remove_user_from_group` | Remove one account from a group. |
92
+ | `nextcloud_update_user` | Change one field of an account. |
93
+
94
+ **calendar** (toggle `CALENDARTOOL`)
95
+
96
+ | MCP Tool | Description |
97
+ |----------|-------------|
98
+ | `nextcloud_create_calendar` | Create one calendar that holds events and, by default, tasks. |
99
+ | `nextcloud_create_event` | Create one event. Attendees get a draft invitation unless ``send_invitations``. |
100
+ | `nextcloud_create_task` | Create one task (VTODO) in a task-capable calendar (the Tasks app shows it). |
101
+ | `nextcloud_delete_calendar` | Delete one calendar and everything in it (it moves to the calendar trash). |
102
+ | `nextcloud_delete_calendar_object` | Delete one event or task. |
103
+ | `nextcloud_get_calendar_object` | Read one event or task: its parsed fields, etag and raw iCalendar text. |
104
+ | `nextcloud_list_calendars` | List the account's calendars and the components (VEVENT, VTODO) each holds. |
105
+ | `nextcloud_list_events` | List the events of one calendar, optionally within an ISO time range. |
106
+ | `nextcloud_list_tasks` | List the tasks (VTODO) of one task-capable calendar. |
107
+ | `nextcloud_update_event` | Change one event's fields; the write is guarded by the event's etag. |
108
+ | `nextcloud_update_task` | Change one task, or mark it complete or open again; guarded by its etag. |
109
+
110
+ **contacts** (toggle `CONTACTSTOOL`)
111
+
112
+ | MCP Tool | Description |
113
+ |----------|-------------|
114
+ | `nextcloud_create_contact` | Create one contact in an address book. |
115
+ | `nextcloud_delete_contact` | Delete one contact. |
116
+ | `nextcloud_get_contact` | Read one contact: parsed fields, etag and the raw vCard. |
117
+ | `nextcloud_list_address_books` | List the account's address books. |
118
+ | `nextcloud_list_contacts` | List the contacts of one address book with name, emails, phones and organization. |
119
+ | `nextcloud_update_contact` | Change one contact; omitted fields keep their value. Guarded by the etag. |
120
+
121
+ **deck** (toggle `DECKTOOL`)
122
+
123
+ | MCP Tool | Description |
124
+ |----------|-------------|
125
+ | `nextcloud_assign_card_user` | Assign one user to a card. |
126
+ | `nextcloud_create_board` | Create one board; ``color`` is a hex RGB value without ``#``. |
127
+ | `nextcloud_create_card` | Create one card in a stack; ``duedate`` is ISO 8601. |
128
+ | `nextcloud_create_stack` | Create one stack (column) on a board. |
129
+ | `nextcloud_delete_board` | Delete one board (Deck keeps it restorable for a while). |
130
+ | `nextcloud_delete_card` | Delete one card. |
131
+ | `nextcloud_delete_stack` | Delete one stack and its cards. |
132
+ | `nextcloud_get_board` | Read one board with its labels and members. |
133
+ | `nextcloud_get_card` | Read one card. |
134
+ | `nextcloud_list_boards` | List the Deck boards the account can see. |
135
+ | `nextcloud_list_stacks` | List the stacks (columns) of one board, each with its cards. |
136
+ | `nextcloud_move_card` | Move one card to a stack (column) of the board, at position ``order``. |
137
+ | `nextcloud_update_card` | Change one card's title, description or due date. |
138
+
139
+ **files** (toggle `FILESTOOL`)
140
+
141
+ | MCP Tool | Description |
142
+ |----------|-------------|
143
+ | `nextcloud_copy_item` | Copy one file or folder. |
144
+ | `nextcloud_create_folder` | Create one folder. |
145
+ | `nextcloud_delete_item` | Delete one file or folder (it moves to the trash bin). |
146
+ | `nextcloud_get_properties` | Read the properties of one file or folder (size, type, etag, file id). |
147
+ | `nextcloud_get_user_quota` | Read the storage quota of the connected account. |
148
+ | `nextcloud_list_files` | List the files and folders in one folder (PROPFIND, depth 1). |
149
+ | `nextcloud_list_trash` | List the items in the trash bin of the connected account. |
150
+ | `nextcloud_list_versions` | List the stored versions of one file, newest first. |
151
+ | `nextcloud_move_item` | Move or rename one file or folder. |
152
+ | `nextcloud_read_file` | Download one file; the bytes come back base64-encoded. |
153
+ | `nextcloud_restore_trash_item` | Restore one trash-bin item to its original location. |
154
+ | `nextcloud_restore_version` | Restore one stored version of a file; the current content becomes a version. |
155
+ | `nextcloud_search_files` | Search files by name (case-insensitive substring) under one folder. |
156
+ | `nextcloud_write_file` | Upload one file, creating missing parent folders. |
157
+
158
+ **notes** (toggle `NOTESTOOL`)
159
+
160
+ | MCP Tool | Description |
161
+ |----------|-------------|
162
+ | `nextcloud_create_note` | Create one note. |
163
+ | `nextcloud_delete_note` | Delete one note. |
164
+ | `nextcloud_get_note` | Read one note with its content. |
165
+ | `nextcloud_list_notes` | List the account's notes, optionally of one category. |
166
+ | `nextcloud_update_note` | Change one note's title, content, category or favorite flag. |
167
+
168
+ **office** (toggle `OFFICETOOL`)
169
+
170
+ | MCP Tool | Description |
171
+ |----------|-------------|
172
+ | `nextcloud_create_document` | Create one new document at ``path``; the extension picks the type (``.docx``, ``.xlsx``, ``.pptx``, ``.odg``, ``.md``). |
173
+ | `nextcloud_list_document_templates` | List the document types the server can create (document, spreadsheet, presentation, diagram, markdown) with their extensions and templates. |
174
+ | `nextcloud_open_document` | Open one document for editing and return a one-time editor ``url`` for the connected account (Office for office files, Text for markdown). |
175
+
176
+ **shares** (toggle `SHARESTOOL`)
177
+
178
+ | MCP Tool | Description |
179
+ |----------|-------------|
180
+ | `nextcloud_create_share` | Share one file or folder and return the share (a public link carries its ``url``). |
181
+ | `nextcloud_delete_share` | Revoke one share. |
182
+ | `nextcloud_get_share` | Read one share by id. |
183
+ | `nextcloud_list_shares` | List shares: all of the account's shares, the shares on one path, or the shares other people gave the account. |
184
+ | `nextcloud_update_share` | Change one share's permissions, password, expiry, label or note. |
185
+
186
+ **talk** (toggle `TALKTOOL`)
187
+
188
+ | MCP Tool | Description |
189
+ |----------|-------------|
190
+ | `nextcloud_add_participant` | Add a user, group, email guest or team to one conversation. |
191
+ | `nextcloud_create_conversation` | Create one conversation and return it with its ``token``. |
192
+ | `nextcloud_delete_conversation` | Delete one conversation for everyone (moderators only). |
193
+ | `nextcloud_delete_message` | Delete one chat message. |
194
+ | `nextcloud_get_conversation` | Read one conversation by its token. |
195
+ | `nextcloud_list_conversations` | List the conversations the account takes part in. |
196
+ | `nextcloud_list_messages` | Read the chat history of one conversation, newest first. |
197
+ | `nextcloud_list_participants` | List the participants of one conversation. |
198
+ | `nextcloud_remove_participant` | Remove one attendee (by attendee id from list_participants) from a conversation. |
199
+ | `nextcloud_rename_conversation` | Rename one conversation. |
200
+ | `nextcloud_send_message` | Post one chat message to a conversation. |
201
+
202
+
110
203
  <!-- MCP-TOOLS-TABLE:END -->
111
204
 
112
205
  Detailed tool schemas, parameter shapes, and validation constraints are preserved in [docs/usage.md](docs/usage.md).
@@ -160,8 +253,8 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
160
253
  "NEXTCLOUD_PASSWORD": "your_password",
161
254
  "NEXTCLOUD_URL": "https://nextcloud.example.com",
162
255
  "NEXTCLOUD_USERNAME": "your_username",
163
- "SHARINGTOOL": "True",
164
- "USERTOOL": "True"
256
+ "SHARESTOOL": "True",
257
+ "ADMINTOOL": "True"
165
258
  }
166
259
  }
167
260
  }
@@ -198,8 +291,8 @@ own runtime secret boundary.
198
291
  "NEXTCLOUD_PASSWORD": "your_password",
199
292
  "NEXTCLOUD_URL": "https://nextcloud.example.com",
200
293
  "NEXTCLOUD_USERNAME": "your_username",
201
- "SHARINGTOOL": "True",
202
- "USERTOOL": "True"
294
+ "SHARESTOOL": "True",
295
+ "ADMINTOOL": "True"
203
296
  }
204
297
  }
205
298
  }
@@ -237,8 +330,8 @@ docker run -i --rm \
237
330
  -e NEXTCLOUD_PASSWORD=your_password \
238
331
  -e NEXTCLOUD_URL=https://nextcloud.example.com \
239
332
  -e NEXTCLOUD_USERNAME=your_username \
240
- -e SHARINGTOOL=True \
241
- -e USERTOOL=True \
333
+ -e SHARESTOOL=True \
334
+ -e ADMINTOOL=True \
242
335
  registry.example.invalid/nextcloud-agent@sha256:<digest> nextcloud-mcp
243
336
  ```
244
337
 
@@ -399,8 +492,8 @@ Built directly upon the enterprise-ready [`scion-sdk`](https://github.com/Knuckl
399
492
  | `TLS_PROFILE_REF` | `secret://transport/provider` | Direct runtime profile reference |
400
493
  | `TLS_PROFILES_REF` | `secret://transport/catalog` | Named runtime profile catalog |
401
494
  | `FILESTOOL` | `True` | |
402
- | `USERTOOL` | `True` | |
403
- | `SHARINGTOOL` | `True` | |
495
+ | `ADMINTOOL` | `True` | |
496
+ | `SHARESTOOL` | `True` | |
404
497
  | `CALENDARTOOL` | `True` | |
405
498
  | `CONTACTSTOOL` | `True` | |
406
499
 
@@ -446,8 +539,8 @@ for a copy-paste starting point.
446
539
  | `MCP_ENABLED_TAGS` / `MCP_DISABLED_TAGS` | Comma-separated tag allow/deny list | — |
447
540
 
448
541
  ### Tool toggles
449
- Each action-routed tool can be disabled individually via its toggle env var (set to `false`):
450
- `FILESTOOL`, `USERTOOL`, `SHARINGTOOL`, `CALENDARTOOL`, `CONTACTSTOOL`. See the
542
+ Each tool domain can be disabled via its toggle env var (set to `false`):
543
+ `FILESTOOL`, `SHARESTOOL`, `CALENDARTOOL`, `CONTACTSTOOL`, `TALKTOOL`, `DECKTOOL`, `NOTESTOOL`, `OFFICETOOL`, `ACTIVITYTOOL`, `ADMINTOOL`. See the
451
544
  [Available MCP Tools](#available-mcp-tools) table above.
452
545
 
453
546
  ### Telemetry & governance
@@ -526,7 +619,7 @@ the recommended reference for installation, deployment, and day-to-day operation
526
619
  | [Deployment](https://knuckles-team.github.io/nextcloud-agent/deployment/) | run the MCP server and the agent, Compose, Caddy + Technitium, env config |
527
620
  | [Usage](https://knuckles-team.github.io/nextcloud-agent/usage/) | the MCP tools, the `NextcloudAPI` client, the agent CLI |
528
621
  | [Backing Platform](https://knuckles-team.github.io/nextcloud-agent/platform/) | deploy Nextcloud with Docker |
529
- | [Overview](https://knuckles-team.github.io/nextcloud-agent/overview/) | the action-routed tool surface and ecosystem role |
622
+ | [Overview](https://knuckles-team.github.io/nextcloud-agent/overview/) | the per-operation tool surface and ecosystem role |
530
623
  | [Concepts](https://knuckles-team.github.io/nextcloud-agent/concepts/) | concept registry (`CONCEPT:NC-*`) |
531
624
 
532
625
  ---
@@ -0,0 +1,14 @@
1
+ from scion_sdk.connector import Connector
2
+
3
+ from nextcloud_agent.api_client import NextcloudAPI
4
+ from nextcloud_agent.auth import make_client
5
+
6
+ connector = Connector(
7
+ api=NextcloudAPI,
8
+ get_client=make_client,
9
+ instructions=(
10
+ "Nextcloud MCP server: one typed tool per operation for files, versions, search, "
11
+ "sharing, calendar, tasks, contacts, Talk, Deck, Notes, office documents, activity, "
12
+ "notifications and user, group and app administration."
13
+ ),
14
+ )
@@ -0,0 +1,25 @@
1
+ from nextcloud_agent.api.api_client_activity import NextcloudActivity
2
+ from nextcloud_agent.api.api_client_admin import NextcloudAdmin
3
+ from nextcloud_agent.api.api_client_calendar import NextcloudCalendar
4
+ from nextcloud_agent.api.api_client_contacts import NextcloudContacts
5
+ from nextcloud_agent.api.api_client_deck import NextcloudDeck
6
+ from nextcloud_agent.api.api_client_files import NextcloudFiles
7
+ from nextcloud_agent.api.api_client_notes import NextcloudNotes
8
+ from nextcloud_agent.api.api_client_office import NextcloudOffice
9
+ from nextcloud_agent.api.api_client_shares import NextcloudShares
10
+ from nextcloud_agent.api.api_client_talk import NextcloudTalk
11
+
12
+
13
+ class Api(
14
+ NextcloudFiles,
15
+ NextcloudShares,
16
+ NextcloudCalendar,
17
+ NextcloudContacts,
18
+ NextcloudTalk,
19
+ NextcloudDeck,
20
+ NextcloudNotes,
21
+ NextcloudActivity,
22
+ NextcloudAdmin,
23
+ NextcloudOffice,
24
+ ):
25
+ """Unified Nextcloud API client combining the per-domain sub-clients."""