mcp-server

ramxcodes/mcp-server

3.2

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.

Tools
7
Resources
0
Prompts
0

AppWrite MCP Server

Next.js React TypeScript Tailwind CSS Appwrite

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:

  1. creatorInfo - Get detailed information about the creator
  2. getDocument - Retrieve a document by its unique ID
  3. listDocuments - List all documents from a collection
  4. createDocument - Create new documents in the database
  5. updateDocument - Update existing documents
  6. deleteDocument - Delete documents from the database
  7. clearCollection - 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

  1. Create an Appwrite project
  2. Create a database
  3. Create a collection (e.g., 'company_names')
  4. Set up the following attributes in your collection:
    • company_name (string)
    • company_id (integer)
  5. Generate an API key with database permissions
  6. 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 Turbo
  • build - Build the application for production
  • start - Start the production server
  • lint - 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.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

šŸ“„ License

This project is licensed under the MIT License - see the file for details.

šŸ™ Acknowledgments

šŸ“ž 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