shiyui-cosense-mcp
Provides read-only access to a Scrapbox (Cosense) project, enabling retrieval of pages, full-text search, semantic vector search, and related page discovery.
Click on "Install 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., "@shiyui-cosense-mcpsearch full text for 'OAuth setup'"
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.
shiyui-cosense-mcp
https://scrapbox.io/shiyui 専用の Remote MCP Server。
Cosense Personal Access Token(PAT)を必須とし、Cloudflare Secret
COSENSE_PATに保存shiyui固定のCosense requestへx-personal-access-tokenを送信PATが未設定または空ならCosenseへ接続せず失敗
Public / Private pageを同じ認証経路で取得
MCPはCloudflare Access Managed OAuthで保護
6つのread toolと、用途を分けた4つのwrite toolを公開
writeは公式CLIと同じpage edit APIとreplace links APIを使用し、任意project、任意URL、cacheは持たない
Tools
Tool | 用途 |
| titleを指定して本文を取得 |
| 通常本文を全文検索 |
| titleと本文中link記法をsemantic検索 |
| 1-hop / 2-hopの関連pageを取得 |
| page metadataを一覧取得 |
| 1 pageの変更履歴を取得 |
| pageを新規作成 |
| 既存pageの末尾へtextを追記 |
| 既存pageの本文更新・タイトル変更 |
| project内の旧titleへのlinkを一括置換 |
project、origin、URL、HTTP header、credential、file pathはtool引数に含めない。
search_full_text、search_vector、get_related_pages の limit は1–100、既定値は20とする。list_pages の limit は1–1000、既定値は20で、sort と明示的な skip を受け取る。いずれも指定された範囲だけを取得し、自動paginationやpage detailのN+1取得は行わない。続きが必要な場合は、返されたcursorまたは nextSkip を指定して改めて呼ぶ。
get_page_changes は get_page が返す pageId と任意の commitId を受け取る。対象pageのcommitsとactor名解決用のproject usersを2 GETで並列取得し、他page、page本文、関連pageへ広げない。返却は最新100件の変更に限定し、変更前後のtextは各2000文字までとする。actorはnameだけを返し、email、user ID、line IDは返さない。
Write
write toolは、ユーザーの書き込み意思と対象が明確な場合に呼ぶ。依頼の範囲内でLLMが文章を整えて実行でき、生成した最終文字列の再提示と再承認は必須にしない。意図が曖昧な場合や依頼範囲を超える場合だけ確認する。
project固有の書き方・記法・編集方針の正本はCosenseの cosenseの書き方 とする。現在のcommit、page状態、既存の書式を判断するために必要な場合だけ get_page を使い、安全確認だけを目的とした一律のreadは要求しない。操作固有の削除・競合・再実行条件は各tool descriptionに置く。
create_pageは同名の実pageがある場合に失敗する。既存pageへの追記へ切り替えないappend_to_pageは対象の現在状態として取得済みのcommitIdをexpectedCommitIdとして必須にする。既知の結果がcurrentなら確認だけの再readは行わないupdate_pageも対象の現在状態を示すcommitIdを必須にし、title行を除く完成後の本文をbodyに指定する。bodyの省略は本文維持、空文字は本文全削除を表す。bodyを指定した場合、含めなかった既存行は削除される。任意のnewTitleでタイトルも変更できるreplace_linksはproject内の[title]、#title、[title.icon]を一括置換する。pageタイトルは変更せず、previewも行わない。独立したtoolとして影響範囲を分離するが、ユーザーがrenameとlink更新をまとめて依頼した場合は追加確認なしで続けて実行できるpage編集はpageが不存在、rename済み、または更新済みなら失敗する。競合時とsubmit結果が不明な場合は、最新pageを読んでから次の操作を判断する
create / appendのtextとupdateのbodyにはMCP独自の文字数・行数・change数上限を設けない。NULを拒否し、appendは空白だけのtextも拒否する
create / append / updateは1 call内で
page-edit-for-ai/previewとsubmitを各1回までとし、自動retryしないsubmit結果が不明な場合は同じwriteを再実行せず、先に
get_pageで反映状態を確認するタイトル変更だけの依頼からlink置換を推測しない。link更新も明確に依頼されている場合は、
update_pageが返した実際のtitleを使ってreplace_linksを続けて呼ぶreplace_linksの通信失敗または5xxは一部だけ反映済みの可能性がある。同じfromTitle/toTitleだけを再実行できる
preview ID、line ID、page ID、project、origin、credentialはwrite toolの引数に含めない。raw operationも公開しない。
Related MCP server: confluence-http-api-mcp
Requirements
Node.js 24.11以上
pnpm 11.16.0
Cloudflare Workers Free plan
Cloudflare Zero Trust Free plan
Cosense Personal Access Token
One-time PINを受信するemail address 1件
Install
pnpm install --frozen-lockfile
pnpm checkpnpm-workspace.yaml はdependencyのminimum release ageを7日に設定する。
Cosense PAT
PATは https://scrapbox.io/settings/personal-access-tokens で発行する。README、wrangler.jsonc、example file、Gitには保存しない。
localでは、Git管理外の .dev.vars を作成して実値を設定する。
cp .dev.vars.example .dev.varsCOSENSE_PAT=replace-with-personal-access-tokenCloudflareにはSecretとして登録する。
npx wrangler secret put COSENSE_PATPATが未設定または空の場合はfail closedとし、匿名requestへfallbackしない。Cosenseが 401 または 403 を返した場合は認証失敗として扱い、PAT、upstream response body、statusごとの意味をclientへ返さない。
Cloudflare Access
Cloudflare Zero TrustにOne-time PIN identity providerを追加する。
Workerの公開hostname全体を対象にSelf-hosted Access applicationを作成する。
Allow policyのIncludeを本人のemail 1件にし、利用可能なidentity providerをOne-time PINだけにする。
applicationでManaged OAuthとDynamic Client Registrationを有効にする。
DCRのredirect URIにChatGPT管理画面で表示されたcallback URIを登録する。
localhost clientとloopback clientを無効にする。
Application Audience tagとteam domainを
wrangler.jsoncに設定する。Preview URLは使用しない。
wrangler.jsoncでpreview_urls: falseを明示し、Cloudflare上でも無効になっていることを確認する。
{
"vars": {
"TEAM_DOMAIN": "https://<team>.cloudflareaccess.com",
"POLICY_AUD": "<application-audience-tag>"
}
}Access for SaaS application、OIDC client ID / secret、Worker callback、custom scopeは使用しない。
課金
Workers FreeとZero Trust Freeだけを使用し、有料planへupgradeしない
KV、Durable Objects、D1、R2、Queues、Workers AIは使用しない
readは1 tool callあたり最大2 request。page writeは最大4 request、
replace_linksは1 requestで、自動retryは行わないWorkers Freeの1日100,000 requestを超えた場合は処理が失敗し、従量課金には移行しない
Deploy
pnpm exec wrangler login
pnpm exec wrangler whoami
pnpm check
pnpm exec wrangler deploy --dry-run
pnpm run deployChatGPT Developer modeへ次を登録する。
https://<worker-origin>/mcp初回接続でOne-time PIN認証を行い、10 toolの一覧と1回のread callを確認する。writeの動作確認を行う場合は、対象と書き込み意思を明示して依頼する。
Data boundary
readはallowlist済みの
GET、page writeは対象確認用のGETとpreview / submitPOST、link置換は固定projectのreplace linksPOSTだけを使用し、すべてcache: "no-store"とする全Cosense requestへ
x-personal-access-tokenを付与し、Public / Privateで分岐しないMCP responseも
Cache-Control: no-storeresponseにemail、user ID、line ID、raw API responseを含めない。変更履歴のactorはnameだけを返す
list_pagesは1 GETだけとし、N+1取得、全件走査、自動paginationを行わないget_page_changesは対象pageのcommitsとactor名解決用usersの2 GETだけとし、他pageへ広げないtitle、query、pageId、commitId、cursorは500文字までとする。Workerの16 KiB URL境界を超えないための通信上の制約であり、page本文の利用制限ではない
writeは新規作成、末尾追記、完成形によるpage更新、link一括置換に限定し、同名存在またはcommit不一致から別操作へfallbackしない
自動retry、polling、background同期、事前indexを行わない
PAT、OAuth token、Access assertion、page本文、queryをlogしない
401/403はtokenとupstream bodyを含まない認証失敗として返すCosense internal APIとPAT headerの利用方法は予告なく変更される可能性がある
read調査の履歴は docs/research.md、writeの設計根拠は docs/write-design.md を参照する。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only MCP server for the OrchestKit docs: full-text search + Markdown fetch. No auth.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
OAuth-protected, read-only-by-default MCP server for provenance-labeled QuillCaddie project memory.
Read-only MCP for the Eco game wiki: search, Markdown pages, and wiki_* lookups. No keys, no writes.
Related MCP Servers
- AlicenseAqualityAmaintenanceThis server facilitates interaction with cosense/Scrapbox projects, enabling users to retrieve, list, search, and create pages while supporting various query operations and secure access to private projects.914550MIT
- AlicenseAqualityCmaintenanceRead-only MCP server for self-hosted Confluence that lets AI agents search pages, fetch content, and navigate page trees via the REST API.513MIT
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server for accessing GitBook content, including spaces, pages, and search, through AI assistants.189MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for a content-first knowledge base, enabling AI agents to search (full-text, semantic, hybrid) and retrieve Markdown documents, list content, and find related docs.18MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sigumaa/shiyui-cosense-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server