Skip to main content
Glama

cosense-mcp-worker

Cosense(구 Scrapbox)의 단일 프로젝트를 조작하는 stateless 구성의 Remote MCP 서버입니다. Cloudflare Workers에서 동작하며, HTTP 라우팅에는 Hono, MCP에는 Cloudflare Agents의 createMcpHandler()와 MCP SDK v2를 사용합니다. OAuth 구현은 Worker에 두지 않고, Cloudflare Access Managed OAuth로 위임합니다.

1개의 Worker는 1개의 Cosense 프로젝트와 1개의 connect.sid에 고정됩니다. MCP 도구의 인수에서 다른 프로젝트나 인증 정보를 지정·변경할 수 없습니다.

각종 MCP 도구에서 사용하는 방법

  • 이름 Cosense

  • MCP 엔드포인트 https://<worker-host>/mcp

  • 인증 OAuth

Related MCP server: Remote MCP Server with Bearer Auth

Cloudflare에 원클릭 배포

Deploy to Cloudflare

이 버튼에서 이용자 자신의 Cloudflare 계정으로 Worker를 생성·빌드·배포할 수 있습니다. 설정 화면에서는 Worker 이름과 COSENSE_PROJECT_NAME, CF_ACCESS_TEAM_DOMAIN, CF_ACCESS_AUD, Secret의 COSENSE_SID를 입력합니다.

Cloudflare Access Application 생성, Managed OAuth 활성화, Access Policy 설정은 배포 후 이용자 자신이 수행해야 합니다.

제공하는 엔드포인트

엔드포인트

내용

GET /

서비스 개요를 반환합니다. 프로젝트 이름이나 비밀 정보는 반환하지 않습니다.

GET /health

인증 불필요한 헬스 체크입니다.

ALL /mcp

Cloudflare Access로 보호된 Streamable HTTP MCP 엔드포인트입니다.

MCP 도구

도구

입력

내용

get_page

title

페이지 본문, 직접 링크, 1-hop·2-hop 관련 페이지, 외부·타 프로젝트 링크를 가져옵니다.

list_pages

없음

갱신 일시 순으로 최대 100건의 페이지를 설명과 갱신 일시와 함께 가져옵니다.

search_pages

query

설정된 프로젝트 내에서 Cosense 전문 검색을 실행합니다.

insert_lines

title, targetLineText, text

처음으로 완전 일치한 줄의 바로 뒤에 삽입합니다. 일치하는 것이 없으면 끝에 추가합니다. text에는 줄바꿈을 포함할 수 있습니다.

로컬 설정

필요한 것은 Node.js 20 이후, Corepack, Cloudflare Zero Trust를 이용할 수 있는 Cloudflare 계정, 대상 Cosense 프로젝트에 대한 권한을 가진 세션 ID입니다.

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"
}

세션 ID는 반드시 Worker Secret으로 설정하세요. wrangler.jsonc, 소스 코드, Git에 저장해서는 안 됩니다.

pnpm wrangler secret put COSENSE_SID

로컬 개발 전용에서는 커밋하지 않는 .dev.vars에 설정합니다.

COSENSE_SID=your-connect.sid-value

검증과 로컬 실행은 다음과 같습니다. pnpm check는 Lint, 타입 검증, 유닛 테스트, Worker binding 타입 동기화 확인, 배포 전 번들 검증을 한 번에 실행합니다.

pnpm check
pnpm wrangler dev --local

Cloudflare Access Managed OAuth 설정

배포할 준비가 된 단계에서만 다음 명령을 실행합니다.

pnpm run deploy

이어서 Cloudflare Zero Trust 대시보드에서 Worker의 호스트 이름에 대한 Access Application을 생성합니다.

  1. Worker의 도메인 및 /mcp 경로를 대상으로 MCP server application을 생성합니다.

  2. 대상 Cosense 프로젝트의 이용을 허용할 사용자 또는 ID 그룹으로 Access Policy를 설정합니다.

  3. Application Audience(AUD) Tag를 복사하여 CF_ACCESS_AUD에 설정합니다.

  4. Zero Trust의 Team Domain이 CF_ACCESS_TEAM_DOMAIN과 일치하는지 확인합니다.

  5. Application의 Advanced settings에서 Managed OAuth를 활성화합니다.

  6. MCP 클라이언트에 https://<worker-host>/mcp를 등록합니다.

Authorization Code Flow, PKCE, 로그인, 리프레시 토큰, OAuth discovery, Access Policy는 모두 Cloudflare Access가 담당합니다. Worker 자체는 OAuth 서버를 구현하지 않습니다.

Worker는 Cf-Access-Jwt-Assertion을 받아 Team의 JWKS 엔드포인트를 사용하여 RS256 서명·issuer·AUD를 검증한 후에만 /mcp에 대한 요청을 MCP 핸들러로 전달합니다.

Managed OAuth 이용 시의 OAuth discovery 정보는 Access 계층에서 클라이언트로 반환됩니다. Worker 내에 OAuth 엔드포인트나 자체 인가 서버를 추가하지 마세요.

보안상의 성질

  • COSENSE_SID는 Secret binding으로 취급하며, JSON 응답이나 로그에 포함하지 않습니다.

  • /mcp는 Access assertion이 없거나 유효하지 않은 요청을 401로 거부합니다.

  • Access JWT는 https://<team-domain>/cdn-cgi/access/certs에서 서명을 검증하고, issuer와 AUD도 검증합니다.

  • /mcp의 Origin은 전부 허용입니다. Remote MCP 클라이언트와의 호환성을 우선하며, 액세스 제어는 Cloudflare Access의 OAuth 토큰과 Worker 내의 JWT 검증으로 수행합니다.

  • 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용으로 새로 구현한 것입니다.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A 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.
  • F
    license
    Not graded
    quality
    C
    maintenance
    A Cloudflare Workers-based MCP server implementation that supports OAuth/bearer token authentication, enabling secure remote interaction with Model Context Protocol tools.
  • F
    license
    Not graded
    quality
    C
    maintenance
    A 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.

View all related MCP servers

Related MCP Connectors

  • Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth

  • Cloudflare Workers MCP server: crypto-signal

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

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/ogatomo21/cosense-remote-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server