cosense-mcp-worker
cosense-mcp-worker
Es un servidor MCP remoto de arquitectura sin estado que opera sobre un único proyecto de Cosense (anteriormente Scrapbox). Se ejecuta en Cloudflare Workers, utiliza Hono para el enrutamiento HTTP y createMcpHandler() de Cloudflare Agents y el SDK de MCP v2 para MCP. La implementación de OAuth no reside en el Worker, sino que se delega en Cloudflare Access Managed OAuth.
Un Worker está vinculado a un único proyecto de Cosense y a un único connect.sid. No es posible especificar ni modificar otros proyectos o credenciales mediante los argumentos de las herramientas MCP.
Despliegue en un clic en Cloudflare
Con este botón puede crear, compilar e implementar un Worker en su propia cuenta de Cloudflare. En la pantalla de configuración, introduzca el nombre del Worker, COSENSE_PROJECT_NAME, CF_ACCESS_TEAM_DOMAIN, CF_ACCESS_AUD y el secreto COSENSE_SID.
La creación de la aplicación de Cloudflare Access, la habilitación de Managed OAuth y la configuración de las políticas de acceso deben realizarlas usted mismo después del despliegue.
Puntos de conexión proporcionados
Punto de conexión | Descripción |
| Devuelve un resumen del servicio. No devuelve el nombre del proyecto ni información confidencial. |
| Comprobación de estado sin autenticación. |
| Punto de conexión MCP HTTP transmisible protegido por Cloudflare Access. |
Herramientas MCP
Herramienta | Entrada | Descripción |
|
| Obtiene el cuerpo de la página, enlaces directos, páginas relacionadas a 1 y 2 saltos, y enlaces externos o a otros proyectos. |
| Ninguna | Obtiene hasta 100 páginas ordenadas por fecha de actualización, con su descripción y fecha de actualización. |
|
| Realiza una búsqueda de texto completo en Cosense dentro del proyecto configurado. |
|
| Inserta el texto después de la primera línea que coincida exactamente. Si no hay coincidencia, lo añade al final. |
Configuración local
Necesitará Node.js 20 o superior, Corepack, una cuenta de Cloudflare con acceso a Cloudflare Zero Trust y un ID de sesión con permisos sobre el proyecto de Cosense de destino.
git clone <リポジトリURL> cosense-mcp-worker
cd cosense-mcp-worker
corepack enable
pnpm installLos valores que no son secretos se configuran en 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"
}El ID de sesión debe configurarse siempre como un secreto del Worker. No debe guardarse en wrangler.jsonc, en el código fuente ni en Git.
pnpm wrangler secret put COSENSE_SIDSolo para el desarrollo local, configúrelo en el archivo .dev.vars, que no se confirma en el repositorio.
COSENSE_SID=your-connect.sid-valueLa verificación y la ejecución local son las siguientes:
pnpm lint
pnpm typecheck
pnpm test
pnpm wrangler dev --localConfiguración de Cloudflare Access Managed OAuth
Ejecute el siguiente comando solo cuando esté listo para implementar.
pnpm deployA continuación, cree una aplicación de acceso para el nombre de host del Worker en el panel de Cloudflare Zero Trust.
Cree una aplicación de servidor MCP para el dominio del Worker y la ruta
/mcp.Configure una política de acceso con los usuarios o grupos de identidad a los que desee permitir el uso del proyecto de Cosense de destino.
Copie la etiqueta de audiencia (AUD) de la aplicación y asígnela a
CF_ACCESS_AUD.Compruebe que el dominio de equipo de Zero Trust coincide con
CF_ACCESS_TEAM_DOMAIN.Habilite Managed OAuth en la configuración avanzada de la aplicación.
Registre
https://<worker-host>/mcpen el cliente MCP.
Cloudflare Access se encarga de todo: flujo de código de autorización, PKCE, inicio de sesión, tokens de actualización, descubrimiento OAuth y políticas de acceso. El Worker no implementa un servidor OAuth.
El Worker recibe la cabecera Cf-Access-Jwt-Assertion y solo reenvía las solicitudes a /mcp al manejador MCP después de verificar la firma RS256, el emisor y la audiencia mediante el punto de conexión JWKS del equipo.
La información de descubrimiento OAuth al usar Managed OAuth se devuelve al cliente desde la capa de Access. No añada puntos de conexión OAuth ni un servidor de autorización propio dentro del Worker.
Consideraciones de seguridad
COSENSE_SIDse trata como un enlace secreto y no se incluye en las respuestas JSON ni en los registros./mcprechaza con401las solicitudes sin una aserción de acceso válida o con una aserción no válida.La firma del JWT de Access se verifica en
https://<team-domain>/cdn-cgi/access/certs, y también se verifican el emisor y la audiencia.El origen de
/mcpestá permitido en su totalidad. Se prioriza la compatibilidad con clientes MCP remotos; el control de acceso se realiza mediante el token OAuth de Cloudflare Access y la validación JWT dentro del Worker.Como el esquema de las herramientas MCP rechaza entradas no definidas, quien llama no puede sobrescribir el proyecto ni las credenciales.
No se devuelven los mensajes de error arbitrarios de Cosense; los errores se limitan a los de la operación.
Para evitar respuestas involuntariamente enormes, la salida de las herramientas está limitada a 100 000 caracteres.
Estructura de directorios
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を呼ばないユニットテストReferencias
Se inspira en yosider/cosense-mcp-server. Este proyecto no copia el código de ese repositorio, sino que es una implementación nueva para Cloudflare Workers.
This server cannot be installed
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
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Streamable HTTP MCP server for Google Calendar and Sheets with OAuth login.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
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/ogatomo21/cosense-mcp-worker'
If you have feedback or need assistance with the MCP directory API, please join our Discord server