diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..21bf658 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile +FROM python:3.12-slim + +# set work directory +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + && rm -rf /var/lib/apt/lists/* + +# Copy project dependency file +COPY pyproject.toml ./ +COPY uv.lock ./ + +# Install pip and build dependencies +RUN pip install --upgrade pip \ + && pip install --no-cache-dir hatchling + +# Copy entire project +COPY . . + +# Install project in editable mode +RUN pip install --no-cache-dir . + +# Expose any required ports if needed (if the server listens on a specific port) +EXPOSE 8000 + +# Default command to launch the MCP server +CMD ["mcp-server-appwrite"] diff --git a/README.md b/README.md index d3b9757..0906db0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Appwrite MCP server +[![smithery badge](https://smithery.ai/badge/@appwrite/mcp)](https://smithery.ai/server/@appwrite/mcp) + ## Overview @@ -36,6 +38,14 @@ APPWRITE_ENDPOINT=your-endpoint # Optional, defaults to https://cloud.appwrite. ## Installation +### Installing via Smithery + +To install Appwrite MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@appwrite/mcp): + +```bash +npx -y @smithery/cli install @appwrite/mcp --client claude +``` + ### Using uv (recommended) When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-appwrite*. diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..7a53ee0 --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,37 @@ +# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml + +startCommand: + type: stdio + configSchema: + # JSON Schema defining the configuration options for the MCP. + type: object + required: + - appwriteApiKey + - appwriteProjectId + properties: + appwriteApiKey: + type: string + description: Your Appwrite API key. + appwriteProjectId: + type: string + description: Your Appwrite project ID. + appwriteEndpoint: + type: string + default: https://cloud.appwrite.io/v1 + description: Optional Appwrite endpoint URL. + commandFunction: + # A JS function that produces the CLI command based on the given config to start the MCP on stdio. + |- + (config) => ({ + command: 'mcp-server-appwrite', + args: [], + env: { + APPWRITE_API_KEY: config.appwriteApiKey, + APPWRITE_PROJECT_ID: config.appwriteProjectId, + APPWRITE_ENDPOINT: config.appwriteEndpoint || 'https://cloud.appwrite.io/v1' + } + }) + exampleConfig: + appwriteApiKey: dummy-api-key + appwriteProjectId: dummy-project-id + appwriteEndpoint: https://cloud.appwrite.io/v1