mcp-server-appwrite 2.0.1__tar.gz → 2.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/PKG-INFO +1 -1
  2. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/constants.py +3 -0
  3. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/data/docs_index.npz +1 -1
  4. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/operator.py +5 -2
  5. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/test_tools.py +7 -0
  6. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/.dockerignore +0 -0
  7. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/.env.example +0 -0
  8. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/.github/workflows/ci.yml +0 -0
  9. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/.github/workflows/production.yml +0 -0
  10. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/.github/workflows/publish.yml +0 -0
  11. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/.github/workflows/staging.yml +0 -0
  12. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/.github/workflows/update-docs-index.yml +0 -0
  13. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/.gitignore +0 -0
  14. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/.python-version +0 -0
  15. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/AGENTS.md +0 -0
  16. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/CLAUDE.md +0 -0
  17. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/Dockerfile +0 -0
  18. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/LICENSE +0 -0
  19. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/README.md +0 -0
  20. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/compose.yaml +0 -0
  21. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/appwrite-mcp-flow.png +0 -0
  22. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/appwrite-mcp-flow.svg +0 -0
  23. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/authentication.md +0 -0
  24. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/development.md +0 -0
  25. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/documentation-search.md +0 -0
  26. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/events.md +0 -0
  27. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/flags.md +0 -0
  28. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/images/claude-desktop-local-mcp-servers.png +0 -0
  29. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/images/codex-mcp.png +0 -0
  30. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/images/cursor-mcp.png +0 -0
  31. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/self-hosted.md +0 -0
  32. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/docs/tool-surface.md +0 -0
  33. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/glama.json +0 -0
  34. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/pyproject.toml +0 -0
  35. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/scripts/build_docs_index.py +0 -0
  36. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/scripts/docs_release_notes.py +0 -0
  37. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/scripts/render_server_json.py +0 -0
  38. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/server.template.json +0 -0
  39. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/__init__.py +0 -0
  40. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/__main__.py +0 -0
  41. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/assets/__init__.py +0 -0
  42. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/assets/favicon.svg +0 -0
  43. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/assets/instructions.json +0 -0
  44. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/auth.py +0 -0
  45. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/catalog_policy.py +0 -0
  46. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/context.py +0 -0
  47. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/docs.py +0 -0
  48. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/docs_index.py +0 -0
  49. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/docs_search.py +0 -0
  50. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/docs_source.py +0 -0
  51. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/error_classification.py +0 -0
  52. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/error_monitoring.py +0 -0
  53. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/__init__.py +0 -0
  54. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/bus.py +0 -0
  55. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/catalog.py +0 -0
  56. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/delivery.py +0 -0
  57. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/egress.py +0 -0
  58. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/envelope.py +0 -0
  59. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/errors.py +0 -0
  60. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/ingress.py +0 -0
  61. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/projection.py +0 -0
  62. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/protocol.py +0 -0
  63. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/streams.py +0 -0
  64. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/subscriptions.py +0 -0
  65. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/events/webhooks.py +0 -0
  66. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/flags.py +0 -0
  67. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/http_app.py +0 -0
  68. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/instructions.py +0 -0
  69. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/legacy.py +0 -0
  70. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/server.py +0 -0
  71. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/service.py +0 -0
  72. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/telemetry.py +0 -0
  73. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/src/mcp_server_appwrite/tool_manager.py +0 -0
  74. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/deployment_function_duplicate.json +0 -0
  75. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/deployment_function_failed.json +0 -0
  76. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/deployment_function_ready.json +0 -0
  77. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/deployment_site_ready.json +0 -0
  78. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/execution_async_failed.json +0 -0
  79. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/execution_async_waiting.json +0 -0
  80. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/execution_sync_failed.json +0 -0
  81. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/file_created.json +0 -0
  82. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/function_activation.json +0 -0
  83. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/row_created.json +0 -0
  84. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/fixtures/appwrite/user_created.json +0 -0
  85. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/support.py +0 -0
  86. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/test_events_ingress.py +0 -0
  87. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/test_events_protocol.py +0 -0
  88. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/test_events_stream.py +0 -0
  89. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/test_events_subscribe.py +0 -0
  90. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/e2e/test_stdio.py +0 -0
  91. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/support.py +0 -0
  92. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_avatars.py +0 -0
  93. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_console_sdk_oauth.py +0 -0
  94. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_docs_index.py +0 -0
  95. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_docs_source.py +0 -0
  96. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_functions.py +0 -0
  97. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_locale.py +0 -0
  98. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_messaging.py +0 -0
  99. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_oauth_discovery.py +0 -0
  100. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_operator.py +0 -0
  101. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_sites.py +0 -0
  102. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_storage.py +0 -0
  103. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_tables_db.py +0 -0
  104. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_teams.py +0 -0
  105. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/integration/test_users.py +0 -0
  106. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/test_all.py +0 -0
  107. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/fixtures/jwe-v1.json +0 -0
  108. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_auth.py +0 -0
  109. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_context.py +0 -0
  110. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_docs.py +0 -0
  111. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_docs_search.py +0 -0
  112. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_error_classification.py +0 -0
  113. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_error_monitoring.py +0 -0
  114. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_events_delivery.py +0 -0
  115. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_events_egress.py +0 -0
  116. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_events_envelope.py +0 -0
  117. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_events_protocol.py +0 -0
  118. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_http_app.py +0 -0
  119. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_instructions.py +0 -0
  120. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_operator.py +0 -0
  121. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_release_metadata.py +0 -0
  122. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_server.py +0 -0
  123. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_service.py +0 -0
  124. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/tests/unit/test_telemetry.py +0 -0
  125. {mcp_server_appwrite-2.0.1 → mcp_server_appwrite-2.0.2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: mcp-server-appwrite
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: Build and deploy application backends. Add authentication, PostgreSQL/MySQL databases, vector databases, storage, serverless functions, realtime, messaging, hosting, domains, CDN and firewall.
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -88,6 +88,9 @@ CONTEXT_TOOL_NAME = "appwrite_get_context"
88
88
  SEARCH_TOOL_NAME = "appwrite_search_tools"
89
89
  CALL_TOOL_NAME = "appwrite_call_tool"
90
90
  WRITE_TOOL_NAME = "appwrite_call_write_tool"
91
+ # Directory review requires tools that forward caller-built requests to name
92
+ # the API they call.
93
+ API_REFERENCE_URL = "https://appwrite.io/docs/references"
91
94
  SEARCH_LIMIT = 8
92
95
  # A page of rows does not fit in 800 characters, so the model paid a
93
96
  # resources/read for every list call. Only stdio stores results at all.
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
- name: mcp_server_appwrite-2.0.1/src/mcp_server_appwrite/data/docs_index.npz
2
+ name: mcp_server_appwrite-2.0.2/src/mcp_server_appwrite/data/docs_index.npz
3
3
  size: 35543664 bytes
4
4
  sha256: 61d266fdb9a958b272d1b351cc6ebd6e824b0d0fe294483703e0795e4b0580df
@@ -16,6 +16,7 @@ from mcp.server.lowlevel.helper_types import ReadResourceContents
16
16
 
17
17
  from . import telemetry
18
18
  from .constants import (
19
+ API_REFERENCE_URL,
19
20
  CALL_TOOL_NAME,
20
21
  CATALOG_URI,
21
22
  CONTEXT_TOOL_NAME,
@@ -285,7 +286,8 @@ class Operator:
285
286
  "Put Appwrite parameters inside `arguments`. Create, update, delete "
286
287
  f"and every other mutating tool runs through {WRITE_TOOL_NAME}. "
287
288
  "Hidden Appwrite parameters accept canonical snake_case names and "
288
- "common camelCase aliases."
289
+ "common camelCase aliases. Calls the Appwrite REST API, see "
290
+ f"{API_REFERENCE_URL}."
289
291
  ),
290
292
  input_schema=_call_input_schema(write=False),
291
293
  ),
