lunchmoney-mcp
런치머니 MCP 서버
Claude와 다른 AI 도우미를 통해 Lunchmoney 거래 및 예산과 상호 작용할 수 있는 MCP(Model Context Protocol) 서버입니다.
이게 뭔가요?
이 도구를 사용하면 Lunchmoney의 재무 데이터를 Claude AI에 연결하여 지출에 대한 질문을 하고, 예산을 분석하고, 자연스러운 대화를 통해 재정에 대한 통찰력을 얻을 수 있습니다.
Related MCP server: Lunch Money MCP Server
특징
이 서버는 4가지 주요 도구를 제공합니다.
get-recent-transactions : 지난 N일 동안의 최근 거래를 확인합니다.
검색-거래 : 수취인 이름이나 메모의 키워드로 거래 검색
get-category-spending : 특정 카테고리의 지출 분석
get-budget-summary : 지출, 남은 금액, 반복 항목을 포함한 자세한 예산 정보를 가져옵니다.
개인정보 보호 및 데이터 처리
중요: MCP는 Claude가 개인정보 보호 경계를 유지하면서 Lunchmoney 데이터와 상호 작용할 수 있는 체계적인 방법을 제공합니다. 다음 사항을 알아두세요.
Claude(호스트)는 로컬 MCP 서버에 연결하는 클라이언트를 생성합니다.
귀하의 Lunchmoney API 토큰은 귀하의 로컬 컴퓨터에 남아 있습니다.
MCP 서버는 로컬로 실행되며 Lunchmoney의 API에서 데이터를 가져옵니다.
Lunchmoney 데이터에 액세스하려면 각 요청을 승인하라는 메시지가 표시됩니다.
귀하가 재정에 관해 질문할 때 Claude는 MCP 서버에서 특정 정보를 요청합니다.
MCP 서버는 로컬로 요청을 처리하고 관련 결과만 반환합니다.
Claude는 귀하의 전체 재무 데이터나 API 토큰에 직접 액세스할 수 없습니다.
요청된 특정 정보(거래 요약 또는 예산 상태 등)만 Claude와 공유됩니다.
Anthropic의 데이터 보존 정책은 대화의 일부인 이러한 요약 결과에 적용됩니다.
각 서버 연결은 격리되어 명확한 보안 경계를 유지합니다.
MCP에 대한 자세한 내용은 문서에서 확인할 수 있습니다: https://modelcontextprotocol.io/introduction .
설치
또한 공식 Claude 문서를 살펴보세요: https://modelcontextprotocol.io/quickstart/user
npx 사용하기
Node.js는 웹 브라우저 외부에서 JavaScript 코드를 실행할 수 있는 소프트웨어 플랫폼입니다.
Node.js를 설치하려면:
Windows/Mac : 공식 Node.js 웹사이트 에서 설치 프로그램을 다운로드하여 실행하세요.
Homebrew를 사용하는 Mac : 터미널에서
brew install node실행합니다.Linux : 패키지 관리자를 사용하세요(예: Ubuntu의 경우
sudo apt install nodejs)
컴퓨터에 Node.js를 설치하면 아무것도 다운로드하지 않고도 서버를 직접 실행할 수 있습니다.
Lunchmoney 개발자 설정 에서 Lunchmoney API 토큰을 받으세요.
클로드 데스크톱 열기
설정 → 개발자 ->
Edit Config으로 이동하세요.다음 구성을 추가합니다.
지엑스피1
your_token_here 실제 Lunchmoney API 토큰으로 바꾸세요.
중요 참고 사항: 구성을 변경한 후 변경 사항을 적용하려면 Claude Desktop을 다시 시작해야 할 수 있습니다.
사용 예
Claude Desktop에서 구성한 후 다음과 같은 질문을 할 수 있습니다.
업무
"지난주 최근 거래 내역 보여주세요"
"Amazon의 모든 거래 내역 검색"
"지난달 식당에 얼마 썼지?"
"사업 비용으로 태그된 거래 찾기"
예산
"이번 달 예산 요약을 보여주세요"
"2024년 1월부터 3월까지 내 예산 상황은 어때요?"
"내 식비 예산이 얼마나 남았나요?"
"예산을 초과한 카테고리를 보여주세요"
MCP란 무엇인가요?
모델 컨텍스트 프로토콜(MCP) 은 애플리케이션이 대규모 언어 모델(LLM)에 컨텍스트를 제공하는 방식을 표준화하는 개방형 프로토콜입니다. MCP는 AI 애플리케이션을 위한 USB-C 포트와 같습니다. AI 모델을 다양한 데이터 소스 및 도구에 연결하는 표준화된 방식을 제공합니다.
MCP의 주요 이점:
LLM에 데이터와 기능을 노출하는 표준화된 방법
인간 참여 보안(모든 작업에 사용자 승인 필요)
사전 구축된 통합의 성장하는 생태계
다양한 AI 모델 및 애플리케이션과 함께 작동합니다.
문제 해결
Claude는 내 MCP 서버에 연결할 수 없다고 말합니다.
Claude의 개발자 설정에서 구성이 올바른지 확인하세요.
구성을 변경한 후 Claude Desktop을 다시 시작해 보세요.
Lunchmoney API 토큰이 유효한지 확인하세요
클로드는 Lunchmoney 명령을 인식하지 못합니다.
Claude에서 새로운 대화를 시작하세요
질의에 Lunchmoney를 명시적으로 언급해 보세요(예: "최근 Lunchmoney 거래 내역 보기").
API 참고사항
예산 데이터는 날짜에 대해 월 경계를 사용해야 합니다(예: 2024-01-01 ~ 2024-01-31).
거래에는 모든 날짜 범위를 사용할 수 있습니다.
모든 화폐 가치는 원래 통화로 반환됩니다.
특허
MIT
기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
Available Tools
4 toolsget-budget-summaryC
Get budget summary for a specific time period
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | Yes | Start date (YYYY-MM-DD, should be start of month) | |
| end_date | Yes | End date (YYYY-MM-DD, should be end of month) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves a 'budget summary' but doesn't explain what that summary includes (e.g., categories, totals, trends), whether it's read-only (implied but not explicit), or any limitations like rate limits or authentication needs. This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the 'budget summary' output contains, how it's structured, or any behavioral traits like error handling. For a tool with two parameters and no structured output documentation, this leaves the agent with insufficient context to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters ('start_date' and 'end_date') fully documented in the schema. The description adds minimal value by mentioning 'time period,' which aligns with the schema but doesn't provide additional context like format examples or edge cases beyond what's already specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('budget summary') with a specific scope ('for a specific time period'), which makes the purpose understandable. However, it doesn't differentiate this tool from its siblings like 'get-category-spending' or 'get-recent-transactions', which likely provide related but different budget/transaction data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get-category-spending' or 'get-recent-transactions', nor does it specify prerequisites, exclusions, or appropriate contexts for usage beyond the time period requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-category-spendingC
Get spending in a category
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category name | |
| days | No | Number of days to look back |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get spending' implies a read operation, but it doesn't specify if this requires authentication, has rate limits, returns historical or real-time data, or what format the spending data is in. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with two parameters) and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'spending' entails (e.g., total amount, list of transactions), how results are returned, or any behavioral traits, leaving the agent with insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter semantics beyond what the schema provides. With 100% schema description coverage, the schema already documents 'category' as 'Category name' and 'days' as 'Number of days to look back' with a default of 30. The baseline score of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get spending in a category' clearly states the verb 'Get' and resource 'spending in a category', making the purpose understandable. However, it doesn't distinguish this tool from siblings like 'get-budget-summary' or 'get-recent-transactions' which might also involve spending data, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'search-transactions' for broader queries or 'get-budget-summary' for aggregated data, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-recent-transactionsC
Get recent transactions
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back | |
| limit | No | Maximum number of transactions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Get recent transactions' implies a read operation but reveals nothing about permissions, rate limits, pagination, error conditions, or what 'recent' means contextually. For a tool with zero annotation coverage, this leaves critical behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three words with zero wasted text. It's front-loaded and efficiently communicates the core function without unnecessary elaboration. While under-specified, it earns full marks for brevity and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is incomplete. It fails to explain what 'recent' means, how results are ordered, what data fields are returned, or how it differs from sibling tools. The agent lacks sufficient context to use this tool effectively without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('days' and 'limit') well-documented in the schema. The description adds no parameter semantics beyond what the schema already provides. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get recent transactions' is a tautology that essentially restates the tool name without adding meaningful differentiation. It specifies the verb 'Get' and resource 'transactions' but lacks specificity about scope or how it differs from sibling tools like 'search-transactions'. This provides minimal value beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search-transactions' or 'get-category-spending'. There's no mention of context, prerequisites, or exclusions. The agent must infer usage from the name alone, which is insufficient for informed tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-transactionsC
Search transactions by keyword
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Search term to look for | |
| days | No | Number of days to look back | |
| limit | No | Maximum number of transactions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'search' implies a read operation, the description doesn't address important behavioral aspects like whether this requires authentication, what happens with no results, whether results are paginated, or any rate limits. For a search tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the essential information (search transactions) and specifies the mechanism (by keyword) efficiently. Every word serves a clear purpose in this minimal description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 3 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what constitutes a 'transaction' in this context, what fields are searched, the format of results, or how the search algorithm works. The agent would need to guess about the tool's behavior and output based on minimal information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions searching 'by keyword' which aligns with one of the three parameters. However, with 100% schema description coverage, all parameters are already well-documented in the schema itself. The description adds minimal value beyond what's in the structured schema, meeting the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('search') and resource ('transactions'), and specifies the search mechanism ('by keyword'). However, it doesn't differentiate this tool from its sibling 'get-recent-transactions' which also deals with transactions, leaving some ambiguity about when to use one versus the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling tools (get-budget-summary, get-category-spending, get-recent-transactions) or explain when keyword searching is preferable to other transaction retrieval methods. The agent receives no contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
get-budget-summary - First observed
get-category-spending - First observed
get-recent-transactions - First observed
search-transactions
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: get-budget-summary targets budget overviews, get-category-spending focuses on category-level data, get-recent-transactions retrieves chronological transaction lists, and search-transactions enables keyword-based queries. There is no overlap in functionality, making tool selection straightforward for an agent.
All tool names follow a consistent verb-noun pattern with hyphens (e.g., get-budget-summary, search-transactions). The naming is uniform across all four tools, using 'get' for retrieval operations and 'search' for querying, which enhances predictability and readability.
With 4 tools, the count is reasonable for a personal finance domain, covering key operations like summaries, category analysis, and transaction retrieval. However, it feels slightly thin as it lacks tools for creating or updating data (e.g., adding transactions or categories), which might be expected in a full-featured finance server.
The tool set covers read-only operations well, including summaries, category spending, and transaction searches, but there are notable gaps. It lacks CRUD capabilities for transactions, categories, or budgets (e.g., create, update, delete), which limits agents to viewing data without modifying it, potentially causing workflow dead ends.
Maintenance
Related MCP Connectors
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
- BonsaveOAuthapp.bonsave
Query your real net worth, spending, transactions, budgets and portfolio from any MCP client.
Personal finance for AI agents — onboard, import statements, categorize & budget over MCP.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that allows AI assistants to interact with Lunch Money accounts, enabling management of transactions, categories, budgets, and other financial data through natural language commands.MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to interact directly with Lunch Money's financial API, allowing users to query transactions, access budget information, and perform financial analysis through natural language.-
- AlicenseAqualityAmaintenanceAn MCP server implementation that provides programmatic access to personal finance data through LunchMoney's API, enabling AI assistants to manage transactions, budgets, categories, and assets.591,709 npm109MIT
- 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