mcp-server-appwrite 0.1.1__tar.gz → 0.1.3__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.
@@ -1,47 +1,54 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-server-appwrite
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: MCP (Model Context Protocol) server for Appwrite
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
7
- Requires-Dist: appwrite>=7.1.0
7
+ Requires-Dist: appwrite>=9.0.2
8
8
  Requires-Dist: mcp[cli]>=1.3.0
9
9
  Description-Content-Type: text/markdown
10
10
 
11
11
  # Appwrite MCP server
12
12
 
13
+ <!-- Cover image will go here once available -->
14
+
13
15
  ## Overview
14
16
 
15
17
  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
18
 
17
- Currently the server supports the following tools:
19
+ ## Quick Links
20
+ - [Configuration](#configuration)
21
+ - [Installation](#installation)
22
+ - IDE Integration:
23
+ - [Claude Desktop](#usage-with-claude-desktop)
24
+ - [Zed](#usage-with-zed)
25
+ - [Cursor](#usage-with-cursor)
26
+ - [Local Development](#local-development)
27
+ - [Debugging](#debugging)
28
+
29
+ Currently, the server supports the following tools:
18
30
 
19
31
  - [x] Databases
20
32
  - [x] Users
21
- - [x] Teams
22
- - [x] Messaging
23
- - [x] Locale
24
- - [x] Avatars
25
- - [x] Storage (Beta)
26
- - [x] Functions (Beta)
27
33
 
28
- > Please note that the Storage and Functions tools are currently in beta and methods like createFile and createDeployment are not yet supported.
34
+ > 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.
29
35
 
30
36
  ## Configuration
31
37
 
32
- Create a `.env` file in the directory you're runing the server from:
38
+ Create a `.env` file in the directory you're running the server from:
33
39
 
34
40
  ```env
35
41
  APPWRITE_API_KEY=your-api-key
36
42
  APPWRITE_PROJECT_ID=your-project-id
37
43
  APPWRITE_ENDPOINT=your-endpoint # Optional, defaults to https://cloud.appwrite.io/v1
38
44
  ```
45
+ > Note: Ensure that your API Key has the necessary scopes to access the resources you want to use.
39
46
 
40
47
  ## Installation
41
48
 
42
49
  ### Using uv (recommended)
43
50
  When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
44
- use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-sentry*.
51
+ use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-appwrite*.
45
52
 
46
53
  ```bash
47
54
  uvx run mcp-server-appwrite
@@ -58,33 +65,6 @@ Then run the server using
58
65
  python -m mcp_server_appwrite
59
66
  ```
60
67
 
61
- ## Local Development
62
-
63
- Clone the repository
64
-
65
- ```bash
66
- git clone https://github.com/appwrite/mcp.git
67
- ```
68
-
69
- Install `uv`
70
-
71
- ```bash
72
- curl -LsSf https://astral.sh/uv/install.sh | sh
73
- ```
74
-
75
- Create virtual environment
76
-
77
- ```bash
78
- uv venv
79
- source .venv/bin/activate
80
- ```
81
-
82
- Run the server
83
-
84
- ```bash
85
- uv run -v --directory ./ mcp-server-appwrite
86
- ```
87
-
88
68
  ## Usage with Claude Desktop
89
69
 
90
70
  Add this to your `claude_desktop_config.json`:
@@ -128,7 +108,7 @@ Add to your Zed settings.json:
128
108
  }
129
109
  ```
130
110
 
131
- ### Usage with [Cursor](https://www.cursor.com/)
111
+ ## Usage with [Cursor](https://www.cursor.com/)
132
112
 
133
113
  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.
134
114
 
@@ -138,6 +118,33 @@ APPWRITE_PROJECT_ID=your-project-id APPWRITE_API_KEY=your-api-key uvx mcp-server
138
118
 
139
119
  ![Cursor Settings](./images/cursor-integration.png)
140
120
 
121
+ ## Local Development
122
+
123
+ Clone the repository
124
+
125
+ ```bash
126
+ git clone https://github.com/appwrite/mcp.git
127
+ ```
128
+
129
+ Install `uv`
130
+
131
+ ```bash
132
+ curl -LsSf https://astral.sh/uv/install.sh | sh
133
+ ```
134
+
135
+ Create virtual environment
136
+
137
+ ```bash
138
+ uv venv
139
+ source .venv/bin/activate
140
+ ```
141
+
142
+ Run the server
143
+
144
+ ```bash
145
+ uv run -v --directory ./ mcp-server-appwrite
146
+ ```
147
+
141
148
  ## Debugging
142
149
 
143
150
  You can use the MCP inspector to debug the server.
@@ -164,4 +171,3 @@ This MCP server is licensed under the MIT License. This means you are free to us
164
171
  - https://portkey.ai/mcp-servers
165
172
  - https://www.claudemcp.com/servers
166
173
  - Add support for SSE server
167
- - Add suppport for resources
@@ -1,37 +1,44 @@
1
1
  # Appwrite MCP server
2
2
 
3
+ <!-- Cover image will go here once available -->
4
+
3
5
  ## Overview
4
6
 
5
7
  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.
6
8
 
7
- Currently the server supports the following tools:
9
+ ## Quick Links
10
+ - [Configuration](#configuration)
11
+ - [Installation](#installation)
12
+ - IDE Integration:
13
+ - [Claude Desktop](#usage-with-claude-desktop)
14
+ - [Zed](#usage-with-zed)
15
+ - [Cursor](#usage-with-cursor)
16
+ - [Local Development](#local-development)
17
+ - [Debugging](#debugging)
18
+
19
+ Currently, the server supports the following tools:
8
20
 
9
21
  - [x] Databases
10
22
  - [x] Users
11
- - [x] Teams
12
- - [x] Messaging
13
- - [x] Locale
14
- - [x] Avatars
15
- - [x] Storage (Beta)
16
- - [x] Functions (Beta)
17
23
 
18
- > Please note that the Storage and Functions tools are currently in beta and methods like createFile and createDeployment are not yet supported.
24
+ > 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.
19
25
 
20
26
  ## Configuration
21
27
 
22
- Create a `.env` file in the directory you're runing the server from:
28
+ Create a `.env` file in the directory you're running the server from:
23
29
 
24
30
  ```env
25
31
  APPWRITE_API_KEY=your-api-key
26
32
  APPWRITE_PROJECT_ID=your-project-id
27
33
  APPWRITE_ENDPOINT=your-endpoint # Optional, defaults to https://cloud.appwrite.io/v1
28
34
  ```
35
+ > Note: Ensure that your API Key has the necessary scopes to access the resources you want to use.
29
36
 
30
37
  ## Installation
31
38
 
32
39
  ### Using uv (recommended)
33
40
  When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
34
- use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-sentry*.
41
+ use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-appwrite*.
35
42
 
36
43
  ```bash
37
44
  uvx run mcp-server-appwrite
@@ -48,33 +55,6 @@ Then run the server using
48
55
  python -m mcp_server_appwrite
49
56
  ```
50
57
 
51
- ## Local Development
52
-
53
- Clone the repository
54
-
55
- ```bash
56
- git clone https://github.com/appwrite/mcp.git
57
- ```
58
-
59
- Install `uv`
60
-
61
- ```bash
62
- curl -LsSf https://astral.sh/uv/install.sh | sh
63
- ```
64
-
65
- Create virtual environment
66
-
67
- ```bash
68
- uv venv
69
- source .venv/bin/activate
70
- ```
71
-
72
- Run the server
73
-
74
- ```bash
75
- uv run -v --directory ./ mcp-server-appwrite
76
- ```
77
-
78
58
  ## Usage with Claude Desktop
79
59
 
80
60
  Add this to your `claude_desktop_config.json`:
@@ -118,7 +98,7 @@ Add to your Zed settings.json:
118
98
  }
119
99
  ```
120
100
 
121
- ### Usage with [Cursor](https://www.cursor.com/)
101
+ ## Usage with [Cursor](https://www.cursor.com/)
122
102
 
123
103
  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.
124
104
 
@@ -128,6 +108,33 @@ APPWRITE_PROJECT_ID=your-project-id APPWRITE_API_KEY=your-api-key uvx mcp-server
128
108
 
129
109
  ![Cursor Settings](./images/cursor-integration.png)
130
110
 
111
+ ## Local Development
112
+
113
+ Clone the repository
114
+
115
+ ```bash
116
+ git clone https://github.com/appwrite/mcp.git
117
+ ```
118
+
119
+ Install `uv`
120
+
121
+ ```bash
122
+ curl -LsSf https://astral.sh/uv/install.sh | sh
123
+ ```
124
+
125
+ Create virtual environment
126
+
127
+ ```bash
128
+ uv venv
129
+ source .venv/bin/activate
130
+ ```
131
+
132
+ Run the server
133
+
134
+ ```bash
135
+ uv run -v --directory ./ mcp-server-appwrite
136
+ ```
137
+
131
138
  ## Debugging
132
139
 
133
140
  You can use the MCP inspector to debug the server.
@@ -154,4 +161,3 @@ This MCP server is licensed under the MIT License. This means you are free to us
154
161
  - https://portkey.ai/mcp-servers
155
162
  - https://www.claudemcp.com/servers
156
163
  - Add support for SSE server
157
- - Add suppport for resources
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "mcp-server-appwrite"
3
- version = "0.1.1"
3
+ version = "0.1.3"
4
4
  description = "MCP (Model Context Protocol) server for Appwrite"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
7
7
  dependencies = [
8
- "appwrite>=7.1.0",
8
+ "appwrite>=9.0.2",
9
9
  "mcp[cli]>=1.3.0",
10
10
  ]
11
11
 
@@ -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,28 +52,41 @@ 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"))
47
- tools_manager.register_service(Service(Locale(client), "locale"))
48
- tools_manager.register_service(Service(Avatars(client), "avatars"))
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"))
49
86
 
50
87
  async def serve() -> Server:
51
88
  server = Server("Appwrite MCP Server")
52
89
 
53
- # @server.list_resources()
54
- # async def handle_list_resources() -> list[types.Resource]:
55
- # return tools_manager.get_all_resources()
56
-
57
- # @server.read_resource()
58
- # async def handle_read_resource(resource_id: str) -> str:
59
- # return tools_manager.get_resource(resource_id)
60
-
61
90
  @server.list_tools()
62
91
  async def handle_list_tools() -> list[types.Tool]:
63
92
  return tools_manager.get_all_tools()
@@ -86,6 +115,9 @@ async def serve() -> Server:
86
115
  return server
87
116
 
88
117
  async def _run():
118
+ args = parse_args()
119
+ register_services(args)
120
+
89
121
  async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
90
122
  server = await serve()
91
123
  await server.run(
@@ -93,7 +125,7 @@ async def _run():
93
125
  write_stream,
94
126
  InitializationOptions(
95
127
  server_name="appwrite",
96
- server_version="0.1.0",
128
+ server_version="0.1.3",
97
129
  capabilities=server.get_capabilities(
98
130
  notification_options=NotificationOptions(),
99
131
  experimental_capabilities={},
@@ -1,6 +1,6 @@
1
1
  version = 1
2
2
  revision = 1
3
- requires-python = ">=3.13"
3
+ requires-python = ">=3.12"
4
4
 
5
5
  [[package]]
6
6
  name = "annotated-types"
@@ -18,6 +18,7 @@ source = { registry = "https://pypi.org/simple" }
18
18
  dependencies = [
19
19
  { name = "idna" },
20
20
  { name = "sniffio" },
21
+ { name = "typing-extensions", marker = "python_full_version < '3.13'" },
21
22
  ]
22
23
  sdist = { url = "https://files.pythonhosted.org/packages/a3/73/199a98fc2dae33535d6b8e8e6ec01f8c1d76c9adb096c6b7d64823038cde/anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a", size = 181126 }
23
24
  wheels = [
@@ -26,14 +27,14 @@ wheels = [
26
27
 
27
28
  [[package]]
28
29
  name = "appwrite"
29
- version = "7.1.0"
30
+ version = "9.0.2"
30
31
  source = { registry = "https://pypi.org/simple" }
31
32
  dependencies = [
32
33
  { name = "requests" },
33
34
  ]
34
- sdist = { url = "https://files.pythonhosted.org/packages/9b/db/233d6ce6bb5c4621b77edbd631b80002eae30e63a46a5aa0bfa8710fa2db/appwrite-7.1.0.tar.gz", hash = "sha256:9d4f90398886b91dae2b70e2652c24d1b94705c0664c182feead5c3778e05ebc", size = 27096 }
35
+ sdist = { url = "https://files.pythonhosted.org/packages/8f/e4/f0d2b7161646876ab0b4dc9ab04cdb78679dd8f38cc62fe2b7a54c258044/appwrite-9.0.2.tar.gz", hash = "sha256:db0eef137e6a28743c9bed945134df0aa243e2829ac93c3b39b1070f76f525d9", size = 27620 }
35
36
  wheels = [
36
- { url = "https://files.pythonhosted.org/packages/1c/e3/b51c4fcfe67bc941a2bc7980ab5efe34c59e6e3b89429cc2e3ae66731a3c/appwrite-7.1.0-py3-none-any.whl", hash = "sha256:261306c7d87db9d88e5399f8e43e442ed2c5ea0672b2f236bdb5cfe6b11e4cd7", size = 34421 },
37
+ { url = "https://files.pythonhosted.org/packages/5d/2a/14cf02958d2790e109c2a10cb20cea58c1a069f5fac95b069f3cfc9c6c84/appwrite-9.0.2-py3-none-any.whl", hash = "sha256:0dbede0679f75bd2f890a227d44eca7e4e9abb420222e2fe55ea44ffbe4a1d74", size = 35307 },
37
38
  ]
38
39
 
39
40
  [[package]]
@@ -51,6 +52,19 @@ version = "3.4.1"
51
52
  source = { registry = "https://pypi.org/simple" }
52
53
  sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", size = 123188 }
53
54
  wheels = [
55
+ { url = "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", size = 196105 },
56
+ { url = "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", size = 140404 },
57
+ { url = "https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", size = 150423 },
58
+ { url = "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", size = 143184 },
59
+ { url = "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", size = 145268 },
60
+ { url = "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616", size = 147601 },
61
+ { url = "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", size = 141098 },
62
+ { url = "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", size = 149520 },
63
+ { url = "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", size = 152852 },
64
+ { url = "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", size = 150488 },
65
+ { url = "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", size = 146192 },
66
+ { url = "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", size = 95550 },
67
+ { url = "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", size = 102785 },
54
68
  { url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", size = 195698 },
55
69
  { url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", size = 140162 },
56
70
  { url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", size = 150263 },
@@ -182,7 +196,7 @@ cli = [
182
196
 
183
197
  [[package]]
184
198
  name = "mcp-server-appwrite"
185
- version = "0.1.0"
199
+ version = "0.1.3"
186
200
  source = { editable = "." }
187
201
  dependencies = [
188
202
  { name = "appwrite" },
@@ -191,7 +205,7 @@ dependencies = [
191
205
 
192
206
  [package.metadata]
193
207
  requires-dist = [
194
- { name = "appwrite", specifier = ">=7.1.0" },
208
+ { name = "appwrite", specifier = ">=9.0.2" },
195
209
  { name = "mcp", extras = ["cli"], specifier = ">=1.3.0" },
196
210
  ]
197
211
 
@@ -227,6 +241,20 @@ dependencies = [
227
241
  ]
228
242
  sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443 }
229
243
  wheels = [
244
+ { url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127 },
245
+ { url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340 },
246
+ { url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900 },
247
+ { url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177 },
248
+ { url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046 },
249
+ { url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386 },
250
+ { url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060 },
251
+ { url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870 },
252
+ { url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822 },
253
+ { url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364 },
254
+ { url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303 },
255
+ { url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064 },
256
+ { url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046 },
257
+ { url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092 },
230
258
  { url = "https://files.pythonhosted.org/packages/41/b1/9bc383f48f8002f99104e3acff6cba1231b29ef76cfa45d1506a5cad1f84/pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b", size = 1892709 },
231
259
  { url = "https://files.pythonhosted.org/packages/10/6c/e62b8657b834f3eb2961b49ec8e301eb99946245e70bf42c8817350cbefc/pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154", size = 1811273 },
232
260
  { url = "https://files.pythonhosted.org/packages/ba/15/52cfe49c8c986e081b863b102d6b859d9defc63446b642ccbbb3742bf371/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9", size = 1823027 },