Appwrite MCP Server

Appwrite MCP Server
Official

A Model Context Protocol server that allows AI assistants to interact with Appwrite's API, providing tools to manage databases, users, functions, teams, and other resources within Appwrite projects.

appwrite

Databases
Cloud Platforms
Python
Visit Server

Tools

databases_create_document

Create document

databases_create_email_attribute

Create email attribute

databases_create_enum_attribute

Create enum attribute

databases_create_float_attribute

Create float attribute

databases_create_index

Create index

databases_create_integer_attribute

Create integer attribute

users_create

Create user

users_create_argon2_user

Create user with Argon2 password

users_create_bcrypt_user

Create user with bcrypt password

users_create_jwt

Create user JWT

users_create_md5_user

Create user with MD5 password

users_create_mfa_recovery_codes

Create MFA recovery codes

users_create_ph_pass_user

Create user with PHPass password

databases_create_ip_attribute

Create IP address attribute

users_create_scrypt_modified_user

Create user with Scrypt modified password

databases_create_relationship_attribute

Create relationship attribute

databases_update_datetime_attribute

Update dateTime attribute

databases_update_document

Update document

databases_update_email_attribute

Update email attribute

users_create_scrypt_user

Create user with Scrypt password

users_create_session

Create session

users_create_sha_user

Create user with SHA password

users_create_target

Create user target

users_delete

Delete user

users_create_token

Create token

users_delete_identity

Delete identity

users_delete_mfa_authenticator

Delete authenticator

users_delete_session

Delete user session

users_delete_sessions

Delete user sessions

users_delete_target

Delete user target

users_get

Get user

users_get_mfa_recovery_codes

Get MFA recovery codes

users_get_prefs

Get user preferences

users_get_target

Get user target

users_list

List users

users_update_status

Update user status

users_list_identities

List identities

users_list_logs

List user logs

users_list_memberships

List user memberships

users_list_mfa_factors

List factors

users_list_sessions

List user sessions

users_list_targets

List user targets

users_update_email

Update email

users_update_email_verification

Update email verification

users_update_labels

Update user labels

users_update_mfa

Update MFA

users_update_mfa_recovery_codes

Regenerate MFA recovery codes

users_update_name

Update name

users_update_password

Update password

users_update_phone

Update phone

users_update_phone_verification

Update phone verification

users_update_prefs

Update user preferences

users_update_target

Update user target

databases_create

Create database

databases_create_boolean_attribute

Create boolean attribute

databases_create_collection

Create collection

databases_create_datetime_attribute

Create datetime attribute

databases_get_document

Get document

databases_update_collection

Update collection

databases_get_index

Get index

databases_update_enum_attribute

Update enum attribute

databases_list

List databases

databases_list_attributes

List attributes

databases_list_collections

List collections

databases_list_documents

List documents

databases_list_indexes

List indexes

databases_update

Update database

databases_update_boolean_attribute

Update boolean attribute

databases_create_string_attribute

Create string attribute

databases_create_url_attribute

Create URL attribute

databases_delete

Delete database

databases_delete_attribute

Delete attribute

databases_delete_collection

Delete collection

databases_delete_document

Delete document

databases_delete_index

Delete index

databases_get

Get database

databases_get_attribute

Get attribute

databases_get_collection

Get collection

databases_update_float_attribute

Update float attribute

databases_update_integer_attribute

Update integer attribute

databases_update_ip_attribute

Update IP address attribute

databases_update_relationship_attribute

Update relationship attribute

databases_update_string_attribute

Update string attribute

databases_update_url_attribute

Update URL attribute

README

Appwrite MCP server

<!-- Cover image will go here once available -->

<a href="https://glama.ai/mcp/servers/xkj2px7r0v"> <img width="380" height="200" src="https://glama.ai/mcp/servers/xkj2px7r0v/badge" alt="Appwrite MCP server" /> </a>

Overview

A Model Context Protocol server for interacting with Appwrite's API. This server provides tools to manage databases, users, functions, teams, and more within your Appwrite project.

Quick Links

Configuration

Before launching the MCP server, you must setup an Appwrite project and create an API key with the necessary scopes enabled.

Create a .env file in your working directory and add the following:

APPWRITE_PROJECT_ID=your-project-id
APPWRITE_API_KEY=your-api-key
APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1

Then, open your terminal and run the following command

Linux and MacOS

source .env

Windows

Command Prompt

for /f "tokens=1,2 delims==" %A in (.env) do set %A=%B

PowerShell

Get-Content .\.env | ForEach-Object {
  if ($_ -match '^(.*?)=(.*)$') {
    [System.Environment]::SetEnvironmentVariable($matches[1], $matches[2], "Process")
  }
}

Installation

Using uv (recommended)

When using uv no specific installation is needed. We will use uvx to directly run mcp-server-appwrite.

uvx mcp-server-appwrite [args]

Using pip

pip install mcp-server-appwrite

Then run the server using

python -m mcp_server_appwrite [args]

Command-line arguments

Both the uv and pip setup processes require certain arguments to enable MCP tools for various Appwrite APIs.

When an MCP tool is enabled, the tool's definition is passed to the LLM, using up tokens from the model's available context window. As a result, the effective context window is reduced.

