Scope by Ouroboros Apps
Scope by Ouroboros Apps: alcance del trabajo freelance, tarifas, plazos y órdenes de cambio
Servidor MCP alojado
npx add-mcp 'https://scope-continuity2.vercel.app/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Scope
Scope mantiene el alcance aprobado, las tarifas, los plazos y las órdenes de cambio de un freelancer, y permite que un asistente lea ese registro antes de responder. Un asistente no puede inventar un descuento ni prometer trabajo que no fue aprobado.
Funciona con ChatGPT, Claude, Gemini, Grok y Cursor, además de cualquier otro cliente MCP que pueda usar Streamable HTTP y OAuth. No es un plugin exclusivo de ChatGPT.
Inicia sesión con tu cuenta de Scope cuando el asistente abra OAuth. No pegues una clave de API ni una contraseña en un encabezado. Scope admite registro dinámico de clientes: deja el client id y el secret vacíos. Los metadatos del recurso protegido en /.well-known/oauth-protected-resource/mcp dirigen a los clientes al emisor de OAuth, que los registra.
Las herramientas de Scope requieren Pro o una prueba activa. Una suscripción nueva incluye una prueba de 14 días. Esta página no muestra un monto. El proceso de pago muestra el intervalo de facturación y los términos de pago.
Ejecuta el servidor tú mismo y usa la URL base que configures. La dirección MCP local predeterminada es http://127.0.0.1:3000/mcp.
Servidor alojado
- URL del servidor MCP:
https://scope-continuity2.vercel.app/mcp(Streamable HTTP, inicio de sesión con OAuth) - Documentación: https://ouroborosapps.com/docs/scope
- Estado: acceso anticipado. Pega la URL en Claude, Cursor, Grok o el modo desarrollador de ChatGPT.
- Nombre del registro:
io.github.LAHutchins91/scope
Lo que el asistente puede hacer
Después de que apruebes la conexión, el servidor expone estas herramientas:
- list_engagements
- create_engagement
- get_approved_record
- save_scope_item
- save_rate
- save_deadline
- approve_scope
- file_change_order
- approve_change_order
get_approved_record es la lectura que el asistente debe hacer antes de responder. Los términos en borrador no son un compromiso aprobado. Una orden de cambio propuesta no modifica el registro. Después de que el alcance sea aprobado, save_rate rechaza una tarifa más baja, y save_scope_item rechaza trabajo nuevo. Esos cambios pasan por file_change_order y luego por approve_change_order, y solo cuando apruebas explícitamente esa orden.
El asistente solo llama a estas herramientas cuando tú y el host lo permiten.
Conectar
Cursor, en ~/.cursor/mcp.json o en un proyecto .cursor/mcp.json:
{
"mcpServers": {
"scope": {
"url": "http://127.0.0.1:3000/mcp"
}
}
}
No agregues un bloque de encabezados. Cursor registra un cliente y abre el inicio de sesión.
Claude Code:
claude mcp add --transport http scope http://127.0.0.1:3000/mcp
No pases un encabezado de Authorization. Otros clientes usan la misma dirección, eligen OAuth y dejan el client id y el secret vacíos. Los pasos para ChatGPT, Claude, Gemini, Grok y Cursor están en la página de conexión en /connect.
Los metadatos del registro para este servidor están en server.json (io.github.LAHutchins91/scope). La URL remota pública allí es https://scope-continuity2.vercel.app/mcp.
Ejecutar
npm install
npm test
npm run typecheck
npm run build
npm start
Cuando stdin es una terminal, Scope sirve Streamable HTTP en el puerto 3000. Cuando stdin no es una terminal, habla MCP a través de stdio y aun así abre el puerto HTTP. Los registros durante el modo stdio van a stderr para no mezclarse con el protocolo.
Los registros se almacenan de forma duradera en un archivo JSON. La ruta predeterminada es ~/.scope/scope.json. Configura SCOPE_DATA_PATH para moverlo. Un solo proceso del servidor es dueño de ese archivo.
OAuth usa la misma idea que un servidor de autorización de Supabase con registro dinámico de clientes. Configura estos valores en el proceso del servidor, no en un encabezado MCP:
APP_BASE_URL(predeterminadohttp://localhost:3000)SUPABASE_URLSUPABASE_ANON_KEYSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETSTRIPE_PRICE_MONTHLYySTRIPE_PRICE_YEARLY(IDs de catálogo de Stripe, no montos)OPENAI_APPS_CHALLENGE(opcional). Cuando está configurado,GET /.well-known/openai-apps-challengedevuelve ese token como texto plano para la verificación de dominio de OpenAI. Cuando no está configurado, la ruta responde con404y el textoVerification is not configured.
Las llamadas a herramientas que no sean de descubrimiento requieren una cuenta con sesión iniciada cuyo estado de suscripción sea active o trialing.
Más de Ouroboros: https://ouroborosapps.com