Founders OS – give your AI client your real business context, self-hosted OurThinkTank launched Founders OS, an open-source MCP server that provides startups and small businesses with a unified business context—including CRM, projects, tasks, finances, and memory—accessible from AI clients like Claude and Cursor. The self-hosted solution runs on Supabase and offers 92 tools across 12 modules, enabling founders to manage operations through AI assistants. Open-source MCP server for startup and small business founders. Founders OS gives you a complete business context - CRM, projects, tasks, finances, feeds, memory, playbooks - accessible from Claude, Cursor, or any MCP-compatible AI client. One connection, your entire business. Built by OurThinkTank https://ourthinktank.com . Marketing site at foundersmcp.com https://foundersmcp.com . New to AI tools, or handing this to someone who is? Start with Read This First https://foundersmcp.com/docs/read-this-first/ - a plain-language intro to what FoundersOS is and isn't, what AI assistants can and can't do, and the habits that keep them honest. | Module | Tools | Description | |---|---|---| CRM | 13 | Customers, contacts, interactions, pipeline dashboard | Tasks | 12 | Tasks with entity linking, AI assignment, dependencies, progress notes | Projects | 5 | First-class project records anchored on a project tag, with task rollups | Playbooks | 11 | Reusable orchestration templates that fan out to tasks and external MCP actions | Tags | 4 | Shared tag registry with soft validation and auto-registration | Financial | 14 | Double-entry ledger, P&L, multi-company, per-user access control | Feeds | 13 | RSS/Atom/JSON reader, briefings, bookmarks, pins | Memory | 5 | Semantic memory with personal + org scopes, pgvector, dedup, metadata filters | Surfaces | 4 | Cross-domain reads: session start, entity cards, weekly retro, stuck list | Members | 4 | Org membership directory, owner designation | Audit + Restore | 2 | Full audit log; soft-delete recovery | Diagnostic | 5 | Ping, version, usage guide, capability explorer, demos | 92 tools total across 12 modules. You need a Supabase project, an embedding API key OpenAI by default , and an MCP-capable AI client. Create a Supabase https://supabase.com project, then in the SQL Editor run supabase/setup.sql . This single file sets up the full schema from scratch — extensions vector , uuid-ossp , pg trgm , all tables, indexes, RLS policies, functions, views, maintenance jobs, and the Data API grants required for compatibility with Supabase's removal of automatic default privileges https://github.com/orgs/supabase/discussions/45329 for projects created on or after 2026-05-30. The wizard at foundersmcp.com/setup https://foundersmcp.com/setup prints the same SQL with the embedding dimension already matched to your provider — prefer it if you are not using the default dimension. The Founders OS MCP server runs through npx . Every client - Claude Desktop, Cowork, Cursor, Continue.dev, Zed, or any spec-compliant MCP client - uses the same configuration. The quickest way is the wizard at foundersmcp.com/setup https://foundersmcp.com/setup : enter your Supabase and embedding credentials and it generates a filled-in config for you to copy or download. Your credentials never leave the browser. You can also paste the block below by hand. Drop this into your client's mcp.json in Claude Desktop, this is the MCP servers section of your config : { "mcpServers": { "founders-os": { "command": "npx", "args": "-y", "@ourthinktank/founders-os@latest" , "env": { "SUPABASE URL": "https://your-project.supabase.co", "SUPABASE SECRET KEY": "sb secret ...", "FOUNDERS OS COMPANY ID": "your-company", "FOUNDERS OS USER ID": "your-name", "FOUNDERS OS TIMEZONE": "America/Los Angeles", "EMBEDDING PROVIDER": "openai", "EMBEDDING MODEL": "text-embedding-3-small", "EMBEDDING DIM": "1536", "OPENAI API KEY": "sk-..." } } } } See Environment variables environment-variables for the full list and provider options. php What can you do? - show capabilities Catch me up - get session start Add Acme Corp as a new prospect - add customer Log a call with Sarah at Acme - discussed pricing - log interaction Create a task to send the proposal by Friday - create task + link task What's stuck or overdue? - get stuck list Show me everything about Acme Corp - get entity card Remember for the org: targeting SMB fintech in Q3 - memory store Show me OTT's P&L for Q1 - get pl report Run the customer-onboarding playbook for Acme - run playbook Give me my weekly retro for LinkedIn - get weekly retro Pipeline management for customer organizations and the contacts inside them. Customers are organizations; contacts are people - always separate records, so you can move a contact between customers without losing history. Customers: add customer , get customer , update customer , remove customer , search customers , list customers Contacts: add contact , update contact , remove contact , search contacts Interactions: log interaction , list interactions Dashboard: get dashboard Pipeline phases: prospect - lead - opportunity - customer - renewal plus churned , inactive . Unified task management with org and personal scopes, entity linking, AI assignment, task dependencies, progress notes, and a task-to-memory bridge. create task , get task , update task , complete task , remove task , list tasks , link task , unlink task , list entity tasks , add task note , assign task , get task summary Scopes: org team-visible, default and personal private to creator . AI assignment: Use @claude or @gpt as the assignee. get task summary surfaces a dedicated AI work queue. list tasks assigned to='@claude' filters to AI-assigned work. Dependencies: Set blocked by task id on a task. Completing the blocker surfaces unblocked tasks in the response. Task-to-memory bridge: When completing a task, set store as memory=true to persist the completion note as an org-scoped memory entry. Entity linking: Tasks can link to customers, contacts, interactions, transactions, projects, playbooks, memories, or any other entity type via the task links junction table. Link at creation time or later with link task . Projects are first-class records anchored on a project tag e.g. acme-rebuild . get project returns the project card with status, the linked tag, recent tasks grouped by status, and any customers tagged into it. create project , get project , update project , remove project , list projects list projects also flags any -prefixed tags in the registry that don't yet have a project record, so the registry and the projects directory stay in sync. Named, reusable orchestration templates. A playbook is defined once and run against a customer or other subject to spin up a complete project: it creates native Founders OS tasks AND, when connected MCP tools are present, fires external actions like creating a GitHub repo, posting to Slack, or scheduling a calendar event. If a connector is not available, the step gracefully falls back to a tagged manual task so the playbook still works. create playbook , get playbook , update playbook , remove playbook , list playbooks , add playbook step , update playbook step , remove playbook step , run playbook , get playbook run , list playbook runs Step types: native task Founders OS task or external action MCP tool call . External steps carry a connector , an action , and a params object with placeholders. Placeholders: {{customer.name}} , {{customer.slug}} , {{playbook.start date}} , {{playbook.start date+Nd}} , {{contact.primary.name}} , {{memory:key}} resolved at runtime. Run log: get playbook run returns the full execution log; list playbook runs shows history per playbook. Shared tag registry with soft validation. Tags are advisory: unrecognized tags warn but never block operations, and new tags auto-register on first use. list tags , create tag , rename tag , remove tag Conventions: project-name for projects, @person for people, state for meta-states e.g. needs-review . Simple category words like bug or release are fine unprefixed. Validation checks: typo detection against existing tags, known-contact detection nudges toward @ , known-customer detection nudges toward entity linking , and state-word detection nudges toward . Simple double-entry ledger scoped by FOUNDERS OS COMPANY ID , with per-user access control so company books can be opened to specific teammates only. add transaction , list transactions , remove transaction , add category , list categories , remove category , add account , list accounts , remove account , transfer between accounts , get pl report , get financial summary , get financial access , set financial access Multi-company: Set a different FOUNDERS OS COMPANY ID per instance to keep books separate. Access control: set financial access grants or revokes a member's access to a company's financial tools. get financial access reports the current grants. By default the owner of a FOUNDERS OS COMPANY ID has access; everyone else is locked out until explicitly granted. Built-in feed reader RSS, Atom, JSON Feed with a Postgres-backed store. Subscribe, brief, search, bookmark, pin. Subscriptions: subscribe feed , unsubscribe feed , list feeds , refresh feeds , import starter feeds , pin feed , unpin feed Items: get feed items , read feed item , get feed briefing Bookmarks: bookmark item , remove bookmark , list bookmarks Categories: tech , startups , business , finance , product , design , engineering , ai , crypto , science , news , personal , other . Semantic memory backed by pgvector with personal and org scopes, near-duplicate detection, metadata filters, and pagination. memory store , memory recall , memory update , memory forget , memory summarize and store Scopes: org - visible to all team members pointing at the same Supabase project personal - visible only to the user whose FOUNDERS OS USER ID matches Filters on memory recall: min score , source tool , created after , created before , offset , limit , project , scope . Dedup: memory store and memory summarize and store check for existing memories with cosine similarity = 0.92 and surface a conflict with options to force-store or skip. Embedding providers set via EMBEDDING PROVIDER : | Provider | Default model | Dims | Credentials | |---|---|---|---| openai default | text-embedding-3-small | 1536 | OPENAI API KEY | bedrock | amazon.nova-2-multimodal-embeddings-v1:0 | 1024 | AWS credential chain | ollama | nomic-embed-text | 768 | OLLAMA BASE URL | Set EMBEDDING DIM to match the model before running 002 memory schema.sql . The dimension is permanent - changing providers later requires re-embedding the memory table. Cross-domain read views that compose data from tasks, CRM, finance, and feeds into ready-to-render dashboards for AI agents. | Tool | What it returns | |---|---| get session start | Orientation dashboard: task signals, AI queue, finance pulse, CRM activity, feed unread counts, suggested actions, first-run flag, and the four-tier rendering contract. Call at the start of every session. | get entity card | Complete picture of any entity customer, contact, transaction, project with open tasks, recent interactions, and linked records in one call. | get weekly retro | Completed-task retrospective grouped by tag with completion notes. Can format as a LinkedIn-ready draft. | get stuck list | Surfaces stuck, stale, and overdue tasks that need triage, with days-stale counts and suggested actions. | Org membership directory. Maps FOUNDERS OS USER ID slugs to display names, marks the owner of a company, and supports adding or removing members. add member , list members , remove member , set member owner The owner of FOUNDERS OS COMPANY ID is the default holder of financial access; others get access via set financial access . get audit log returns the structured audit trail across all domains creates, updates, deletes, restores, financial access changes, playbook runs . restore item reverses a soft delete on any soft-deleted record type, returning the record to its previous state. Use the audit log to find the original delete event and the entity ID to restore. | Tool | Description | |---|---| ping | Connectivity test. Embeds an update notice if a newer package version is available. | get version | Running package version, rendering contract version, and the latest npm-published version. | get usage guide | On-demand reference covering modules, conventions, and common workflows. | show capabilities | Friendly overview with example prompts for each module. | list demos | Lists or runs the bundled interactive walkthroughs welcome tour, conflict resolution, run-my-week, etc. . | Render-bearing tools include a render field with a four-tier ladder so the AI client picks the most visual output it supports: visual primitive tool artifact/widget/canvas , inline rich output HTML/SVG/JSX , markdown table, then prose. The contract ships in three channels in attention-strength order: Server at MCP registration - loaded at connect. All spec-compliant MCP clients. instructions field- full ladder text on session orientation. All clients. get session start.rendering contract Per-response - self-contained short form. Cold-start safety net. rendering contract reminder The canonical source lives in packages/mcp-server/src/contract.ts , so every MCP client gets rich rendering through these channels with no plugin required. A Claude plugin that mirrors the contract at system-prompt position, for stronger adherence in long sessions, is planned for a later release and is not part of this one. Current contract version is 4 ; a mismatch surfaces as contract version warning on get session start and get version . When the database is empty, tools attach onboarding hints to their responses. get session start detects a fresh install and suggests a guided walkthrough: add a first customer, create a first task, and optionally set up finance accounts. This keeps the experience conversational rather than dumping all 92 tools at once. For a guided tour of a specific feature, ask the AI to "run the welcome demo" or "show me the conflict-resolution walkthrough" - list demos returns the bundled interactive scripts. Supabase required SUPABASE URL=https://your-project.supabase.co SUPABASE SECRET KEY=sb secret ... Identity - set distinct values per teammate so personal memory scopes work FOUNDERS OS USER ID=your-name defaults to "default" FOUNDERS OS COMPANY ID=your-company defaults to "default" FOUNDERS OS TIMEZONE=America/Los Angeles used by date-aware tools and YTD math Embedding provider for memory tools EMBEDDING PROVIDER=openai openai | bedrock | ollama EMBEDDING MODEL=text-embedding-3-small provider default used if omitted EMBEDDING DIM=1536 MUST match the vector size in 002 memory schema.sql OpenAI required if EMBEDDING PROVIDER=openai OPENAI API KEY=sk-... Bedrock uses AWS credential chain - no key needed on AWS with IAM role AWS DEFAULT REGION=us-east-1 AWS ACCESS KEY ID=... AWS SECRET ACCESS KEY=... Ollama required if EMBEDDING PROVIDER=ollama OLLAMA BASE URL=http://localhost:11434 Clone git clone https://github.com/ourthinktank/founders-os.git cd founders-os Install npm install Build npm run build Watch npm run dev founders-os/ ├── packages/ │ ├── mcp-server/ @ourthinktank/founders-os npm package │ │ ├── src/ │ │ │ ├── index.ts Entry point stdio transport │ │ │ ├── supabase.ts Database client │ │ │ ├── contract.ts Canonical rendering contract │ │ │ └── tools/ │ │ │ ├── crm/ Customers, contacts, interactions, dashboard │ │ │ ├── tasks/ Task management │ │ │ ├── projects/ Project records │ │ │ ├── playbooks/ Reusable orchestration templates │ │ │ ├── tags/ Shared tag registry │ │ │ ├── financial/ Ledger + access control │ │ │ ├── rss/ Feed reader │ │ │ ├── memory/ Semantic memory │ │ │ ├── surfaces/ Cross-domain reads │ │ │ ├── members/ Org directory │ │ │ ├── audit.ts Audit log │ │ │ ├── restore.ts Soft-delete recovery │ │ │ ├── diagnostic.ts Ping + version │ │ │ ├── meta.ts Usage guide + capabilities + demos │ │ │ ├── first-run.ts Empty-database hints │ │ │ ├── dates.ts Date/timezone helpers │ │ │ └── permissions.ts Financial access checks │ │ └── demos/ Interactive walkthrough scripts ├── integrations/ │ └── setup-page/ Config wizard hosted at foundersmcp.com/setup ├── supabase/ │ ├── setup.sql Complete schema for fresh installs run once │ └── migrations/ Future schema changes empty at launch ├── docs/ Specs and design docs └── README.md Build, then point your MCP client at the local entry instead of npx: { "mcpServers": { "founders-os": { "command": "node", "args": "/absolute/path/to/founders-os/packages/mcp-server/dist/index.js" , "env": { "SUPABASE URL": "https://your-project.supabase.co", "SUPABASE SECRET KEY": "sb secret ...", "FOUNDERS OS USER ID": "your-name", "FOUNDERS OS COMPANY ID": "your-company", "EMBEDDING PROVIDER": "openai", "EMBEDDING DIM": "1536", "OPENAI API KEY": "sk-..." } } } } Founders OS is open source under the MIT license. Outside contributions are not being accepted yet - that's coming soon. In the meantime, issue reports are welcome and very much encouraged: please file them on GitHub https://github.com/ourthinktank/founders-os/issues . See CONTRIBUTING.md /OurThinkTank/founders-os/blob/main/CONTRIBUTING.md for how to file a good report, and our Code of Conduct /OurThinkTank/founders-os/blob/main/CODE OF CONDUCT.md . Security issues should go through SECURITY.md /OurThinkTank/founders-os/blob/main/SECURITY.md , not public issues. MIT - see LICENSE /OurThinkTank/founders-os/blob/main/LICENSE .