The default Appwrite MCP server ships with only the Databases tools (our most commonly used API) enabled to stay within these limits. Additional tools can be enabled by using the flags below.

Argument Description
--databases Enables the Databases API
--users Enables the Users API
--teams Enables the Teams API
--storage Enables the Storage API
--functions Enables the Functions API
--messaging Enables the Messaging API
--locale Enables the Locale API
--avatars Enables the Avatars API
--all Enables all Appwrite APIs

Usage with Claude Desktop

In the Claude Desktop app, open the app's Settings page (press CTRL + , on Windows or CMD + , on MacOS) and head to the Developer tab. Clicking on the Edit Config button will take you to the claude_desktop_config.json file, where you must add the following:

{
  "mcpServers": {
    "appwrite": {
      "command": "uvx",
      "args": [
        "mcp-server-appwrite"
      ],
      "env": {
        "APPWRITE_PROJECT_ID": "your-project-id",
        "APPWRITE_API_KEY": "your-api-key",
        "APPWRITE_ENDPOINT": "https://cloud.appwrite.io/v1" // Optional
      }
    }
  }
}

Note: In case you see a uvx ENOENT error, ensure that you either add uvx to the PATH environment variable on your system or use the full path to your uvx installation in the config file.

Upon successful configuration, you should be able to see the server in the list of available servers in Claude Desktop.

Claude Desktop Config

Usage with Cursor

Head to Cursor Settings > MCP and click on Add new MCP server. Choose the type as Command and add the command below to the Command field.

  • MacOS
env APPWRITE_API_KEY=your-api-key env APPWRITE_PROJECT_ID=your-project-id uvx mcp-server-appwrite
  • Windows
cmd /c SET APPWRITE_PROJECT_ID=your-project-id && SET APPWRITE_API_KEY=your-api-key && uvx mcp-server-appwrite

Cursor Settings

Usage with Windsurf Editor

Head to Windsurf Settings > Cascade > Model Context Protocol (MCP) Servers and click on View raw config. Update the mcp_config.json file to include the following:

{
  "mcpServers": {
    "appwrite": {
      "command": "uvx",
      "args": [
        "mcp-server-appwrite"
      ],
      "env": {
        "APPWRITE_PROJECT_ID": "your-project-id",
        "APPWRITE_API_KEY": "your-api-key",
        "APPWRITE_ENDPOINT": "https://cloud.appwrite.io/v1" // Optional
      }
    }
  }
}

Windsurf Settings

Local Development

Clone the repository

git clone https://github.com/appwrite/mcp.git

Install uv

  • Linux or MacOS
curl -LsSf https://astral.sh/uv/install.sh | sh
  • Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Prepare virtual environment

First, create a virtual environment.

uv venv

Next, activate the virtual environment.

  • Linux or MacOS
source .venv/bin/activate
  • Windows
.venv\Scripts\activate

Run the server

uv run -v --directory ./ mcp-server-appwrite

Debugging

You can use the MCP inspector to debug the server.

npx @modelcontextprotocol/inspector \
  uv \
  --directory . \
  run mcp-server-appwrite

Make sure your .env file is properly configured before running the inspector. You can then access the inspector at http://localhost:5173.

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Recommended Servers

DuckDuckGo MCP Server

DuckDuckGo MCP Server

A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.

Featured
Python
contentful-mcp

contentful-mcp

Update, create, delete content, content-models and assets in your Contentful Space

Featured
TypeScript
Supabase MCP Server

Supabase MCP Server

A Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.

Featured
JavaScript
YouTube Transcript MCP Server

YouTube Transcript MCP Server

This server retrieves transcripts for given YouTube video URLs, enabling integration with Goose CLI or Goose Desktop for transcript extraction and processing.

Featured
Python
MCP DuckDB Knowledge Graph Memory Server

MCP DuckDB Knowledge Graph Memory Server

A memory server for Claude that stores and retrieves knowledge graph data in DuckDB, enhancing performance and query capabilities for conversations with persistent user information.

Featured
TypeScript
dbt Semantic Layer MCP Server

dbt Semantic Layer MCP Server

A server that enables querying the dbt Semantic Layer through natural language conversations with Claude Desktop and other AI assistants, allowing users to discover metrics, create queries, analyze data, and visualize results.

Featured
TypeScript
Tavily MCP Server

Tavily MCP Server

Provides AI-powered web search capabilities using Tavily's search API, enabling LLMs to perform sophisticated web searches, get direct answers to questions, and search recent news articles.

Featured
Python
Metabase MCP Server

Metabase MCP Server

Enables AI assistants to interact with Metabase databases and dashboards, allowing users to list and execute queries, access data visualizations, and interact with database resources through natural language.

Featured
JavaScript
Airtable MCP Server

Airtable MCP Server

A Model Context Protocol server that provides tools for programmatically managing Airtable bases, tables, fields, and records through Claude Desktop or other MCP clients.

Featured
JavaScript
mcp-shodan

mcp-shodan

MCP server for querying the Shodan API and Shodan CVEDB. This server provides tools for IP lookups, device searches, DNS lookups, vulnerability queries, CPE lookups, and more.

Featured
JavaScript