stable
This commit is contained in:
560
README.md
560
README.md
@@ -1,6 +1,19 @@
|
||||
# Appwrite MCP Server
|
||||
# 🚀 Appwrite MCP Server
|
||||
|
||||
A comprehensive Model Context Protocol (MCP) server that transforms Claude Code into an intelligent Appwrite management assistant.
|
||||
<div align="center">
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
**Transform Claude into your intelligent Appwrite management assistant**
|
||||
*88 powerful tools • Schema validation • Bulk operations • Production-ready*
|
||||
|
||||
</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.
|
||||
|
||||
## 🚀 Features
|
||||
|
||||
@@ -29,233 +42,468 @@ A comprehensive Model Context Protocol (MCP) server that transforms Claude Code
|
||||
- **Bulk document operations** (create, update, delete multiple documents)
|
||||
- **Efficient batch processing** with detailed success/error reporting
|
||||
|
||||
## Installation
|
||||
## 📦 Quick Start
|
||||
|
||||
### 1️⃣ Installation
|
||||
|
||||
1. Clone this repository:
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone <repository-url>
|
||||
cd appwrite-mcp-server
|
||||
```
|
||||
|
||||
2. Install dependencies:
|
||||
```bash
|
||||
# Install dependencies
|
||||
npm install
|
||||
```
|
||||
|
||||
3. Build the TypeScript code:
|
||||
```bash
|
||||
# Build the TypeScript code
|
||||
npm run build
|
||||
```
|
||||
|
||||
4. Configure your Appwrite credentials by creating a `.env` file in your **current working directory** (where you run Claude Code from):
|
||||
### 2️⃣ Configuration
|
||||
|
||||
Create a `.env` file in your **current working directory** (where you run Claude Code from):
|
||||
|
||||
```bash
|
||||
# Copy the example file to your current working directory
|
||||
cp /path/to/app-write-mcp/.env.example ./.env
|
||||
```
|
||||
|
||||
5. Edit the `.env` file in your current directory with your Appwrite project details:
|
||||
```bash
|
||||
APPWRITE_PROJECT_ID=your-project-id
|
||||
Edit your `.env` file with your Appwrite credentials:
|
||||
|
||||
```env
|
||||
APPWRITE_PROJECT_ID=your-project-id-here
|
||||
APPWRITE_API_ENDPOINT=https://cloud.appwrite.io/v1
|
||||
APPWRITE_API_KEY=your-api-key
|
||||
APPWRITE_API_KEY=your-api-key-here
|
||||
```
|
||||
|
||||
**Important:** The MCP server looks for `.env` in the directory where Claude Code is currently running, not in the repository directory. This allows you to use different configurations for different projects without modifying the repository.
|
||||
> 💡 **Tip:** The MCP server looks for `.env` in the directory where Claude Code is running, allowing different configurations for different projects.
|
||||
|
||||
## Adding to Claude Code
|
||||
### 3️⃣ Integration Options
|
||||
|
||||
#### Option A: Claude Code (CLI) Integration
|
||||
|
||||
1. Add the MCP server to Claude Code:
|
||||
```bash
|
||||
# Add the MCP server to Claude Code
|
||||
claude mcp add appwrite-mcp-server "C:\path\to\your\app-write-mcp\dist\index.js"
|
||||
```
|
||||
|
||||
Replace the path with your actual project location. For example:
|
||||
```bash
|
||||
# Example with actual path
|
||||
claude mcp add appwrite-mcp-server "C:\Users\moh12\app-write-mcp\dist\index.js"
|
||||
```
|
||||
|
||||
3. Restart Claude Code if needed.
|
||||
#### Option B: Cursor IDE Integration
|
||||
|
||||
## Available Tools
|
||||
1. **Open Cursor Settings** (Ctrl/Cmd + ,)
|
||||
|
||||
### 🗄️ Database Operations
|
||||
2. **Search for "MCP"** in the settings search bar
|
||||
|
||||
- **create_database**: Create a new database
|
||||
- **list_databases**: List all databases in your project
|
||||
- **delete_database**: Delete a database
|
||||
3. **Add MCP Server Configuration:**
|
||||
```json
|
||||
{
|
||||
"mcp.servers": {
|
||||
"appwrite-mcp-server": {
|
||||
"command": "node",
|
||||
"args": ["C:\\path\\to\\your\\app-write-mcp\\dist\\index.js"],
|
||||
"env": {
|
||||
"NODE_ENV": "production"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 📁 Collection Operations
|
||||
4. **Alternative: Use Cursor's settings.json file:**
|
||||
- Open Command Palette (`Ctrl/Cmd + Shift + P`)
|
||||
- Type "Preferences: Open Settings (JSON)"
|
||||
- Add the MCP configuration above
|
||||
|
||||
- **create_collection**: Create a new collection in a database
|
||||
- **list_collections**: List all collections in a database
|
||||
- **delete_collection**: Delete a collection from a database
|
||||
5. **Restart Cursor** to load the MCP server
|
||||
|
||||
### 🏷️ Attribute Management
|
||||
#### Option C: Continue.dev Integration
|
||||
|
||||
- **create_string_attribute**: Create a string attribute in a collection
|
||||
- **create_integer_attribute**: Create an integer attribute in a collection
|
||||
- **create_boolean_attribute**: Create a boolean attribute in a collection
|
||||
- **create_email_attribute**: Create an email attribute in a collection
|
||||
- **create_datetime_attribute**: Create a datetime attribute in a collection
|
||||
- **list_attributes**: List all attributes in a collection
|
||||
- **delete_attribute**: Delete an attribute from a collection
|
||||
1. **Open your Continue configuration file** (`~/.continue/config.json`)
|
||||
|
||||
### 📊 Index Management
|
||||
2. **Add the MCP server to your configuration:**
|
||||
```json
|
||||
{
|
||||
"mcpServers": [
|
||||
{
|
||||
"name": "appwrite-mcp-server",
|
||||
"command": "node",
|
||||
"args": ["C:\\path\\to\\your\\app-write-mcp\\dist\\index.js"]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
- **create_index**: Create an index in a collection (key, fulltext, unique)
|
||||
- **list_indexes**: List all indexes in a collection
|
||||
- **delete_index**: Delete an index from a collection
|
||||
3. **Restart your IDE** to apply the changes
|
||||
|
||||
### 📄 Document Operations
|
||||
### 4️⃣ Verification
|
||||
|
||||
- **create_document**: Create a new document in a collection
|
||||
- **get_document**: Get a document by ID
|
||||
- **list_documents**: List documents in a collection with optional queries
|
||||
- **update_document**: Update a document
|
||||
- **delete_document**: Delete a document
|
||||
Once integrated, you should be able to use commands like:
|
||||
- "List my Appwrite databases"
|
||||
- "Create a new user with email test@example.com"
|
||||
- "Show me all collections in my database"
|
||||
|
||||
### 👥 User Management
|
||||
## 🛠️ Available Tools (88 Total)
|
||||
|
||||
- **create_user**: Create a new user
|
||||
- **list_users**: List all users
|
||||
- **get_user**: Get a user by ID
|
||||
- **update_user_email**: Update user email
|
||||
- **update_user_name**: Update user name
|
||||
- **update_user_password**: Update user password
|
||||
- **delete_user**: Delete a user
|
||||
<details>
|
||||
<summary><strong>🗄️ Database Operations (3 tools)</strong></summary>
|
||||
|
||||
### 🗂️ Storage Operations
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_database` | Create a new database |
|
||||
| `list_databases` | List all databases in your project |
|
||||
| `delete_database` | Delete a database |
|
||||
|
||||
- **create_bucket**: Create a storage bucket
|
||||
- **list_buckets**: List all storage buckets
|
||||
- **get_bucket**: Get a bucket by ID
|
||||
- **update_bucket**: Update a storage bucket
|
||||
- **delete_bucket**: Delete a storage bucket
|
||||
- **list_files**: List files in a storage bucket
|
||||
</details>
|
||||
|
||||
### ⚡ Function Management
|
||||
<details>
|
||||
<summary><strong>📁 Collection Operations (3 tools)</strong></summary>
|
||||
|
||||
- **create_function**: Create a new serverless function
|
||||
- **list_functions**: List all functions
|
||||
- **get_function**: Get a function by ID
|
||||
- **update_function**: Update a function
|
||||
- **delete_function**: Delete a function
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_collection` | Create a new collection in a database |
|
||||
| `list_collections` | List all collections in a database |
|
||||
| `delete_collection` | Delete a collection from a database |
|
||||
|
||||
### 👨👩👧👦 Team Management
|
||||
</details>
|
||||
|
||||
- **create_team**: Create a new team
|
||||
- **list_teams**: List all teams
|
||||
- **get_team**: Get a team by ID
|
||||
- **update_team**: Update a team
|
||||
- **delete_team**: Delete a team
|
||||
<details>
|
||||
<summary><strong>🏷️ Attribute Management (7 tools)</strong></summary>
|
||||
|
||||
### 🧠 Smart Schema Operations
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_string_attribute` | Create a string attribute in a collection |
|
||||
| `create_integer_attribute` | Create an integer attribute in a collection |
|
||||
| `create_boolean_attribute` | Create a boolean attribute in a collection |
|
||||
| `create_email_attribute` | Create an email attribute in a collection |
|
||||
| `create_datetime_attribute` | Create a datetime attribute in a collection |
|
||||
| `list_attributes` | List all attributes in a collection |
|
||||
| `delete_attribute` | Delete an attribute from a collection |
|
||||
|
||||
- **auto_detect_schema**: Analyze sample data and automatically create collection schema
|
||||
- **suggest_indexes**: Recommend optimal indexes based on collection usage patterns
|
||||
- **validate_document**: Check document data against collection schema before creation
|
||||
- **schema_migration**: Automatically migrate collection schema with data preservation
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>📊 Index Management (3 tools)</strong></summary>
|
||||
|
||||
### 📊 Data Analysis & Insights
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_index` | Create an index in a collection (key, fulltext, unique) |
|
||||
| `list_indexes` | List all indexes in a collection |
|
||||
| `delete_index` | Delete an index from a collection |
|
||||
|
||||
- **analyze_collection**: Get comprehensive data insights and patterns from collections
|
||||
- **detect_duplicates**: Find potential duplicate records with similarity scoring
|
||||
- **data_quality_check**: Analyze data quality (completeness, validity, consistency)
|
||||
- **usage_stats**: Get usage statistics and access patterns for collections
|
||||
</details>
|
||||
|
||||
## Configuration
|
||||
<details>
|
||||
<summary><strong>📄 Document Operations (5 tools)</strong></summary>
|
||||
|
||||
### Getting Appwrite Credentials
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_document` | Create a new document in a collection ✨ *with schema validation* |
|
||||
| `get_document` | Get a document by ID |
|
||||
| `list_documents` | List documents in a collection with optional queries |
|
||||
| `update_document` | Update a document |
|
||||
| `delete_document` | Delete a document |
|
||||
|
||||
1. **Project ID**: Found in your Appwrite console under Settings > General
|
||||
2. **API Endpoint**:
|
||||
- For Appwrite Cloud: `https://cloud.appwrite.io/v1`
|
||||
- For self-hosted: `https://your-domain.com/v1`
|
||||
3. **API Key**: Create a new API key in your Appwrite console under Settings > API Keys
|
||||
- Make sure to give it appropriate permissions for databases and collections
|
||||
</details>
|
||||
|
||||
### Configuration File
|
||||
<details>
|
||||
<summary><strong>👥 User Management (7 tools)</strong></summary>
|
||||
|
||||
The `appwrite-config.json` file should be in the root directory of this project:
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_user` | Create a new user |
|
||||
| `list_users` | List all users |
|
||||
| `get_user` | Get a user by ID |
|
||||
| `update_user_email` | Update user email |
|
||||
| `update_user_name` | Update user name |
|
||||
| `update_user_password` | Update user password |
|
||||
| `delete_user` | Delete a user |
|
||||
|
||||
```json
|
||||
{
|
||||
"projectId": "your-project-id-here",
|
||||
"apiEndpoint": "https://cloud.appwrite.io/v1",
|
||||
"apiKey": "your-api-key-here"
|
||||
}
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>🗂️ Storage Operations (6 tools)</strong></summary>
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_bucket` | Create a storage bucket |
|
||||
| `list_buckets` | List all storage buckets |
|
||||
| `get_bucket` | Get a bucket by ID |
|
||||
| `update_bucket` | Update a storage bucket |
|
||||
| `delete_bucket` | Delete a storage bucket |
|
||||
| `list_files` | List files in a storage bucket |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>⚡ Function Management (5 tools)</strong></summary>
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_function` | Create a new serverless function |
|
||||
| `list_functions` | List all functions |
|
||||
| `get_function` | Get a function by ID |
|
||||
| `update_function` | Update a function |
|
||||
| `delete_function` | Delete a function |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>👨👩👧👦 Team Management (5 tools)</strong></summary>
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_team` | Create a new team |
|
||||
| `list_teams` | List all teams |
|
||||
| `get_team` | Get a team by ID |
|
||||
| `update_team` | Update a team |
|
||||
| `delete_team` | Delete a team |
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
### 🌟 **Exclusive Advanced Features**
|
||||
|
||||
<details>
|
||||
<summary><strong>🧠 Smart Schema Operations (4 tools)</strong></summary>
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `auto_detect_schema` | ✨ Analyze sample data and automatically create collection schema |
|
||||
| `suggest_indexes` | ✨ Recommend optimal indexes based on collection usage patterns |
|
||||
| `validate_document` | ✨ Check document data against collection schema before creation |
|
||||
| `schema_migration` | ✨ Automatically migrate collection schema with data preservation |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>📊 Data Analysis & Insights (4 tools)</strong></summary>
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `analyze_collection` | ✨ Get comprehensive data insights and patterns from collections |
|
||||
| `detect_duplicates` | ✨ Find potential duplicate records with similarity scoring |
|
||||
| `data_quality_check` | ✨ Analyze data quality (completeness, validity, consistency) |
|
||||
| `usage_stats` | ✨ Get usage statistics and access patterns for collections |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>🔐 Authentication & Sessions (3 tools)</strong></summary>
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_session` | ✨ Create a new user session with email and password |
|
||||
| `delete_session` | ✨ Delete a user session |
|
||||
| `list_sessions` | ✨ List all sessions for a user |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>⚡ Function Execution (3 tools)</strong></summary>
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `execute_function` | ✨ Execute a function with optional data |
|
||||
| `list_executions` | ✨ List function executions with logs |
|
||||
| `get_execution` | ✨ Get details of a specific function execution |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>🏥 Health Monitoring (3 tools)</strong></summary>
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `get_health` | ✨ Get overall health status of Appwrite services |
|
||||
| `get_health_db` | ✨ Get database health status |
|
||||
| `get_health_storage` | ✨ Get storage health status |
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>⚡ Bulk Operations (6 tools)</strong></summary>
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `bulk_create_users` | ✨ Create multiple users at once |
|
||||
| `bulk_update_users` | ✨ Update multiple users at once |
|
||||
| `bulk_delete_users` | ✨ Delete multiple users at once |
|
||||
| `bulk_create_documents` | ✨ Create multiple documents at once |
|
||||
| `bulk_update_documents` | ✨ Update multiple documents at once |
|
||||
| `bulk_delete_documents` | ✨ Delete multiple documents at once |
|
||||
|
||||
</details>
|
||||
|
||||
> ✨ **Exclusive features** not available in the official Appwrite MCP implementation
|
||||
|
||||
## ⚙️ Configuration Guide
|
||||
|
||||
### 🔑 Getting Appwrite Credentials
|
||||
|
||||
1. **🆔 Project ID**: Found in your Appwrite console under **Settings > General**
|
||||
2. **🌐 API Endpoint**:
|
||||
- **Appwrite Cloud**: `https://cloud.appwrite.io/v1`
|
||||
- **Self-hosted**: `https://your-domain.com/v1`
|
||||
3. **🔐 API Key**: Create a new API key in your Appwrite console under **Settings > API Keys**
|
||||
- ✅ Enable all scopes for full functionality
|
||||
- ⚠️ Required scopes: `databases.read`, `databases.write`, `users.read`, `users.write`, `functions.read`, `functions.write`, `storage.read`, `storage.write`
|
||||
|
||||
### 🎯 VS Official Implementation
|
||||
|
||||
| Feature | Our Implementation | Official Appwrite MCP |
|
||||
|---------|-------------------|----------------------|
|
||||
| **Tools Available** | 🟢 88 tools | 🟡 ~50 tools |
|
||||
| **Bulk Operations** | 🟢 Full support | 🔴 Not available |
|
||||
| **Schema Validation** | 🟢 Automatic | 🔴 Manual only |
|
||||
| **Error Handling** | 🟢 Comprehensive | 🟡 Basic |
|
||||
| **Language** | 🟡 TypeScript/Node.js | 🟢 Python |
|
||||
| **Memory Usage** | 🟡 Higher (monolithic) | 🟢 Lower (modular) |
|
||||
| **Deployment** | 🟢 Single executable | 🟡 Multiple dependencies |
|
||||
|
||||
## 🎯 Usage Examples
|
||||
|
||||
Once integrated, you can use natural language commands with Claude to interact with Appwrite:
|
||||
|
||||
<details>
|
||||
<summary><strong>🗄️ Database & Collection Management</strong></summary>
|
||||
|
||||
```
|
||||
✨ "Create a new database called 'ecommerce'"
|
||||
✨ "List all my databases"
|
||||
✨ "Create a collection called 'products' in the ecommerce database"
|
||||
✨ "Show me all collections in the ecommerce database"
|
||||
✨ "Delete the old 'test' database"
|
||||
```
|
||||
|
||||
## Usage Examples
|
||||
</details>
|
||||
|
||||
Once added to Claude Code, you can use natural language to interact with Appwrite:
|
||||
<details>
|
||||
<summary><strong>🏷️ Schema & Attributes</strong></summary>
|
||||
|
||||
**Database & Collection Management:**
|
||||
- "Create a new database called 'blog'"
|
||||
- "List all my databases"
|
||||
- "Create a collection called 'posts' in the blog database"
|
||||
- "Show me all collections in the blog database"
|
||||
```
|
||||
✨ "Add a string attribute called 'name' to the products collection with max size 255"
|
||||
✨ "Create a boolean attribute 'in_stock' in the products collection"
|
||||
✨ "List all attributes in the products collection"
|
||||
✨ "Create a unique index on the 'sku' attribute"
|
||||
✨ "Add an email attribute for 'contact_email'"
|
||||
```
|
||||
|
||||
**Attribute & Schema Management:**
|
||||
- "Add a string attribute called 'title' to the posts collection with max size 255"
|
||||
- "Create a boolean attribute 'published' in the posts collection"
|
||||
- "List all attributes in the posts collection"
|
||||
- "Create a unique index on the 'slug' attribute"
|
||||
</details>
|
||||
|
||||
**Document Operations:**
|
||||
- "Create a new document in the posts collection with title 'Hello World'"
|
||||
- "List all documents in the posts collection"
|
||||
- "Update document xyz123 in the posts collection"
|
||||
- "Get document abc456 from the posts collection"
|
||||
<details>
|
||||
<summary><strong>📄 Document Operations</strong></summary>
|
||||
|
||||
**User Management:**
|
||||
- "Create a new user with email john@example.com"
|
||||
- "List all users in the project"
|
||||
- "Update user xyz123's name to 'John Doe'"
|
||||
- "Delete user abc456"
|
||||
```
|
||||
✨ "Create a new product document with name 'iPhone 15' and price 999"
|
||||
✨ "List all documents in the products collection"
|
||||
✨ "Update document xyz123's price to 899"
|
||||
✨ "Get document abc456 from the products collection"
|
||||
✨ "Delete all out-of-stock products"
|
||||
```
|
||||
|
||||
**Storage Management:**
|
||||
- "Create a storage bucket called 'images'"
|
||||
- "List all storage buckets"
|
||||
- "Show me all files in the images bucket"
|
||||
</details>
|
||||
|
||||
**Function Management:**
|
||||
- "Create a new function called 'sendEmail' with Node.js runtime"
|
||||
- "List all functions"
|
||||
- "Update function abc123's timeout to 300 seconds"
|
||||
<details>
|
||||
<summary><strong>👥 User & Authentication</strong></summary>
|
||||
|
||||
**Team Management:**
|
||||
- "Create a new team called 'Developers'"
|
||||
- "List all teams"
|
||||
- "Add user john@example.com to the Developers team"
|
||||
```
|
||||
✨ "Create a new user with email john@example.com and password SecurePass123"
|
||||
✨ "List all users in the project"
|
||||
✨ "Update user xyz123's name to 'John Doe'"
|
||||
✨ "Create a session for user john@example.com"
|
||||
✨ "Bulk create 10 test users for demo purposes"
|
||||
```
|
||||
|
||||
**🧠 Smart Schema Operations:**
|
||||
- "Analyze this sample data and create a collection for me"
|
||||
- "Suggest optimal indexes for my users collection"
|
||||
- "Validate this document before I create it"
|
||||
- "Migrate my collection to add these new fields safely"
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>⚡ Advanced Features (Exclusive)</strong></summary>
|
||||
|
||||
**📊 Data Analysis & Insights:**
|
||||
- "Analyze the health and patterns in my users collection"
|
||||
- "Find duplicate records in my products collection"
|
||||
- "Check the data quality of my orders collection"
|
||||
- "Show me usage statistics for my database"
|
||||
```
|
||||
🚀 "Analyze this sample data and create a collection schema automatically"
|
||||
🚀 "Suggest optimal indexes for my users collection based on usage"
|
||||
🚀 "Validate this document data before creating it"
|
||||
🚀 "Find duplicate records in my customers collection"
|
||||
🚀 "Check the data quality of my orders collection"
|
||||
🚀 "Bulk create 100 user accounts from this CSV data"
|
||||
🚀 "Execute the 'sendWelcomeEmail' function with user data"
|
||||
🚀 "Show me the health status of all Appwrite services"
|
||||
```
|
||||
|
||||
## Development
|
||||
</details>
|
||||
|
||||
- `npm run build`: Build TypeScript to JavaScript
|
||||
- `npm run dev`: Watch mode for development
|
||||
- `npm start`: Run the built server
|
||||
### 🎬 **Real-World Scenarios**
|
||||
|
||||
## Troubleshooting
|
||||
**E-commerce Setup:**
|
||||
```
|
||||
1. "Create an ecommerce database"
|
||||
2. "Auto-detect schema from this product sample data"
|
||||
3. "Bulk import 500 products from my inventory"
|
||||
4. "Set up user authentication for customers"
|
||||
5. "Create indexes for search optimization"
|
||||
```
|
||||
|
||||
1. **Configuration not found**: Make sure `appwrite-config.json` exists in the project root
|
||||
2. **API Key issues**: Ensure your API key has the correct permissions for database operations
|
||||
3. **Connection issues**: Verify your API endpoint is correct (especially for self-hosted instances)
|
||||
**Content Management:**
|
||||
```
|
||||
1. "Create a blog database with posts and comments collections"
|
||||
2. "Validate my blog post structure before saving"
|
||||
3. "Find duplicate content across my posts"
|
||||
4. "Analyze user engagement patterns"
|
||||
```
|
||||
|
||||
## License
|
||||
---
|
||||
|
||||
MIT
|
||||
## 🔧 Development
|
||||
|
||||
```bash
|
||||
# Build TypeScript to JavaScript
|
||||
npm run build
|
||||
|
||||
# Watch mode for development
|
||||
npm run dev
|
||||
|
||||
# Run the built server
|
||||
npm start
|
||||
```
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
<details>
|
||||
<summary><strong>Common Issues & Solutions</strong></summary>
|
||||
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| **❌ Configuration not found** | Make sure `.env` file exists in your working directory |
|
||||
| **❌ API Key issues** | Ensure your API key has all required scopes enabled |
|
||||
| **❌ Connection failed** | Verify your API endpoint is correct (check for typos) |
|
||||
| **❌ Tools not loading** | Restart your IDE after adding the MCP server |
|
||||
| **❌ Permission denied** | Check that your API key has `databases.write`, `users.write` permissions |
|
||||
| **❌ Schema validation errors** | Use `list_attributes` to check collection schema before creating documents |
|
||||
|
||||
</details>
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch: `git checkout -b feature/amazing-feature`
|
||||
3. Commit your changes: `git commit -m 'Add amazing feature'`
|
||||
4. Push to the branch: `git push origin feature/amazing-feature`
|
||||
5. Open a Pull Request
|
||||
|
||||
## 📄 License
|
||||
|
||||
MIT License - see [LICENSE](LICENSE) file for details
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
**⭐ Star this repo if it helped you!**
|
||||
|
||||
Built with ❤️ for the Appwrite and Claude communities
|
||||
|
||||
[Report Bug](https://github.com/your-repo/issues) • [Request Feature](https://github.com/your-repo/issues) • [Documentation](https://github.com/your-repo/wiki)
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user