Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ Both the `uv` and `pip` setup processes require certain arguments to enable MCP

| Argument | Description |
| --- | --- |
| `--databases` | Enables the Databases API |
| `--tables-db` | Enables the TablesDB API |
| `--users` | Enables the Users API |
| `--teams` | Enables the Teams API |
| `--storage` | Enables the Storage API |
Expand All @@ -98,6 +98,7 @@ Both the `uv` and `pip` setup processes require certain arguments to enable MCP
| `--avatars` | Enables the Avatars API |
| `--sites` | Enables the Sites API |
| `--all` | Enables all Appwrite APIs |
| `--databases` | Enables the Legacy Databases API |

## Usage with Claude Desktop

Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
[project]
name = "mcp-server-appwrite"
version = "0.2.7"
version = "0.2.8"
description = "MCP (Model Context Protocol) server for Appwrite"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"appwrite>=11.1.0",
"appwrite>=13.4.1",
"docstring-parser>=0.16",
"mcp[cli]>=1.3.0",
]
Expand Down
4 changes: 2 additions & 2 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-16/server.schema.json",
"name": "io.github.appwrite/mcp-for-api",
"description": "MCP (Model Context Protocol) server for Appwrite",
"version": "0.2.7",
"version": "0.2.8",
"repository": {
"url": "https://github.com/appwrite/mcp-for-api",
"source": "github"
},
"packages": [
{
"version": "0.2.7",
"version": "0.2.8",
"registryType": "pypi",
"identifier": "mcp-server-appwrite",
"transport": {
Expand Down
22 changes: 13 additions & 9 deletions src/mcp_server_appwrite/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from dotenv import load_dotenv
from appwrite.client import Client
from appwrite.services.databases import Databases
from appwrite.services.tables_db import TablesDB
from appwrite.services.users import Users
from appwrite.services.teams import Teams
from appwrite.services.storage import Storage
Expand All @@ -24,7 +25,7 @@

def parse_args():
parser = argparse.ArgumentParser(description='Appwrite MCP Server')
parser.add_argument('--databases', action='store_true', help='Enable Databases service')
parser.add_argument('--tables-db', action='store_true', help='Enable TablesDB service')
parser.add_argument('--users', action='store_true', help='Enable Users service')
parser.add_argument('--teams', action='store_true', help='Enable Teams service')
parser.add_argument('--storage', action='store_true', help='Enable Storage service')
Expand All @@ -33,6 +34,7 @@ def parse_args():
parser.add_argument('--locale', action='store_true', help='Enable Locale service')
parser.add_argument('--avatars', action='store_true', help='Enable Avatars service')
parser.add_argument('--sites', action='store_true', help='Enable Sites service')
parser.add_argument('--databases', action='store_true', help='Enable Legacy Databases service')
parser.add_argument('--all', action='store_true', help='Enable all services')
return parser.parse_args()

Expand Down Expand Up @@ -60,13 +62,13 @@ def parse_args():
def register_services(args):
# If --all is specified, enable all services
if args.all:
args.databases = args.users = args.teams = args.storage = True
args.tables_db = args.users = args.teams = args.storage = True
args.functions = args.messaging = args.locale = args.avatars = True
args.sites = True

# Register services based on CLI arguments
if args.databases:
tools_manager.register_service(Service(Databases(client), "databases"))
if args.tables_db:
tools_manager.register_service(Service(TablesDB(client), "tables_db"))
if args.users:
tools_manager.register_service(Service(Users(client), "users"))
if args.teams:
Expand All @@ -83,12 +85,14 @@ def register_services(args):
tools_manager.register_service(Service(Avatars(client), "avatars"))
if args.sites:
tools_manager.register_service(Service(Sites(client), "sites"))

# If no services were specified, enable databases by default
if not any([args.databases, args.users, args.teams, args.storage,
args.functions, args.messaging, args.locale, args.avatars]):
if args.databases:
tools_manager.register_service(Service(Databases(client), "databases"))

# If no services were specified, enable tables_db by default
if not any([args.databases, args.tables_db, args.users, args.teams, args.storage,
args.functions, args.messaging, args.locale, args.avatars, args.sites]):
tools_manager.register_service(Service(TablesDB(client), "tables_db"))

async def serve() -> Server:
server = Server("Appwrite MCP Server")

Expand Down Expand Up @@ -130,7 +134,7 @@ async def _run():
write_stream,
InitializationOptions(
server_name="appwrite",
server_version="0.2.0",
server_version="0.2.8",
capabilities=server.get_capabilities(
notification_options=NotificationOptions(),
experimental_capabilities={},
Expand Down
10 changes: 5 additions & 5 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.