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.
Files changed (105) hide show
  1. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/PKG-INFO +3 -3
  2. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/README.md +1 -1
  3. nextcloud_agent-0.2.26/nextcloud_agent/agent/IDENTITY.md +16 -0
  4. nextcloud_agent-0.2.26/nextcloud_agent/agent.py +72 -0
  5. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/mcp.py +34 -4
  6. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/PKG-INFO +3 -3
  7. nextcloud_agent-0.2.26/nextcloud_agent.egg-info/SOURCES.txt +22 -0
  8. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/requires.txt +1 -1
  9. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/pyproject.toml +5 -7
  10. nextcloud_agent-0.2.24/nextcloud_agent/agent/IDENTITY.md +0 -52
  11. nextcloud_agent-0.2.24/nextcloud_agent/agent/skills/test-skill/SKILL.md +0 -19
  12. nextcloud_agent-0.2.24/nextcloud_agent/agent.py +0 -95
  13. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-calendar/SKILL.md +0 -39
  14. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-contacts/SKILL.md +0 -36
  15. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/SKILL.md +0 -97
  16. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/android_library_index.html.md +0 -79
  17. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/api.html.md +0 -81
  18. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_api.html.md +0 -142
  19. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_appdata.html.md +0 -97
  20. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_backgroundjobs.html.md +0 -105
  21. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_changelog.html.md +0 -135
  22. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_classloader.html.md +0 -82
  23. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_code_signing.html.md +0 -157
  24. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_configuration.html.md +0 -198
  25. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_container.html.md +0 -411
  26. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_controllers.html.md +0 -928
  27. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_css.html.md +0 -96
  28. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_database.html.md +0 -302
  29. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_filesystem.html.md +0 -170
  30. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_hooks.html.md +0 -223
  31. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_index.html.md +0 -196
  32. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_info.html.md +0 -605
  33. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_init.html.md +0 -133
  34. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_js.html.md +0 -143
  35. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_l10n.html.md +0 -242
  36. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_logging.html.md +0 -139
  37. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_middleware.html.md +0 -204
  38. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_migrations.html.md +0 -163
  39. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_publishing.html.md +0 -157
  40. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_repair.html.md +0 -158
  41. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_request.html.md +0 -110
  42. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_routes.html.md +0 -250
  43. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_schema.html.md +0 -112
  44. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_settings.html.md +0 -300
  45. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_startapp.html.md +0 -89
  46. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_templates.html.md +0 -127
  47. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_testing.html.md +0 -155
  48. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_theming.html.md +0 -96
  49. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_tutorial.html.md +0 -1389
  50. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_two-factor-provider.html.md +0 -161
  51. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/app_users.html.md +0 -232
  52. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/bugtracker_index.html.md +0 -76
  53. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/builds.md +0 -1
  54. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/client_apis_LoginFlow_index.html.md +0 -109
  55. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/client_apis_OCS_index.html.md +0 -176
  56. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/client_apis_WebDAV_index.html.md +0 -111
  57. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/client_apis_index.html.md +0 -87
  58. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/commun_index.html.md +0 -83
  59. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_externalapi.html.md +0 -159
  60. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_index.html.md +0 -99
  61. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_ocs-share-api.html.md +0 -265
  62. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_theming.html.md +0 -293
  63. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_translation.html.md +0 -159
  64. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/core_unit-testing.html.md +0 -265
  65. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_content.html.md +0 -127
  66. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_css.html.md +0 -137
  67. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_html.html.md +0 -134
  68. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_icons.html.md +0 -455
  69. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_index.html.md +0 -124
  70. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_list.html.md +0 -191
  71. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_navigation.html.md +0 -498
  72. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/design_popovermenu.html.md +0 -168
  73. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_backporting.html.md +0 -89
  74. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_code-of-conduct.html.md +0 -127
  75. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_codingguidelines.html.md +0 -509
  76. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_debugging.html.md +0 -139
  77. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_devenv.html.md +0 -189
  78. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_index.html.md +0 -122
  79. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_performance.html.md +0 -133
  80. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/general_security.html.md +0 -290
  81. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/projects.md +0 -1
  82. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_14_developer_manual.md +0 -112
  83. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_15_developer_manual.md +0 -98
  84. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_16_developer_manual.md +0 -97
  85. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_latest_developer_manual.md +0 -169
  86. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-dev-manual/reference/server_stable_developer_manual.md +0 -166
  87. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-files/SKILL.md +0 -70
  88. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-sharing/SKILL.md +0 -37
  89. nextcloud_agent-0.2.24/nextcloud_agent/skills/nextcloud-user/SKILL.md +0 -23
  90. nextcloud_agent-0.2.24/nextcloud_agent.egg-info/SOURCES.txt +0 -100
  91. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/LICENSE +0 -0
  92. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/__init__.py +0 -0
  93. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/AGENTS.md +0 -0
  94. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/CRON.md +0 -0
  95. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/HEARTBEAT.md +0 -0
  96. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/MEMORY.md +0 -0
  97. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/USER.md +0 -0
  98. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/agent/templates.py +0 -0
  99. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/auth.py +0 -0
  100. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent/nextcloud_api.py +0 -0
  101. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/dependency_links.txt +0 -0
  102. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/entry_points.txt +0 -0
  103. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/nextcloud_agent.egg-info/top_level.txt +0 -0
  104. {nextcloud_agent-0.2.24 → nextcloud_agent-0.2.26}/scripts/validate_a2a_agent.py +0 -0
  105. {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.24
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.10
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
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/nextcloud-agent)
42
42
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/nextcloud-agent)
43
43
 
44
- *Version: 0.2.24*
44
+ *Version: 0.2.26*
45
45
 
46
46
  ## Overview
47
47
 
@@ -21,7 +21,7 @@
21
21
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/nextcloud-agent)
22
22
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/nextcloud-agent)
23
23
 
24
- *Version: 0.2.24*
24
+ *Version: 0.2.26*
25
25
 
26
26
  ## Overview
27
27
 
@@ -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.24"
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 register_tools(mcp: FastMCP):
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
- register_tools(mcp)
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.24
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.10
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
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/nextcloud-agent)
42
42
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/nextcloud-agent)
43
43
 
44
- *Version: 0.2.24*
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
@@ -1,4 +1,4 @@
1
- agent-utilities[agent,logfire]>=0.2.10
1
+ agent-utilities[agent,logfire]>=0.2.12
2
2
  python-dateutil>=2.8.2
3
3
  icalendar>=6.1.1
4
4
  vobject>=0.9.9
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "nextcloud-agent"
7
- version = "0.2.24"
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.10",
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", "skills/**", "agent/**",]
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.