mcp-server-appwrite 0.1.3__tar.gz → 0.1.4__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 (21) hide show
  1. mcp_server_appwrite-0.1.4/PKG-INFO +249 -0
  2. mcp_server_appwrite-0.1.4/README.md +238 -0
  3. mcp_server_appwrite-0.1.4/images/claude-desktop-integration.png +0 -0
  4. mcp_server_appwrite-0.1.4/images/cursor-integration.png +0 -0
  5. mcp_server_appwrite-0.1.4/images/windsurf-integration.png +0 -0
  6. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/pyproject.toml +3 -2
  7. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/src/mcp_server_appwrite/server.py +1 -1
  8. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/src/mcp_server_appwrite/service.py +47 -4
  9. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/uv.lock +16 -5
  10. mcp_server_appwrite-0.1.3/PKG-INFO +0 -173
  11. mcp_server_appwrite-0.1.3/README.md +0 -163
  12. mcp_server_appwrite-0.1.3/images/claude-desktop-integration.png +0 -0
  13. mcp_server_appwrite-0.1.3/images/cursor-integration.png +0 -0
  14. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/.env.example +0 -0
  15. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/.github/workflows/publish.yml +0 -0
  16. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/.gitignore +0 -0
  17. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/.python-version +0 -0
  18. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/LICENSE +0 -0
  19. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/src/mcp_server_appwrite/__init__.py +0 -0
  20. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/src/mcp_server_appwrite/__main__.py +0 -0
  21. {mcp_server_appwrite-0.1.3 → mcp_server_appwrite-0.1.4}/src/mcp_server_appwrite/tool_manager.py +0 -0
