mcp-server-appwrite 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl

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.
@@ -1,5 +1,8 @@
1
+ from __future__ import annotations
2
+ from typing import List
1
3
  import asyncio
2
4
  import os
5
+ import argparse
3
6
  import mcp.server.stdio
4
7
  import mcp.types as types
5
8
  from mcp.server import NotificationOptions, Server
@@ -19,6 +22,19 @@ from appwrite.exception import AppwriteException
19
22
  from .tool_manager import ToolManager
20
23
  from .service import Service
21
24
 
25
+ def parse_args():
26
+ parser = argparse.ArgumentParser(description='Appwrite MCP Server')
27
+ parser.add_argument('--databases', action='store_true', help='Enable Databases service')
28
+ parser.add_argument('--users', action='store_true', help='Enable Users service')
29
+ parser.add_argument('--teams', action='store_true', help='Enable Teams service')
30
+ parser.add_argument('--storage', action='store_true', help='Enable Storage service')
31
+ parser.add_argument('--functions', action='store_true', help='Enable Functions service')
32
+ parser.add_argument('--messaging', action='store_true', help='Enable Messaging service')
33
+ parser.add_argument('--locale', action='store_true', help='Enable Locale service')
34
+ parser.add_argument('--avatars', action='store_true', help='Enable Avatars service')
35
+ parser.add_argument('--all', action='store_true', help='Enable all services')
36
+ return parser.parse_args()
37
+
22
38
  # Load environment variables from .env file
23
39
  load_dotenv()
24
40
 
@@ -36,14 +52,37 @@ client.set_endpoint(endpoint)
36
52
  client.set_project(project_id)
37
53
  client.set_key(api_key)
38
54
 
39
- # Initialize tools manager and register services
55
+ # Initialize tools manager
40
56
  tools_manager = ToolManager()
41
- tools_manager.register_service(Service(Users(client), "users"))
42
- # tools_manager.register_service(Service(Teams(client), "teams"))
43
- tools_manager.register_service(Service(Databases(client), "databases"))
44
- # tools_manager.register_service(Service(Storage(client), "storage"))
45
- # tools_manager.register_service(Service(Functions(client), "functions"))
46
- # tools_manager.register_service(Service(Messaging(client), "messaging"))
57
+
58
+ def register_services(args):
59
+ # If --all is specified, enable all services
60
+ if args.all:
61
+ args.databases = args.users = args.teams = args.storage = True
62
+ args.functions = args.messaging = args.locale = args.avatars = True
63
+
64
+ # Register services based on CLI arguments
65
+ if args.databases:
66
+ tools_manager.register_service(Service(Databases(client), "databases"))
67
+ if args.users:
68
+ tools_manager.register_service(Service(Users(client), "users"))
69
+ if args.teams:
70
+ tools_manager.register_service(Service(Teams(client), "teams"))
71
+ if args.storage:
72
+ tools_manager.register_service(Service(Storage(client), "storage"))
73
+ if args.functions:
74
+ tools_manager.register_service(Service(Functions(client), "functions"))
75
+ if args.messaging:
76
+ tools_manager.register_service(Service(Messaging(client), "messaging"))
77
+ if args.locale:
78
+ tools_manager.register_service(Service(Locale(client), "locale"))
79
+ if args.avatars:
80
+ tools_manager.register_service(Service(Avatars(client), "avatars"))
81
+
82
+ # If no services were specified, enable databases by default
83
+ if not any([args.databases, args.users, args.teams, args.storage,
84
+ args.functions, args.messaging, args.locale, args.avatars]):
85
+ tools_manager.register_service(Service(Databases(client), "databases"))
47
86
 
48
87
  async def serve() -> Server:
49
88
  server = Server("Appwrite MCP Server")
@@ -76,6 +115,9 @@ async def serve() -> Server:
76
115
  return server
77
116
 
78
117
  async def _run():
118
+ args = parse_args()
119
+ register_services(args)
120
+
79
121
  async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
80
122
  server = await serve()
