Skip to content

Repository files navigation

TaskFlow: an MCP server powered by the Appwrite OAuth2 server

TaskFlow is a small task manager built on Appwrite. It ships a remote MCP server, hosted as an Appwrite Function, so AI tools like Claude Code can read and manage a user's tasks with the user's permission.

The interesting part is the auth. TaskFlow's Appwrite project acts as the OAuth2 server: AI clients register themselves, users approve access on a consent screen TaskFlow hosts, and the MCP server verifies the tokens the project issues. No API keys are handed out, and users can disconnect a tool at any time.

Companion repository for the Appwrite blog tutorial "Turn your app into an MCP server".

Layout

apps/taskflow          The TaskFlow web app (TanStack Start): tasks, sign-in,
                       the OAuth2 consent screen, and a connected apps page.
functions/taskflow-mcp The MCP server, deployed as an Appwrite Function.
scripts                One-time database provisioning.

Setup

  1. Create an Appwrite project and copy .env.example to .env with your endpoint, project ID, an API key (scopes: sessions.write, users.read, apps.read, databases.read, databases.write, tables.read, tables.write), and a random session secret.

  2. Install and provision the database:

    pnpm install
    pnpm provision
  3. In the Console, open Auth > OAuth2 server, enable the server, set the authorization URL to http://localhost:4100/oauth/consent, and add the tasks.read and tasks.write scopes.

  4. Deploy the web app and the MCP server (uses the Appwrite CLI), then set the site's variables in the Console (same values as .env):

    appwrite login
    appwrite push site --site-id taskflow
    appwrite push function --function-id taskflow-mcp --activate
  5. Update the OAuth2 server's authorization URL to https://<SITE_DOMAIN>/oauth/consent.

  6. Connect from Claude Code, using the function's domain from the deploy output:

    claude mcp add --transport http taskflow https://<FUNCTION_DOMAIN>/mcp

    Run /mcp inside Claude Code and pick Authenticate. Sign in as a TaskFlow user, approve access, and ask Claude about your tasks.

Live demo

The deployed result of this repository: the app at taskflow.appwrite.network and the MCP server at https://taskflow-mcp.appwrite.network/mcp. Create an account, connect Claude Code with the command above, and manage your tasks from the conversation.

About

TaskFlow: a remote MCP server on Appwrite Functions, secured by the Appwrite OAuth2 server

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages