flowya-mcp
Hosted MCP server that exposes Flowya tasks, spaces, and weekly goals to AI clients like Cursor, Claude, and Cowork with per-user authentication and isolation.
README
flowya-mcp
Hosted, multi-tenant MCP server that exposes each Flowya user's tasks, spaces, and weekly goals to AI clients (Cursor, Claude, Cowork).
It is a thin tool layer over the same Supabase database Flowya's macOS/iOS apps use. Every request is scoped to the calling user, so it is safe to run one shared endpoint for all users.
How it works
AI client (Cursor / Claude / Cowork)
│ HTTPS POST /mcp + Authorization: Bearer fmcp_...
▼
flowya-mcp (Vercel) ──service role + per-user ownership checks──▶ Supabase
- Transport: Streamable HTTP at
POST /mcp(stateless: a fresh MCP server per request). A localstdioentrypoint exists for development. - Auth (v1): Personal Access Tokens (PAT, prefix
fmcp_). A user generates one from Flowya ("Connect with AI"); the client sends it as a Bearer token. Seesrc/auth.ts. - Isolation: the server uses the Supabase service role but scopes every query by the verified
user_idand checks resource ownership (spaces/todos/goals) before any read or write. Seesrc/api/.
Tools
| Tool | Description |
|---|---|
list_spaces |
List the user's spaces (fronts) |
get_tasks |
List tasks with filters (space, status, priority, archived, due dates) |
create_task |
Create a task in a space |
update_task |
Partial update (status changes set started_at/completed_at) |
reorder_tasks |
Set task order/positions |
archive_task |
Soft-delete a task |
get_weekly_goals |
Current week's goals (optionally last week too) |
set_weekly_goals |
Replace the current week's goals |
link_goal_to_tasks |
Attach tasks to a weekly goal |
The server also declares instructions so agents treat Flowya as the single source of truth for tasks and prioritize by impact on goals.
Setup
- Install:
npm install - Create
.envfrom.env.example:FLOWYA_SUPABASE_URL,FLOWYA_SUPABASE_ANON_KEY— same values Flowya uses (VITE_SUPABASE_URL/VITE_SUPABASE_ANON_KEY).SUPABASE_SERVICE_ROLE— the project's service role key (server only).
- Apply the token table migration to the Supabase project:
Flowya-MacOS/supabase/migrations/create_mcp_tokens_table.sql - Typecheck/build:
npm run typecheck/npm run build
Run locally
- HTTP server:
npm run start(defaults to:8787). Health:GET /health. - Stdio (dev, no token — acts as one user): set
FLOWYA_DEV_USER_IDand runnpm run mcp.
Deploy (Vercel)
The repo is Vercel-ready:
vercel.jsonbuildsdist/viatscand routes all traffic toapi/index.js, which calls the shareddispatchfromdist/http.js.- Set env vars in the Vercel project:
FLOWYA_SUPABASE_URL,FLOWYA_SUPABASE_ANON_KEY,SUPABASE_SERVICE_ROLE,PUBLIC_API_URL(the deployed URL). - Deployment protection (Vercel Authentication / SSO) must be OFF so the
/mcpendpoint is publicly reachable. - Optional: point a custom domain (e.g.
mcp.flowya.app) at the deployment.
Currently deployed at https://flowya-mcp.vercel.app (MCP endpoint: https://flowya-mcp.vercel.app/mcp).
vercel --prod # from this directory, after `vercel link`
How a user connects
- In Flowya, open Settings → Connect with AI and generate a token (
fmcp_...). It is shown once. - Add the remote MCP server to their client with the URL
https://flowya-mcp.vercel.app/mcpand headerAuthorization: Bearer fmcp_....
Example Cursor ~/.cursor/mcp.json:
{
"mcpServers": {
"flowya": {
"url": "https://flowya-mcp.vercel.app/mcp",
"headers": { "Authorization": "Bearer fmcp_YOUR_TOKEN" }
}
}
}
The Flowya desktop app talks to this server's /v1/tokens endpoints (authenticated with the user's Supabase session) to create, list, and revoke tokens. Set VITE_FLOWYA_MCP_URL in Flowya-MacOS if the MCP is not at the default https://flowya-mcp.vercel.app.
Roadmap (v2)
OAuth 2.1 (dynamic client registration + PKCE) for a one-click "Connect" experience, replacing manual token paste. The transport, tools, and api/ layer are reused unchanged; only an OAuth token-issuance layer and a consent page are added.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.