Skip to content

Add Appwrite power for Kiro IDE#59

Open
iamaanahmad wants to merge 1 commit intokirodotdev:mainfrom
iamaanahmad:main
Open

Add Appwrite power for Kiro IDE#59
iamaanahmad wants to merge 1 commit intokirodotdev:mainfrom
iamaanahmad:main

Conversation

@iamaanahmad
Copy link

Add Appwrite Power for Kiro IDE

Description

This PR adds a new power for Appwrite, an open-source backend-as-a-service platform that provides authentication, databases, storage, functions, and messaging for web and mobile applications.

Changes

  • ✅ Add comprehensive Appwrite power with dual MCP servers (API + Docs)
  • ✅ Include modular API access with command-line flags
  • ✅ Add best practices steering file
  • ✅ Support for databases, auth, storage, functions, messaging, and sites
  • ✅ Update README with Appwrite entry

Features

Dual MCP Servers

  1. appwrite-api: Python-based server (via uvx) for direct API interaction

    • Modular design with command-line flags to enable specific APIs
    • Default: Databases only (minimal context usage)
    • Optional: --users, --storage, --functions, --messaging, --sites, etc.
    • Environment variables for secure credential management
  2. appwrite-docs: HTTP-based documentation server

    • Query Appwrite documentation for guidance
    • Get API references and code examples
    • No authentication required

Comprehensive Service Coverage

Databases:

  • Full CRUD operations on databases, collections, and documents
  • Attribute management (string, email, boolean, datetime, etc.)
  • Index creation and management
  • Query optimization with filters and pagination
  • Transaction support for atomic operations

Authentication & Users:

  • User creation and management
  • Email and password updates
  • Session management
  • User preferences and metadata
  • MFA support

Storage:

  • Bucket creation and configuration
  • File upload, download, and deletion
  • Image transformations and previews
  • File security and permissions

Functions:

  • Serverless function deployment
  • Multiple runtime support
  • Environment variable management
  • Function execution and monitoring

Messaging:

  • Email, SMS, and push notifications
  • Topic and subscriber management
  • Provider configuration

Sites:

  • Static site deployment
  • Server-side rendering support
  • Deployment management

Files Added

powers/appwrite/
├── POWER.md                          # Main power documentation (1,500+ lines)
├── mcp.json                          # MCP server configuration
└── steering/
    └── steering.md                   # Best practices guide

Documentation Highlights

POWER.md includes:

  • Onboarding: Step-by-step setup with prerequisite validation
  • Tool Documentation: Detailed descriptions of all available MCP tools
  • Usage Examples: Code examples for all major operations
  • Workflows: 4 complete end-to-end workflows:
    1. Complete Database Setup
    2. User Authentication Setup
    3. File Upload and Management
    4. Serverless Function Deployment
  • Best Practices: Do's and Don'ts for production applications
  • Troubleshooting: 10+ common errors with solutions
  • Configuration: Environment setup and MCP configuration examples
  • Tips: 15 practical tips for developers

steering.md includes:

  • Database design and schema planning
  • Indexing strategies and query optimization
  • Security and permissions patterns
  • User management best practices
  • Storage management and file optimization
  • Functions development guidelines
  • Real-time subscriptions
  • Error handling patterns
  • Performance optimization techniques
  • Testing strategies
  • Monitoring and logging
  • Migration and backup procedures

Power Activation

The power automatically activates when users mention these keywords:

  • appwrite
  • backend
  • database
  • auth / authentication
  • storage
  • functions
  • serverless
  • baas (backend-as-a-service)
  • api
  • users
  • teams
  • messaging

Prerequisites

For API Server:

  • uv installed (Python package manager)
  • Appwrite project with API key
  • Environment variables:
    • APPWRITE_PROJECT_ID
    • APPWRITE_API_KEY
    • APPWRITE_ENDPOINT

For Docs Server:

  • No prerequisites (HTTP-based)

Testing

  • ✅ Validated POWER.md structure and formatting
  • ✅ Verified mcp.json configuration syntax
  • ✅ Confirmed steering file best practices
  • ✅ Tested documentation examples for accuracy
  • ✅ Reviewed against existing power patterns (Stripe, Neon, Postman)
  • ✅ Ensured all links and references are correct

Comparison with Existing Powers

This power follows the established patterns from:

  • Stripe: Comprehensive API documentation with best practices
  • Neon: Database-focused with detailed workflows
  • Postman: Development hooks and automation

Unique aspects:

  • Dual MCP servers (API + Documentation)
  • Modular API activation to minimize context usage
  • Comprehensive backend service coverage
  • Backend-as-a-service focus

Additional Notes

  • The power uses environment variables for secure credential management
  • Command-line flags allow developers to enable only needed APIs
  • Documentation follows Kiro's power documentation standards
  • Best practices guide covers production-ready patterns
  • Includes troubleshooting for common issues

Checklist

  • Added POWER.md with complete documentation
  • Added mcp.json with server configurations
  • Added steering file with best practices
  • Updated README.md with Appwrite entry
  • Followed existing power structure and patterns
  • Included comprehensive examples and workflows
  • Added troubleshooting guide
  • Documented all prerequisites
  • Tested locally

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

- Add comprehensive Appwrite power with dual MCP servers (API + Docs)
- Include modular API access with command-line flags
- Add best practices steering file
- Support for databases, auth, storage, functions, messaging, and sites
- Update README with Appwrite entry
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant