cosense-mcp-worker
cosense-mcp-worker
Это stateless-сервер Remote MCP для управления одним проектом Cosense (ранее Scrapbox). Работает на Cloudflare Workers, использует Hono для HTTP-маршрутизации и createMcpHandler() от Cloudflare Agents с MCP SDK v2 для MCP. Реализация OAuth не встроена в Worker — она делегируется Cloudflare Access Managed OAuth.
Один Worker привязан к одному проекту Cosense и одному connect.sid. Из аргументов MCP-инструментов нельзя указать или изменить другой проект или учётные данные.
Использование из различных MCP-инструментов
Имя: Cosense
MCP-эндпоинт:
https://<worker-host>/mcpАутентификация: OAuth
Related MCP server: Remote MCP Server with Bearer Auth
Развёртывание в Cloudflare в один клик
С помощью этой кнопки вы можете создать, собрать и развернуть Worker в своей учётной записи Cloudflare. На экране настройки вводятся имя Worker, а также COSENSE_PROJECT_NAME, CF_ACCESS_TEAM_DOMAIN, CF_ACCESS_AUD и секрет COSENSE_SID.
Создание приложения Cloudflare Access, включение Managed OAuth и настройка Access Policy должны быть выполнены пользователем самостоятельно после развёртывания.
Предоставляемые эндпоинты
Эндпоинт | Описание |
| Возвращает обзор сервиса. Не возвращает имя проекта или секретные данные. |
| Проверка работоспособности без аутентификации. |
| Streamable HTTP MCP-эндпоинт, защищённый Cloudflare Access. |
MCP-инструменты
Инструмент | Входные данные | Описание |
|
| Получает текст страницы, прямые ссылки, связанные страницы 1-го и 2-го уровня, внешние и межпроектные ссылки. |
| нет | Получает до 100 страниц в порядке обновления, с описанием и датой обновления. |
|
| Выполняет полнотекстовый поиск Cosense в настроенном проекте. |
|
| Вставляет строки сразу после первой строки с точным совпадением. Если совпадений нет, добавляет в конец. |
Локальная настройка
Требуются: Node.js 20 или новее, Corepack, учётная запись Cloudflare с доступом к Cloudflare Zero Trust и идентификатор сессии с правами на целевой проект Cosense.
git clone <リポジトリURL> cosense-mcp-worker
cd cosense-mcp-worker
corepack enable
pnpm installЗначения, не являющиеся секретными, задаются в wrangler.jsonc.
"vars": {
"COSENSE_PROJECT_NAME": "your-project",
"CF_ACCESS_TEAM_DOMAIN": "https://your-team.cloudflareaccess.com",
"CF_ACCESS_AUD": "YOUR_ACCESS_APPLICATION_AUDIENCE_TAG"
}Идентификатор сессии обязательно задавайте как Worker Secret. Не сохраняйте его в wrangler.jsonc, в исходном коде или в Git.
pnpm wrangler secret put COSENSE_SIDДля локальной разработки задайте его в .dev.vars, который не коммитится.
COSENSE_SID=your-connect.sid-valueПроверка и локальный запуск выполняются следующим образом. pnpm check запускает линтер, проверку типов, модульные тесты, синхронизацию типов Worker binding и проверку бандла перед развёртыванием.
pnpm check
pnpm wrangler dev --localНастройка Cloudflare Access Managed OAuth
Выполняйте следующую команду только когда готовы к развёртыванию.
pnpm run deployЗатем в панели Cloudflare Zero Trust создайте Access Application для имени хоста Worker.
Создайте MCP server application для домена Worker и пути
/mcp.Настройте Access Policy для пользователей или групп, которым разрешено использовать целевой проект Cosense.
Скопируйте тег Application Audience (AUD) и задайте его в
CF_ACCESS_AUD.Убедитесь, что Team Domain в Zero Trust совпадает с
CF_ACCESS_TEAM_DOMAIN.В Advanced settings приложения включите Managed OAuth.
Зарегистрируйте
https://<worker-host>/mcpв MCP-клиенте.
Authorization Code Flow, PKCE, вход, refresh-токены, OAuth discovery и Access Policy полностью обрабатываются Cloudflare Access. Сам Worker не реализует OAuth-сервер.
Worker принимает Cf-Access-Jwt-Assertion и передаёт запросы к /mcp в MCP-обработчик только после проверки подписи RS256, issuer и AUD с помощью JWKS-эндпоинта команды.
При использовании Managed OAuth информация OAuth discovery возвращается клиенту из слоя Access. Не добавляйте в Worker собственные OAuth-эндпоинты или отдельный сервер авторизации.
Свойства безопасности
COSENSE_SIDобрабатывается как Secret binding и не включается в JSON-ответы или логи./mcpотклоняет запросы без Access assertion или с недействительным assertion, возвращая401.Подпись Access JWT проверяется по
https://<team-domain>/cdn-cgi/access/certs, также проверяются issuer и AUD.Origin для
/mcpразрешён полностью. Приоритет отдаётся совместимости с Remote MCP-клиентами; контроль доступа осуществляется через OAuth-токены Cloudflare Access и проверку JWT внутри Worker.Схемы MCP-инструментов отклоняют неопределённые входные данные, поэтому вызывающая сторона не может переопределить проект или учётные данные.
Ошибки Cosense не возвращаются как есть; они ограничиваются ошибками на уровне операций.
Чтобы случайно не возвращать огромные ответы, вывод инструментов ограничен 100 000 символами.
Структура каталогов
src/
config.ts Worker bindingの検証
index.ts Honoルートとstateless MCP HTTP transport
middleware/access-auth.ts Access JWTの検証
mcp/server.ts MCP SDK v2 server factory
mcp/tools/ ツールごとのスキーマと登録処理
cosense/client.ts Cosense adapter
cosense/formatter.ts LLM向けページ整形
cosense/insert-lines.ts 純粋な挿入位置計算
test/ 外部Cosense APIを呼ばないユニットテストСправочные материалы
Проект вдохновлён yosider/cosense-mcp-server. Данный проект не копирует код этого репозитория, а является новой реализацией для Cloudflare Workers.
This server cannot be deployed
Maintenance
Related MCP Connectors
Cloudflare Workers MCP server: citation-verifier
Cloudflare Workers MCP server: embedding-search
Cloudflare Workers MCP server: ai-token-counter
Cloudflare Workers MCP server: ai-model-router
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server implementation that runs on Cloudflare Workers with OAuth authentication support, allowing users to connect MCP clients like Claude Desktop or the MCP Inspector to utilize remote AI tools.-
- FlicenseNot gradedqualityCmaintenanceA Cloudflare Workers-based MCP server implementation that supports OAuth/bearer token authentication, enabling secure remote interaction with Model Context Protocol tools.-
- FlicenseNot gradedqualityCmaintenanceA Model Context Protocol server implementation designed to run on Cloudflare Workers with integrated OAuth authentication. It enables hosting and securely accessing MCP tools remotely via SSE transport from clients like Claude Desktop.-
- FlicenseNot gradedqualityCmaintenanceA remote MCP server deployed on Cloudflare Workers with OAuth login, enabling tools like math operations to be called via natural language.-