81
123
  await server.run(
@@ -83,7 +125,7 @@ async def _run():
83
125
  write_stream,
84
126
  InitializationOptions(
85
127
  server_name="appwrite",
86
- server_version="0.1.0",
128
+ server_version="0.1.4",
87
129
  capabilities=server.get_capabilities(
88
130
  notification_options=NotificationOptions(),
89
131
  experimental_capabilities={},
@@ -1,6 +1,7 @@
1
- from typing import Any, get_type_hints, Dict
1
+ from typing import Any, get_type_hints, Dict, List, Optional, Union
2
2
  import inspect
3
3
  from mcp.types import Tool
4
+ from docstring_parser import parse
4
5
 
5
6
  class Service():
6
7
  """Base class for all Appwrite services"""
@@ -29,7 +30,45 @@ class Service():
29
30
  list: "array",
30
31
  dict: "object"
31
32
  }
32
- return {"type": type_mapping.get(py_type, "string")}
33
+
34
+ # Handle basic types
35
+ if py_type in type_mapping:
36
+ return {"type": type_mapping[py_type]}
37
+
38
+ # Handle Optional types (Union[type, None])
39
+ if hasattr(py_type, "__origin__") and py_type.__origin__ is Union:
40
+ args = getattr(py_type, "__args__", ())
41
+ if len(args) == 2 and args[1] is type(None):
42
+ schema = self.python_type_to_json_schema(args[0])
43
+ return schema
44
+
45
+ # Handle List, Dict, and other generic types
46
+ if hasattr(py_type, "__origin__"):
47
+ origin = py_type.__origin__
48
+ args = getattr(py_type, "__args__", ())
49
+
50
+ # Handle List[T]
51
+ if origin is list or origin is List:
52
+ if args:
53
+ item_schema = self.python_type_to_json_schema(args[0])
54
+ return {
55
+ "type": "array",
56
+ "items": item_schema
57
+ }
58
+ return {"type": "array"}
59
+
60
+ # Handle Dict[K, V]
61
+ if origin is dict or origin is Dict:
62
+ if len(args) >= 2:
63
+ value_schema = self.python_type_to_json_schema(args[1])
64
+ return {
65
+ "type": "object",
66
+ "additionalProperties": value_schema
67
+ }
68
+ return {"type": "object"}
69
+
70
+ # Default to string for unknown types
71
+ return {"type": "string"}
33
72
 
34
73
  def list_tools(self) -> Dict[str, Dict]:
35
74
  """Lists all available tools for this service"""
@@ -48,7 +87,7 @@ class Service():
48
87
  # Get the overridden name if it exists
49
88
  tool_name = self._method_name_overrides.get(name, f"{self.service_name}_{name}")
50
89
 
51
- docstring = (original_func.__doc__ or "No description available").strip()
90
+ docstring = parse(original_func.__doc__)
52
91
  signature = inspect.signature(original_func)
53
92
  type_hints = get_type_hints(original_func)
54
93
 
@@ -62,13 +101,17 @@ class Service():
62
101
  param_type = type_hints.get(param_name, str)
63
102
  properties[param_name] = self.python_type_to_json_schema(param_type)
64
103
  properties[param_name]["description"] = f"Parameter '{param_name}'"
104
+
105
+ for doc_param in docstring.params:
106
+ if doc_param.arg_name == param_name:
107
+ properties[param_name]["description"] = doc_param.description
65
108
 
66
109
  if param.default is param.empty:
67
110
  required.append(param_name)
68
111
 
69
112
  tool_definition = Tool(
70
113
  name=tool_name,
71
- description=f"{docstring}",
114
+ description=f"{docstring.short_description or "No description available"}",
72
115
  inputSchema={
73
116
  "type": "object",
74
117
  "properties": properties,
@@ -0,0 +1,249 @@
1
+ Metadata-Version: 2.4
2
+ Name: mcp-server-appwrite
3
+ Version: 0.1.4
4
+ Summary: MCP (Model Context Protocol) server for Appwrite
5
+ License-File: LICENSE
6
+ Requires-Python: >=3.12
7
+ Requires-Dist: appwrite>=9.0.3
8
+ Requires-Dist: docstring-parser>=0.16
9
+ Requires-Dist: mcp[cli]>=1.3.0
10
+ Description-Content-Type: text/markdown
11
+
12
+ # Appwrite MCP server
13
+
14
+ <!-- Cover image will go here once available -->
15
+
16
+ <a href="https://glama.ai/mcp/servers/xkj2px7r0v">
17
+ <img width="380" height="200" src="https://glama.ai/mcp/servers/xkj2px7r0v/badge" alt="Appwrite MCP server" />
18
+ </a>
19
+
20
+ ## Overview
21
+
22
+ A Model Context Protocol server for interacting with Appwrite's API. This server provides tools to manage databases, users, functions, teams, and more within your Appwrite project.
23
+
24
+ ## Quick Links
25
+ - [Configuration](#configuration)
26
+ - [Installation](#installation)
27
+ - IDE Integration:
28
+ - [Claude Desktop](#usage-with-claude-desktop)
29
+ - [Cursor](#usage-with-cursor)
30
+ - [Windsurf Editor](#usage-with-windsurf-editor)
31
+ - [Local Development](#local-development)
32
+ - [Debugging](#debugging)
33
+
34
+ ## Configuration
35
+
36
+ > Before launching the MCP server, you must setup an [Appwrite project](https://cloud.appwrite.io/) and create an API key with the necessary scopes enabled.
37
+
38
+ Create a `.env` file in your working directory and add the following:
39
+
40
+ ```env
41
+ APPWRITE_PROJECT_ID=your-project-id
42
+ APPWRITE_API_KEY=your-api-key
43
+ APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
44
+ ```
45
+
46
+ Then, open your terminal and run the following command
47
+
48
+ ### Linux and MacOS
49
+
50
+ ```sh
51
+ source .env
52
+ ```
53
+
54
+ ### Windows
55
+
56
+ #### Command Prompt
57
+
58
+ ```cmd
59
+ for /f "tokens=1,2 delims==" %A in (.env) do set %A=%B
60
+ ```
61
+
62
+ #### PowerShell
63
+
64
+ ```powershell
65
+ Get-Content .\.env | ForEach-Object {
66
+ if ($_ -match '^(.*?)=(.*)$') {
67
+ [System.Environment]::SetEnvironmentVariable($matches[1], $matches[2], "Process")
68
+ }
69
+ }
70
+ ```
71
+
72
+ ## Installation
73
+
74
+ ### Using uv (recommended)
75
+ When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
76
+ use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-appwrite*.
77
+
78
+ ```bash
79
+ uvx mcp-server-appwrite [args]
80
+ ```
81
+
82
+ ### Using pip
83
+
84
+ ```bash
85
+ pip install mcp-server-appwrite
86
+ ```
87
+ Then run the server using
88
+
89
+ ```bash
90
+ python -m mcp_server_appwrite [args]
91
+ ```
92
+
93
+ ### Command-line arguments
94
+
95
+ Both the `uv` and `pip` setup processes require certain arguments to enable MCP tools for various Appwrite APIs.
96
+
97
+ > When an MCP tool is enabled, the tool's definition is passed to the LLM, using up tokens from the model's available context window. As a result, the effective context window is reduced.
98
+ >
99
+ > The default Appwrite MCP server ships with only the Databases tools (our most commonly used API) enabled to stay within these limits. Additional tools can be enabled by using the flags below.
100
+
101
+ | Argument | Description |
102
+ | --- | --- |
103
+ | `--databases` | Enables the Databases API |
104
+ | `--users` | Enables the Users API |
105
+ | `--teams` | Enables the Teams API |
106
+ | `--storage` | Enables the Storage API |
107
+ | `--functions` | Enables the Functions API |
108
+ | `--messaging` | Enables the Messaging API |
109
+ | `--locale` | Enables the Locale API |
110
+ | `--avatars` | Enables the Avatars API |
111
+ | `--all` | Enables all Appwrite APIs |
112
+
113
+ ## Usage with Claude Desktop
114
+
115
+ In the Claude Desktop app, open the app's **Settings** page (press `CTRL + ,` on Windows or `CMD + ,` on MacOS) and head to the **Developer** tab. Clicking on the **Edit Config** button will take you to the `claude_desktop_config.json` file, where you must add the following:
116
+
117
+ ```json
118
+ {
119
+ "mcpServers": {
120
+ "appwrite": {
121
+ "command": "uvx",
122
+ "args": [
123
+ "mcp-server-appwrite"
124
+ ],
125
+ "env": {
126
+ "APPWRITE_PROJECT_ID": "your-project-id",
127
+ "APPWRITE_API_KEY": "your-api-key",
128
+ "APPWRITE_ENDPOINT": "https://cloud.appwrite.io/v1" // Optional
129
+ }
130
+ }
131
+ }
132
+ }
133
+
134
+ ```
135
+
136
+ > Note: In case you see a `uvx ENOENT` error, ensure that you either add `uvx` to the `PATH` environment variable on your system or use the full path to your `uvx` installation in the config file.
137
+
138
+ Upon successful configuration, you should be able to see the server in the list of available servers in Claude Desktop.
139
+
140
+ ![Claude Desktop Config](images/claude-desktop-integration.png)
141
+
142
+ ## Usage with [Cursor](https://www.cursor.com/)
143
+
144
+ Head to Cursor `Settings > MCP` and click on **Add new MCP server**. Choose the type as `Command` and add the command below to the **Command** field.
145
+
146
+ - **MacOS**
147
+
148
+ ```bash
149
+ env APPWRITE_API_KEY=your-api-key env APPWRITE_PROJECT_ID=your-project-id uvx mcp-server-appwrite
150
+ ```
151
+
152
+ - **Windows**
153
+
154
+ ```cmd
155
+ cmd /c SET APPWRITE_PROJECT_ID=your-project-id && SET APPWRITE_API_KEY=your-api-key && uvx mcp-server-appwrite
156
+ ```
157
+
158
+ ![Cursor Settings](./images/cursor-integration.png)
159
+
160
+ ## Usage with [Windsurf Editor](https://codeium.com/windsurf)
161
+
162
+ Head to Windsurf `Settings > Cascade > Model Context Protocol (MCP) Servers` and click on **View raw config**. Update the `mcp_config.json` file to include the following:
163
+
164
+ ```json
165
+ {
166
+ "mcpServers": {
167
+ "appwrite": {
168
+ "command": "uvx",
169
+ "args": [
170
+ "mcp-server-appwrite"
171
+ ],
172
+ "env": {
173
+ "APPWRITE_PROJECT_ID": "your-project-id",
174
+ "APPWRITE_API_KEY": "your-api-key",
175
+ "APPWRITE_ENDPOINT": "https://cloud.appwrite.io/v1" // Optional
176
+ }
177
+ }
178
+ }
179
+ }
180
+ ```
181
+
182
+ ![Windsurf Settings](./images/windsurf-integration.png)
183
+
184
+ ## Local Development
185
+
186
+ ### Clone the repository
187
+
188
+ ```bash
189
+ git clone https://github.com/appwrite/mcp.git
190
+ ```
191
+
192
+ ### Install `uv`
193
+
194
+ - Linux or MacOS
195
+
196
+ ```bash
197
+ curl -LsSf https://astral.sh/uv/install.sh | sh
198
+ ```
199
+
200
+ - Windows (PowerShell)
201
+
202
+ ```powershell
203
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
204
+ ```
205
+
206
+ ### Prepare virtual environment
207
+
208
+ First, create a virtual environment.
209
+
210
+ ```bash
211
+ uv venv
212
+ ```
213
+
214
+ Next, activate the virtual environment.
215
+
216
+ - Linux or MacOS
217
+
218
+ ```bash
219
+ source .venv/bin/activate
220
+ ```
221
+
222
+ - Windows
223
+
224
+ ```powershell
225
+ .venv\Scripts\activate
226
+ ```
227
+
228
+ ### Run the server
229
+
230
+ ```bash
231
+ uv run -v --directory ./ mcp-server-appwrite
232
+ ```
233
+
234
+ ## Debugging
235
+
236
+ You can use the MCP inspector to debug the server.
237
+
238
+ ```bash
239
+ npx @modelcontextprotocol/inspector \
240
+ uv \
241
+ --directory . \
242
+ run mcp-server-appwrite
243
+ ```
244
+
245
+ Make sure your `.env` file is properly configured before running the inspector. You can then access the inspector at `http://localhost:5173`.
246
+
247
+ ## License
248
+
249
+ This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
@@ -0,0 +1,10 @@
1
+ mcp_server_appwrite/__init__.py,sha256=Od9oaUg_ckgJ4jIGa2HijocyauWDPjIC7cBRiV0P4s8,214
2
+ mcp_server_appwrite/__main__.py,sha256=bdaX6xMmFugzSR2QMdXJqanRx_Jh25jACJDqjE9cKEc,75
3
+ mcp_server_appwrite/server.py,sha256=JxNLY1O5lMUXUkBd2_kvN5mrh6dWsRPzX1VHi-XwCFs,5498
4
+ mcp_server_appwrite/service.py,sha256=H_Qr8bYFyXuJVwsPsWFi1xx12-aPM75yblKj11L4V2c,4640
5
+ mcp_server_appwrite/tool_manager.py,sha256=AfRjLyMpplYjF2VJna7frXDiDUZKRN8WQu9R8j3dxPc,718
6
+ mcp_server_appwrite-0.1.4.dist-info/METADATA,sha256=Kxq2jAAuvpUz1P1rBRNuauSf3Ipg0TIJx01NFt2JMpY,6565
7
+ mcp_server_appwrite-0.1.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8
+ mcp_server_appwrite-0.1.4.dist-info/entry_points.txt,sha256=-FBKUOp-Qmo9FldmiT3JUyF7djSeo8lLhxljOosuHkQ,74
9
+ mcp_server_appwrite-0.1.4.dist-info/licenses/LICENSE,sha256=PXzk1HbuQMAkLdHzwnBLTBIHFmgDZM0Ez2lw2gX2UQs,1096
10
+ mcp_server_appwrite-0.1.4.dist-info/RECORD,,
@@ -1,161 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: mcp-server-appwrite
3
- Version: 0.1.2
4
- Summary: MCP (Model Context Protocol) server for Appwrite
5
- License-File: LICENSE
6
- Requires-Python: >=3.12
7
- Requires-Dist: appwrite>=7.1.0
8
- Requires-Dist: mcp[cli]>=1.3.0
9
- Description-Content-Type: text/markdown
10
-
11
- # Appwrite MCP server
12
-
13
- ## Overview
14
-
15
- A Model Context Protocol server for interacting with Appwrite's API. This server provides tools to manage databases, users, functions, teams, and more within your Appwrite project.
16
-
17
- Currently the server supports the following tools:
18
-
19
- - [x] Databases
20
- - [x] Users
21
-
22
- > Please note that adding a lot of tools exceeds the context window of the LLM. As a result, we will make available a curated list of tools that are most commonly used.
23
-
24
- ## Configuration
25
-
26
- Create a `.env` file in the directory you're runing the server from:
27
-
28
- ```env
29
- APPWRITE_API_KEY=your-api-key
30
- APPWRITE_PROJECT_ID=your-project-id
31
- APPWRITE_ENDPOINT=your-endpoint # Optional, defaults to https://cloud.appwrite.io/v1
32
- ```
33
- > Note: Ensure that your API Key has the necessary scopes to access the resources you want to use.
34
-
35
- ## Installation
36
-
37
- ### Using uv (recommended)
38
- When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
39
- use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-sentry*.
40
-
41
- ```bash
42
- uvx run mcp-server-appwrite
43
- ```
44
-
45
- ### Using pip
46
-
47
- ```bash
48
- pip install mcp-server-appwrite
49
- ```
50
- Then run the server using
51
-
52
- ```bash
53
- python -m mcp_server_appwrite
54
- ```
55
-
56
- ## Usage with Claude Desktop
57
-
58
- Add this to your `claude_desktop_config.json`:
59
-
60
- ```json
61
- "mcpServers": {
62
- "appwrite": {
63
- "command": "uvx",
64
- "args": [
65
- "mcp-server-appwrite"
66
- ],
67
- "env": {
68
- "APPWRITE_PROJECT_ID": "your-project-id",
69
- "APPWRITE_API_KEY": "your-api-key",
70
- "APPWRITE_ENDPOINT": "your-endpoint" // Optional
71
- }
72
- }
73
- }
74
- ```
75
- Upon successful configuration, you should be able to see the server in the list of available servers in Claude Desktop.
76
-
77
- ![Claude Desktop Config](images/claude-desktop-integration.png)
78
-
79
- ## Usage with [Zed](https://github.com/zed-industries/zed)
80
-
81
- Add to your Zed settings.json:
82
-
83
- ```json
84
- "context_servers": {
85
- "appwrite": {
86
- "command": "uvx",
87
- "args": [
88
- "mcp-server-appwrite"
89
- ],
90
- "env": {
91
- "APPWRITE_PROJECT_ID": "your-project-id",
92
- "APPWRITE_API_KEY": "your-api-key",
93
- "APPWRITE_ENDPOINT": "your-endpoint" // Optional
94
- }
95
- }
96
- }
97
- ```
98
-
99
- ## Usage with [Cursor](https://www.cursor.com/)
100
-
101
- Head to Cursor `Settings > Features > MCP Servers` and click on **Add New MCP Server**. Choose the type as `Command` and add the command below to the **Command** field.
102
-
103
- ```bash
104
- APPWRITE_PROJECT_ID=your-project-id APPWRITE_API_KEY=your-api-key uvx mcp-server-appwrite
105
- ```
106
-
107
- ![Cursor Settings](./images/cursor-integration.png)
108
-
109
- ## Local Development
110
-
111
- Clone the repository
112
-
113
- ```bash
114
- git clone https://github.com/appwrite/mcp.git
115
- ```
116
-
117
- Install `uv`
118
-
119
- ```bash
120
- curl -LsSf https://astral.sh/uv/install.sh | sh
121
- ```
122
-
123
- Create virtual environment
124
-
125
- ```bash
126
- uv venv
127
- source .venv/bin/activate
128
- ```
129
-
130
- Run the server
131
-
132
- ```bash
133
- uv run -v --directory ./ mcp-server-appwrite
134
- ```
135
-
136
- ## Debugging
137
-
138
- You can use the MCP inspector to debug the server.
139
-
140
- ```bash
141
- npx @modelcontextprotocol/inspector \
142
- uv \
143
- --directory . \
144
- run mcp-server-appwrite
145
- ```
146
-
147
- Make sure your `.env` file is properly configured before running the inspector. You can then access the inspector at `http://localhost:5173`.
148
-
149
- ## License
150
-
151
- This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
152
-
153
- ## Todos
154
- - Add MCP server to registries
155
- - Glama
156
- - https://github.com/chatmcp/mcp-directory
157
- - https://mcp.so/
158
- - https://github.com/punkpeye/awesome-mcp-servers
159
- - https://portkey.ai/mcp-servers
160
- - https://www.claudemcp.com/servers
161
- - Add support for SSE server
@@ -1,10 +0,0 @@
1
- mcp_server_appwrite/__init__.py,sha256=Od9oaUg_ckgJ4jIGa2HijocyauWDPjIC7cBRiV0P4s8,214
2
- mcp_server_appwrite/__main__.py,sha256=bdaX6xMmFugzSR2QMdXJqanRx_Jh25jACJDqjE9cKEc,75
3
- mcp_server_appwrite/server.py,sha256=a6y26aJXQ-NbaUwq3Yud2XT3xlxD6QTBgALDAkz2Cfo,3527
4
- mcp_server_appwrite/service.py,sha256=WwKoh9o7W7ZOmhY0yg6k4R2cghQRe-yMTNbFtB6TFT8,2895
5
- mcp_server_appwrite/tool_manager.py,sha256=AfRjLyMpplYjF2VJna7frXDiDUZKRN8WQu9R8j3dxPc,718
6
- mcp_server_appwrite-0.1.2.dist-info/METADATA,sha256=VA_JFBLw_fdqFghwgqX3YvHmTWksvQlV4H-ycsFcLtA,3964
7
- mcp_server_appwrite-0.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8
- mcp_server_appwrite-0.1.2.dist-info/entry_points.txt,sha256=-FBKUOp-Qmo9FldmiT3JUyF7djSeo8lLhxljOosuHkQ,74
9
- mcp_server_appwrite-0.1.2.dist-info/licenses/LICENSE,sha256=PXzk1HbuQMAkLdHzwnBLTBIHFmgDZM0Ez2lw2gX2UQs,1096
10
- mcp_server_appwrite-0.1.2.dist-info/RECORD,,