MCPWiki
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCPWikisearch the wiki for deployment runbooks tagged ops"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCPWiki
English | 日本語
LLM / MCP から使うことを前提にした、軽量なサーバーレス Wiki です。
人は Web 画面、LLM は MCP、スクリプトは CLI / REST API から、同じ権限モデルで閲覧・投稿・編集・検索・一覧ができます。
記事は GitHub 互換の Markdown (GFM) に OKF (Open Knowledge Format) v0.2 の frontmatter を付けた形で保存します。そのまま OKF バンドルとして入出力できます。
記事間のリンクとタグからナレッジグラフを作り、MCP (
get_graph,get_backlinks) に提供します。AWS のサーバーレス構成(常時課金リソースなし)で、MFA 必須、最小権限、多層防御を前提に設計しています。CI/CD には継続的なセキュリティレビューを組み込んでいます。
アーキテクチャ

役割 | サービス | 備考 |
DNS / 証明書 | Route 53 + ACM (us-east-1) |
|
配信 | CloudFront + S3 (OAC) | TLS 1.2 以上、CSP / HSTS などを付けます。 |
防御 | AWS WAF (prod) | IP レート制限、AWS マネージドルール、ログ出力(認証ヘッダは伏せ字) |
認証 | Cognito User Pool (Essentials, managed login) | TOTP MFA 必須、招待制、グループ |
API / MCP | API Gateway HTTP API + Lambda (Node.js 24, arm64) | 1 つの関数で REST と MCP Streamable HTTP を処理します。JWT は Lambda 内で検証します |
データ | DynamoDB (on-demand, PITR) | メタデータ、検索の転置インデックス、リンク(グラフ)、履歴、監査ログ、レート制限 |
本文 | S3 (versioning) |
|
バックアップ | AWS Backup (prod) | 毎日取得して 35 日保持します。ボールトにはロック(最低 7 日)を掛けています |
検索は OpenSearch を使わず、DynamoDB に置いた自前の転置インデックス(日本語は文字 bigram、英数字は単語単位)で行います。グラフも Neptune を使わず DynamoDB で持ちます。どちらもコストを抑えるための選択です。
外部依存
実行時に使う外部ライブラリは marked(Markdown の描画)と DOMPurify(XSS 対策)の 2 つだけです。YAML (frontmatter) パーサ、JWT 検証、ZIP 入出力、MCP サーバ、CLI は Node 標準機能で自作しています。npm run lint で、許可した依存以外が入っていないことを検査します。
Related MCP server: wikijs-mcp-google-auth
権限モデル
記事ごとに「閲覧範囲」と「編集範囲」を設定します。判定は src/shared/permissions.ts の 1 か所で行い、API、MCP、画面のすべてがこれを使います。
設定 | 値 |
閲覧 |
|
編集 |
|
管理者は常に閲覧・編集できます。閲覧者 (viewer) はどの記事も編集できません。新規作成は投稿者 (editor) 以上ができます。編集範囲を閲覧範囲より広くすることはできません。
閲覧できない記事は、一覧・検索・タグ・グラフ・バックリンク・履歴のどこにも現れず、直接アクセスしても 404 になります。検索のスコアや一覧のカーソルからも存在が推測できないようにしています。
過去の版は、その版を書いたときの閲覧範囲でも判定します(範囲を広げても、以前の秘密の版は見えません)。
削除は Web 画面からのみ行えます(論理削除で、管理者は復元できます)。MCP と CLI には削除機能がなく、サーバー側でも Web 用クライアントのトークン以外からの削除を拒否します。
権限を広げられるのは Web 画面からだけです。 CLI / MCP / API のトークンでは狭めることしかできません。シェルを使えるエージェントがプロンプトインジェクションを受けても、記事を公開されないようにするためです。
編集は楽観ロックです(
versionが一致しなければ 409)。
画面とヘルプページ
画面の左に常にサイドバーがあります(ナビゲーション、ヘルプ、最近の更新、タグ)。幅の狭い画面では ☰ で開閉します。
初回起動時に、ヘルプ記事
help-wiki(MCPWiki の使い方)とhelp-markdown(Markdown の書き方)を自動で作成します。全員が閲覧でき、編集できるのは管理者だけです。だれも編集していない間は、原稿の更新がデプロイ後に反映されます。管理者が編集または削除した記事は、そのまま残します(再作成も上書きもしません)。原稿はsrc/backend/seed/*.mdで、変更後はnode scripts/gen-seed.mjsを実行します(lint が生成物の更新漏れを検査します)。画面の下のフッターに、MCPWiki のバージョン(リリースではタグ名、それ以外は
git describeの結果)と GitHub へのリンクを表示します。
管理者の機能
サイトタイトル: 「管理 → サイト設定」で変更できます(60 文字まで)。ヘッダー、ブラウザのタブ、エクスポートの
index.mdに使われます。サインイン前の画面は「MCPWiki」のままです。全記事の一括ダウンロード: 「管理 → OKF 入出力」の「全記事を ZIP でダウンロード」で、公開中のすべての記事(閲覧範囲を問わず、削除済みは除く)を OKF バンドル(
index.mdと、frontmatter 付きのwiki/<id>.md)としてダウンロードします。そのままインポートできます。添付ファイルは含みません。ZIP は S3 のexports/に作られ、有効期限 5 分の署名付き URL で渡されます。ファイルは 1 日後に自動で削除されます。Web 画面の管理者だけが使えます(CLI / MCP からは使えません)。監査ログにexport-allとして記録されます。
添付ファイル(画像・PDF)
対応形式は PNG、JPEG、GIF、WebP、PDF で、1 ファイル 10MB まで、1 記事 100 ファイルまでです。SVG と HTML はスクリプトを含められるため受け付けません。
編集画面の「画像・PDF を添付」ボタン、ドラッグ&ドロップ、貼り付けで添付すると、
がカーソル位置に挿入されます。PDF はリンク形式になります。アクセス権は記事に従います。 閲覧するには記事の閲覧権限が、添付と削除には編集権限が必要です。非公開の記事の添付は、URL を知っていても見られません。
ファイルは Lambda を経由せず、有効期限 5 分の署名付き URL で S3 と直接やり取りします。署名の際に、保存先の場所、形式、サイズを固定します。アップロード後には、サーバーがファイル先頭のバイト列で形式を確認し、一致しなければ破棄します。画像はページ内に表示し、PDF は常にダウンロードとして扱います。
削除は Web 画面からのみ行えます。S3 のバージョン管理により、管理者は復元できます。
CLI:
mcpwiki attach <id> <ファイル>、mcpwiki attachments <id>、mcpwiki download <id> <ファイルID>。MCP:list_attachments、get_attachment(3MB までの画像を LLM に渡します)。MCP からはアップロードできません。
セットアップ
自分の AWS アカウントへの構築から、GitHub Actions による自動デプロイまでの手順は docs/deploy.md にまとめています(前提、fork で書き換える値、初回デプロイ、最初の管理者、CI の設定、prod のリリース、トラブルシューティング、撤去)。
概要:
npm ci --ignore-scripts && npm test && npm run lint
npx cdk bootstrap aws://<account>/<region> aws://<account>/us-east-1 # prod 用の bootstrap
npx cdk deploy MCPWiki-guard && node scripts/bootstrap-dev.mjs # 共有アカウントの境界と dev 専用の bootstrap
npm run deploy:dev # dev(独自ドメインは config/domains.local.json)
scripts/create-admin.sh dev <username> <email> admin # 最初の管理者を招待以降は、main へのマージで dev に、v* タグの push(承認 2 回)で prod にデプロイします。
CI/CD とセキュリティレビュー

ワークフロー | 契機 | 内容 |
| PR / main | lint(依存、XSS、ワークフローの固定)、型検査、テスト(セキュリティ回帰テストを含む)、 |
| PR / main / 毎週 | gitleaks(全履歴の秘密情報)、OSV-Scanner(既知の脆弱性と悪性パッケージ)、Dependency Review(PR)、checkov(合成済みテンプレート)、zizmor(Actions の監査)、OWASP ZAP baseline(dev、毎週)、Claude による AI レビュー(任意) |
| 依存を変更する PR | lockfile の審査(公開から 7 日未満・インストールスクリプトの追加・provenance の欠落・レジストリ以外からの取得を拒否。公開者の変更と新規の依存は警告。実行時の依存の差分を保存)、インフラ差分(変更前後で synth して比較し、依存だけの PR でセキュリティに関わるリソースが変われば停止) |
| PR / main / 毎週 | CodeQL(security-extended、TypeScript と GitHub Actions) |
| main / 毎週 | OpenSSF Scorecard |
| main → dev、 | 認証情報を持たないジョブで build/synth し、デプロイするジョブだけが OIDC トークンを得ます( |
Private リポジトリで運用する場合: Code scanning(SARIF のアップロード)、Dependency Review、Secret scanning は、GitHub の有償機能(GitHub Code Security / Secret Protection)が必要です。既定ではこれらを使わず、各スキャナは指摘があればジョブを失敗させ、レポートを artifact に残します(CodeQL も同じ)。Public にする、または有償機能を契約したら、リポジトリ変数 CODE_SCANNING_ENABLED=true を設定すると、結果が GitHub の Security タブ(Code scanning)に集約されます。Rulesets によるブランチ保護と、Environment の Required reviewers も、Private ではプランによって使えないことがあります。
アクションはすべてコミット SHA で固定し、Dependabot が更新します。
GitHub 側の初期設定(OIDC、シークレット、Environments)と、公開リポジトリにする場合の保護設定(Rulesets、タグ保護、fork の PR)は docs/deploy.md を参照してください。Issue と PR は誰でも作成できます。マージは、書き込み権限を持つ人(メンテナ)だけが行えます。貢献の手順は CONTRIBUTING.md を参照してください。
CLI
npm run build
install -m 755 dist/cli/mcpwiki.mjs ~/.local/bin/mcpwiki # 依存なしの単一ファイル
mcpwiki configure --env dev --url https://wiki-dev.example.com
mcpwiki login # ブラウザで MFA 付きサインイン (PKCE)
mcpwiki list --tag aws
mcpwiki search 東京タワー
mcpwiki get <id> # OKF 文書(frontmatter + Markdown)を出力
mcpwiki create --title "手順書" --tags ops,aws --file doc.md
mcpwiki edit <id> # $EDITOR で OKF 文書を編集(楽観ロック付き)
mcpwiki graph <id> --depth 2 --tags
mcpwiki export --out bundle.zip # 自分が読める記事の OKF バンドル
mcpwiki attach <id> shot.png # 添付(表示された Markdown を本文に貼る)
mcpwiki attachments <id> # 添付の一覧
mcpwiki download <id> <ファイルID> # 添付の保存ブラウザが別のマシンにある場合は、サインイン後に表示される http://localhost:53682/callback?... の URL を CLI に貼り付けてください。トークンは ~/.config/mcpwiki/credentials.json(0600)に保存し、自動で更新します。
Windows
CLI と MCP ブリッジは Windows でもそのまま動きます(npm test の E2E も Windows で通ります)。前提は Node.js 20 以上と Git です。
git clone https://github.com/siseru/mcpwiki.git
cd mcpwiki
npm ci --ignore-scripts
npm run build
npm install -g . :: mcpwiki コマンド(npm が mcpwiki.cmd を作ります)
mcpwiki configure --env dev --url https://wiki-dev.example.com
mcpwiki loginインストールせずに node dist\cli\mcpwiki.mjs <command> と直接呼んでも同じです。Windows では次の点が異なります。
設定とトークンは
%APPDATA%\mcpwiki\(XDG_CONFIG_HOMEがあればそちら)に保存します。POSIX の0600に相当する保護はなく、ユーザープロファイルの ACL に従います。mcpwiki loginはrundll32.exe url.dll,FileProtocolHandler経由で既定のブラウザを開きます(--no-browserで URL を手で開くこともできます)。mcpwiki edit <id>の既定のエディタはnotepad.exeです。VISUAL/EDITORを設定する場合、空白を含むパスは引用符で囲みます(例:set EDITOR="C:\Program Files\Notepad++\notepad++.exe" -multiInst)。code --waitのような.cmdのラッパも使えます。エディタは閉じるまで待つものを指定してください。--fileに渡す Markdown は CRLF でも BOM 付きでも構いません(読み込み時に正規化します)。npm run build/npm test/npm run lint/npm run typecheck/npm run synthは cmd / PowerShell でも動きます(CI もwindows-latestで lint・typecheck・テストを実行します)。bash が必要なのはデプロイ用のscripts/create-admin.shだけです(Git Bash か WSL で実行してください)。
MCP
MCP クライアントからは、CLI に組み込まれた stdio ブリッジ(mcpwiki mcp)を使うのが簡単です。ブリッジは CLI に保存されたログイン情報を使い、トークンの更新も自動で行います。先に CLI でログインしてください(mcpwiki whoami が通る状態)。
mcpwiki configure --env dev --url https://wiki-dev.example.com
mcpwiki login --env devClaude Code
claude mcp add --scope user mcpwiki -- mcpwiki mcp --env dev
claude mcp list # mcpwiki が Connected になっていることを確認Windows では mcpwiki が mcpwiki.cmd になり、MCP クライアントからは起動できないことがあります。node で .mjs を直接起動してください(パスは clone した場所に合わせます)。
claude mcp add --scope user mcpwiki -- node C:\Users\<user>\mcpwiki\dist\cli\mcpwiki.mjs mcp --env dev--scope userを付けると、どのディレクトリで起動しても使えます(リポジトリ単位にしたい場合は--scope project)。登録後に Claude Code を起動し直し、
/mcpで接続状態とツールの一覧を確認します。例:「MCPWiki で istus の記事を探して要約して」「今日の作業を MCPWiki に記事としてまとめて。タグは worklog」
Kiro
~/.kiro/settings/mcp.json(全ワークスペース共通)か、ワークスペースの .kiro/settings/mcp.json の mcpServers に追加します。既存のサーバの設定は残してください。
{
"mcpServers": {
"mcpwiki": {
"command": "/usr/bin/node",
"args": ["/home/<user>/.local/bin/mcpwiki", "mcp", "--env", "dev"],
"disabled": false,
"autoApprove": ["list_articles", "get_article", "search_articles", "list_tags", "get_graph", "get_backlinks", "list_attachments", "get_attachment"]
}
}
}Kiro の起動環境では
~/.local/binが PATH に入っていないことがあるので、nodeとmcpwikiは絶対パスで書きます(which nodeとwhich mcpwikiで確認できます)。Windows では、
argsにmcpwiki.cmd(where mcpwikiが返すパス)ではなく、clone した場所のdist\cli\mcpwiki.mjsを書きます。node.exeのパスはwhere nodeで確認します。JSON ではバックスラッシュを\\と書きます。"command": "C:\\Program Files\\nodejs\\node.exe", "args": ["C:\\Users\\<user>\\mcpwiki\\dist\\cli\\mcpwiki.mjs", "mcp", "--env", "dev"],autoApproveには読み取り用のツールだけを入れます。作成(create_article)と更新(update_article)は、実行前に Kiro が確認を求めます。保存したら、Kiro パネルの MCP SERVERS で
mcpwikiが接続済みになり、10 個のツールが表示されることを確認します(表示されなければ再接続します)。
共通の注意
MCP から作成した記事は
draftとして保存されます。内容を確認したら、Web 画面の「レビュー済みにする」で人による確認を記録してください。MCP からは削除できず、閲覧・編集範囲を広げることもできません(Web 画面でのみ可能)。
session expiredになったらmcpwiki loginを実行し直します(リフレッシュトークンの有効期限は 7 日)。
リモートのエンドポイントは https://<host>/mcp(Streamable HTTP)です。未認証のリクエストには、RFC 9728 の WWW-Authenticate: Bearer resource_metadata=... を付けて 401 を返します。認可サーバは Cognito(PKCE、事前登録クライアント cliClientId、コールバック http://localhost:53682/callback)です。
ツール | 内容 |
| 一覧、OKF 文書の取得(過去の版も可)、全文検索 |
| 作成(既定は |
| タグ、関連グラフ( |
| 添付の一覧、画像の取得(3MB まで。PDF はメタデータのみ) |
記事の内容は信頼できないデータとして扱い、応答ごとにランダムな境界タグで区切って返します。
OKF について
---
type: Wiki Article
title: 東京タワーの歴史
description: 1958 年完成の電波塔の概要
tags: [観光, 歴史]
status: stable
generated: { by: "human:taro", at: "2026-10-07T00:00:00.000Z" }
verified:
- by: "human:hanako"
at: "2026-10-08T00:00:00.000Z"
mcpwiki: { id: tokyo-tower, owner: taro, read_scope: all, write_scope: owner, version: 3, ... }
---
本文…… [関連記事](/wiki/other-article)記事間のリンクは
[表示名](/wiki/<id>)と書きます(/wiki/<id>.mdや<id>.mdも認識します)。generated.byには、Web と CLI の編集ならhuman:<ユーザ名>、MCP の編集ならmcpwiki-mcp/<version>が入ります。「レビュー済みにする」を押すとverifiedに追加されます(内容が変わるとリセット)。拡張キーは保持されます。エクスポートされるバンドルは
index.md(okf_version: "0.2")とwiki/<id>.mdで構成されます。
コスト目安
小規模(数十ユーザ、数千記事)なら、dev は月数ドルです。prod は WAF(月 9 ドル前後)、WAF のログ、Backup(データ量に比例)を加えて、月 10〜20 ドル程度の見込みです。常時起動のリソースはありません。
すべてのリソースに、コスト配分タグ Project=mcpwiki、Environment=dev|prod(共通のスタックは shared)、Component=app|edge|cicd|guard、ManagedBy=cdk を付けます。Cost Explorer では、Billing の「コスト配分タグ」で有効にしたキーで集計できます(有効化は管理アカウントで一度だけ。タグが付いてから一覧に出るまで最大 24 時間かかります)。タグは -c costTags='{"CostCenter":"…"}' で追加・上書きできます。
ディレクトリ
src/shared 権限、OKF、YAML サブセット、トークン化、入力検証(API / Web / CLI で共通)
src/backend Lambda: ルーティング、JWT 検証、業務ロジック、MCP、DynamoDB/S3 ストア、ZIP
src/web SPA(ユーザ画面と管理画面)
src/cli mcpwiki CLI と MCP stdio ブリッジ
src/infra CDK: WikiStack / EdgeStack / GuardStack / CiStack
test node:test(E2E とセキュリティ回帰テストを含む)
scripts build / lint / smoke / create-admin / bootstrap-dev / diagrams
docs 設計資料と図セキュリティ設計の詳細: docs/security.md / 脆弱性の報告: SECURITY.md
ライセンス
Apache License 2.0(LICENSE)
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted markdown project wikis your team's AI assistants read, search, and update over MCP.
- FlowdexOAuthdk.flowdex
Read and write your team's shared, AI-readable wiki from any MCP client.
- hiveWikiOAuthai.hivewiki
Shared project wiki for AI agents: read and write pages, next actions, and activity logs over MCP.
- WitWikiOAuthapp.witwiki
A shared team wiki your coding agents read and write — across every repo and every MCP client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides structured search, schema-validated writes, and linting for a markdown knowledge base, enabling agents to operate the wiki over a single streamable-HTTP MCP endpoint.1-
- AlicenseNot gradedqualityAmaintenanceEnables MCP clients to search, read, list, create, update, and delete Wiki.js pages using a user's own Google Workspace identity, with Wiki.js enforcing all authorization.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read, search, and write to a public wiki knowledge base via MCP.MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to maintain a persistent Markdown knowledge base by ingesting sources, searching and reading notes, and creating or updating wiki pages with optimistic locking.11AGPL 3.0