mcp-server-appwrite 0.3.2__tar.gz → 0.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.
- mcp_server_appwrite-0.4/.github/workflows/ci.yml +74 -0
- mcp_server_appwrite-0.4/.github/workflows/publish.yml +32 -0
- mcp_server_appwrite-0.3.2/README.md → mcp_server_appwrite-0.4/PKG-INFO +50 -23
- mcp_server_appwrite-0.3.2/PKG-INFO → mcp_server_appwrite-0.4/README.md +33 -34
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/pyproject.toml +18 -1
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/server.json +3 -3
- mcp_server_appwrite-0.4/src/mcp_server_appwrite/__init__.py +16 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/src/mcp_server_appwrite/__main__.py +1 -1
- mcp_server_appwrite-0.4/src/mcp_server_appwrite/operator.py +656 -0
- mcp_server_appwrite-0.4/src/mcp_server_appwrite/server.py +560 -0
- mcp_server_appwrite-0.4/src/mcp_server_appwrite/service.py +209 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/src/mcp_server_appwrite/tool_manager.py +5 -4
- mcp_server_appwrite-0.4/tests/integration/support.py +270 -0
- mcp_server_appwrite-0.4/tests/integration/test_avatars.py +12 -0
- mcp_server_appwrite-0.4/tests/integration/test_functions.py +52 -0
- mcp_server_appwrite-0.4/tests/integration/test_locale.py +12 -0
- mcp_server_appwrite-0.4/tests/integration/test_messaging.py +37 -0
- mcp_server_appwrite-0.4/tests/integration/test_operator.py +17 -0
- mcp_server_appwrite-0.4/tests/integration/test_sites.py +51 -0
- mcp_server_appwrite-0.4/tests/integration/test_storage.py +47 -0
- mcp_server_appwrite-0.4/tests/integration/test_tables_db.py +63 -0
- mcp_server_appwrite-0.4/tests/integration/test_teams.py +50 -0
- mcp_server_appwrite-0.4/tests/integration/test_users.py +32 -0
- mcp_server_appwrite-0.4/tests/test_all.py +26 -0
- mcp_server_appwrite-0.4/tests/unit/test_operator.py +183 -0
- mcp_server_appwrite-0.4/tests/unit/test_server.py +355 -0
- mcp_server_appwrite-0.4/tests/unit/test_service.py +68 -0
- mcp_server_appwrite-0.4/uv.lock +769 -0
- mcp_server_appwrite-0.3.2/.github/workflows/publish.yml +0 -56
- mcp_server_appwrite-0.3.2/src/mcp_server_appwrite/__init__.py +0 -11
- mcp_server_appwrite-0.3.2/src/mcp_server_appwrite/server.py +0 -146
- mcp_server_appwrite-0.3.2/src/mcp_server_appwrite/service.py +0 -127
- mcp_server_appwrite-0.3.2/uv.lock +0 -431
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/.env.example +0 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/.gitignore +0 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/.python-version +0 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/LICENSE +0 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/images/appwrite-logo-darkbg.png +0 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/images/appwrite-logo-lightbg.png +0 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/images/claude-desktop-integration.png +0 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/images/cursor-integration.png +0 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/images/vs-code-integration.png +0 -0
- {mcp_server_appwrite-0.3.2 → mcp_server_appwrite-0.4}/images/windsurf-integration.png +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
format:
|
|
9
|
+
name: Format
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- name: Check out code
|
|
13
|
+
uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- name: Set up Python
|
|
16
|
+
uses: actions/setup-python@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: "3.12"
|
|
19
|
+
|
|
20
|
+
- name: Set up uv
|
|
21
|
+
uses: astral-sh/setup-uv@v7
|
|
22
|
+
|
|
23
|
+
- name: Install dev dependencies
|
|
24
|
+
run: uv sync --group dev
|
|
25
|
+
|
|
26
|
+
- name: Check formatting
|
|
27
|
+
run: uv run --group dev black --check src tests
|
|
28
|
+
|
|
29
|
+
unit:
|
|
30
|
+
name: Unit
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
steps:
|
|
33
|
+
- name: Check out code
|
|
34
|
+
uses: actions/checkout@v4
|
|
35
|
+
|
|
36
|
+
- name: Set up Python
|
|
37
|
+
uses: actions/setup-python@v5
|
|
38
|
+
with:
|
|
39
|
+
python-version: "3.12"
|
|
40
|
+
|
|
41
|
+
- name: Set up uv
|
|
42
|
+
uses: astral-sh/setup-uv@v7
|
|
43
|
+
|
|
44
|
+
- name: Install dependencies
|
|
45
|
+
run: uv sync
|
|
46
|
+
|
|
47
|
+
- name: Run unit tests
|
|
48
|
+
run: uv run python -m unittest discover -s tests/unit -v
|
|
49
|
+
|
|
50
|
+
integration:
|
|
51
|
+
name: Integration
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
|
|
54
|
+
env:
|
|
55
|
+
APPWRITE_PROJECT_ID: ${{ secrets.APPWRITE_PROJECT_ID }}
|
|
56
|
+
APPWRITE_API_KEY: ${{ secrets.APPWRITE_API_KEY }}
|
|
57
|
+
APPWRITE_ENDPOINT: ${{ secrets.APPWRITE_ENDPOINT }}
|
|
58
|
+
steps:
|
|
59
|
+
- name: Check out code
|
|
60
|
+
uses: actions/checkout@v4
|
|
61
|
+
|
|
62
|
+
- name: Set up Python
|
|
63
|
+
uses: actions/setup-python@v5
|
|
64
|
+
with:
|
|
65
|
+
python-version: "3.12"
|
|
66
|
+
|
|
67
|
+
- name: Set up uv
|
|
68
|
+
uses: astral-sh/setup-uv@v7
|
|
69
|
+
|
|
70
|
+
- name: Install dependencies
|
|
71
|
+
run: uv sync --extra integration
|
|
72
|
+
|
|
73
|
+
- name: Run integration tests
|
|
74
|
+
run: uv run --extra integration python -m unittest discover -s tests/integration -v
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
publish:
|
|
9
|
+
name: Release build and publish
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- name: Check out code
|
|
13
|
+
uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- name: Set up Python
|
|
16
|
+
uses: actions/setup-python@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: "3.12"
|
|
19
|
+
|
|
20
|
+
- name: Install build dependencies
|
|
21
|
+
run: |
|
|
22
|
+
python -m pip install --upgrade pip
|
|
23
|
+
pip install build twine
|
|
24
|
+
|
|
25
|
+
- name: Build package
|
|
26
|
+
run: python -m build
|
|
27
|
+
|
|
28
|
+
- name: Publish to PyPI
|
|
29
|
+
env:
|
|
30
|
+
TWINE_USERNAME: __token__
|
|
31
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
32
|
+
run: twine upload dist/*
|
|
@@ -1,8 +1,25 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mcp-server-appwrite
|
|
3
|
+
Version: 0.4
|
|
4
|
+
Summary: MCP (Model Context Protocol) server for Appwrite
|
|
5
|
+
License-File: LICENSE
|
|
6
|
+
Requires-Python: >=3.12
|
|
7
|
+
Requires-Dist: appwrite>=13.4.1
|
|
8
|
+
Requires-Dist: docstring-parser>=0.16
|
|
9
|
+
Requires-Dist: mcp[cli]>=1.3.0
|
|
10
|
+
Requires-Dist: python-dotenv>=1.0.1
|
|
11
|
+
Provides-Extra: integration
|
|
12
|
+
Requires-Dist: argon2-cffi>=23.1.0; extra == 'integration'
|
|
13
|
+
Requires-Dist: bcrypt>=4.1.2; extra == 'integration'
|
|
14
|
+
Requires-Dist: passlib>=1.7.4; extra == 'integration'
|
|
15
|
+
Requires-Dist: pycryptodome>=3.20.0; extra == 'integration'
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
|
|
1
18
|
# Appwrite MCP server
|
|
2
19
|
|
|
3
20
|
mcp-name: io.github.appwrite/mcp-for-api
|
|
4
21
|
|
|
5
|
-
[](https://cursor.com/install-mcp?name=appwrite&config
|
|
22
|
+
[](https://cursor.com/install-mcp?name=appwrite&config=%7B%22command%22%3A%22uvx%20mcp-server-appwrite%22%2C%22env%22%3A%7B%22APPWRITE_API_KEY%22%3A%22%3Cyour-api-key%3E%22%2C%22APPWRITE_PROJECT_ID%22%3A%22%3Cyour-project-id%3E%22%2C%22APPWRITE_ENDPOINT%22%3A%22https%3A//%3CREGION%3E.cloud.appwrite.io/v1%22%7D%7D)
|
|
6
23
|
|
|
7
24
|
## Overview
|
|
8
25
|
|
|
@@ -23,6 +40,8 @@ A Model Context Protocol server for interacting with Appwrite's API. This server
|
|
|
23
40
|
|
|
24
41
|
> 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.
|
|
25
42
|
|
|
43
|
+
The server validates the credentials and scopes required for its built-in Appwrite service set during startup. If the endpoint, project ID, API key, or scopes are wrong, the MCP server will fail to start instead of waiting for the first tool call to fail.
|
|
44
|
+
|
|
26
45
|
Create a `.env` file in your working directory and add the following:
|
|
27
46
|
|
|
28
47
|
```env
|
|
@@ -64,7 +83,7 @@ When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed
|
|
|
64
83
|
use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-appwrite*.
|
|
65
84
|
|
|
66
85
|
```bash
|
|
67
|
-
uvx mcp-server-appwrite
|
|
86
|
+
uvx mcp-server-appwrite
|
|
68
87
|
```
|
|
69
88
|
|
|
70
89
|
### Using pip
|
|
@@ -75,30 +94,22 @@ pip install mcp-server-appwrite
|
|
|
75
94
|
Then run the server using
|
|
76
95
|
|
|
77
96
|
```bash
|
|
78
|
-
python -m mcp_server_appwrite
|
|
97
|
+
python -m mcp_server_appwrite
|
|
79
98
|
```
|
|
80
99
|
|
|
81
|
-
###
|
|
100
|
+
### Tool surface
|
|
82
101
|
|
|
83
|
-
|
|
102
|
+
The server no longer accepts service-selection or mode flags. It always starts in a compact workflow so the MCP client only sees a small operator-style surface while the full Appwrite catalog stays internal.
|
|
84
103
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
104
|
+
- Only 2 MCP tools are exposed to the model:
|
|
105
|
+
- `appwrite_search_tools`
|
|
106
|
+
- `appwrite_call_tool`
|
|
107
|
+
- The full Appwrite tool catalog stays internal and is searched at runtime.
|
|
108
|
+
- Large tool outputs are stored as MCP resources and returned as preview text plus a resource URI.
|
|
109
|
+
- Mutating hidden tools require `confirm_write=true`.
|
|
110
|
+
- The server automatically registers all supported Appwrite services except the legacy Databases API.
|
|
88
111
|
|
|
89
|
-
|
|
90
|
-
| --- | --- |
|
|
91
|
-
| `--tablesdb` | Enables the TablesDB API |
|
|
92
|
-
| `--users` | Enables the Users API |
|
|
93
|
-
| `--teams` | Enables the Teams API |
|
|
94
|
-
| `--storage` | Enables the Storage API |
|
|
95
|
-
| `--functions` | Enables the Functions API |
|
|
96
|
-
| `--messaging` | Enables the Messaging API |
|
|
97
|
-
| `--locale` | Enables the Locale API |
|
|
98
|
-
| `--avatars` | Enables the Avatars API |
|
|
99
|
-
| `--sites` | Enables the Sites API |
|
|
100
|
-
| `--all` | Enables all Appwrite APIs |
|
|
101
|
-
| `--databases` | Enables the Legacy Databases API |
|
|
112
|
+
If you still have older MCP configs that pass flags such as `--mode` or `--users`, remove them.
|
|
102
113
|
|
|
103
114
|
## Usage with Claude Desktop
|
|
104
115
|
|
|
@@ -184,7 +195,7 @@ Head to Windsurf `Settings > Cascade > Model Context Protocol (MCP) Servers` and
|
|
|
184
195
|
"servers": {
|
|
185
196
|
"appwrite": {
|
|
186
197
|
"command": "uvx",
|
|
187
|
-
"args": ["mcp-server-appwrite"
|
|
198
|
+
"args": ["mcp-server-appwrite"],
|
|
188
199
|
"env": {
|
|
189
200
|
"APPWRITE_PROJECT_ID": "<YOUR_PROJECT_ID>",
|
|
190
201
|
"APPWRITE_API_KEY": "<YOUR_API_KEY>",
|
|
@@ -206,7 +217,7 @@ Head to Windsurf `Settings > Cascade > Model Context Protocol (MCP) Servers` and
|
|
|
206
217
|
### Clone the repository
|
|
207
218
|
|
|
208
219
|
```bash
|
|
209
|
-
git clone https://github.com/appwrite/mcp.git
|
|
220
|
+
git clone https://github.com/appwrite/mcp-for-api.git
|
|
210
221
|
```
|
|
211
222
|
|
|
212
223
|
### Install `uv`
|
|
@@ -251,6 +262,22 @@ source .venv/bin/activate
|
|
|
251
262
|
uv run -v --directory ./ mcp-server-appwrite
|
|
252
263
|
```
|
|
253
264
|
|
|
265
|
+
## Testing
|
|
266
|
+
|
|
267
|
+
### Unit tests
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
uv run python -m unittest discover -s tests/unit -v
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Live integration tests
|
|
274
|
+
|
|
275
|
+
These tests create and delete real Appwrite resources against a real Appwrite project. They run automatically when valid Appwrite credentials are available in the environment or `.env`.
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
uv run --extra integration python -m unittest discover -s tests/integration -v
|
|
279
|
+
```
|
|
280
|
+
|
|
254
281
|
## Debugging
|
|
255
282
|
|
|
256
283
|
You can use the MCP inspector to debug the server.
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: mcp-server-appwrite
|
|
3
|
-
Version: 0.3.2
|
|
4
|
-
Summary: MCP (Model Context Protocol) server for Appwrite
|
|
5
|
-
License-File: LICENSE
|
|
6
|
-
Requires-Python: >=3.12
|
|
7
|
-
Requires-Dist: appwrite>=13.4.1
|
|
8
|
-
Requires-Dist: docstring-parser>=0.16
|
|
9
|
-
Requires-Dist: mcp[cli]>=1.3.0
|
|
10
|
-
Description-Content-Type: text/markdown
|
|
11
|
-
|
|
12
1
|
# Appwrite MCP server
|
|
13
2
|
|
|
14
3
|
mcp-name: io.github.appwrite/mcp-for-api
|
|
15
4
|
|
|
16
|
-
[](https://cursor.com/install-mcp?name=appwrite&config
|
|
5
|
+
[](https://cursor.com/install-mcp?name=appwrite&config=%7B%22command%22%3A%22uvx%20mcp-server-appwrite%22%2C%22env%22%3A%7B%22APPWRITE_API_KEY%22%3A%22%3Cyour-api-key%3E%22%2C%22APPWRITE_PROJECT_ID%22%3A%22%3Cyour-project-id%3E%22%2C%22APPWRITE_ENDPOINT%22%3A%22https%3A//%3CREGION%3E.cloud.appwrite.io/v1%22%7D%7D)
|
|
17
6
|
|
|
18
7
|
## Overview
|
|
19
8
|
|
|
@@ -34,6 +23,8 @@ A Model Context Protocol server for interacting with Appwrite's API. This server
|
|
|
34
23
|
|
|
35
24
|
> 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.
|
|
36
25
|
|
|
26
|
+
The server validates the credentials and scopes required for its built-in Appwrite service set during startup. If the endpoint, project ID, API key, or scopes are wrong, the MCP server will fail to start instead of waiting for the first tool call to fail.
|
|
27
|
+
|
|
37
28
|
Create a `.env` file in your working directory and add the following:
|
|
38
29
|
|
|
39
30
|
```env
|
|
@@ -75,7 +66,7 @@ When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed
|
|
|
75
66
|
use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-appwrite*.
|
|
76
67
|
|
|
77
68
|
```bash
|
|
78
|
-
uvx mcp-server-appwrite
|
|
69
|
+
uvx mcp-server-appwrite
|
|
79
70
|
```
|
|
80
71
|
|
|
81
72
|
### Using pip
|
|
@@ -86,30 +77,22 @@ pip install mcp-server-appwrite
|
|
|
86
77
|
Then run the server using
|
|
87
78
|
|
|
88
79
|
```bash
|
|
89
|
-
python -m mcp_server_appwrite
|
|
80
|
+
python -m mcp_server_appwrite
|
|
90
81
|
```
|
|
91
82
|
|
|
92
|
-
###
|
|
83
|
+
### Tool surface
|
|
93
84
|
|
|
94
|
-
|
|
85
|
+
The server no longer accepts service-selection or mode flags. It always starts in a compact workflow so the MCP client only sees a small operator-style surface while the full Appwrite catalog stays internal.
|
|
95
86
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
87
|
+
- Only 2 MCP tools are exposed to the model:
|
|
88
|
+
- `appwrite_search_tools`
|
|
89
|
+
- `appwrite_call_tool`
|
|
90
|
+
- The full Appwrite tool catalog stays internal and is searched at runtime.
|
|
91
|
+
- Large tool outputs are stored as MCP resources and returned as preview text plus a resource URI.
|
|
92
|
+
- Mutating hidden tools require `confirm_write=true`.
|
|
93
|
+
- The server automatically registers all supported Appwrite services except the legacy Databases API.
|
|
99
94
|
|
|
100
|
-
|
|
101
|
-
| --- | --- |
|
|
102
|
-
| `--tablesdb` | Enables the TablesDB API |
|
|
103
|
-
| `--users` | Enables the Users API |
|
|
104
|
-
| `--teams` | Enables the Teams API |
|
|
105
|
-
| `--storage` | Enables the Storage API |
|
|
106
|
-
| `--functions` | Enables the Functions API |
|
|
107
|
-
| `--messaging` | Enables the Messaging API |
|
|
108
|
-
| `--locale` | Enables the Locale API |
|
|
109
|
-
| `--avatars` | Enables the Avatars API |
|
|
110
|
-
| `--sites` | Enables the Sites API |
|
|
111
|
-
| `--all` | Enables all Appwrite APIs |
|
|
112
|
-
| `--databases` | Enables the Legacy Databases API |
|
|
95
|
+
If you still have older MCP configs that pass flags such as `--mode` or `--users`, remove them.
|
|
113
96
|
|
|
114
97
|
## Usage with Claude Desktop
|
|
115
98
|
|
|
@@ -195,7 +178,7 @@ Head to Windsurf `Settings > Cascade > Model Context Protocol (MCP) Servers` and
|
|
|
195
178
|
"servers": {
|
|
196
179
|
"appwrite": {
|
|
197
180
|
"command": "uvx",
|
|
198
|
-
"args": ["mcp-server-appwrite"
|
|
181
|
+
"args": ["mcp-server-appwrite"],
|
|
199
182
|
"env": {
|
|
200
183
|
"APPWRITE_PROJECT_ID": "<YOUR_PROJECT_ID>",
|
|
201
184
|
"APPWRITE_API_KEY": "<YOUR_API_KEY>",
|
|
@@ -217,7 +200,7 @@ Head to Windsurf `Settings > Cascade > Model Context Protocol (MCP) Servers` and
|
|
|
217
200
|
### Clone the repository
|
|
218
201
|
|
|
219
202
|
```bash
|
|
220
|
-
git clone https://github.com/appwrite/mcp.git
|
|
203
|
+
git clone https://github.com/appwrite/mcp-for-api.git
|
|
221
204
|
```
|
|
222
205
|
|
|
223
206
|
### Install `uv`
|
|
@@ -262,6 +245,22 @@ source .venv/bin/activate
|
|
|
262
245
|
uv run -v --directory ./ mcp-server-appwrite
|
|
263
246
|
```
|
|
264
247
|
|
|
248
|
+
## Testing
|
|
249
|
+
|
|
250
|
+
### Unit tests
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
uv run python -m unittest discover -s tests/unit -v
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Live integration tests
|
|
257
|
+
|
|
258
|
+
These tests create and delete real Appwrite resources against a real Appwrite project. They run automatically when valid Appwrite credentials are available in the environment or `.env`.
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
uv run --extra integration python -m unittest discover -s tests/integration -v
|
|
262
|
+
```
|
|
263
|
+
|
|
265
264
|
## Debugging
|
|
266
265
|
|
|
267
266
|
You can use the MCP inspector to debug the server.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mcp-server-appwrite"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.4"
|
|
4
4
|
description = "MCP (Model Context Protocol) server for Appwrite"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -8,11 +8,28 @@ dependencies = [
|
|
|
8
8
|
"appwrite>=13.4.1",
|
|
9
9
|
"docstring-parser>=0.16",
|
|
10
10
|
"mcp[cli]>=1.3.0",
|
|
11
|
+
"python-dotenv>=1.0.1",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
[project.optional-dependencies]
|
|
15
|
+
integration = [
|
|
16
|
+
"argon2-cffi>=23.1.0",
|
|
17
|
+
"bcrypt>=4.1.2",
|
|
18
|
+
"passlib>=1.7.4",
|
|
19
|
+
"pycryptodome>=3.20.0",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[dependency-groups]
|
|
23
|
+
dev = [
|
|
24
|
+
"black>=25.1.0",
|
|
11
25
|
]
|
|
12
26
|
|
|
13
27
|
[project.scripts]
|
|
14
28
|
mcp-server-appwrite = "mcp_server_appwrite.__main__:main"
|
|
15
29
|
|
|
30
|
+
[tool.black]
|
|
31
|
+
target-version = ["py312"]
|
|
32
|
+
|
|
16
33
|
[build-system]
|
|
17
34
|
requires = ["hatchling"]
|
|
18
35
|
build-backend = "hatchling.build"
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
|
|
3
3
|
"name": "io.github.appwrite/mcp-for-api",
|
|
4
4
|
"description": "MCP (Model Context Protocol) server for Appwrite",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.4",
|
|
6
6
|
"repository": {
|
|
7
7
|
"url": "https://github.com/appwrite/mcp-for-api",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
|
-
"version": "0.
|
|
12
|
+
"version": "0.4",
|
|
13
13
|
"registryType": "pypi",
|
|
14
14
|
"identifier": "mcp-server-appwrite",
|
|
15
15
|
"transport": {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def main():
|
|
6
|
+
"""Main entry point for the package."""
|
|
7
|
+
from .server import _run
|
|
8
|
+
|
|
9
|
+
try:
|
|
10
|
+
asyncio.run(_run())
|
|
11
|
+
except KeyboardInterrupt:
|
|
12
|
+
print("[appwrite-mcp] Shutdown requested", file=sys.stderr, flush=True)
|
|
13
|
+
return 0
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
__all__ = ["main"]
|