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.
- π₯ 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 Turbopack
- π 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
- π― Interactive Demo: Live terminal-style demo showcasing MCP operations
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 databaseupsertDocument- Create or update documents (upsert operation)
The landing page features an animated hero section with a live terminal demo showcasing MCP operations in real-time.
Browse through the complete codebase with syntax highlighting and easy copy-paste functionality.
Experience the MCP server in action with an interactive demonstration of database operations.
- Node.js 18+ or Bun
- An Appwrite account and project
- Appwrite database and collection setup
git clone https://github.com/dev0jha/mcp-server.git
cd mcp-serverUsing npm:
npm installUsing bun (recommended):
bun installCreate 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-IDReplace 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
npm run dev
# or
bun devOpen http://localhost:3000 to view the application.
The web application provides:
- Hero Section: Overview of the MCP server capabilities with animated terminal demo
- Code Showcase: Interactive code browser with syntax highlighting
- MCP Demo: Live demonstration of the server functionality
- Video Showcase: Visual guides and tutorials
- Documentation Links: Quick access to resources and GitHub repository
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.
// Connect to the MCP server
mcp.connect('https://mcp.devojha.in/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' })
// Update a document
await mcp.updateDocument({
documentId: 'doc_id_here',
company_name: 'Updated Corp',
company_id: 67890
})
// Delete a document
await mcp.deleteDocument({ documentId: 'doc_id_here' })- Next.js 15.3.3 - React framework with App Router and Turbopack
- React 19.0.0 - UI library with latest concurrent features
- TypeScript 5 - Type safety and enhanced developer experience
- Tailwind CSS 4 - Utility-first styling framework
- Framer Motion - Smooth animations and transitions
- Radix UI - Accessible, unstyled component primitives
- Shadcn/ui - Beautiful, reusable component library
- Lucide React - Modern icon library
- Appwrite 17.0.0 - Backend-as-a-Service platform
- @vercel/mcp-adapter - Model Context Protocol server implementation
- @modelcontextprotocol/sdk - MCP SDK for building tools
- Zod - TypeScript-first schema validation
- ESLint - Code linting and quality checks
- PostCSS - CSS processing and optimization
- Bun - Fast package manager and runtime (recommended)
- Shiki - Beautiful syntax highlighting
βββ 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 with terminal demo
β β βββ code-showcase.tsx # Code browser component
β β βββ mcp-demo.tsx # MCP demonstration component
β β βββ video-showcase.tsx # Video tutorials component
β β βββ link-and-info.tsx # Footer and links component
β β βββ navbar.tsx # Navigation component
β β βββ copy-url-btn.tsx # URL copy button component
β βββ lib/
β β βββ utils.ts # Utility functions
β β βββ tools/
β β βββ appwrite.ts # Appwrite tools and handlers
β βββ hooks/
β βββ use-mobile.ts # Mobile detection hook
βββ public/ # Static assets and images
βββ .env # Environment variables
βββ next.config.ts # Next.js configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ package.json # Dependencies and scripts
- Create an Appwrite project at cloud.appwrite.io
- Create a database
- Create a collection (e.g., 'company_names')
- Set up the following attributes in your collection:
company_name(string, required)company_id(integer, required)
- Generate an API key with database permissions:
- Navigate to your project settings
- Go to API Keys section
- Create a new key with
databases.readanddatabases.writescopes
- Update your
.envfile with the credentials
To use this server with an MCP client (like Claude Desktop), configure it with:
{
"mcpServers": {
"appwrite": {
"url": "https://mcp.devojha.in/mcp",
"transport": "sse"
}
}
}dev- Start development server with Turbopack (fast refresh)build- Build the application for productionstart- Start the production serverlint- Run ESLint for code quality checks
- Click the "Deploy" button above
- Add your environment variables in the Vercel dashboard
- Deploy!
# Build the project
npm run build
# Start the production server
npm startMake sure to set up environment variables in your hosting platform.
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
- Follow the existing code style
- Write meaningful commit messages
- Add comments for complex logic
- Test your changes thoroughly
- Run
npm run lintbefore committing
This project is licensed under the MIT License - see the LICENSE file for details.
- Appwrite - Excellent backend-as-a-service platform
- Vercel - Amazing hosting and MCP adapter
- Shadcn/ui - Beautiful UI component library
- Radix UI - Accessible component primitives
- Model Context Protocol - Revolutionary AI interaction standard
If you have any questions or need help, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainer
- Live Demo: https://mcp.devojha.in
- Documentation: Model Context Protocol Docs
- GitHub Repository: github.com/dev0jha/mcp-server
- Portfolio: devojha.in
Built with β€οΈ by Dev
Portfolio: https://devojha.in | GitHub: @dev0jha
