ramxcodes/mcp-server
If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The AppWrite MCP Server is a robust Model Context Protocol server designed for seamless integration with Appwrite database operations, offering a modern web interface and efficient database interactions.
AppWrite MCP Server
A powerful Model Context Protocol (MCP) Server that provides seamless integration with Appwrite database operations. This project combines a beautiful, modern web interface with a robust MCP server for database interactions, built with Next.js 15, React 19, and the latest web technologies.
š Features
- š„ MCP Server Integration: Full Model Context Protocol server implementation
- šļø Database Operations: Complete CRUD operations for Appwrite databases
- ā” Lightning Fast: Optimized for speed with Next.js 15 and Turbo
- š Secure: Built with security best practices and type-safe operations
- šØ Beautiful UI: Modern, responsive interface with Tailwind CSS and Framer Motion
- š± Responsive Design: Fully responsive across all devices
- š Modern Stack: Next.js 15, React 19, TypeScript, and latest dependencies
Available MCP Tools
The server provides 7 powerful database tools:
creatorInfo
- Get detailed information about the creatorgetDocument
- Retrieve a document by its unique IDlistDocuments
- List all documents from a collectioncreateDocument
- Create new documents in the databaseupdateDocument
- Update existing documentsdeleteDocument
- Delete documents from the databaseclearCollection
- Clear all documents from a collection
š Quick Start
Prerequisites
- Node.js 18+ or Bun
- An Appwrite account and project
- Appwrite database and collection setup
1. Clone the Repository
git clone https://github.com/ramxcodes/mcp-server.git
cd mcp-server
2. Install Dependencies
Using npm:
npm install
Using bun (recommended):
bun install
3. Environment Setup
Create a .env
file in the root directory:
APPWRITE_ENDPOINT=https://YOURID.cloud.appwrite.io/v1
APPWRITE_PROJECT_ID=YOUR-PROJECT-ID
APPWRITE_API_KEY=YOUR-API-KEY
DATABASE_ID=YOUR-DB-ID
Replace the placeholder values with your actual Appwrite credentials:
- APPWRITE_ENDPOINT: Your Appwrite instance endpoint
- APPWRITE_PROJECT_ID: Your Appwrite project ID
- APPWRITE_API_KEY: Your Appwrite API key (with database permissions)
- DATABASE_ID: Your Appwrite database ID
4. Run the Development Server
npm run dev
# or
bun dev
Open http://localhost:3000 to view the application.
š Usage
Web Interface
The web application provides:
- Hero Section: Overview of the MCP server capabilities
- Code Showcase: Interactive examples and documentation
- MCP Demo: Live demonstration of the server functionality
- Video Showcase: Visual guides and tutorials
- Documentation Links: Quick access to resources
MCP Server Endpoint
The MCP server is available at:
https://your-domain.com/mcp
You can use this endpoint with any MCP-compatible client to interact with your Appwrite database.
Example MCP Usage
// Connect to the MCP server
mcp.connect('https://your-domain.com/mcp')
// List all documents
await mcp.listDocuments({ collectionId: 'company_names' })
// Create a new document
await mcp.createDocument({
company_name: 'Example Corp',
company_id: 12345
})
// Get a specific document
await mcp.getDocument({ documentId: 'doc_id_here' })
š ļø Tech Stack
Frontend
- Next.js 15.3.3 - React framework with App Router
- React 19.0.0 - UI library
- TypeScript 5 - Type safety
- Tailwind CSS 4 - Styling
- Framer Motion - Animations
- Radix UI - Accessible components
- Shadcn/ui - UI component library
Backend & Database
- Appwrite 17.0.0 - Backend-as-a-Service
- @vercel/mcp-adapter - MCP server implementation
- Zod - Schema validation
Development Tools
- ESLint - Code linting
- PostCSS - CSS processing
- Bun - Package manager and runtime
š Project Structure
āāā src/
ā āāā app/
ā ā āāā [transport]/
ā ā ā āāā route.ts # MCP server endpoint
ā ā āāā layout.tsx # Root layout
ā ā āāā page.tsx # Homepage
ā ā āāā globals.css # Global styles
ā āāā components/
ā ā āāā ui/ # Shadcn UI components
ā ā āāā magicui/ # Additional UI components
ā ā āāā hero-section.tsx # Hero section component
ā ā āāā code-showcase.tsx # Code examples component
ā ā āāā mcp-demo.tsx # MCP demo component
ā ā āāā ... # Other components
ā āāā lib/
ā ā āāā tools/
ā ā āāā appwrite.ts # Appwrite tools and handlers
ā āāā hooks/ # Custom React hooks
āāā public/ # Static assets
āāā .env # Environment variables
āāā next.config.ts # Next.js configuration
āāā tailwind.config.js # Tailwind CSS configuration
āāā tsconfig.json # TypeScript configuration
āāā package.json # Dependencies and scripts
š§ Configuration
Appwrite Setup
- Create an Appwrite project
- Create a database
- Create a collection (e.g., 'company_names')
- Set up the following attributes in your collection:
company_name
(string)company_id
(integer)
- Generate an API key with database permissions
- Update your
.env
file with the credentials
MCP Client Configuration
To use this server with an MCP client, configure it with:
{
"server_url": "https://your-domain.com/mcp",
"capabilities": [
"database_operations",
"document_management"
]
}
š Available Scripts
dev
- Start development server with Turbobuild
- Build the application for productionstart
- Start the production serverlint
- Run ESLint for code quality
š¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
š License
This project is licensed under the MIT License - see the file for details.
š Acknowledgments
- Appwrite for the excellent backend services
- Vercel for the MCP adapter
- Shadcn/ui for the beautiful UI components
- Radix UI for accessible components
š Support
If you have any questions or need help, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainer
Built with ā¤ļø by Ramkrishna Swarnkar
Portfolio: https://ramx.in | GitHub: @ramxcodes