lunchmoney-readonly-mcp
Servidor MCP de solo lectura para Lunch Money para ChatGPT
Un servidor MCP remoto de un solo usuario para Lunch Money, diseñado para ChatGPT Business y desplegado en Cloudflare Workers. Utiliza Google OAuth únicamente para identificar a un usuario en la lista blanca; el token de API de Lunch Money se almacena como un secreto cifrado de Cloudflare nunca se devuelve a ChatGPT ni a una herramienta MCP.
Este proyecto se basó originalmente en el proyecto bm1549/lunchmoney-mcp-cloudflare y se ha adaptado a una plantilla de MCP de solo lectura para Lunch Money en Cloudflare Workers y ChatGPT. La implementación del upstream agrupada se conserva bajo vendor-lunchmoney-mcp, incluyendo su licencia MIT original y atribución. Gracias a Brian Marks por el trabajo original.
Este repositorio es una plantilla. No contiene ninguna URL de despliegue en vivo, token de API, secreto de Google OAuth, dirección de correo electrónico o ID de recurso de Cloudflare.
Qué lo hace de solo lectura
El servidor aplica el acceso de solo lectura en dos capas independientes:
createReadonlyServer()expone una lista blanca positiva de 25 herramientas de recuperación. Las herramientas de creación, actualización, eliminación, carga, sincronización, actualización, división, agrupación y mutación de presupuestos no están registradas.runWithReadonlyConfig()rechaza cualquier solicitud que no seaGETa la API de Lunch Money antes de realizar una solicitud de red.
Todas las herramientas expuestas declaran readOnlyHint: true, destructiveHint: false y
openWorldHint: false.
Related MCP server: Monarch Money MCP Server
Requisitos
Un token de API de Lunch Money
Una cuenta de Cloudflare con Workers y KV disponibles
Un cliente web de Google Cloud OAuth 2.0
Un espacio de trabajo de ChatGPT Business donde seas administrador o propietario
Despliega tu propia copia
Clona este repositorio, luego instala y verifica las dependencias:
npm install npm run typecheck npm run lint npm run test:readonlyEn
wrangler.jsonc, elige unnameúnico para el Worker y crea el espacio de nombres KV de OAuth:npx wrangler kv namespace create OAUTH_KVCopia el ID del espacio de nombres devuelto en
REPLACE_WITH_OAUTH_KV_NAMESPACE_IDenwrangler.jsonc.Despliega una vez para obtener la URL de tu Worker:
npx wrangler deployCrea una Aplicación web de Google OAuth 2.0. Añade esta URI de redirección, reemplazando el host con la URL de tu Worker:
https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/authorize/callbackConfigura los secretos de producción de forma interactiva. Nunca pongas sus valores en Git:
npx wrangler secret put GOOGLE_CLIENT_ID npx wrangler secret put GOOGLE_CLIENT_SECRET npx wrangler secret put ALLOWED_EMAILS npx wrangler secret put STATE_SECRET npx wrangler secret put LUNCHMONEY_API_TOKENALLOWED_EMAILSes una lista separada por comas de las cuentas de Google permitidas para conectarse. El servidor falla en modo cerrado cuando esto está vacío.Despliega nuevamente. Tu punto final MCP es:
https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/mcp
Conecta ChatGPT Business
En ChatGPT, abre Ajustes del espacio de trabajo → Aplicaciones → Crear.
Introduce el punto final
/mcpanterior y elige OAuth como autenticación.Revisa la advertencia de aplicación personalizda, crea el borrador, luego publícalo y habilítalo.
Cada usuario se conecta desde Ajustes → Plugins → [tu aplicación] → Conectar e inicia sesión con una cuenta de Google en la lista blanc.
Inicia un nuevo chat de Trabajo, selecciona la aplicación y verifica la lista de herramientas antes de pedirle que inspeccione los datos de Lunch Money.
Antes de haer público el repositorio
Ejectua:
npm run check:public-releaseTambiém revisa git status, confirm que .dev.vars no esté rastreado, y asgúrate de que el
nombre del Worker, el punto final, los IDs de recursos de Cloudflare y la documentación de ejemplo
no identifiquen tu despliegue personal.
Si estás sanmanizando un despliegue existente, mantén su configuración fuera del repositorio
o en un archivo wrangler.personal.jsonc ignoraddo por git. Despliega esa configuración privada
con nnpx wangler dploy --cnf wrangler.personal.jsonc.
Verificación
La prueba de seguridad enfocada verifica la lista blanca exacta, sus anotaciones, la ausencia de herramientas de utación representativs, y el rechazo de solicitudes POST salientes:
npm run test:readonlyConsúltese THIRD_PARTY_NOTICES.md para obtener détalles de atribución.
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only MCP server exposing a user ORANO library to their own AI agent.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server providing full integration with the Lunch Money API to manage financial data including transactions, budgets, assets, and categories. It enables AI assistants to perform CRUD operations on financial records through a standardized HTTP interface.26MIT
- AlicenseAqualityDmaintenanceRead-only MCP and HTTP proxy server for accessing Monarch Money financial data, enabling transaction analysis, budget tracking, and cashflow insights through natural language.6MIT

RiseUp MCP Serverofficial
AlicenseAqualityDmaintenanceMCP server for programmatic read-only access to RiseUp cashflow data, allowing AI assistants to retrieve budget information via natural language.2247 npm30MIT- AlicenseBqualityAmaintenanceA read-only MCP server for the Dough personal finance app, enabling assistants to query financial data like balances, transactions, and budgets through natural language.8MIT