Skip to content

Add Appwrite Power - Backend-as-a-Service with MCP Server 2.0#118

Open
iamaanahmad wants to merge 2 commits into
kirodotdev:mainfrom
iamaanahmad:main
Open

Add Appwrite Power - Backend-as-a-Service with MCP Server 2.0#118
iamaanahmad wants to merge 2 commits into
kirodotdev:mainfrom
iamaanahmad:main

Conversation

@iamaanahmad
Copy link
Copy Markdown

This PR adds a new Appwrite power to the Kiro Powers repository, enabling developers to build backend services with Appwrite directly from their IDE. The power leverages MCP Server 2.0 (v0.4.1+) with a revolutionary two-tool architecture that provides zero-configuration setup and natural language query support.

What's New

🎉 New Power: Appwrite

Appwrite is an open-source backend-as-a-service platform that provides:

  • Databases: Collections, documents, queries, indexes, transactions
  • Authentication: User management, sessions, OAuth, MFA
  • Storage: File upload, download, image transformations
  • Functions: Serverless deployment with multiple runtimes
  • Messaging: Email, SMS, and push notifications
  • Sites: Static sites and SSR application deployment
  • Teams: Team management, memberships, and roles

🚀 MCP Server 2.0 Architecture

This power uses the latest MCP Server 2.0 with:

  • Zero Configuration: No service flags needed - all Appwrite services work automatically
  • Two-Tool Design: Only 2 MCP tools exposed (appwrite_search_tools and appwrite_call_tool)
  • Natural Language Support: AI understands conversational queries like "Create a database called 'production'"
  • Minimal Context Usage: Full tool catalog stays internal, freeing up context for user code
  • Startup Validation: Credentials validated when server starts for faster error detection

📁 Power Structure

Following Kiro's standard power structure:

appwrite/
├── POWER.md              # Complete power documentation
├── mcp.json              # MCP server configuration
└── steering/
    └── steering.md       # Best practices and usage patterns

Configuration

Simple Setup:

{
  "mcpServers": {
    "appwrite-api": {
      "command": "uvx",
      "args": ["mcp-server-appwrite"],
      "env": {
        "APPWRITE_PROJECT_ID": "${APPWRITE_PROJECT_ID}",
        "APPWRITE_API_KEY": "${APPWRITE_API_KEY}",
        "APPWRITE_ENDPOINT": "${APPWRITE_ENDPOINT}"
      }
    }
  }
}

Prerequisites:

That's it! All Appwrite services are automatically available - no additional configuration needed.

Key Features

Feature Description
Zero Configuration All services available automatically - no flags needed
Natural Language Use conversational queries instead of exact tool names
Minimal Context Only 2 tools exposed, full catalog searched at runtime
All Services Databases, users, storage, functions, messaging, sites, teams
Startup Validation Credentials checked on launch for faster debugging
Comprehensive Docs Complete onboarding, examples, workflows, and best practices

Usage Examples

Natural Language Queries:

// Just ask in plain English!
"Create a database called 'production'"
"Add a user with email john@example.com and password SecurePass123"
"Upload avatar.jpg to the avatars bucket"
"List all users where status is active"
"Deploy my function code to the processPayment function"

How It Works:

  1. AI uses appwrite_search_tools to find the right tool based on your query
  2. Server searches internal catalog and returns matching tool definition
  3. AI calls appwrite_call_tool with the specific tool name and parameters
  4. Server executes and returns the result

Example Workflows:

  • Complete database setup (database → collection → attributes → indexes → documents)
  • User authentication setup (create users → teams → memberships → preferences)
  • File storage management (create buckets → upload files → manage permissions)
  • Serverless function deployment (create function → deploy code → set variables → execute)

Technical Details

Why Appwrite?

Appwrite is a popular open-source backend platform with:

  • 50,000+ GitHub stars - Trusted by developers worldwide
  • Active community - Regular updates and strong Discord community
  • Production-ready - Used by thousands of applications
  • Developer-friendly - Comprehensive documentation and SDKs
  • Cloud & self-hosted - Flexible deployment options

Why This Power?

This power brings Appwrite's full capabilities to Kiro IDE with:

  • Latest MCP technology - Uses MCP Server 2.0 architecture
  • Zero friction - Simple setup, no complex configuration
  • Natural interaction - Conversational queries feel intuitive
  • Complete coverage - All Appwrite services accessible
  • Best practices - Comprehensive steering guide included

Documentation Included

POWER.md

  • Complete onboarding guide
  • MCP Server 2.0 architecture explanation
  • Natural language usage examples
  • Common workflows (database setup, user management, file storage, functions)
  • Configuration instructions
  • Troubleshooting guide
  • Best practices and tips
  • Resource links

steering/steering.md

  • MCP 2.0 usage patterns
  • Database design best practices
  • Security and permissions guidance
  • User management patterns
  • Storage optimization
  • Function development guidelines
  • Error handling strategies
  • Performance optimization
  • Testing approaches
  • Monitoring and logging

Testing & Validation

  • ✅ Verified MCP 2.0 architecture works with natural language queries
  • ✅ Confirmed all Appwrite services are accessible (databases, users, storage, functions, messaging, sites, teams)
  • ✅ Tested startup validation with invalid credentials
  • ✅ Validated minimal context usage
  • ✅ Tested with latest mcp-server-appwrite v0.4.1+
  • ✅ Followed Kiro power structure standards (POWER.md, mcp.json, steering/)
  • ✅ Comprehensive documentation with examples and best practices

Supported Services

All services are automatically available:

  • Databases - Collections, documents, queries, indexes, transactions
  • Users - Management, sessions, preferences, MFA, OAuth
  • Storage - Buckets, files, image transformations, previews
  • Functions - Serverless deployment, executions, variables
  • Messaging - Email, SMS, push notifications, topics
  • Sites - Static sites, SSR applications, deployments
  • Teams - Management, memberships, roles, invitations
  • Locale - Country, language, currency, timezone data
  • Avatars - Generate avatars, QR codes, favicons

References

Checklist

  • Updated POWER.md with MCP 2.0 documentation
  • Updated steering.md with best practices
  • Removed service flag documentation
  • Added natural language examples
  • Added migration guidance
  • Followed Kiro power structure standards
  • Tested with latest MCP server version

Note: This update maintains backward compatibility while providing a clear migration path. Users can upgrade by simply removing service flags from their configuration.

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
- Updated POWER.md with MCP 2.0 two-tool architecture
- Removed all service flag documentation (--users, --storage, etc.)
- Added natural language query examples and workflows
- Enhanced steering.md with MCP 2.0 best practices
- Simplified configuration (all services now automatic)
- Updated to mcp-server-appwrite v0.4.1+

Key improvements:
- Zero configuration - no service flags needed
- Reduced context usage - only 2 tools exposed
- Natural language support - conversational queries
- Startup validation - credentials checked on launch
- All Appwrite services automatically available
@github-actions
Copy link
Copy Markdown

Hi @iamaanahmad, thank you for your contribution!

Please note that if you haven't already, you would also need to submit your power officially at kiro.dev/powers/submit so it can be reviewed for listing in the Kiro powers registry.

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