added 68 tools
This commit is contained in:
212
README.md
212
README.md
@@ -7,23 +7,26 @@
|
|||||||

|

|
||||||
|
|
||||||
**Transform Claude into your intelligent Appwrite management assistant**
|
**Transform Claude into your intelligent Appwrite management assistant**
|
||||||
*67 powerful tools • Schema validation • Bulk operations • Production-ready*
|
*135 powerful tools • Complete API coverage • Full Messaging & Locale Services • Production-ready*
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
A comprehensive **Model Context Protocol (MCP)** server that supercharges Claude with native Appwrite integration. Unlike the official implementation, this version includes advanced features like bulk operations, automatic schema validation, data quality checks, and comprehensive error handling.
|
A comprehensive **Model Context Protocol (MCP)** server that supercharges Claude with native Appwrite integration. Unlike the official implementation, this version includes advanced features like bulk operations, automatic schema validation, complete user management with MFA, storage file operations, function deployments & variables, full messaging service (topics, subscribers, providers), locale & avatars services, and comprehensive error handling.
|
||||||
|
|
||||||
## 🚀 Features
|
## 🚀 Features
|
||||||
|
|
||||||
**Core Appwrite Management:**
|
**Core Appwrite Management:**
|
||||||
- Complete database and collection operations
|
- Complete database and collection operations
|
||||||
- Document CRUD with full query support
|
- Document CRUD with full query support
|
||||||
- User management and authentication
|
- Advanced user management with MFA, identities, preferences
|
||||||
- Storage buckets and file operations
|
- Storage buckets and comprehensive file operations
|
||||||
- Serverless function management
|
- Serverless function management with deployments & variables
|
||||||
- Team and permission management
|
- Team and permission management
|
||||||
|
- Complete messaging service (providers, messages, topics, subscribers)
|
||||||
|
- Locale service (countries, currencies, languages, timezones)
|
||||||
|
- Avatars service (icons, QR codes, initials, favicons)
|
||||||
|
|
||||||
**🧠 Intelligent Database Assistant:**
|
**🧠 Intelligent Database Assistant:**
|
||||||
- **Auto-detect schemas** from sample data
|
- **Auto-detect schemas** from sample data
|
||||||
@@ -172,7 +175,7 @@ Once integrated, you should be able to use commands like:
|
|||||||
- "Create a new user with email test@example.com"
|
- "Create a new user with email test@example.com"
|
||||||
- "Show me all collections in my database"
|
- "Show me all collections in my database"
|
||||||
|
|
||||||
## 🛠️ Available Tools (67 Total)
|
## 🛠️ Available Tools (135 Total)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>🗄️ Database Operations (3 tools)</strong></summary>
|
<summary><strong>🗄️ Database Operations (3 tools)</strong></summary>
|
||||||
@@ -186,33 +189,37 @@ Once integrated, you should be able to use commands like:
|
|||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>📁 Collection Operations (3 tools)</strong></summary>
|
<summary><strong>📁 Collection Operations (4 tools)</strong></summary>
|
||||||
|
|
||||||
| Tool | Description |
|
| Tool | Description |
|
||||||
|------|-------------|
|
|------|-------------|
|
||||||
| `create_collection` | Create a new collection in a database |
|
| `create_collection` | Create a new collection in a database |
|
||||||
|
| `get_collection` | ✨ Get collection details by ID |
|
||||||
| `list_collections` | List all collections in a database |
|
| `list_collections` | List all collections in a database |
|
||||||
| `delete_collection` | Delete a collection from a database |
|
| `delete_collection` | Delete a collection from a database |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>🏷️ Attribute Management (3 tools)</strong></summary>
|
<summary><strong>🏷️ Attribute Management (5 tools)</strong></summary>
|
||||||
|
|
||||||
| Tool | Description |
|
| Tool | Description |
|
||||||
|------|-------------|
|
|------|-------------|
|
||||||
| `create_attribute` | ✨ Create any attribute type (string, integer, float, boolean, datetime, email, IP, URL, enum, relationship) |
|
| `create_attribute` | ✨ Create any attribute type (string, integer, float, boolean, datetime, email, IP, URL, enum, relationship) |
|
||||||
|
| `get_attribute` | ✨ Get attribute details by key |
|
||||||
|
| `update_attribute` | ✨ Update any attribute type with unified interface |
|
||||||
| `list_attributes` | List all attributes in a collection |
|
| `list_attributes` | List all attributes in a collection |
|
||||||
| `delete_attribute` | Delete an attribute from a collection |
|
| `delete_attribute` | Delete an attribute from a collection |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>📊 Index Management (3 tools)</strong></summary>
|
<summary><strong>📊 Index Management (4 tools)</strong></summary>
|
||||||
|
|
||||||
| Tool | Description |
|
| Tool | Description |
|
||||||
|------|-------------|
|
|------|-------------|
|
||||||
| `create_index` | Create an index in a collection (key, fulltext, unique) |
|
| `create_index` | Create an index in a collection (key, fulltext, unique) |
|
||||||
|
| `get_index` | ✨ Get index details by key |
|
||||||
| `list_indexes` | List all indexes in a collection |
|
| `list_indexes` | List all indexes in a collection |
|
||||||
| `delete_index` | Delete an index from a collection |
|
| `delete_index` | Delete an index from a collection |
|
||||||
|
|
||||||
@@ -232,24 +239,40 @@ Once integrated, you should be able to use commands like:
|
|||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>👥 User Management (9 tools)</strong></summary>
|
<summary><strong>👥 User Management (25 tools)</strong></summary>
|
||||||
|
|
||||||
| Tool | Description |
|
| Tool | Description |
|
||||||
|------|-------------|
|
|------|-------------|
|
||||||
| `create_user` | Create a new user |
|
| `create_user` | Create a new user |
|
||||||
| `list_users` | List all users ✨ *with verification status* |
|
| `list_users` | ✨ List all users with email/phone verification columns |
|
||||||
| `get_user` | Get a user by ID |
|
| `get_user` | Get a user by ID |
|
||||||
| `update_user_email` | Update user email |
|
| `update_user_email` | Update user email |
|
||||||
| `update_user_name` | Update user name |
|
| `update_user_name` | Update user name |
|
||||||
| `update_user_password` | Update user password |
|
| `update_user_password` | Update user password |
|
||||||
|
| `update_user_password_hash` | ✨ Update password with specific hash algorithm |
|
||||||
| `delete_user` | Delete a user |
|
| `delete_user` | Delete a user |
|
||||||
| `verify_user_email` | ✨ Verify a user's email address |
|
| `verify_user_email` | ✨ Verify a user's email address |
|
||||||
| `unverify_user_email` | ✨ Unverify a user's email address |
|
| `unverify_user_email` | ✨ Unverify a user's email address |
|
||||||
|
| `verify_user_phone` | ✨ Verify a user's phone number |
|
||||||
|
| `unverify_user_phone` | ✨ Unverify a user's phone number |
|
||||||
|
| `update_user_mfa` | ✨ Enable/disable MFA for users |
|
||||||
|
| `create_user_mfa_recovery_codes` | ✨ Generate MFA recovery codes |
|
||||||
|
| `update_user_phone_verification` | ✨ Update phone verification status |
|
||||||
|
| `update_user_labels` | ✨ Update user labels for permissions |
|
||||||
|
| `get_user_preferences` | ✨ Get user preferences |
|
||||||
|
| `update_user_preferences` | ✨ Update user preferences |
|
||||||
|
| `list_user_identities` | ✨ List user identities |
|
||||||
|
| `delete_user_identity` | ✨ Delete user identity |
|
||||||
|
| `create_user_target` | ✨ Create messaging targets |
|
||||||
|
| `list_user_targets` | ✨ List messaging targets |
|
||||||
|
| `get_user_target` | ✨ Get messaging target details |
|
||||||
|
| `update_user_target` | ✨ Update messaging target |
|
||||||
|
| `delete_user_target` | ✨ Delete messaging target |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>🗂️ Storage Operations (6 tools)</strong></summary>
|
<summary><strong>🗂️ Storage Operations (13 tools)</strong></summary>
|
||||||
|
|
||||||
| Tool | Description |
|
| Tool | Description |
|
||||||
|------|-------------|
|
|------|-------------|
|
||||||
@@ -259,11 +282,18 @@ Once integrated, you should be able to use commands like:
|
|||||||
| `update_bucket` | Update a storage bucket |
|
| `update_bucket` | Update a storage bucket |
|
||||||
| `delete_bucket` | Delete a storage bucket |
|
| `delete_bucket` | Delete a storage bucket |
|
||||||
| `list_files` | List files in a storage bucket |
|
| `list_files` | List files in a storage bucket |
|
||||||
|
| `get_file` | ✨ Get file details by ID |
|
||||||
|
| `create_file` | ✨ Upload file to storage bucket |
|
||||||
|
| `update_file` | ✨ Update file metadata |
|
||||||
|
| `get_file_download` | ✨ Get file download URL |
|
||||||
|
| `get_file_preview` | ✨ Get file preview URL with image transformations |
|
||||||
|
| `get_file_view` | ✨ Get file view URL |
|
||||||
|
| `delete_file` | ✨ Delete a file |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>⚡ Function Management (5 tools)</strong></summary>
|
<summary><strong>⚡ Function Management (14 tools)</strong></summary>
|
||||||
|
|
||||||
| Tool | Description |
|
| Tool | Description |
|
||||||
|------|-------------|
|
|------|-------------|
|
||||||
@@ -272,6 +302,15 @@ Once integrated, you should be able to use commands like:
|
|||||||
| `get_function` | Get a function by ID |
|
| `get_function` | Get a function by ID |
|
||||||
| `update_function` | Update a function |
|
| `update_function` | Update a function |
|
||||||
| `delete_function` | Delete a function |
|
| `delete_function` | Delete a function |
|
||||||
|
| `list_function_deployments` | ✨ List function deployments |
|
||||||
|
| `get_function_deployment` | ✨ Get deployment details |
|
||||||
|
| `update_function_deployment` | ✨ Update deployment status |
|
||||||
|
| `delete_function_deployment` | ✨ Delete deployment |
|
||||||
|
| `create_function_variable` | ✨ Create function variables |
|
||||||
|
| `list_function_variables` | ✨ List function variables |
|
||||||
|
| `get_function_variable` | ✨ Get variable details |
|
||||||
|
| `update_function_variable` | ✨ Update variables |
|
||||||
|
| `delete_function_variable` | ✨ Delete variables |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -288,6 +327,61 @@ Once integrated, you should be able to use commands like:
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>📧 Messaging Operations (20 tools)</strong></summary>
|
||||||
|
|
||||||
|
| Tool | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `create_messaging_provider` | ✨ Create messaging provider |
|
||||||
|
| `list_messaging_providers` | ✨ List messaging providers |
|
||||||
|
| `get_messaging_provider` | ✨ Get messaging provider details |
|
||||||
|
| `update_messaging_provider` | ✨ Update messaging provider |
|
||||||
|
| `delete_messaging_provider` | ✨ Delete messaging provider |
|
||||||
|
| `create_messaging_message` | ✨ Create and send message |
|
||||||
|
| `list_messaging_messages` | ✨ List messages |
|
||||||
|
| `get_messaging_message` | ✨ Get message details |
|
||||||
|
| `update_messaging_message` | ✨ Update message |
|
||||||
|
| `delete_messaging_message` | ✨ Delete message |
|
||||||
|
| `create_messaging_topic` | ✨ Create messaging topic |
|
||||||
|
| `list_messaging_topics` | ✨ List messaging topics |
|
||||||
|
| `get_messaging_topic` | ✨ Get topic details |
|
||||||
|
| `update_messaging_topic` | ✨ Update topic |
|
||||||
|
| `delete_messaging_topic` | ✨ Delete topic |
|
||||||
|
| `create_messaging_subscriber` | ✨ Create topic subscriber |
|
||||||
|
| `list_messaging_subscribers` | ✨ List topic subscribers |
|
||||||
|
| `get_messaging_subscriber` | ✨ Get subscriber details |
|
||||||
|
| `delete_messaging_subscriber` | ✨ Delete subscriber |
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>🌍 Locale Operations (5 tools)</strong></summary>
|
||||||
|
|
||||||
|
| Tool | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `list_countries` | ✨ List all countries with phone codes |
|
||||||
|
| `list_continents` | ✨ List all continents |
|
||||||
|
| `list_currencies` | ✨ List all currencies |
|
||||||
|
| `list_languages` | ✨ List all languages |
|
||||||
|
| `list_phone_codes` | ✨ List phone codes for countries |
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>🎨 Avatars Operations (7 tools)</strong></summary>
|
||||||
|
|
||||||
|
| Tool | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `get_browser_icon` | ✨ Get browser icon URL |
|
||||||
|
| `get_credit_card_icon` | ✨ Get credit card icon URL |
|
||||||
|
| `get_favicon` | ✨ Get website favicon URL |
|
||||||
|
| `get_flag_icon` | ✨ Get country flag icon URL |
|
||||||
|
| `get_image_from_url` | ✨ Transform image from URL |
|
||||||
|
| `get_initials_avatar` | ✨ Generate initials avatar URL |
|
||||||
|
| `get_qr_code` | ✨ Generate QR code URL |
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 🌟 **Exclusive Advanced Features**
|
### 🌟 **Exclusive Advanced Features**
|
||||||
@@ -377,19 +471,25 @@ Once integrated, you should be able to use commands like:
|
|||||||
- **Self-hosted**: `https://your-domain.com/v1`
|
- **Self-hosted**: `https://your-domain.com/v1`
|
||||||
3. **🔐 API Key**: Create a new API key in your Appwrite console under **Settings > API Keys**
|
3. **🔐 API Key**: Create a new API key in your Appwrite console under **Settings > API Keys**
|
||||||
- ✅ Enable all scopes for full functionality
|
- ✅ Enable all scopes for full functionality
|
||||||
- ⚠️ Required scopes: `databases.read`, `databases.write`, `users.read`, `users.write`, `functions.read`, `functions.write`, `storage.read`, `storage.write`
|
- ⚠️ Required scopes: `databases.read`, `databases.write`, `users.read`, `users.write`, `functions.read`, `functions.write`, `storage.read`, `storage.write`, `targets.read`, `targets.write`, `providers.read`, `providers.write`, `messages.read`, `messages.write`, `topics.read`, `topics.write`, `subscribers.read`, `subscribers.write`, `locale.read`, `avatars.read`, `health.read`
|
||||||
|
|
||||||
### 🎯 VS Official Implementation
|
### 🎯 VS Official Implementation
|
||||||
|
|
||||||
| Feature | Our Implementation | Official Appwrite MCP |
|
| Feature | Our Implementation | Official Appwrite MCP |
|
||||||
|---------|-------------------|----------------------|
|
|---------|-------------------|----------------------|
|
||||||
| **Tools Available** | 🟢 67 tools | 🟡 ~50 tools |
|
| **Tools Available** | 🟢 135 tools (complete coverage) | 🟡 195 tools (selective enabling) |
|
||||||
|
| **Default Setup** | 🟢 Complete coverage out-of-box | 🟡 Database tools only (context limits) |
|
||||||
|
| **Messaging Service** | 🟢 Complete (providers, messages, topics, subscribers) | 🟡 Selective enabling required |
|
||||||
|
| **Locale & Avatars** | 🟢 Complete internationalization support | 🟡 Selective enabling required |
|
||||||
|
| **Storage Operations** | 🟢 Complete file operations & uploads | 🟡 Basic bucket operations |
|
||||||
|
| **User Management** | 🟢 MFA, identities, preferences, targets | 🟡 Basic CRUD only |
|
||||||
|
| **Functions Service** | 🟢 Deployments & variables included | 🟡 Basic function management |
|
||||||
| **Bulk Operations** | 🟢 Full support | 🔴 Not available |
|
| **Bulk Operations** | 🟢 Full support | 🔴 Not available |
|
||||||
| **Schema Validation** | 🟢 Automatic | 🔴 Manual only |
|
| **Schema Validation** | 🟢 Automatic | 🔴 Manual only |
|
||||||
| **Error Handling** | 🟢 Comprehensive | 🟡 Basic |
|
| **Error Handling** | 🟢 Comprehensive | 🟡 Basic |
|
||||||
| **Language** | 🟡 TypeScript/Node.js | 🟢 Python |
|
| **Language** | 🟡 TypeScript/Node.js | 🟢 Python |
|
||||||
| **Memory Usage** | 🟡 Higher (monolithic) | 🟢 Lower (modular) |
|
| **Context Efficiency** | 🟡 All tools use context | 🟢 Selective loading saves context |
|
||||||
| **Deployment** | 🟢 Single executable | 🟡 Multiple dependencies |
|
| **Self-Hosted Focus** | 🟢 Optimized for self-hosted | 🟡 Cloud-first approach |
|
||||||
|
|
||||||
## 🎯 Usage Examples
|
## 🎯 Usage Examples
|
||||||
|
|
||||||
@@ -445,7 +545,12 @@ Once integrated, you can use natural language commands with Claude to interact w
|
|||||||
✨ "List all users in the project"
|
✨ "List all users in the project"
|
||||||
✨ "Update user xyz123's name to 'John Doe'"
|
✨ "Update user xyz123's name to 'John Doe'"
|
||||||
✨ "Verify user abc123's email address"
|
✨ "Verify user abc123's email address"
|
||||||
✨ "Unverify user xyz456's email verification"
|
✨ "Enable MFA for user xyz123"
|
||||||
|
✨ "Generate MFA recovery codes for user abc456"
|
||||||
|
✨ "Update user labels for permissions: ['admin', 'moderator']"
|
||||||
|
✨ "Get user preferences for user xyz123"
|
||||||
|
✨ "Create messaging target for user notifications"
|
||||||
|
✨ "List all identities for user abc123"
|
||||||
✨ "Create a session for user john@example.com"
|
✨ "Create a session for user john@example.com"
|
||||||
✨ "Bulk create 10 test users for demo purposes"
|
✨ "Bulk create 10 test users for demo purposes"
|
||||||
```
|
```
|
||||||
@@ -453,7 +558,35 @@ Once integrated, you can use natural language commands with Claude to interact w
|
|||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>⚡ Advanced Features (Exclusive)</strong></summary>
|
<summary><strong>🗂️ Storage & File Management</strong></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
✨ "Create a new storage bucket for user uploads"
|
||||||
|
✨ "List all files in the images bucket"
|
||||||
|
✨ "Get download URL for file abc123"
|
||||||
|
✨ "Generate preview URL for image with 300x200 dimensions"
|
||||||
|
✨ "Get file view URL for document xyz456"
|
||||||
|
✨ "Delete old file from storage bucket"
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>⚡ Functions & Deployments</strong></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
✨ "Create a new function for email processing"
|
||||||
|
✨ "List all deployments for function abc123"
|
||||||
|
✨ "Create function variable API_KEY with secret value"
|
||||||
|
✨ "Update function variable to new value"
|
||||||
|
✨ "List all variables for function xyz456"
|
||||||
|
✨ "Execute function with user data payload"
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>🚀 Advanced Features (Exclusive)</strong></summary>
|
||||||
|
|
||||||
```
|
```
|
||||||
🚀 "Create a complete product schema with string, enum, float, and relationship attributes"
|
🚀 "Create a complete product schema with string, enum, float, and relationship attributes"
|
||||||
@@ -472,6 +605,47 @@ Once integrated, you can use natural language commands with Claude to interact w
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>📧 Messaging & Communication</strong></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
✨ "Create a messaging provider for email notifications"
|
||||||
|
✨ "List all messaging topics"
|
||||||
|
✨ "Create a topic for user announcements"
|
||||||
|
✨ "Add subscribers to the announcements topic"
|
||||||
|
✨ "Send a message to all subscribers"
|
||||||
|
✨ "List all messages and their delivery status"
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>🌍 Internationalization & Locale</strong></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
✨ "List all supported countries"
|
||||||
|
✨ "Get phone codes for all countries"
|
||||||
|
✨ "Show me all available currencies"
|
||||||
|
✨ "List all supported languages"
|
||||||
|
✨ "Get continent information"
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>🎨 Avatars & Visual Content</strong></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
✨ "Generate QR code for this URL"
|
||||||
|
✨ "Get flag icon for United States"
|
||||||
|
✨ "Create initials avatar for John Doe"
|
||||||
|
✨ "Get favicon for google.com"
|
||||||
|
✨ "Generate browser icon for Chrome"
|
||||||
|
✨ "Get credit card icon for Visa"
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
### 🎬 **Real-World Scenarios**
|
### 🎬 **Real-World Scenarios**
|
||||||
|
|
||||||
**E-commerce Setup:**
|
**E-commerce Setup:**
|
||||||
|
|||||||
2292
src/index.ts
2292
src/index.ts
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user