nextcloud-agent 0.2.24__tar.gz → 0.2.26__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-0.2.24 → nextcloud_agent-0.2.26}/PKG-INFO +3 -3
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/README.md +1 -1
- nextcloud_agent-0.2.26/nextcloud_agent/agent/IDENTITY.md +16 -0
- nextcloud_agent-0.2.26/nextcloud_agent/agent.py +72 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/mcp.py +34 -4
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/PKG-INFO +3 -3
- nextcloud_agent-0.2.26/nextcloud_agent.egg-info/SOURCES.txt +22 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/requires.txt +1 -1
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/pyproject.toml +5 -7
- nextcloud_agent-0.2.24/nextcloud_agent/agent/IDENTITY.md +0 -52
- nextcloud_agent-0.2.24/nextcloud_agent/agent/skills/test-skill/SKILL.md +0 -19
- nextcloud_agent-0.2.24/nextcloud_agent/agent.py +0 -95
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-calendar/SKILL.md +0 -39
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-contacts/SKILL.md +0 -36
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/SKILL.md +0 -97
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/android_library_index.html.md +0 -79
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/api.html.md +0 -81
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_api.html.md +0 -142
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_appdata.html.md +0 -97
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_backgroundjobs.html.md +0 -105
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_changelog.html.md +0 -135
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_classloader.html.md +0 -82
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_code_signing.html.md +0 -157
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_configuration.html.md +0 -198
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_container.html.md +0 -411
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_controllers.html.md +0 -928
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_css.html.md +0 -96
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_database.html.md +0 -302
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_filesystem.html.md +0 -170
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_hooks.html.md +0 -223
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_index.html.md +0 -196
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_info.html.md +0 -605
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_init.html.md +0 -133
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_js.html.md +0 -143
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_l10n.html.md +0 -242
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_logging.html.md +0 -139
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_middleware.html.md +0 -204
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_migrations.html.md +0 -163
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_publishing.html.md +0 -157
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_repair.html.md +0 -158
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_request.html.md +0 -110
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_routes.html.md +0 -250
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_schema.html.md +0 -112
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_settings.html.md +0 -300
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_startapp.html.md +0 -89
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_templates.html.md +0 -127
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_testing.html.md +0 -155
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_theming.html.md +0 -96
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_tutorial.html.md +0 -1389
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_two-factor-provider.html.md +0 -161
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_users.html.md +0 -232
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/bugtracker_index.html.md +0 -76
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/builds.md +0 -1
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/client_apis_LoginFlow_index.html.md +0 -109
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/client_apis_OCS_index.html.md +0 -176
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/client_apis_WebDAV_index.html.md +0 -111
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/client_apis_index.html.md +0 -87
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/commun_index.html.md +0 -83
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_externalapi.html.md +0 -159
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_index.html.md +0 -99
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_ocs-share-api.html.md +0 -265
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_theming.html.md +0 -293
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_translation.html.md +0 -159
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_unit-testing.html.md +0 -265
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_content.html.md +0 -127
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_css.html.md +0 -137
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_html.html.md +0 -134
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_icons.html.md +0 -455
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_index.html.md +0 -124
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_list.html.md +0 -191
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_navigation.html.md +0 -498
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_popovermenu.html.md +0 -168
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_backporting.html.md +0 -89
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_code-of-conduct.html.md +0 -127
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_codingguidelines.html.md +0 -509
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_debugging.html.md +0 -139
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_devenv.html.md +0 -189
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_index.html.md +0 -122
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_performance.html.md +0 -133
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_security.html.md +0 -290
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/projects.md +0 -1
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_14_developer_manual.md +0 -112
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_15_developer_manual.md +0 -98
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_16_developer_manual.md +0 -97
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_latest_developer_manual.md +0 -169
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_stable_developer_manual.md +0 -166
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-files/SKILL.md +0 -70
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-sharing/SKILL.md +0 -37
- nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-user/SKILL.md +0 -23
- nextcloud_agent-0.2.24/nextcloud_agent.egg-info/SOURCES.txt +0 -100
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/LICENSE +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/__init__.py +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/AGENTS.md +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/CRON.md +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/HEARTBEAT.md +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/MEMORY.md +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/USER.md +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/templates.py +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/auth.py +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/nextcloud_api.py +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/dependency_links.txt +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/entry_points.txt +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/top_level.txt +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/scripts/validate_a2a_agent.py +0 -0
- {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextcloud-agent
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.26
|
|
4
4
|
Summary: Nextcloud MCP Server for Agentic AI!
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-utilities[agent,logfire]>=0.2.
|
|
15
|
+
Requires-Dist: agent-utilities[agent,logfire]>=0.2.12
|
|
16
16
|
Requires-Dist: python-dateutil>=2.8.2
|
|
17
17
|
Requires-Dist: icalendar>=6.1.1
|
|
18
18
|
Requires-Dist: vobject>=0.9.9
|
|
@@ -41,7 +41,7 @@ Dynamic: license-file
|
|
|
41
41
|

|
|
42
42
|

|
|
43
43
|
|
|
44
|
-
*Version: 0.2.
|
|
44
|
+
*Version: 0.2.26*
|
|
45
45
|
|
|
46
46
|
## Overview
|
|
47
47
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# IDENTITY.md - Nextcloud Agent Identity
|
|
2
|
+
|
|
3
|
+
## [default]
|
|
4
|
+
* **Name:** Nextcloud Agent
|
|
5
|
+
* **Role:** Nextcloud services including files, sharing, calendar, contacts, and user management.
|
|
6
|
+
* **Emoji:** ☁️
|
|
7
|
+
|
|
8
|
+
### System Prompt
|
|
9
|
+
You are the Nextcloud Agent.
|
|
10
|
+
You must always first run list_skills and list_tools to discover available skills and tools.
|
|
11
|
+
Your goal is to assist the user with Nextcloud operations using the `mcp-client` universal skill.
|
|
12
|
+
Check the `mcp-client` reference documentation for `nextcloud-agent.md` to discover the exact tags and tools available for your capabilities.
|
|
13
|
+
|
|
14
|
+
### Capabilities
|
|
15
|
+
- **MCP Operations**: Leverage the `mcp-client` skill to interact with the target MCP server. Refer to `nextcloud-agent.md` for specific tool capabilities.
|
|
16
|
+
- **Custom Agent**: Handle custom tasks or general tasks.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/python
|
|
2
|
+
# coding: utf-8
|
|
3
|
+
import os
|
|
4
|
+
import logging
|
|
5
|
+
|
|
6
|
+
from agent_utilities import (
|
|
7
|
+
build_system_prompt_from_workspace,
|
|
8
|
+
create_agent_parser,
|
|
9
|
+
create_agent_server,
|
|
10
|
+
initialize_workspace,
|
|
11
|
+
load_identity,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
__version__ = "0.2.26"
|
|
15
|
+
|
|
16
|
+
logging.basicConfig(
|
|
17
|
+
level=logging.INFO,
|
|
18
|
+
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
19
|
+
handlers=[logging.StreamHandler()],
|
|
20
|
+
)
|
|
21
|
+
logger = logging.getLogger(__name__)
|
|
22
|
+
|
|
23
|
+
# Load identity and system prompt from workspace
|
|
24
|
+
initialize_workspace()
|
|
25
|
+
meta = load_identity()
|
|
26
|
+
DEFAULT_AGENT_NAME = os.getenv(
|
|
27
|
+
"DEFAULT_AGENT_NAME", meta.get("name", "Nextcloud Agent")
|
|
28
|
+
)
|
|
29
|
+
DEFAULT_AGENT_DESCRIPTION = os.getenv(
|
|
30
|
+
"AGENT_DESCRIPTION",
|
|
31
|
+
meta.get("description", "AI agent for Nextcloud Agent management."),
|
|
32
|
+
)
|
|
33
|
+
DEFAULT_AGENT_SYSTEM_PROMPT = os.getenv(
|
|
34
|
+
"AGENT_SYSTEM_PROMPT",
|
|
35
|
+
meta.get("content") or build_system_prompt_from_workspace(),
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def agent_server():
|
|
40
|
+
print(f"{DEFAULT_AGENT_NAME} v{__version__}")
|
|
41
|
+
parser = create_agent_parser()
|
|
42
|
+
|
|
43
|
+
args = parser.parse_args()
|
|
44
|
+
|
|
45
|
+
if args.debug:
|
|
46
|
+
logging.getLogger().setLevel(logging.DEBUG)
|
|
47
|
+
logger.debug("Debug mode enabled")
|
|
48
|
+
|
|
49
|
+
create_agent_server(
|
|
50
|
+
provider=args.provider,
|
|
51
|
+
model_id=args.model_id,
|
|
52
|
+
base_url=args.base_url,
|
|
53
|
+
api_key=args.api_key,
|
|
54
|
+
custom_skills_directory=args.custom_skills_directory,
|
|
55
|
+
debug=args.debug,
|
|
56
|
+
host=args.host,
|
|
57
|
+
port=args.port,
|
|
58
|
+
enable_web_ui=args.web,
|
|
59
|
+
ssl_verify=not args.insecure,
|
|
60
|
+
name=DEFAULT_AGENT_NAME,
|
|
61
|
+
system_prompt=DEFAULT_AGENT_SYSTEM_PROMPT,
|
|
62
|
+
enable_otel=args.otel,
|
|
63
|
+
otel_endpoint=args.otel_endpoint,
|
|
64
|
+
otel_headers=args.otel_headers,
|
|
65
|
+
otel_public_key=args.otel_public_key,
|
|
66
|
+
otel_secret_key=args.otel_secret_key,
|
|
67
|
+
otel_protocol=args.otel_protocol,
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
if __name__ == "__main__":
|
|
72
|
+
agent_server()
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/python
|
|
2
2
|
# coding: utf-8
|
|
3
3
|
|
|
4
|
+
from dotenv import load_dotenv, find_dotenv
|
|
5
|
+
from agent_utilities.base_utilities import to_boolean
|
|
4
6
|
import os
|
|
5
7
|
import sys
|
|
6
8
|
import logging
|
|
@@ -31,7 +33,7 @@ from agent_utilities.middlewares import (
|
|
|
31
33
|
)
|
|
32
34
|
from nextcloud_agent.auth import get_client
|
|
33
35
|
|
|
34
|
-
__version__ = "0.2.
|
|
36
|
+
__version__ = "0.2.26"
|
|
35
37
|
print(f"Nextcloud MCP v{__version__}")
|
|
36
38
|
|
|
37
39
|
logger = get_logger(name="TokenMiddleware")
|
|
@@ -40,6 +42,7 @@ logger.setLevel(logging.DEBUG)
|
|
|
40
42
|
|
|
41
43
|
def register_prompts(mcp: FastMCP):
|
|
42
44
|
@mcp.prompt(name="list_files", description="List files in a directory.")
|
|
45
|
+
@mcp.tool(tags={"files"})
|
|
43
46
|
def list_files(path: str = "/") -> str:
|
|
44
47
|
"""List files."""
|
|
45
48
|
return f"Please list files in '{path}'"
|
|
@@ -55,11 +58,12 @@ def register_prompts(mcp: FastMCP):
|
|
|
55
58
|
return "Please show recently modified files."
|
|
56
59
|
|
|
57
60
|
|
|
58
|
-
def
|
|
59
|
-
@mcp.custom_route("/health", methods=["GET"])
|
|
61
|
+
def register_misc_tools(mcp: FastMCP):
|
|
60
62
|
async def health_check() -> Dict:
|
|
61
63
|
return {"status": "OK"}
|
|
62
64
|
|
|
65
|
+
|
|
66
|
+
def register_files_tools(mcp: FastMCP):
|
|
63
67
|
@mcp.tool(tags={"files"})
|
|
64
68
|
async def list_files(
|
|
65
69
|
path: str = Field(
|
|
@@ -249,6 +253,8 @@ def register_tools(mcp: FastMCP):
|
|
|
249
253
|
except Exception as e:
|
|
250
254
|
return f"Error getting properties: {str(e)}"
|
|
251
255
|
|
|
256
|
+
|
|
257
|
+
def register_user_tools(mcp: FastMCP):
|
|
252
258
|
@mcp.tool(tags={"user"})
|
|
253
259
|
async def get_user_info(
|
|
254
260
|
base_url: str = Field(
|
|
@@ -264,6 +270,8 @@ def register_tools(mcp: FastMCP):
|
|
|
264
270
|
except Exception as e:
|
|
265
271
|
return f"Error getting user info: {str(e)}"
|
|
266
272
|
|
|
273
|
+
|
|
274
|
+
def register_sharing_tools(mcp: FastMCP):
|
|
267
275
|
@mcp.tool(tags={"sharing"})
|
|
268
276
|
async def list_shares(
|
|
269
277
|
base_url: str = Field(
|
|
@@ -318,6 +326,8 @@ def register_tools(mcp: FastMCP):
|
|
|
318
326
|
except Exception as e:
|
|
319
327
|
return f"Error deleting share: {str(e)}"
|
|
320
328
|
|
|
329
|
+
|
|
330
|
+
def register_calendar_tools(mcp: FastMCP):
|
|
321
331
|
@mcp.tool(tags={"calendar"})
|
|
322
332
|
async def list_calendars(
|
|
323
333
|
base_url: str = Field(
|
|
@@ -390,6 +400,8 @@ def register_tools(mcp: FastMCP):
|
|
|
390
400
|
except Exception as e:
|
|
391
401
|
return f"Error creating event: {str(e)}"
|
|
392
402
|
|
|
403
|
+
|
|
404
|
+
def register_contacts_tools(mcp: FastMCP):
|
|
393
405
|
@mcp.tool(tags={"contacts"})
|
|
394
406
|
async def list_address_books(
|
|
395
407
|
base_url: str = Field(
|
|
@@ -448,6 +460,7 @@ def mcp_server() -> None:
|
|
|
448
460
|
This function parses command-line arguments to configure and start the MCP server for Nextcloud API interactions.
|
|
449
461
|
It supports stdio or TCP transport modes and exits on invalid arguments or help requests.
|
|
450
462
|
"""
|
|
463
|
+
load_dotenv(find_dotenv())
|
|
451
464
|
parser = create_mcp_parser()
|
|
452
465
|
|
|
453
466
|
args = parser.parse_args()
|
|
@@ -750,7 +763,24 @@ def mcp_server() -> None:
|
|
|
750
763
|
sys.exit(1)
|
|
751
764
|
|
|
752
765
|
mcp = FastMCP("Nextcloud", auth=auth)
|
|
753
|
-
|
|
766
|
+
DEFAULT_MISCTOOL = to_boolean(os.getenv("MISCTOOL", "True"))
|
|
767
|
+
if DEFAULT_MISCTOOL:
|
|
768
|
+
register_misc_tools(mcp)
|
|
769
|
+
DEFAULT_FILESTOOL = to_boolean(os.getenv("FILESTOOL", "True"))
|
|
770
|
+
if DEFAULT_FILESTOOL:
|
|
771
|
+
register_files_tools(mcp)
|
|
772
|
+
DEFAULT_USERTOOL = to_boolean(os.getenv("USERTOOL", "True"))
|
|
773
|
+
if DEFAULT_USERTOOL:
|
|
774
|
+
register_user_tools(mcp)
|
|
775
|
+
DEFAULT_SHARINGTOOL = to_boolean(os.getenv("SHARINGTOOL", "True"))
|
|
776
|
+
if DEFAULT_SHARINGTOOL:
|
|
777
|
+
register_sharing_tools(mcp)
|
|
778
|
+
DEFAULT_CALENDARTOOL = to_boolean(os.getenv("CALENDARTOOL", "True"))
|
|
779
|
+
if DEFAULT_CALENDARTOOL:
|
|
780
|
+
register_calendar_tools(mcp)
|
|
781
|
+
DEFAULT_CONTACTSTOOL = to_boolean(os.getenv("CONTACTSTOOL", "True"))
|
|
782
|
+
if DEFAULT_CONTACTSTOOL:
|
|
783
|
+
register_contacts_tools(mcp)
|
|
754
784
|
register_prompts(mcp)
|
|
755
785
|
|
|
756
786
|
for mw in middlewares:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextcloud-agent
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.26
|
|
4
4
|
Summary: Nextcloud MCP Server for Agentic AI!
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-utilities[agent,logfire]>=0.2.
|
|
15
|
+
Requires-Dist: agent-utilities[agent,logfire]>=0.2.12
|
|
16
16
|
Requires-Dist: python-dateutil>=2.8.2
|
|
17
17
|
Requires-Dist: icalendar>=6.1.1
|
|
18
18
|
Requires-Dist: vobject>=0.9.9
|
|
@@ -41,7 +41,7 @@ Dynamic: license-file
|
|
|
41
41
|

|
|
42
42
|

|
|
43
43
|
|
|
44
|
-
*Version: 0.2.
|
|
44
|
+
*Version: 0.2.26*
|
|
45
45
|
|
|
46
46
|
## Overview
|
|
47
47
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
nextcloud_agent/__init__.py
|
|
5
|
+
nextcloud_agent/agent.py
|
|
6
|
+
nextcloud_agent/auth.py
|
|
7
|
+
nextcloud_agent/mcp.py
|
|
8
|
+
nextcloud_agent/nextcloud_api.py
|
|
9
|
+
nextcloud_agent.egg-info/PKG-INFO
|
|
10
|
+
nextcloud_agent.egg-info/SOURCES.txt
|
|
11
|
+
nextcloud_agent.egg-info/dependency_links.txt
|
|
12
|
+
nextcloud_agent.egg-info/entry_points.txt
|
|
13
|
+
nextcloud_agent.egg-info/requires.txt
|
|
14
|
+
nextcloud_agent.egg-info/top_level.txt
|
|
15
|
+
nextcloud_agent/agent/AGENTS.md
|
|
16
|
+
nextcloud_agent/agent/CRON.md
|
|
17
|
+
nextcloud_agent/agent/HEARTBEAT.md
|
|
18
|
+
nextcloud_agent/agent/IDENTITY.md
|
|
19
|
+
nextcloud_agent/agent/MEMORY.md
|
|
20
|
+
nextcloud_agent/agent/USER.md
|
|
21
|
+
nextcloud_agent/agent/templates.py
|
|
22
|
+
scripts/validate_a2a_agent.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nextcloud-agent"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.26"
|
|
8
8
|
description = "Nextcloud MCP Server for Agentic AI!"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Audel Rouhi", email = "knucklessg1@gmail.com" }]
|
|
@@ -14,15 +14,13 @@ classifiers = [
|
|
|
14
14
|
"License :: OSI Approved :: MIT License",
|
|
15
15
|
"Environment :: Console",
|
|
16
16
|
"Operating System :: POSIX :: Linux",
|
|
17
|
-
"Programming Language :: Python :: 3"
|
|
18
|
-
]
|
|
17
|
+
"Programming Language :: Python :: 3"]
|
|
19
18
|
requires-python = ">=3.10"
|
|
20
19
|
dependencies = [
|
|
21
|
-
"agent-utilities[agent,logfire]>=0.2.
|
|
20
|
+
"agent-utilities[agent,logfire]>=0.2.12",
|
|
22
21
|
"python-dateutil>=2.8.2",
|
|
23
22
|
"icalendar>=6.1.1",
|
|
24
|
-
"vobject>=0.9.9"
|
|
25
|
-
]
|
|
23
|
+
"vobject>=0.9.9"]
|
|
26
24
|
|
|
27
25
|
[project.scripts]
|
|
28
26
|
nextcloud-mcp = "nextcloud_agent.mcp:mcp_server"
|
|
@@ -35,4 +33,4 @@ where = ["."]
|
|
|
35
33
|
include-package-data = true
|
|
36
34
|
|
|
37
35
|
[tool.setuptools.package-data]
|
|
38
|
-
nextcloud_agent = [ "mcp_config.json", "
|
|
36
|
+
nextcloud_agent = [ "mcp_config.json", "agent/**"]
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# IDENTITY.md - Nextcloud Multi-Agent Identity
|
|
2
|
-
|
|
3
|
-
## [supervisor]
|
|
4
|
-
* **Name:** Nextcloud Supervisor
|
|
5
|
-
* **Role:** Coordination of tasks across Nextcloud services.
|
|
6
|
-
* **Emoji:** ☁️
|
|
7
|
-
* **Vibe:** Helpful, organized, secure
|
|
8
|
-
|
|
9
|
-
### System Prompt
|
|
10
|
-
You are the Nextcloud Supervisor Agent.
|
|
11
|
-
Your goal is to assist the user with Nextcloud operations including file management, sharing, and personal information management.
|
|
12
|
-
Delegate tasks to specialized agents and synthesize the output.
|
|
13
|
-
|
|
14
|
-
## [files]
|
|
15
|
-
* **Name:** Nextcloud Files Agent
|
|
16
|
-
* **Role:** Manage files and directories.
|
|
17
|
-
* **Emoji:** 📁
|
|
18
|
-
### System Prompt
|
|
19
|
-
You are the Nextcloud Files Agent.
|
|
20
|
-
You handle file uploads, downloads, listing, and direct file system operations via WebDAV.
|
|
21
|
-
|
|
22
|
-
## [sharing]
|
|
23
|
-
* **Name:** Nextcloud Sharing Agent
|
|
24
|
-
* **Role:** Manage file shares and permissions.
|
|
25
|
-
* **Emoji:** 🔗
|
|
26
|
-
### System Prompt
|
|
27
|
-
You are the Nextcloud Sharing Agent.
|
|
28
|
-
You handle the creation and management of public and internal file shares.
|
|
29
|
-
|
|
30
|
-
## [calendar]
|
|
31
|
-
* **Name:** Nextcloud Calendar Agent
|
|
32
|
-
* **Role:** Manage Nextcloud calendars and events.
|
|
33
|
-
* **Emoji:** 📅
|
|
34
|
-
### System Prompt
|
|
35
|
-
You are the Nextcloud Calendar Agent.
|
|
36
|
-
You handle calendar event creation, retrieval, and scheduling.
|
|
37
|
-
|
|
38
|
-
## [contacts]
|
|
39
|
-
* **Name:** Nextcloud Contacts Agent
|
|
40
|
-
* **Role:** Manage Nextcloud address books.
|
|
41
|
-
* **Emoji:** 📇
|
|
42
|
-
### System Prompt
|
|
43
|
-
You are the Nextcloud Contacts Agent.
|
|
44
|
-
You handle contact creation, search, and address book management.
|
|
45
|
-
|
|
46
|
-
## [users]
|
|
47
|
-
* **Name:** Nextcloud Users Agent
|
|
48
|
-
* **Role:** Manage Nextcloud user profiles.
|
|
49
|
-
* **Emoji:** 👤
|
|
50
|
-
### System Prompt
|
|
51
|
-
You are the Nextcloud Users Agent.
|
|
52
|
-
You handle user profile information and settings retrieval.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: test-skill
|
|
3
|
-
description: A test skill.
|
|
4
|
-
version: 0.1.0
|
|
5
|
-
tags: [test-skill]
|
|
6
|
-
input_modes: [text]
|
|
7
|
-
output_modes: [text]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# test-skill Skill
|
|
11
|
-
|
|
12
|
-
## When to use
|
|
13
|
-
For testing.
|
|
14
|
-
|
|
15
|
-
## How to use
|
|
16
|
-
Call it.
|
|
17
|
-
|
|
18
|
-
## Examples
|
|
19
|
-
- Example 1: ...
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/python
|
|
2
|
-
# coding: utf-8
|
|
3
|
-
import os
|
|
4
|
-
import logging
|
|
5
|
-
|
|
6
|
-
from agent_utilities import (
|
|
7
|
-
create_agent_server,
|
|
8
|
-
initialize_workspace,
|
|
9
|
-
load_identities,
|
|
10
|
-
build_system_prompt_from_workspace,
|
|
11
|
-
)
|
|
12
|
-
from agent_utilities.agent_utilities import create_agent_parser, get_mcp_config_path
|
|
13
|
-
from agent_utilities.base_utilities import to_integer, to_boolean
|
|
14
|
-
|
|
15
|
-
__version__ = "0.2.24"
|
|
16
|
-
|
|
17
|
-
logging.basicConfig(
|
|
18
|
-
level=logging.INFO,
|
|
19
|
-
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
20
|
-
handlers=[logging.StreamHandler()],
|
|
21
|
-
)
|
|
22
|
-
logger = logging.getLogger(__name__)
|
|
23
|
-
|
|
24
|
-
# Load identity and system prompt from workspace
|
|
25
|
-
initialize_workspace()
|
|
26
|
-
identities = load_identities()
|
|
27
|
-
|
|
28
|
-
# Prepare supervisor identity
|
|
29
|
-
supervisor_meta = identities.get("supervisor", identities.get("default", {}))
|
|
30
|
-
DEFAULT_AGENT_NAME = os.getenv(
|
|
31
|
-
"DEFAULT_AGENT_NAME", supervisor_meta.get("name", "Nextcloud Agent")
|
|
32
|
-
)
|
|
33
|
-
DEFAULT_AGENT_DESCRIPTION = os.getenv(
|
|
34
|
-
"AGENT_DESCRIPTION",
|
|
35
|
-
supervisor_meta.get("description", "A multi-agent system."),
|
|
36
|
-
)
|
|
37
|
-
DEFAULT_AGENT_SYSTEM_PROMPT = os.getenv(
|
|
38
|
-
"AGENT_SYSTEM_PROMPT",
|
|
39
|
-
supervisor_meta.get("content") or build_system_prompt_from_workspace(),
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
# Prepare child agent definitions from IDENTITY.md sections
|
|
43
|
-
CHILD_AGENT_DEFS = {
|
|
44
|
-
tag: (data["content"], data["name"])
|
|
45
|
-
for tag, data in identities.items()
|
|
46
|
-
if tag not in ["supervisor", "default"]
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
DEFAULT_HOST = os.getenv("HOST", "0.0.0.0")
|
|
50
|
-
DEFAULT_PORT = to_integer(os.getenv("PORT", "9000"))
|
|
51
|
-
DEFAULT_DEBUG = to_boolean(os.getenv("DEBUG", "False"))
|
|
52
|
-
DEFAULT_PROVIDER = os.getenv("PROVIDER", "openai")
|
|
53
|
-
DEFAULT_MODEL_ID = os.getenv("MODEL_ID", "qwen/qwen3-coder-next")
|
|
54
|
-
DEFAULT_LLM_BASE_URL = os.getenv("LLM_BASE_URL", "http://host.docker.internal:1234/v1")
|
|
55
|
-
DEFAULT_LLM_API_KEY = os.getenv("LLM_API_KEY", "ollama")
|
|
56
|
-
DEFAULT_MCP_URL = os.getenv("MCP_URL", None)
|
|
57
|
-
DEFAULT_MCP_CONFIG = os.getenv("MCP_CONFIG", get_mcp_config_path())
|
|
58
|
-
DEFAULT_CUSTOM_SKILLS_DIRECTORY = os.getenv("CUSTOM_SKILLS_DIRECTORY", None)
|
|
59
|
-
DEFAULT_ENABLE_WEB_UI = to_boolean(os.getenv("ENABLE_WEB_UI", "False"))
|
|
60
|
-
DEFAULT_ENABLE_OTEL = to_boolean(os.getenv("ENABLE_OTEL", "False"))
|
|
61
|
-
DEFAULT_SSL_VERIFY = to_boolean(os.getenv("SSL_VERIFY", "True"))
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def agent_server():
|
|
65
|
-
print(f"{DEFAULT_AGENT_NAME} v{__version__}")
|
|
66
|
-
parser = create_agent_parser()
|
|
67
|
-
|
|
68
|
-
args = parser.parse_args()
|
|
69
|
-
|
|
70
|
-
if args.debug:
|
|
71
|
-
logging.getLogger().setLevel(logging.DEBUG)
|
|
72
|
-
logger.debug("Debug mode enabled")
|
|
73
|
-
|
|
74
|
-
create_agent_server(
|
|
75
|
-
provider=args.provider,
|
|
76
|
-
model_id=args.model_id,
|
|
77
|
-
base_url=args.base_url,
|
|
78
|
-
api_key=args.api_key,
|
|
79
|
-
mcp_url=args.mcp_url,
|
|
80
|
-
mcp_config=args.mcp_config,
|
|
81
|
-
custom_skills_directory=args.custom_skills_directory,
|
|
82
|
-
debug=args.debug,
|
|
83
|
-
host=args.host,
|
|
84
|
-
port=args.port,
|
|
85
|
-
enable_web_ui=args.web,
|
|
86
|
-
ssl_verify=not args.insecure,
|
|
87
|
-
name=DEFAULT_AGENT_NAME,
|
|
88
|
-
system_prompt=DEFAULT_AGENT_SYSTEM_PROMPT,
|
|
89
|
-
enable_otel=args.otel,
|
|
90
|
-
agent_definitions=CHILD_AGENT_DEFS if CHILD_AGENT_DEFS else None,
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if __name__ == "__main__":
|
|
95
|
-
agent_server()
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: nextcloud-calendar
|
|
3
|
-
description: "Generated skill for calendar operations. Contains 3 tools."
|
|
4
|
-
tags: [calendar]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
### Overview
|
|
8
|
-
This skill handles operations related to calendar.
|
|
9
|
-
|
|
10
|
-
### Available Tools
|
|
11
|
-
- `list_calendars`: List available calendars.
|
|
12
|
-
- **Parameters**:
|
|
13
|
-
- `base_url` (str)
|
|
14
|
-
- `username` (str)
|
|
15
|
-
- `password` (str)
|
|
16
|
-
- `list_calendar_events`: List events in a calendar.
|
|
17
|
-
- **Parameters**:
|
|
18
|
-
- `calendar_url` (str)
|
|
19
|
-
- `base_url` (str)
|
|
20
|
-
- `username` (str)
|
|
21
|
-
- `password` (str)
|
|
22
|
-
- `create_calendar_event`: No description provided.
|
|
23
|
-
- **Parameters**:
|
|
24
|
-
- `calendar_url` (str)
|
|
25
|
-
- `summary` (str)
|
|
26
|
-
- `start_time` (str)
|
|
27
|
-
- `end_time` (str)
|
|
28
|
-
- `description` (str)
|
|
29
|
-
- `base_url` (str)
|
|
30
|
-
- `username` (str)
|
|
31
|
-
- `password` (str)
|
|
32
|
-
|
|
33
|
-
### Usage Instructions
|
|
34
|
-
1. Review the tool available in this skill.
|
|
35
|
-
2. Call the tool with the required parameters.
|
|
36
|
-
|
|
37
|
-
### Error Handling
|
|
38
|
-
- Ensure all required parameters are provided.
|
|
39
|
-
- Check return values for error messages.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: nextcloud-contacts
|
|
3
|
-
description: "Generated skill for contacts operations. Contains 3 tools."
|
|
4
|
-
tags: [contacts]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
### Overview
|
|
8
|
-
This skill handles operations related to contacts.
|
|
9
|
-
|
|
10
|
-
### Available Tools
|
|
11
|
-
- `list_address_books`: List address books.
|
|
12
|
-
- **Parameters**:
|
|
13
|
-
- `base_url` (str)
|
|
14
|
-
- `username` (str)
|
|
15
|
-
- `password` (str)
|
|
16
|
-
- `list_contacts`: List contacts in an address book.
|
|
17
|
-
- **Parameters**:
|
|
18
|
-
- `address_book_url` (str)
|
|
19
|
-
- `base_url` (str)
|
|
20
|
-
- `username` (str)
|
|
21
|
-
- `password` (str)
|
|
22
|
-
- `create_contact`: Create a new contact using raw vCard data.
|
|
23
|
-
- **Parameters**:
|
|
24
|
-
- `address_book_url` (str)
|
|
25
|
-
- `vcard_data` (str)
|
|
26
|
-
- `base_url` (str)
|
|
27
|
-
- `username` (str)
|
|
28
|
-
- `password` (str)
|
|
29
|
-
|
|
30
|
-
### Usage Instructions
|
|
31
|
-
1. Review the tool available in this skill.
|
|
32
|
-
2. Call the tool with the required parameters.
|
|
33
|
-
|
|
34
|
-
### Error Handling
|
|
35
|
-
- Ensure all required parameters are provided.
|
|
36
|
-
- Check return values for error messages.
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: nextcloud-dev-manual
|
|
3
|
-
description: Developer manual for Nextcloud server version 14.
|
|
4
|
-
source_url: https://docs.nextcloud.com/server/14/developer_manual/
|
|
5
|
-
categories: [Documentation, Knowledge Base, Reference]
|
|
6
|
-
tags: [docs, reference, nextcloud-dev-manual, knowledge-base]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Nextcloud Dev Manual Documentation
|
|
10
|
-
|
|
11
|
-
Developer manual for Nextcloud server version 14.
|
|
12
|
-
|
|
13
|
-
**Original Source**: [https://docs.nextcloud.com/server/14/developer_manual/](https://docs.nextcloud.com/server/14/developer_manual/)
|
|
14
|
-
|
|
15
|
-
**Contains**: 71 markdown files with full folder structure.
|
|
16
|
-
*Last updated: February 27, 2026*
|
|
17
|
-
|
|
18
|
-
## 📚 Table of Contents
|
|
19
|
-
|
|
20
|
-
- [Android Library Index.Html](reference/android_library_index.html.md)
|
|
21
|
-
- [Api.Html](reference/api.html.md)
|
|
22
|
-
- [App Api.Html](reference/app_api.html.md)
|
|
23
|
-
- [App Appdata.Html](reference/app_appdata.html.md)
|
|
24
|
-
- [App Backgroundjobs.Html](reference/app_backgroundjobs.html.md)
|
|
25
|
-
- [App Changelog.Html](reference/app_changelog.html.md)
|
|
26
|
-
- [App Classloader.Html](reference/app_classloader.html.md)
|
|
27
|
-
- [App Code Signing.Html](reference/app_code_signing.html.md)
|
|
28
|
-
- [App Configuration.Html](reference/app_configuration.html.md)
|
|
29
|
-
- [App Container.Html](reference/app_container.html.md)
|
|
30
|
-
- [App Controllers.Html](reference/app_controllers.html.md)
|
|
31
|
-
- [App Css.Html](reference/app_css.html.md)
|
|
32
|
-
- [App Database.Html](reference/app_database.html.md)
|
|
33
|
-
- [App Filesystem.Html](reference/app_filesystem.html.md)
|
|
34
|
-
- [App Hooks.Html](reference/app_hooks.html.md)
|
|
35
|
-
- [App Index.Html](reference/app_index.html.md)
|
|
36
|
-
- [App Info.Html](reference/app_info.html.md)
|
|
37
|
-
- [App Init.Html](reference/app_init.html.md)
|
|
38
|
-
- [App Js.Html](reference/app_js.html.md)
|
|
39
|
-
- [App L10N.Html](reference/app_l10n.html.md)
|
|
40
|
-
- [App Logging.Html](reference/app_logging.html.md)
|
|
41
|
-
- [App Middleware.Html](reference/app_middleware.html.md)
|
|
42
|
-
- [App Migrations.Html](reference/app_migrations.html.md)
|
|
43
|
-
- [App Publishing.Html](reference/app_publishing.html.md)
|
|
44
|
-
- [App Repair.Html](reference/app_repair.html.md)
|
|
45
|
-
- [App Request.Html](reference/app_request.html.md)
|
|
46
|
-
- [App Routes.Html](reference/app_routes.html.md)
|
|
47
|
-
- [App Schema.Html](reference/app_schema.html.md)
|
|
48
|
-
- [App Settings.Html](reference/app_settings.html.md)
|
|
49
|
-
- [App Startapp.Html](reference/app_startapp.html.md)
|
|
50
|
-
- [App Templates.Html](reference/app_templates.html.md)
|
|
51
|
-
- [App Testing.Html](reference/app_testing.html.md)
|
|
52
|
-
- [App Theming.Html](reference/app_theming.html.md)
|
|
53
|
-
- [App Tutorial.Html](reference/app_tutorial.html.md)
|
|
54
|
-
- [App Two Factor Provider.Html](reference/app_two-factor-provider.html.md)
|
|
55
|
-
- [App Users.Html](reference/app_users.html.md)
|
|
56
|
-
- [Bugtracker Index.Html](reference/bugtracker_index.html.md)
|
|
57
|
-
- [Builds](reference/builds.md)
|
|
58
|
-
- [Client Apis Loginflow Index.Html](reference/client_apis_LoginFlow_index.html.md)
|
|
59
|
-
- [Client Apis Ocs Index.Html](reference/client_apis_OCS_index.html.md)
|
|
60
|
-
- [Client Apis Webdav Index.Html](reference/client_apis_WebDAV_index.html.md)
|
|
61
|
-
- [Client Apis Index.Html](reference/client_apis_index.html.md)
|
|
62
|
-
- [Commun Index.Html](reference/commun_index.html.md)
|
|
63
|
-
- [Core Externalapi.Html](reference/core_externalapi.html.md)
|
|
64
|
-
- [Core Index.Html](reference/core_index.html.md)
|
|
65
|
-
- [Core Ocs Share Api.Html](reference/core_ocs-share-api.html.md)
|
|
66
|
-
- [Core Theming.Html](reference/core_theming.html.md)
|
|
67
|
-
- [Core Translation.Html](reference/core_translation.html.md)
|
|
68
|
-
- [Core Unit Testing.Html](reference/core_unit-testing.html.md)
|
|
69
|
-
- [Design Content.Html](reference/design_content.html.md)
|
|
70
|
-
- [Design Css.Html](reference/design_css.html.md)
|
|
71
|
-
- [Design Html.Html](reference/design_html.html.md)
|
|
72
|
-
- [Design Icons.Html](reference/design_icons.html.md)
|
|
73
|
-
- [Design Index.Html](reference/design_index.html.md)
|
|
74
|
-
- [Design List.Html](reference/design_list.html.md)
|
|
75
|
-
- [Design Navigation.Html](reference/design_navigation.html.md)
|
|
76
|
-
- [Design Popovermenu.Html](reference/design_popovermenu.html.md)
|
|
77
|
-
- [General Backporting.Html](reference/general_backporting.html.md)
|
|
78
|
-
- [General Code Of Conduct.Html](reference/general_code-of-conduct.html.md)
|
|
79
|
-
- [General Codingguidelines.Html](reference/general_codingguidelines.html.md)
|
|
80
|
-
- [General Debugging.Html](reference/general_debugging.html.md)
|
|
81
|
-
- [General Devenv.Html](reference/general_devenv.html.md)
|
|
82
|
-
- [General Index.Html](reference/general_index.html.md)
|
|
83
|
-
- [General Performance.Html](reference/general_performance.html.md)
|
|
84
|
-
- [General Security.Html](reference/general_security.html.md)
|
|
85
|
-
- [Projects](reference/projects.md)
|
|
86
|
-
- [Server 14 Developer Manual](reference/server_14_developer_manual.md)
|
|
87
|
-
- [Nextcloud developer documentation[¶](https://docs.nextcloud.com/server/15/developer_manual/#nextcloud-developer-documentation "Permalink to this headline")](reference/server_15_developer_manual.md)
|
|
88
|
-
- [Nextcloud developer documentation[¶](https://docs.nextcloud.com/server/16/developer_manual/#nextcloud-developer-documentation "Permalink to this headline")](reference/server_16_developer_manual.md)
|
|
89
|
-
- [Nextcloud developer documentation[](https://docs.nextcloud.com/server/latest/developer_manual/#nextcloud-developer-documentation "Link to this heading")](reference/server_latest_developer_manual.md)
|
|
90
|
-
- [Nextcloud developer documentation[](https://docs.nextcloud.com/server/stable/developer_manual/#nextcloud-developer-documentation "Link to this heading")](reference/server_stable_developer_manual.md)
|
|
91
|
-
|
|
92
|
-
## 🤖 Agent Usage Guide
|
|
93
|
-
|
|
94
|
-
- When the user asks anything about **Nextcloud Dev Manual**, consult the reference files.
|
|
95
|
-
- Prefer exact quotes and direct links to the relevant file/section.
|
|
96
|
-
- The hierarchical TOC above makes navigation fast and intuitive.
|
|
97
|
-
- All images and assets are preserved so links work perfectly.
|