{"slug": "founders-os-give-your-ai-client-your-real-business-context-self-hosted", "title": "Founders OS – give your AI client your real business context, self-hosted", "summary": "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.", "body_md": "**Open-source MCP server for startup and small business founders.**\n\nFounders 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.\n\nBuilt by [OurThinkTank](https://ourthinktank.com). Marketing site at [foundersmcp.com](https://foundersmcp.com).\n\nNew 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.\n\n| Module | Tools | Description |\n|---|---|---|\nCRM |\n13 | Customers, contacts, interactions, pipeline dashboard |\nTasks |\n12 | Tasks with entity linking, AI assignment, dependencies, progress notes |\nProjects |\n5 | First-class project records anchored on a project tag, with task rollups |\nPlaybooks |\n11 | Reusable orchestration templates that fan out to tasks and external MCP actions |\nTags |\n4 | Shared tag registry with soft validation and auto-registration |\nFinancial |\n14 | Double-entry ledger, P&L, multi-company, per-user access control |\nFeeds |\n13 | RSS/Atom/JSON reader, briefings, bookmarks, pins |\nMemory |\n5 | Semantic memory with personal + org scopes, pgvector, dedup, metadata filters |\nSurfaces |\n4 | Cross-domain reads: session start, entity cards, weekly retro, stuck list |\nMembers |\n4 | Org membership directory, owner designation |\nAudit + Restore |\n2 | Full audit log; soft-delete recovery |\nDiagnostic |\n5 | Ping, version, usage guide, capability explorer, demos |\n\n92 tools total across 12 modules.\n\nYou need a Supabase project, an embedding API key (OpenAI by default), and an MCP-capable AI client.\n\nCreate a [Supabase](https://supabase.com) project, then in the SQL Editor run `supabase/setup.sql`\n\n. This single file sets up the full schema from scratch — extensions (`vector`\n\n, `uuid-ossp`\n\n, `pg_trgm`\n\n), 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.\n\nThe Founders OS MCP server runs through `npx`\n\n. Every client - Claude Desktop, Cowork, Cursor, Continue.dev, Zed, or any spec-compliant MCP client - uses the same configuration.\n\nThe 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.\n\nDrop this into your client's `mcp.json`\n\n(in Claude Desktop, this is the MCP servers section of your config):\n\n```\n{\n  \"mcpServers\": {\n    \"founders-os\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ourthinktank/founders-os@latest\"],\n      \"env\": {\n        \"SUPABASE_URL\": \"https://your-project.supabase.co\",\n        \"SUPABASE_SECRET_KEY\": \"sb_secret_...\",\n        \"FOUNDERS_OS_COMPANY_ID\": \"your-company\",\n        \"FOUNDERS_OS_USER_ID\": \"your-name\",\n        \"FOUNDERS_OS_TIMEZONE\": \"America/Los_Angeles\",\n        \"EMBEDDING_PROVIDER\": \"openai\",\n        \"EMBEDDING_MODEL\": \"text-embedding-3-small\",\n        \"EMBEDDING_DIM\": \"1536\",\n        \"OPENAI_API_KEY\": \"sk-...\"\n      }\n    }\n  }\n}\n```\n\nSee [Environment variables](#environment-variables) for the full list and provider options.\n\n``` php\nWhat can you do?                                  -> show_capabilities\nCatch me up                                       -> get_session_start\nAdd Acme Corp as a new prospect                   -> add_customer\nLog a call with Sarah at Acme - discussed pricing -> log_interaction\nCreate a task to send the proposal by Friday      -> create_task + link_task\nWhat's stuck or overdue?                          -> get_stuck_list\nShow me everything about Acme Corp                -> get_entity_card\nRemember for the org: targeting SMB fintech in Q3 -> memory_store\nShow me OTT's P&L for Q1                          -> get_pl_report\nRun the customer-onboarding playbook for Acme     -> run_playbook\nGive me my weekly retro for LinkedIn              -> get_weekly_retro\n```\n\nPipeline 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.\n\n**Customers:** `add_customer`\n\n, `get_customer`\n\n, `update_customer`\n\n, `remove_customer`\n\n, `search_customers`\n\n, `list_customers`\n\n**Contacts:** `add_contact`\n\n, `update_contact`\n\n, `remove_contact`\n\n, `search_contacts`\n\n**Interactions:** `log_interaction`\n\n, `list_interactions`\n\n**Dashboard:** `get_dashboard`\n\n**Pipeline phases:** `prospect`\n\n-> `lead`\n\n-> `opportunity`\n\n-> `customer`\n\n-> `renewal`\n\n(plus `churned`\n\n, `inactive`\n\n).\n\nUnified task management with org and personal scopes, entity linking, AI assignment, task dependencies, progress notes, and a task-to-memory bridge.\n\n`create_task`\n\n, `get_task`\n\n, `update_task`\n\n, `complete_task`\n\n, `remove_task`\n\n, `list_tasks`\n\n, `link_task`\n\n, `unlink_task`\n\n, `list_entity_tasks`\n\n, `add_task_note`\n\n, `assign_task`\n\n, `get_task_summary`\n\n**Scopes:** `org`\n\n(team-visible, default) and `personal`\n\n(private to creator).\n\n**AI assignment:** Use `@claude`\n\nor `@gpt`\n\nas the assignee. `get_task_summary`\n\nsurfaces a dedicated AI work queue. `list_tasks(assigned_to='@claude')`\n\nfilters to AI-assigned work.\n\n**Dependencies:** Set `blocked_by_task_id`\n\non a task. Completing the blocker surfaces `unblocked_tasks`\n\nin the response.\n\n**Task-to-memory bridge:** When completing a task, set `store_as_memory=true`\n\nto persist the completion note as an org-scoped memory entry.\n\n**Entity linking:** Tasks can link to customers, contacts, interactions, transactions, projects, playbooks, memories, or any other entity type via the `task_links`\n\njunction table. Link at creation time or later with `link_task`\n\n.\n\nProjects are first-class records anchored on a project tag (e.g. `#acme-rebuild`\n\n). `get_project`\n\nreturns the project card with status, the linked tag, recent tasks grouped by status, and any customers tagged into it.\n\n`create_project`\n\n, `get_project`\n\n, `update_project`\n\n, `remove_project`\n\n, `list_projects`\n\n`list_projects`\n\nalso flags any `#`\n\n-prefixed tags in the registry that don't yet have a project record, so the registry and the projects directory stay in sync.\n\nNamed, 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]`\n\ntask so the playbook still works.\n\n`create_playbook`\n\n, `get_playbook`\n\n, `update_playbook`\n\n, `remove_playbook`\n\n, `list_playbooks`\n\n, `add_playbook_step`\n\n, `update_playbook_step`\n\n, `remove_playbook_step`\n\n, `run_playbook`\n\n, `get_playbook_run`\n\n, `list_playbook_runs`\n\n**Step types:** `native_task`\n\n(Founders OS task) or `external_action`\n\n(MCP tool call). External steps carry a `connector`\n\n, an `action`\n\n, and a `params`\n\nobject with placeholders.\n\n**Placeholders:** `{{customer.name}}`\n\n, `{{customer.slug}}`\n\n, `{{playbook.start_date}}`\n\n, `{{playbook.start_date+Nd}}`\n\n, `{{contact.primary.name}}`\n\n, `{{memory:key}}`\n\nresolved at runtime.\n\n**Run log:** `get_playbook_run`\n\nreturns the full execution log; `list_playbook_runs`\n\nshows history per playbook.\n\nShared tag registry with soft validation. Tags are advisory: unrecognized tags warn but never block operations, and new tags auto-register on first use.\n\n`list_tags`\n\n, `create_tag`\n\n, `rename_tag`\n\n, `remove_tag`\n\n**Conventions:** `#project-name`\n\nfor projects, `@person`\n\nfor people, `!state`\n\nfor meta-states (e.g. `!needs-review`\n\n). Simple category words like `bug`\n\nor `release`\n\nare fine unprefixed.\n\n**Validation checks:** typo detection against existing tags, known-contact detection (nudges toward `@`\n\n), known-customer detection (nudges toward entity linking), and state-word detection (nudges toward `!`\n\n).\n\nSimple double-entry ledger scoped by `FOUNDERS_OS_COMPANY_ID`\n\n, with per-user access control so company books can be opened to specific teammates only.\n\n`add_transaction`\n\n, `list_transactions`\n\n, `remove_transaction`\n\n, `add_category`\n\n, `list_categories`\n\n, `remove_category`\n\n, `add_account`\n\n, `list_accounts`\n\n, `remove_account`\n\n, `transfer_between_accounts`\n\n, `get_pl_report`\n\n, `get_financial_summary`\n\n, `get_financial_access`\n\n, `set_financial_access`\n\n**Multi-company:** Set a different `FOUNDERS_OS_COMPANY_ID`\n\nper instance to keep books separate.\n\n**Access control:** `set_financial_access`\n\ngrants or revokes a member's access to a company's financial tools. `get_financial_access`\n\nreports the current grants. By default the owner of a `FOUNDERS_OS_COMPANY_ID`\n\nhas access; everyone else is locked out until explicitly granted.\n\nBuilt-in feed reader (RSS, Atom, JSON Feed) with a Postgres-backed store. Subscribe, brief, search, bookmark, pin.\n\n**Subscriptions:** `subscribe_feed`\n\n, `unsubscribe_feed`\n\n, `list_feeds`\n\n, `refresh_feeds`\n\n, `import_starter_feeds`\n\n, `pin_feed`\n\n, `unpin_feed`\n\n**Items:** `get_feed_items`\n\n, `read_feed_item`\n\n, `get_feed_briefing`\n\n**Bookmarks:** `bookmark_item`\n\n, `remove_bookmark`\n\n, `list_bookmarks`\n\n**Categories:** `tech`\n\n, `startups`\n\n, `business`\n\n, `finance`\n\n, `product`\n\n, `design`\n\n, `engineering`\n\n, `ai`\n\n, `crypto`\n\n, `science`\n\n, `news`\n\n, `personal`\n\n, `other`\n\n.\n\nSemantic memory backed by pgvector with personal and org scopes, near-duplicate detection, metadata filters, and pagination.\n\n`memory_store`\n\n, `memory_recall`\n\n, `memory_update`\n\n, `memory_forget`\n\n, `memory_summarize_and_store`\n\n**Scopes:**\n\n`org`\n\n- visible to all team members pointing at the same Supabase project`personal`\n\n- visible only to the user whose`FOUNDERS_OS_USER_ID`\n\nmatches\n\n**Filters on memory_recall:**\n\n`min_score`\n\n, `source_tool`\n\n, `created_after`\n\n, `created_before`\n\n, `offset`\n\n, `limit`\n\n, `project`\n\n, `scope`\n\n.**Dedup:** `memory_store`\n\nand `memory_summarize_and_store`\n\ncheck for existing memories with cosine similarity >= 0.92 and surface a conflict with options to force-store or skip.\n\n**Embedding providers** (set via `EMBEDDING_PROVIDER`\n\n):\n\n| Provider | Default model | Dims | Credentials |\n|---|---|---|---|\n`openai` (default) |\n`text-embedding-3-small` |\n1536 | `OPENAI_API_KEY` |\n`bedrock` |\n`amazon.nova-2-multimodal-embeddings-v1:0` |\n1024 | AWS credential chain |\n`ollama` |\n`nomic-embed-text` |\n768 | `OLLAMA_BASE_URL` |\n\nSet\n\n`EMBEDDING_DIM`\n\nto match the model before running`002_memory_schema.sql`\n\n. The dimension is permanent - changing providers later requires re-embedding the memory table.\n\nCross-domain read views that compose data from tasks, CRM, finance, and feeds into ready-to-render dashboards for AI agents.\n\n| Tool | What it returns |\n|---|---|\n`get_session_start` |\nOrientation 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. |\n`get_entity_card` |\nComplete picture of any entity (customer, contact, transaction, project) with open tasks, recent interactions, and linked records in one call. |\n`get_weekly_retro` |\nCompleted-task retrospective grouped by tag with completion notes. Can format as a LinkedIn-ready draft. |\n`get_stuck_list` |\nSurfaces stuck, stale, and overdue tasks that need triage, with days-stale counts and suggested actions. |\n\nOrg membership directory. Maps `FOUNDERS_OS_USER_ID`\n\nslugs to display names, marks the owner of a company, and supports adding or removing members.\n\n`add_member`\n\n, `list_members`\n\n, `remove_member`\n\n, `set_member_owner`\n\nThe owner of `FOUNDERS_OS_COMPANY_ID`\n\nis the default holder of financial access; others get access via `set_financial_access`\n\n.\n\n`get_audit_log`\n\nreturns the structured audit trail across all domains (creates, updates, deletes, restores, financial access changes, playbook runs).\n\n`restore_item`\n\nreverses 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.\n\n| Tool | Description |\n|---|---|\n`ping` |\nConnectivity test. Embeds an update notice if a newer package version is available. |\n`get_version` |\nRunning package version, rendering contract version, and the latest npm-published version. |\n`get_usage_guide` |\nOn-demand reference covering modules, conventions, and common workflows. |\n`show_capabilities` |\nFriendly overview with example prompts for each module. |\n`list_demos` |\nLists or runs the bundled interactive walkthroughs (welcome tour, conflict resolution, run-my-week, etc.). |\n\nRender-bearing tools include a `render`\n\nfield 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:\n\n**Server** at MCP registration - loaded at connect. All spec-compliant MCP clients.`instructions`\n\nfield- full ladder text on session orientation. All clients.`get_session_start.rendering_contract`\n\n**Per-response**- self-contained short form. Cold-start safety net.`rendering_contract`\n\nreminder\n\nThe canonical source lives in `packages/mcp-server/src/contract.ts`\n\n, 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`\n\nis `4`\n\n; a mismatch surfaces as `contract_version_warning`\n\non `get_session_start`\n\nand `get_version`\n\n.\n\nWhen the database is empty, tools attach onboarding hints to their responses. `get_session_start`\n\ndetects 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.\n\nFor a guided tour of a specific feature, ask the AI to \"run the welcome demo\" or \"show me the conflict-resolution walkthrough\" - `list_demos`\n\nreturns the bundled interactive scripts.\n\n```\n# Supabase (required)\nSUPABASE_URL=https://your-project.supabase.co\nSUPABASE_SECRET_KEY=sb_secret_...\n\n# Identity - set distinct values per teammate so personal memory scopes work\nFOUNDERS_OS_USER_ID=your-name            # defaults to \"default\"\nFOUNDERS_OS_COMPANY_ID=your-company      # defaults to \"default\"\nFOUNDERS_OS_TIMEZONE=America/Los_Angeles # used by date-aware tools and YTD math\n\n# Embedding provider for memory tools\nEMBEDDING_PROVIDER=openai                # openai | bedrock | ollama\nEMBEDDING_MODEL=text-embedding-3-small   # provider default used if omitted\nEMBEDDING_DIM=1536                       # MUST match the vector() size in 002_memory_schema.sql\n\n# OpenAI (required if EMBEDDING_PROVIDER=openai)\nOPENAI_API_KEY=sk-...\n\n# Bedrock (uses AWS credential chain - no key needed on AWS with IAM role)\n# AWS_DEFAULT_REGION=us-east-1\n# AWS_ACCESS_KEY_ID=...\n# AWS_SECRET_ACCESS_KEY=...\n\n# Ollama (required if EMBEDDING_PROVIDER=ollama)\n# OLLAMA_BASE_URL=http://localhost:11434\n# Clone\ngit clone https://github.com/ourthinktank/founders-os.git\ncd founders-os\n\n# Install\nnpm install\n\n# Build\nnpm run build\n\n# Watch\nnpm run dev\nfounders-os/\n├── packages/\n│   ├── mcp-server/                  # @ourthinktank/founders-os npm package\n│   │   ├── src/\n│   │   │   ├── index.ts             # Entry point (stdio transport)\n│   │   │   ├── supabase.ts          # Database client\n│   │   │   ├── contract.ts          # Canonical rendering contract\n│   │   │   └── tools/\n│   │   │       ├── crm/             # Customers, contacts, interactions, dashboard\n│   │   │       ├── tasks/           # Task management\n│   │   │       ├── projects/        # Project records\n│   │   │       ├── playbooks/       # Reusable orchestration templates\n│   │   │       ├── tags/            # Shared tag registry\n│   │   │       ├── financial/       # Ledger + access control\n│   │   │       ├── rss/             # Feed reader\n│   │   │       ├── memory/          # Semantic memory\n│   │   │       ├── surfaces/        # Cross-domain reads\n│   │   │       ├── members/         # Org directory\n│   │   │       ├── audit.ts         # Audit log\n│   │   │       ├── restore.ts       # Soft-delete recovery\n│   │   │       ├── diagnostic.ts    # Ping + version\n│   │   │       ├── meta.ts          # Usage guide + capabilities + demos\n│   │   │       ├── first-run.ts     # Empty-database hints\n│   │   │       ├── dates.ts         # Date/timezone helpers\n│   │   │       └── permissions.ts   # Financial access checks\n│   │   └── demos/                   # Interactive walkthrough scripts\n├── integrations/\n│   └── setup-page/                  # Config wizard hosted at foundersmcp.com/setup\n├── supabase/\n│   ├── setup.sql                    # Complete schema for fresh installs (run once)\n│   └── migrations/                  # Future schema changes (empty at launch)\n├── docs/                            # Specs and design docs\n└── README.md\n```\n\nBuild, then point your MCP client at the local entry instead of npx:\n\n```\n{\n  \"mcpServers\": {\n    \"founders-os\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/founders-os/packages/mcp-server/dist/index.js\"],\n      \"env\": {\n        \"SUPABASE_URL\": \"https://your-project.supabase.co\",\n        \"SUPABASE_SECRET_KEY\": \"sb_secret_...\",\n        \"FOUNDERS_OS_USER_ID\": \"your-name\",\n        \"FOUNDERS_OS_COMPANY_ID\": \"your-company\",\n        \"EMBEDDING_PROVIDER\": \"openai\",\n        \"EMBEDDING_DIM\": \"1536\",\n        \"OPENAI_API_KEY\": \"sk-...\"\n      }\n    }\n  }\n}\n```\n\nFounders 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.\n\nMIT - see [LICENSE](/OurThinkTank/founders-os/blob/main/LICENSE).", "url": "https://wpnews.pro/news/founders-os-give-your-ai-client-your-real-business-context-self-hosted", "canonical_source": "https://github.com/OurThinkTank/founders-os", "published_at": "2026-06-22 09:58:53+00:00", "updated_at": "2026-06-22 10:10:37.821805+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "artificial-intelligence"], "entities": ["OurThinkTank", "Supabase", "Claude", "Cursor", "OpenAI", "Founders OS"], "alternates": {"html": "https://wpnews.pro/news/founders-os-give-your-ai-client-your-real-business-context-self-hosted", "markdown": "https://wpnews.pro/news/founders-os-give-your-ai-client-your-real-business-context-self-hosted.md", "text": "https://wpnews.pro/news/founders-os-give-your-ai-client-your-real-business-context-self-hosted.txt", "jsonld": "https://wpnews.pro/news/founders-os-give-your-ai-client-your-real-business-context-self-hosted.jsonld"}}