セルフホストOSSとしてまとめ紹介される7本——AppFlowy、NocoDB、Listmonk、cal.diy、Formbricks、Activepieces、Outline——を、GitHubのライセンス表示ではなくLICENSE実体ファイルを全部開いて読んだ。合計 ⭐288,000 超、どれもオープンソース 代替(Notion代替・Airtable代替・Calendly代替…)として紹介される顔ぶれだ。
結論から言うと、「オープンソース」という一語が4つの異なるライセンス体系を覆い隠していた。しかも2本はOSI準拠ではなく、うち1本はライセンス本文に「これはオープンソースライセンスではない」と明記されている。ついでにAI機能の有無も測ったところ、こちらもREADMEとは一致しなかった。
こういうまとめは「全部オープンソースだから好きに使える」という前提で読まれやすい。だが実際には、7本のうち1本は商用提供そのものが許されず、もう1本はライセンス本文が自らをオープンソースではないと宣言している。いずれも読めば5分で分かることなのに、紹介記事の分類語には現れない。
・7本のLICENSE実体を全部開いた結果、**OSI準拠ではないものが2本**(NocoDB・Outline)あった
・ライセンスは一方向に動いていない。**Cal.comは2026-04-15にAGPLv3からMITへ緩め**、同時に `cal.diy` へリネームされた
・AI機能はREADMEで判定できない。**READMEでAIに触れないFormbricks(120本)とNocoDB(39本)にAI/MCPのコードがある**
- ・**AppFlowy**(⭐77,075)AGPL-3.0 単一/AI関連パス156本
- ・**NocoDB**(⭐65,162)**Sustainable Use License**(2026-01-29改定)=商用制限あり/MCP実装あり
- ・**cal.diy**(⭐48,800)**MIT**。2026-04-15にAGPLv3から変更+リネーム/AI機能なし
- ・**Outline**(⭐40,783)**BSL 1.1**(2030-09-09にApache化)/**19ツールのMCPサーバー**
- ・**Activepieces**(⭐24,858)MIT+`ee/`はEnterprise/pieces実数**736**・スキル16本同梱
- ・**Listmonk**(⭐23,662)AGPL-3.0 単一/AI関連パス**0本**(=本当にAI機能がない)
- ・**Formbricks**(⭐13,051)AGPL+`ee/`+SDK4本はMIT/READMEに無いAI・MCP実装あり
MCPそのものの仕組みと作り方はMCPサーバーの作り方2026年完全ガイド:TypeScript・Python両対応チュートリアルにまとめてある。本記事はその周辺として、「MCPを積んでいると公言していないプロダクトが実際には積んでいる」という観測を扱う。
セルフホストOSSの「オープンソース」をLICENSE実体で判定する
まず方法を明示しておく。GitHubのリポジトリ画面に出るライセンス表示は、licensee というライブラリがLICENSEファイルを既知のテンプレートと照合した結果にすぎない。テンプレートに一致しなければ NOASSERTION(画面上は “Other”) になる。今回の7本では4本が NOASSERTION だった。
そこで raw.githubusercontent.com から各リポジトリのLICENSE実体を取得して読んだ。
curl -sS "https://raw.githubusercontent.com/outline/outline/main/LICENSE" | head -3
# Business Source License 1.1
結果は4つの体系に分かれた。
| # | OSS | ⭐ | LICENSE実体 | 行数 | OSI準拠 |
|---|---|---|---|---|---|
| 1 | AppFlowy | 77,075 | AGPL-3.0(単一) | 661 | ✅ |
| 2 | NocoDB | 65,162 | Sustainable Use License v1.0 | 63 | ❌ |
| 3 | cal.diy | 48,800 | MIT(単一) | 21 | ✅ |
| 4 | Outline | 40,783 | Business Source License 1.1 | 103 | ❌ |
| 5 | Activepieces | 24,858 | MIT Expat + packages/ee/ は Enterprise License |
25 | △ |
| 6 | Listmonk | 23,662 | AGPL-3.0(単一) | 661 | ✅ |
| 7 | Formbricks | 13,051 | AGPL-3.0 + ee/ 別 + SDK4本は MIT |
670 | △ |
NocoDB:商用利用に制限がある
NocoDB の LICENSE.md は63行の独自ライセンスで、冒頭に 「Updated on: January 29, 2026」 と日付が入っている。中核はこの一文だ。
You may use or modify the software only for your own internal business purposes or for non-commercial or personal use. You may distribute the software or provide it to others only if you do so free of charge for non-commercial purposes.
「自社の内部業務目的、または非商用・個人利用に限る」。NocoDBをホスティングして顧客に提供する形は、このライセンスの下では許されない。master と develop 以外のブランチに至っては「ライセンスされていない(not licensed)」と明記されている。
Outline:ライセンス本文が「これはOSSではない」と言っている
Outline は BSL ライセンス(Business Source License 1.1)で、Parameters セクションに追加許諾条件が書かれている。
Additional Use Grant: You may make use of the Licensed Work, provided that
you may not use the Licensed Work for a Document
Service.
Change Date: 2030-09-09
Change License: Apache License, Version 2.0
そして本文にこうある。
The Business Source License (this document, or the “License”) is not an Open Source license. However, the Licensed Work will eventually be made available under an Open Source License, as stated in this License.
自己申告で「オープンソースではない」と言っている。ただし 2030-09-09 に Apache-2.0 へ自動的に切り替わるという時限条項つきなので、「将来のOSS」ではある。自社の文書サービスとして売らない限り使用は自由なので、社内Wikiとして立てるぶんには実務上の障害は小さい。
オープンコアの2本は「どのディレクトリか」で変わる
Activepieces の LICENSE は25行で、構造だけを書いている。
* All content that resides under the "packages/ee/" ... directory is licensed
under the license defined in packages/ee/LICENSE
* Content outside of the above ... is available under the "MIT Expat" license
packages/ee/LICENSE を開くと「The Activepieces Enterprise license」だった。Formbricks も同型で、apps/web/modules/ee が別ライセンス、packages/js/・android/・ios/・api/ の4つはMIT、それ以外がAGPLv3という3層構造になっている。
つまりこの2本は「ライセンスは何か」ではなく「使う機能がどのディレクトリにあるか」で答えが変わる。
ライセンスは同じ方向に動いていない
ここが今回いちばん意外だった点だ。「OSSが次々とライセンスを締めている」という語り方をよく見るが、7本を並べるとそうなっていない。
Cal.com は逆に緩めている。git log で LICENSE の履歴を全部たどると、こうなっていた。
ab21c7f805 2026-04-15 refactor: Cal.diy (#28903)
06695f41ee 2024-03-26 Update LICENSE
5167608404 2023-06-20 chore: added commercial API to LICENSE (#9635)
5ad825544a 2021-09-20 Update LICENSE to AGPLv3
2026-04-15 のコミット ab21c7f805(PR #28903)の差分を見ると、AGPLv3の全文と商用 ee/ の切り出し条項がまるごと削除され、プレーンな MIT に置き換わっている。
-* All content that resides under .../packages/features/ee ... (Commercial License)
-* Content outside of the above ... is available under the "AGPLv3" license
- GNU AFFERO GENERAL PUBLIC LICENSE
+MIT License
同じタイミングでリポジトリ名も calcom/cal.com → calcom/cal.diy に変わっている。これはリネーム(リダイレクト)であってフォークではないことを確認した。両方のURLに git ls-remote を打つと、HEADのSHAが完全に一致する。
git ls-remote https://github.com/calcom/cal.com.git HEAD
git ls-remote https://github.com/calcom/cal.diy.git HEAD
# どちらも 54343aa685ae8f33159d2f485ec4a57bad5c574a
ただしライセンスが緩くなった=使いやすくなった、と単純には読めない。cal.diy のREADME冒頭にはこう書かれている。
Use at your own risk. Cal.diy is the open source community edition of Cal.com … It is strictly recommended for personal, non-production use.
For any commercial and enterprise-ready scheduling infrastructure, use Cal.com, not Cal.diy
ライセンスはMITで最も緩いのに、プロジェクト自身が「本番利用は推奨しない」と言っている。商用の本体は公開リポジトリの外へ移り、残ったものがMITになった、という読み方になる。ライセンスの寛容さと、プロジェクトがその配布物に与えている位置づけは別物だ、という良い例だと思う。
既知の名前" --> C["実体ファイルで裏取り
(単一ライセンスか確認)"] B -- "NOASSERTION
Other" --> D["必ず実体を開く"] D --> E{"Portions of this software
という書き出しか?"} E -- "はい" --> F["オープンコア
使う機能のディレクトリで判断"] E -- "いいえ" --> G["独自ライセンス
商用条項を読む"] C --> H["採用判断"] F --> H G --> H
AI機能はREADMEで判定できない
ここからは2つめの軸だ。7本のREADMEで AI LLM MCP agent の語を数えると、こうなる。
| OSS | AI | LLM | MCP | agent |
|---|---|---|---|---|
| Activepieces | 5 | 0 | 3 | 1 |
| AppFlowy | 3 | 0 | 0 | 0 |
| Outline | 2 | 0 | 0 | 0 |
| NocoDB | 0 | 0 | 0 | 0 |
| Listmonk | 0 | 0 | 0 | 0 |
| cal.diy | 0 | 0 | 0 | 0 |
| Formbricks | 0 | 0 | 0 | 0 |
これを信じると「AIがあるのは上位3本だけ」になる。実際にファイル一覧を数えると違った。
git ls-tree -r HEAD --name-only | grep -icE '(^|/)(ai|llm|mcp)([/_.-]|$)'
| OSS | AI/MCP関連パス | READMEのAI言及 | ずれ |
|---|---|---|---|
| Activepieces | 1,340 | あり | 一致 |
| AppFlowy | 156 | あり | 一致 |
| Formbricks | 120 | なし | READMEが過小 |
| NocoDB | 39 | なし | READMEが過小 |
| Outline | 3 | あり(2回) | 実装はMCPのみ |
| cal.diy | 1 | なし | 偽陽性 |
| Listmonk | 0 | なし | 一致(AI無し) |
cal.diy の「AI」はアンギラの国旗だった
1件だけヒットした cal.diy を開くと、これだった。
apps/web/public/country-flag-icons/3x2/AI.svg
AI は国名コード(アンギラ)で、AI機能とは何の関係もない。雑なgrepで「cal.comにもAI機能あり」と書いてしまう典型的な落とし穴で、1件という少なさが幸いして気づけた。件数が多いときほど中身を見ずに数字だけ採りたくなるので、ヒット数が少ないケースこそ全部開く価値がある。
逆に Listmonk は実測0本だった。CLAUDE.md流に言えば「AI的な切り口は無い」とそのまま書くべきケースで、無理にAI角度をつける必要がない。単一バイナリのニュースレター配信ツールとして完結している。
READMEに書かれていないMCP実装
ずれが大きかった側を実際に開いた。
Outline の server/routes/mcp/index.ts は236行あり、公式SDKを読み込んでいる。
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { attachmentTools } from "@server/tools/attachments";
import { collectionTools } from "@server/tools/collections";
// documents / comments / templates / users / fetch
server/tools/ 配下の server.registerTool() を数えると 19ツールだった。
create_attachment, create_collection, create_comment, create_document,
delete_collection, delete_comment, delete_document, list_collection_documents,
list_collections, list_comments, list_documents, list_templates, list_users,
move_document, restore_document, update_collection, update_comment,
update_document, fetch
ツールがどういう単位で切られているかはMCPとは何か?仕組み・3プリミティブ・仕様改訂の流れを図解で理解するで扱った3プリミティブ(Tools / Resources / Prompts)のうち、Tools に寄せた構成だと分かる。しかもコメントを読むと、OAuthのスコープでツールを絞り込む設計になっている(「tools filtered by the OAuth …」)。読み取り専用トークンなら create_* 系が見えない、という作りだ。社内Wikiをコーディングエージェントに読ませたい場合、これは自前でMCPサーバーを書かずに済むという意味で大きい。ツール数と常駐コストの関係はNotion MCPとは|ホスト版とローカル版の違いを24ツール・21,831トークン実測で解説で24ツールの事例を測っているので、19ツールのOutlineはおおむね同じ桁に収まると考えてよい(当該記事の21,831トークンは cl100k_base 近似での実測値。当記事ではOutlineのMCPに接続していないため、トークン数そのものは測っていない)。
Activepieces は7本の中で唯一、AIを看板に掲げている。READMEは「~400 MCP servers」と書いているが、packages/pieces/community/ 配下の package.json を数えると 736 あった。
git ls-tree -r HEAD --name-only | grep -cE '^packages/pieces/community/[^/]+/package\.json$'
# 736
看板のほうが少ないという珍しいパターンだ(公称値が実物より大きいことのほうが普通なので、ここは誠実と言える)。加えて .agents/skills/ に Agent Skill が16本同梱されていた。mcp-builder、piece-builder、debug-failed-run、playwright-e2e-testing など、このリポジトリを触るコーディングエージェント向けの手順書だ。
Formbricks は apps/web/app/api/mcp/route.ts にMCPエンドポイントを持ち、apps/web/app/(app)/(onboarding)/.../ai/ にAIによるアンケート作成フローがある。READMEにAIの語が1つも出ないのに、である。
「セルフホスト可能」はどれも本当だった
ライセンスとAIの2軸で外れが多かったので、3つめの看板も確かめた。7本とも「セルフホスト型」を名乗っているので、compose ファイルの有無を数えた。
git ls-tree -r HEAD --name-only | grep -icE '(^|/)(docker-compose|compose)[.a-z-]*\.ya?ml$'
| OSS | compose ファイル数 | 代表的な置き場所 |
|---|---|---|
| NocoDB | 15 | docker-compose/1_Auto_Upstall/docker-compose.yml |
| Activepieces | 8 | .devcontainer/docker-compose.yml ほか |
| cal.diy | 5 | apps/api/v2/docker-compose.yaml ほか |
| Listmonk | 2 | docker-compose.yml(リポジトリ直下) |
| Formbricks | 2 | docker/docker-compose.yml |
| AppFlowy | 1 | frontend/scripts/docker-buildfiles/docker-compose.yml |
| Outline | 1 | docker-compose.yml(リポジトリ直下) |
7本すべてに用意があったので、この看板については外れなし。ただし本数の差は性格の差でもある。直下に1本だけ置いている Listmonk と Outline は「これを叩けば立つ」型で、15本ある NocoDB は用途別(自動インストール・開発用・CI用・プレビュー環境用)に分かれている。つまりファイル数が多いほど簡単、ではない。
なおライセンスの制約とセルフホストの可否は独立している。NocoDB は compose が最も充実しているが、立てたものを顧客に提供する形は Sustainable Use License が禁じている。技術的に立つことと、立てて商売していいことは別だ。
セルフホストOSS採用前のチェックリスト
7本を同じ物差しで測って分かったのは、まとめ記事の分類語は採用判断に使えないという身も蓋もない事実だった。実務では次の順で確認すれば足りる。
・GitHubのライセンス欄が NOASSERTION(Other)なら必ず実体を開く。今回の7本では4本が該当した
・LICENSE が Portions of this software are licensed as follows: で始まっていたらオープンコア。自分が使う機能のディレクトリを特定してから判断する
・git log -- LICENSE* を見る。NocoDBは2026-01-29に改定、Cal.comは2026-04-15に変更しており、どちらも記憶に頼ると間違える
・AI機能の有無は ファイル一覧を数える。READMEは過小にも過大にも外れる
・grepのヒット数が少ないときは全部開く。cal.diy の唯一のヒットは国旗だった
・セルフホスト可否は compose ファイルの有無で当たりをつける(7本とも用意があった)
その上で、用途別にはこう整理できる。
| 用途 | 素直な選択 | ライセンス上の注意 |
|---|---|---|
| 社内Wiki・ドキュメント | Outline(MCP19ツールが効く) | BSL。文書サービスとして外販は不可 |
| Notion的な個人/チーム作業場 | AppFlowy | AGPL-3.0。改変して配る場合は公開義務 |
| 表計算UIのDB | NocoDB | 商用提供は不可。社内利用に限る |
| ニュースレター配信 | Listmonk | AGPL-3.0。AI機能は無い |
| 予約・日程調整 | cal.diy | MIT。ただし本番利用は非推奨と明記 |
| アンケート・フォーム | Formbricks | 中核AGPL、ee/ は別、SDKはMIT |
| ワークフロー自動化 | Activepieces | 中核MIT、packages/ee/ は商用 |
当記事で測っていないこと
正直に範囲を切っておく。
・実運用していない。7本とも起動して動作確認はしておらず、測ったのはライセンス実体・ファイル構成・コードパスのみ
・MCPサーバーを実際に叩いていない。Outlineの19ツールは registerTool() の静的な数であり、接続して tools/list を取った数ではない
・法的助言ではない。ライセンス本文の引用と素直な読みを示しただけで、個別の利用形態が適法かは弁護士の領分
・star数は2026-10-03時点のGitHub API値(cal.diy のみページ表示の 48.8k)。日々動く
参照ソース
・AppFlowy-IO/AppFlowy(⭐77,075・AGPL-3.0・Dart)
・nocodb/nocodb — LICENSE.md(Sustainable Use License v1.0・2026-01-29更新)
・outline/outline — LICENSE(BSL 1.1・Change Date 2030-09-09)
・calcom/cal.diy(MIT・2026-04-15にAGPLv3から変更、PR #28903)
・activepieces/activepieces(MIT+Enterprise・pieces 736)
・knadh/listmonk(⭐23,662・AGPL-3.0・Go)
・formbricks/formbricks(AGPL+ee+MIT SDK)
本記事の計測レコードは data/measurements/runs/2026-10-03-self-hosted-oss-license.json に登録した。