-
Notifications
You must be signed in to change notification settings - Fork 0
feat: CursorPlugin SDK update for version 0.1.0 #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| { | ||
| "name": "appwrite-plugin", | ||
| "version": "0.1.0", | ||
| "description": "The Appwrite plugin for Cursor includes skills and MCP servers, allowing AI agents to access your projects and correctly integrate with your projects.", | ||
| "author": { | ||
| "name": "Appwrite", | ||
| "email": "team@appwrite.io" | ||
| }, | ||
| "repository": "https://github.com/appwrite/cursor-plugin", | ||
| "logo": "https://appwrite.io/images/logos/logo.svg" | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| { | ||
| "mcpServers": { | ||
| "appwrite-api": { | ||
| "command": "uvx", | ||
| "args": ["mcp-server-appwrite", "--users"], | ||
| "env": { | ||
| "APPWRITE_API_KEY": "your-api-key", | ||
| "APPWRITE_PROJECT_ID": "your-project-id", | ||
| "APPWRITE_ENDPOINT": "https://<REGION>.cloud.appwrite.io/v1" | ||
| } | ||
| }, | ||
| "appwrite-docs": { | ||
| "command": "npx", | ||
| "args": ["mcp-remote", "https://mcp-for-docs.appwrite.io"] | ||
| } | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| # Change Log |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1 +1,83 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # cursor-plugin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Appwrite Cursor Plugin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [](https://twitter.com/appwrite) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [](https://appwrite.io/discord) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **This SDK is compatible with Appwrite server version latest. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin.git/releases).** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+4
to
+8
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Version string "latest" is inconsistent with the badge ( Line 8 says "compatible with Appwrite server version latest" while the badge on line 4 pins ✏️ Proposed fix-**This SDK is compatible with Appwrite server version latest. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin.git/releases).**
+**This SDK is compatible with Appwrite server version 1.8.1. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin/releases).**📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Appwrite is an open-source backend as a service server that abstracts and simplifies complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way. Use the CursorPlugin SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Installation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Install this plugin in Cursor by adding the plugin directory to your project or Cursor plugins folder. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Structure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .cursor-plugin/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| └── plugin.json # Plugin manifest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| skills/ # Agent skills (per language) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── appwrite-typescript/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── SKILL.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── appwrite-dart/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── SKILL.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── appwrite-kotlin/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── SKILL.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── appwrite-swift/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── SKILL.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── appwrite-php/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── SKILL.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── appwrite-python/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── SKILL.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── appwrite-ruby/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── SKILL.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── appwrite-go/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── SKILL.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── appwrite-dotnet/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── SKILL.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| commands/ # Agent-executable commands | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── deploy-site.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| └── deploy-function.md | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .mcp.json # MCP server definitions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+18
to
+44
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add a language tag to the fenced code block (markdownlint MD040). The structure tree uses a bare 🔧 Proposed fix-```
+```text
.cursor-plugin/📝 Committable suggestion
Suggested change
🧰 Tools🪛 markdownlint-cli2 (0.21.0)[warning] 18-18: Fenced code blocks should have a language specified (MD040, fenced-code-language) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Skills | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This plugin includes Appwrite SDK skills for the following languages: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Typescript** — `skills/appwrite-typescript/SKILL.md` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Dart** — `skills/appwrite-dart/SKILL.md` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Kotlin** — `skills/appwrite-kotlin/SKILL.md` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Swift** — `skills/appwrite-swift/SKILL.md` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Php** — `skills/appwrite-php/SKILL.md` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Python** — `skills/appwrite-python/SKILL.md` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Ruby** — `skills/appwrite-ruby/SKILL.md` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Go** — `skills/appwrite-go/SKILL.md` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Dotnet** — `skills/appwrite-dotnet/SKILL.md` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+50
to
+58
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix language name capitalizations in the Skills list.
🔧 Proposed fix- - **Typescript** — `skills/appwrite-typescript/SKILL.md`
+ - **TypeScript** — `skills/appwrite-typescript/SKILL.md`
- **Dart** — `skills/appwrite-dart/SKILL.md`
- **Kotlin** — `skills/appwrite-kotlin/SKILL.md`
- **Swift** — `skills/appwrite-swift/SKILL.md`
- - **Php** — `skills/appwrite-php/SKILL.md`
+ - **PHP** — `skills/appwrite-php/SKILL.md`
- **Python** — `skills/appwrite-python/SKILL.md`
- **Ruby** — `skills/appwrite-ruby/SKILL.md`
- **Go** — `skills/appwrite-go/SKILL.md`
- - **Dotnet** — `skills/appwrite-dotnet/SKILL.md`
+ - **.NET** — `skills/appwrite-dotnet/SKILL.md`📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Each skill provides comprehensive SDK usage examples including authentication, database operations, file storage, real-time subscriptions, and more. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## MCP Servers | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This plugin comes with two MCP (Model Context Protocol) servers pre-configured in `.mcp.json`: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Appwrite API MCP** — Lets AI agents access the Appwrite API to manage users, databases, storage, and more. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Appwrite Docs MCP** — Access Appwrite documentation inline for quick reference while coding. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Commands | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Agent-executable commands for deploying directly from your editor: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **deploy-site** — Deploy an Appwrite site using the CLI. Covers init, push, CI/CD non-interactive mode, site management, variables, and logs. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **deploy-function** — Deploy an Appwrite function using the CLI. Covers init, push, CI/CD non-interactive mode, function management, executions, variables, and local development. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Contribution | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This library is auto-generated by Appwrite custom [SDK Generator](https://github.com/appwrite/sdk-generator). To learn more about how you can help us improve this SDK, please check the [contribution guide](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md) before sending a pull-request. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Misleading "auto-generated" boilerplate in the Contribution section. This plugin is not auto-generated by the Appwrite SDK Generator, so directing contributors to the ✏️ Proposed fix-This library is auto-generated by Appwrite custom [SDK Generator](https://github.com/appwrite/sdk-generator). To learn more about how you can help us improve this SDK, please check the [contribution guide](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md) before sending a pull-request.
+Contributions are welcome! Please open an issue or pull-request in this repository. For general Appwrite contribution guidelines, see the [contribution guide](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md).📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## License | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. License link points to the Line 83 links to 🔧 Proposed fix-Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.
+Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/cursor-plugin/main/LICENSE) file for more information.📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,153 @@ | ||
| --- | ||
| name: deploy-function | ||
| description: Deploy a function using the Appwrite CLI | ||
| --- | ||
|
|
||
| # Deploy a function using the Appwrite CLI | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| - Appwrite CLI installed (`npm install -g appwrite-cli`) | ||
| - Authenticated with `appwrite login` | ||
| - Project initialized with `appwrite init` | ||
|
|
||
| ## Quick Deploy | ||
|
|
||
| ```sh | ||
| appwrite push functions | ||
| ``` | ||
|
|
||
| ## Full Workflow | ||
|
|
||
| ### 1. Initialize a new function | ||
|
|
||
| ```sh | ||
| appwrite init functions | ||
| ``` | ||
|
|
||
| This scaffolds a new function with a starter template and adds it to `appwrite.config.json`. | ||
|
|
||
| ### 2. Pull existing functions from Console | ||
|
|
||
| ```sh | ||
| appwrite pull functions | ||
| ``` | ||
|
|
||
| ### 3. Configuration | ||
|
|
||
| Functions are configured in `appwrite.config.json`: | ||
|
|
||
| ```json | ||
| { | ||
| "projectId": "<PROJECT_ID>", | ||
| "endpoint": "https://<REGION>.cloud.appwrite.io/v1", | ||
| "functions": [ | ||
| { | ||
| "$id": "<FUNCTION_ID>", | ||
| "name": "userAuth", | ||
| "enabled": true, | ||
| "live": true, | ||
| "logging": true, | ||
| "runtime": "node-18.0", | ||
| "deployment": "<DEPLOYMENT_ID>", | ||
| "vars": [], | ||
| "events": [], | ||
| "schedule": "", | ||
| "timeout": 15, | ||
| "entrypoint": "userAuth.js", | ||
| "commands": "npm install", | ||
| "version": "v3", | ||
| "path": "functions/userAuth" | ||
| } | ||
| ] | ||
| } | ||
| ``` | ||
|
|
||
| ### 4. Deploy | ||
|
|
||
| ```sh | ||
| appwrite push functions | ||
| ``` | ||
|
|
||
| ## CI/CD (Non-Interactive) | ||
|
|
||
| Set up headless mode first: | ||
|
|
||
| ```sh | ||
| appwrite client \ | ||
| --endpoint https://<REGION>.cloud.appwrite.io/v1 \ | ||
| --project-id <PROJECT_ID> \ | ||
| --key <API_KEY> | ||
| ``` | ||
|
|
||
| Then deploy non-interactively: | ||
|
|
||
| ```sh | ||
| # Push all functions | ||
| appwrite push functions --all --force | ||
|
|
||
| # Push a specific function | ||
| appwrite push functions --function-id <FUNCTION_ID> --force | ||
|
|
||
| # Push all resources at once (functions, tables, buckets, teams, topics) | ||
| appwrite push all --all --force | ||
| ``` | ||
|
|
||
| ## Function Management Commands | ||
|
|
||
| | Command | Description | | ||
| |---------|-------------| | ||
| | `appwrite functions list` | List all functions in the project | | ||
| | `appwrite functions create` | Create a new function | | ||
| | `appwrite functions get --function-id <ID>` | Get a function by ID | | ||
| | `appwrite functions update --function-id <ID>` | Update a function | | ||
| | `appwrite functions delete --function-id <ID>` | Delete a function | | ||
| | `appwrite functions list-runtimes` | List all active runtimes | | ||
|
|
||
| ## Deployment Commands | ||
|
|
||
| | Command | Description | | ||
| |---------|-------------| | ||
| | `appwrite functions list-deployments --function-id <ID>` | List all deployments | | ||
| | `appwrite functions create-deployment --function-id <ID>` | Upload a new deployment | | ||
| | `appwrite functions get-deployment --function-id <ID> --deployment-id <ID>` | Get a deployment | | ||
| | `appwrite functions update-deployment --function-id <ID> --deployment-id <ID>` | Set active deployment | | ||
| | `appwrite functions delete-deployment --function-id <ID> --deployment-id <ID>` | Delete a deployment | | ||
| | `appwrite functions download-deployment --function-id <ID> --deployment-id <ID>` | Download deployment contents | | ||
|
|
||
| ## Execution Commands | ||
|
|
||
| | Command | Description | | ||
| |---------|-------------| | ||
| | `appwrite functions create-execution --function-id <ID>` | Trigger a function execution | | ||
| | `appwrite functions list-executions --function-id <ID>` | List execution logs | | ||
| | `appwrite functions get-execution --function-id <ID> --execution-id <ID>` | Get an execution log | | ||
|
|
||
| ### Trigger with body | ||
|
|
||
| ```sh | ||
| appwrite functions create-execution \ | ||
| --function-id <FUNCTION_ID> \ | ||
| --body '{"key": "value"}' | ||
| ``` | ||
|
|
||
| ## Environment Variables | ||
|
|
||
| | Command | Description | | ||
| |---------|-------------| | ||
| | `appwrite functions list-variables --function-id <ID>` | List all variables | | ||
| | `appwrite functions create-variable --function-id <ID> --key <KEY> --value <VALUE>` | Create a variable | | ||
| | `appwrite functions update-variable --function-id <ID> --variable-id <ID> --key <KEY> --value <VALUE>` | Update a variable | | ||
| | `appwrite functions delete-variable --function-id <ID> --variable-id <ID>` | Delete a variable | | ||
|
|
||
| Variables are accessible at runtime as environment variables. | ||
|
|
||
| ## Local Development | ||
|
|
||
| Run your function locally for quick debugging: | ||
|
|
||
| ```sh | ||
| appwrite run functions | ||
| ``` | ||
|
|
||
| This starts a local development server that watches for file changes and automatically rebuilds. |
Uh oh!
There was an error while loading. Please reload this page.