@@ -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,238 @@
1
+ # Appwrite MCP server
2
+
3
+ <!-- Cover image will go here once available -->
4
+
5
+ <a href="https://glama.ai/mcp/servers/xkj2px7r0v">
6
+ <img width="380" height="200" src="https://glama.ai/mcp/servers/xkj2px7r0v/badge" alt="Appwrite MCP server" />
7
+ </a>
8
+
9
+ ## Overview
10
+
11
+ 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.
12
+
13
+ ## Quick Links
14
+ - [Configuration](#configuration)
15
+ - [Installation](#installation)
16
+ - IDE Integration:
17
+ - [Claude Desktop](#usage-with-claude-desktop)
18
+ - [Cursor](#usage-with-cursor)
19
+ - [Windsurf Editor](#usage-with-windsurf-editor)
20
+ - [Local Development](#local-development)
21
+ - [Debugging](#debugging)
22
+
23
+ ## Configuration
24
+
25
+ > 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.
26
+
27
+ Create a `.env` file in your working directory and add the following:
28
+
29
+ ```env
30
+ APPWRITE_PROJECT_ID=your-project-id
31
+ APPWRITE_API_KEY=your-api-key
32
+ APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
33
+ ```
34
+
35
+ Then, open your terminal and run the following command
36
+
37
+ ### Linux and MacOS
38
+
39
+ ```sh
40
+ source .env
41
+ ```
42
+
43
+ ### Windows
44
+
45
+ #### Command Prompt
46
+
47
+ ```cmd
48
+ for /f "tokens=1,2 delims==" %A in (.env) do set %A=%B
49
+ ```
50
+
51
+ #### PowerShell
52
+
53
+ ```powershell
54
+ Get-Content .\.env | ForEach-Object {
55
+ if ($_ -match '^(.*?)=(.*)$') {
56
+ [System.Environment]::SetEnvironmentVariable($matches[1], $matches[2], "Process")
57
+ }
58
+ }
59
+ ```
60
+
61
+ ## Installation
62
+
63
+ ### Using uv (recommended)
64
+ When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
65
+ use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-appwrite*.
66
+
67
+ ```bash
68
+ uvx mcp-server-appwrite [args]
69
+ ```
70
+
71
+ ### Using pip
72
+
73
+ ```bash
74
+ pip install mcp-server-appwrite
75
+ ```
76
+ Then run the server using
77
+
78
+ ```bash
79
+ python -m mcp_server_appwrite [args]
80
+ ```
81
+
82
+ ### Command-line arguments
83
+
84
+ Both the `uv` and `pip` setup processes require certain arguments to enable MCP tools for various Appwrite APIs.
85
+
86
+ > 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.
87
+ >
88
+ > 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.
89
+
90
+ | Argument | Description |
91
+ | --- | --- |
92
+ | `--databases` | Enables the Databases API |
93
+ | `--users` | Enables the Users API |
94
+ | `--teams` | Enables the Teams API |
95
+ | `--storage` | Enables the Storage API |
96
+ | `--functions` | Enables the Functions API |
97
+ | `--messaging` | Enables the Messaging API |
98
+ | `--locale` | Enables the Locale API |
99
+ | `--avatars` | Enables the Avatars API |
100
+ | `--all` | Enables all Appwrite APIs |
101
+
102
+ ## Usage with Claude Desktop
103
+
104
+ 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:
105
+
106
+ ```json
107
+ {
108
+ "mcpServers": {
109
+ "appwrite": {
110
+ "command": "uvx",
111
+ "args": [
112
+ "mcp-server-appwrite"
113
+ ],
114
+ "env": {
115
+ "APPWRITE_PROJECT_ID": "your-project-id",
116
+ "APPWRITE_API_KEY": "your-api-key",
117
+ "APPWRITE_ENDPOINT": "https://cloud.appwrite.io/v1" // Optional
118
+ }
119
+ }
120
+ }
121
+ }
122
+
123
+ ```
124
+
125
+ > 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.
126
+
127
+ Upon successful configuration, you should be able to see the server in the list of available servers in Claude Desktop.
128
+
129
+ ![Claude Desktop Config](images/claude-desktop-integration.png)
130
+
131
+ ## Usage with [Cursor](https://www.cursor.com/)
132
+
133
+ 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.
134
+
135
+ - **MacOS**
136
+
137
+ ```bash
138
+ env APPWRITE_API_KEY=your-api-key env APPWRITE_PROJECT_ID=your-project-id uvx mcp-server-appwrite
139
+ ```
140
+
141
+ - **Windows**
142
+
143
+ ```cmd
144
+ cmd /c SET APPWRITE_PROJECT_ID=your-project-id && SET APPWRITE_API_KEY=your-api-key && uvx mcp-server-appwrite
145
+ ```
146
+
147
+ ![Cursor Settings](./images/cursor-integration.png)
148
+
149
+ ## Usage with [Windsurf Editor](https://codeium.com/windsurf)
150
+
151
+ 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:
152
+
153
+ ```json
154
+ {
155
+ "mcpServers": {
156
+ "appwrite": {
157
+ "command": "uvx",
158
+ "args": [
159
+ "mcp-server-appwrite"
160
+ ],
161
+ "env": {
162
+ "APPWRITE_PROJECT_ID": "your-project-id",
163
+ "APPWRITE_API_KEY": "your-api-key",
164
+ "APPWRITE_ENDPOINT": "https://cloud.appwrite.io/v1" // Optional
165
+ }
166
+ }
167
+ }
168
+ }
169
+ ```
170
+
171
+ ![Windsurf Settings](./images/windsurf-integration.png)
172
+
173
+ ## Local Development
174
+
175
+ ### Clone the repository
176
+
177
+ ```bash
178
+ git clone https://github.com/appwrite/mcp.git
179
+ ```
180
+
181
+ ### Install `uv`
182
+
183
+ - Linux or MacOS
184
+
185
+ ```bash
186
+ curl -LsSf https://astral.sh/uv/install.sh | sh
187
+ ```
188
+
189
+ - Windows (PowerShell)
190
+
191
+ ```powershell
192
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
193
+ ```
194
+
195
+ ### Prepare virtual environment
196
+
197
+ First, create a virtual environment.
198
+
199
+ ```bash
200
+ uv venv
201
+ ```
202
+
203
+ Next, activate the virtual environment.
204
+
205
+ - Linux or MacOS
206
+
207
+ ```bash
208
+ source .venv/bin/activate
209
+ ```
210
+
211
+ - Windows
212
+
213
+ ```powershell
214
+ .venv\Scripts\activate
215
+ ```
216
+
217
+ ### Run the server
218
+
219
+ ```bash
220
+ uv run -v --directory ./ mcp-server-appwrite
221
+ ```
222
+
223
+ ## Debugging
224
+
225
+ You can use the MCP inspector to debug the server.
226
+
227
+ ```bash
228
+ npx @modelcontextprotocol/inspector \
229
+ uv \
230
+ --directory . \
231
+ run mcp-server-appwrite
232
+ ```
233
+
234
+ Make sure your `.env` file is properly configured before running the inspector. You can then access the inspector at `http://localhost:5173`.
235
+
236
+ ## License
237
+
238
+ 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.
@@ -1,11 +1,12 @@
1
1
  [project]
2
2
  name = "mcp-server-appwrite"
3
- version = "0.1.3"
3
+ version = "0.1.4"
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>=9.0.2",
8
+ "appwrite>=9.0.3",
9
+ "docstring-parser>=0.16",
9
10
  "mcp[cli]>=1.3.0",
10
11
  ]
11
12
 
@@ -125,7 +125,7 @@ async def _run():
125
125
  write_stream,
126
126
  InitializationOptions(
127
127
  server_name="appwrite",
128
- server_version="0.1.3",
128
+ server_version="0.1.4",
129
129
  capabilities=server.get_capabilities(
130
130
  notification_options=NotificationOptions(),
131
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,
@@ -27,14 +27,14 @@ wheels = [
27
27
 
28
28
  [[package]]
29
29
  name = "appwrite"
30
- version = "9.0.2"
30
+ version = "9.0.3"
31
31
  source = { registry = "https://pypi.org/simple" }
32
32
  dependencies = [
33
33
  { name = "requests" },
34
34
  ]
35
- sdist = { url = "https://files.pythonhosted.org/packages/8f/e4/f0d2b7161646876ab0b4dc9ab04cdb78679dd8f38cc62fe2b7a54c258044/appwrite-9.0.2.tar.gz", hash = "sha256:db0eef137e6a28743c9bed945134df0aa243e2829ac93c3b39b1070f76f525d9", size = 27620 }
35
+ sdist = { url = "https://files.pythonhosted.org/packages/62/1e/44b16ae98909aef53b842f22a685139963b27a8341a8cdf20bc62728cab1/appwrite-9.0.3.tar.gz", hash = "sha256:cc003f37f1b87e80db376122fa0e2d85ed14672c15be2295fc60f37b314a69d2", size = 47975 }
36
36
  wheels = [
37
- { url = "https://files.pythonhosted.org/packages/5d/2a/14cf02958d2790e109c2a10cb20cea58c1a069f5fac95b069f3cfc9c6c84/appwrite-9.0.2-py3-none-any.whl", hash = "sha256:0dbede0679f75bd2f890a227d44eca7e4e9abb420222e2fe55ea44ffbe4a1d74", size = 35307 },
37
+ { url = "https://files.pythonhosted.org/packages/37/5b/88eebc3dcb4c155b1687814775665a92785248b147625077b623d5c8997a/appwrite-9.0.3-py3-none-any.whl", hash = "sha256:d3c82d68c9dde539fa82c4a2ba2cc61efa24483ec243aefbf45dac42e15118cf", size = 58572 },
38
38
  ]
39
39
 
40
40
  [[package]]
@@ -102,6 +102,15 @@ wheels = [
102
102
  { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
103
103
  ]
104
104
 
105
+ [[package]]
106
+ name = "docstring-parser"
107
+ version = "0.16"
108
+ source = { registry = "https://pypi.org/simple" }
109
+ sdist = { url = "https://files.pythonhosted.org/packages/08/12/9c22a58c0b1e29271051222d8906257616da84135af9ed167c9e28f85cb3/docstring_parser-0.16.tar.gz", hash = "sha256:538beabd0af1e2db0146b6bd3caa526c35a34d61af9fd2887f3a8a27a739aa6e", size = 26565 }
110
+ wheels = [
111
+ { url = "https://files.pythonhosted.org/packages/d5/7c/e9fcff7623954d86bdc17782036cbf715ecab1bec4847c008557affe1ca8/docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637", size = 36533 },
112
+ ]
113
+
105
114
  [[package]]
106
115
  name = "h11"
107
116
  version = "0.14.0"
@@ -196,16 +205,18 @@ cli = [
196
205
 
197
206
  [[package]]
198
207
  name = "mcp-server-appwrite"
199
- version = "0.1.3"
208
+ version = "0.1.4"
200
209
  source = { editable = "." }
201
210
  dependencies = [
202
211
  { name = "appwrite" },
212
+ { name = "docstring-parser" },
203
213
  { name = "mcp", extra = ["cli"] },
204
214
  ]
205
215
 
206
216
  [package.metadata]
207
217
  requires-dist = [
208
- { name = "appwrite", specifier = ">=9.0.2" },
218
+ { name = "appwrite", specifier = ">=9.0.3" },
219
+ { name = "docstring-parser", specifier = ">=0.16" },
209
220
  { name = "mcp", extras = ["cli"], specifier = ">=1.3.0" },
210
221
  ]
211
222
 
@@ -1,173 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: mcp-server-appwrite
3
- Version: 0.1.3
4
- Summary: MCP (Model Context Protocol) server for Appwrite
5
- License-File: LICENSE
6
- Requires-Python: >=3.12
7
- Requires-Dist: appwrite>=9.0.2
8
- Requires-Dist: mcp[cli]>=1.3.0
9
- Description-Content-Type: text/markdown
10
-
11
- # Appwrite MCP server
12
-
13
- <!-- Cover image will go here once available -->
14
-
15
- ## Overview
16
-
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.
18
-
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:
30
-
31
- - [x] Databases
32
- - [x] Users
33
-
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.
35
-
36
- ## Configuration
37
-
38
- Create a `.env` file in the directory you're running the server from:
39
-
40
- ```env
41
- APPWRITE_API_KEY=your-api-key
42
- APPWRITE_PROJECT_ID=your-project-id
43
- APPWRITE_ENDPOINT=your-endpoint # Optional, defaults to https://cloud.appwrite.io/v1
44
- ```
45
- > Note: Ensure that your API Key has the necessary scopes to access the resources you want to use.
46
-
47
- ## Installation
48
-
49
- ### Using uv (recommended)
50
- When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
51
- use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-appwrite*.
52
-
53
- ```bash
54
- uvx run mcp-server-appwrite
55
- ```
56
-
57
- ### Using pip
58
-
59
- ```bash
60
- pip install mcp-server-appwrite
61
- ```
62
- Then run the server using
63
-
64
- ```bash
65
- python -m mcp_server_appwrite
66
- ```
67
-
68
- ## Usage with Claude Desktop
69
-
70
- Add this to your `claude_desktop_config.json`:
71
-
72
- ```json
73
- "mcpServers": {
74
- "appwrite": {
75
- "command": "uvx",
76
- "args": [
77
- "mcp-server-appwrite"
78
- ],
79
- "env": {
80
- "APPWRITE_PROJECT_ID": "your-project-id",
81
- "APPWRITE_API_KEY": "your-api-key",
82
- "APPWRITE_ENDPOINT": "your-endpoint" // Optional
83
- }
84
- }
85
- }
86
- ```
87
- Upon successful configuration, you should be able to see the server in the list of available servers in Claude Desktop.
88
-
89
- ![Claude Desktop Config](images/claude-desktop-integration.png)
90
-
91
- ## Usage with [Zed](https://github.com/zed-industries/zed)
92
-
93
- Add to your Zed settings.json:
94
-
95
- ```json
96
- "context_servers": {
97
- "appwrite": {
98
- "command": "uvx",
99
- "args": [
100
- "mcp-server-appwrite"
101
- ],
102
- "env": {
103
- "APPWRITE_PROJECT_ID": "your-project-id",
104
- "APPWRITE_API_KEY": "your-api-key",
105
- "APPWRITE_ENDPOINT": "your-endpoint" // Optional
106
- }
107
- }
108
- }
109
- ```
110
-
111
- ## Usage with [Cursor](https://www.cursor.com/)
112
-
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.
114
-
115
- ```bash
116
- APPWRITE_PROJECT_ID=your-project-id APPWRITE_API_KEY=your-api-key uvx mcp-server-appwrite
117
- ```
118
-
119
- ![Cursor Settings](./images/cursor-integration.png)
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
-
148
- ## Debugging
149
-
150
- You can use the MCP inspector to debug the server.
151
-
152
- ```bash
153
- npx @modelcontextprotocol/inspector \
154
- uv \
155
- --directory . \
156
- run mcp-server-appwrite
157
- ```
158
-
159
- Make sure your `.env` file is properly configured before running the inspector. You can then access the inspector at `http://localhost:5173`.
160
-
161
- ## License
162
-
163
- 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.
164
-
165
- ## Todos
166
- - Add MCP server to registries
167
- - Glama
168
- - https://github.com/chatmcp/mcp-directory
169
- - https://mcp.so/
170
- - https://github.com/punkpeye/awesome-mcp-servers
171
- - https://portkey.ai/mcp-servers
172
- - https://www.claudemcp.com/servers
173
- - Add support for SSE server
@@ -1,163 +0,0 @@
1
- # Appwrite MCP server
2
-
3
- <!-- Cover image will go here once available -->
4
-
5
- ## Overview
6
-
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.
8
-
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:
20
-
21
- - [x] Databases
22
- - [x] Users
23
-
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.
25
-
26
- ## Configuration
27
-
28
- Create a `.env` file in the directory you're running the server from:
29
-
30
- ```env
31
- APPWRITE_API_KEY=your-api-key
32
- APPWRITE_PROJECT_ID=your-project-id
33
- APPWRITE_ENDPOINT=your-endpoint # Optional, defaults to https://cloud.appwrite.io/v1
34
- ```
35
- > Note: Ensure that your API Key has the necessary scopes to access the resources you want to use.
36
-
37
- ## Installation
38
-
39
- ### Using uv (recommended)
40
- When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
41
- use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-appwrite*.
42
-
43
- ```bash
44
- uvx run mcp-server-appwrite
45
- ```
46
-
47
- ### Using pip
48
-
49
- ```bash
50
- pip install mcp-server-appwrite
51
- ```
52
- Then run the server using
53
-
54
- ```bash
55
- python -m mcp_server_appwrite
56
- ```
57
-
58
- ## Usage with Claude Desktop
59
-
60
- Add this to your `claude_desktop_config.json`:
61
-
62
- ```json
63
- "mcpServers": {
64
- "appwrite": {
65
- "command": "uvx",
66
- "args": [
67
- "mcp-server-appwrite"
68
- ],
69
- "env": {
70
- "APPWRITE_PROJECT_ID": "your-project-id",
71
- "APPWRITE_API_KEY": "your-api-key",
72
- "APPWRITE_ENDPOINT": "your-endpoint" // Optional
73
- }
74
- }
75
- }
76
- ```
77
- Upon successful configuration, you should be able to see the server in the list of available servers in Claude Desktop.
78
-
79
- ![Claude Desktop Config](images/claude-desktop-integration.png)
80
-
81
- ## Usage with [Zed](https://github.com/zed-industries/zed)
82
-
83
- Add to your Zed settings.json:
84
-
85
- ```json
86
- "context_servers": {
87
- "appwrite": {
88
- "command": "uvx",
89
- "args": [
90
- "mcp-server-appwrite"
91
- ],
92
- "env": {
93
- "APPWRITE_PROJECT_ID": "your-project-id",
94
- "APPWRITE_API_KEY": "your-api-key",
95
- "APPWRITE_ENDPOINT": "your-endpoint" // Optional
96
- }
97
- }
98
- }
99
- ```
100
-
101
- ## Usage with [Cursor](https://www.cursor.com/)
102
-
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.
104
-
105
- ```bash
106
- APPWRITE_PROJECT_ID=your-project-id APPWRITE_API_KEY=your-api-key uvx mcp-server-appwrite
107
- ```
108
-
109
- ![Cursor Settings](./images/cursor-integration.png)
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
-
138
- ## Debugging
139
-
140
- You can use the MCP inspector to debug the server.
141
-
142
- ```bash
143
- npx @modelcontextprotocol/inspector \
144
- uv \
145
- --directory . \
146
- run mcp-server-appwrite
147
- ```
148
-
149
- Make sure your `.env` file is properly configured before running the inspector. You can then access the inspector at `http://localhost:5173`.
150
-
151
- ## License
152
-
153
- 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.
154
-
155
- ## Todos
156
- - Add MCP server to registries
157
- - Glama
158
- - https://github.com/chatmcp/mcp-directory
159
- - https://mcp.so/
160
- - https://github.com/punkpeye/awesome-mcp-servers
161
- - https://portkey.ai/mcp-servers
162
- - https://www.claudemcp.com/servers
163
- - Add support for SSE server