@@ -304,7 +306,8 @@ class Operator:
304
306
  "by name. Put Appwrite parameters inside `arguments` and set "
305
307
  f"confirm_write=true. Read-only tools run through {CALL_TOOL_NAME}. "
306
308
  "Hidden Appwrite parameters accept canonical snake_case names and "
307
- "common camelCase aliases."
309
+ "common camelCase aliases. Calls the Appwrite REST API, see "
310
+ f"{API_REFERENCE_URL}."
308
311
  ),
309
312
  input_schema=_call_input_schema(write=True),
310
313
  ),
@@ -101,6 +101,13 @@ class ToolsFlow(unittest.TestCase):
101
101
  self.assertLessEqual(
102
102
  WRITE.items(), tools["appwrite_call_write_tool"]["annotations"].items()
103
103
  )
104
+ # Both forward caller-built requests, so review requires them to name
105
+ # the API they call.
106
+ for name in ("appwrite_call_tool", "appwrite_call_write_tool"):
107
+ self.assertIn(
108
+ "Appwrite REST API, see https://appwrite.io/docs/references",
109
+ tools[name]["description"],
110
+ )
104
111
  self.assertNotIn(
105
112
  "confirm_write", tools["appwrite_call_tool"]["inputSchema"]["properties"]
106
113
  )