Skip to main content
Glama
leafeye

lunchmoney-mcp

by leafeye

Lunchmoney MCP 服务器

模型上下文协议 (MCP) 服务器可让您通过 Claude 和其他 AI 助手与您的Lunchmoney交易和预算进行交互。

这是什么?

该工具允许您将 Lunchmoney 财务数据连接到 Claude AI,以便您可以询问有关支出的问题、分析预算并通过自然对话了解您的财务状况。

Related MCP server: Lunch Money MCP Server

特征

该服务器提供四个主要工具:

  1. get-recent-transactions :查看过去 N 天的最近交易

  2. 搜索交易:按收款人姓名或备注中的关键字搜索交易

  3. get-category-spending :分析特定类别的支出

  4. 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 是一个软件平台,可让您在计算机上(在 Web 浏览器之外)运行 JavaScript 代码。

要安装 Node.js:

  • Windows/Mac :从Node.js 官方网站下载并运行安装程序

  • Mac 上的 Homebrew :在终端中运行brew install node

  • Linux :使用你的包管理器(例如,Ubuntu 的sudo apt install nodejs )

一旦 Node.js 安装在您的计算机上,您就可以直接运行服务器而无需下载任何东西:

  1. 从Lunchmoney 开发者设置中获取 Lunchmoney API 令牌

  2. 打开 Claude 桌面

  3. 前往“设置”→“开发者”→ Edit Config

  4. 添加以下配置:

{
  "mcpServers": {
    "lunchmoney": {
      "command": "npx",
      "args": ["-y", "lunchmoney-mcp-server"],
      "env": {
        "LUNCHMONEY_TOKEN": "your_token_here"
      }
    }
  }
}

将your_token_here替换为您的实际 Lunchmoney API 令牌。

**重要提示:**更改配置后,您可能需要重新启动 Claude Desktop 才能使更改生效。

示例用法

在 Claude Desktop 中配置完成后,您可以提出以下问题:

交易

  • “显示我过去一周的近期交易”

  • “搜索亚马逊的所有交易”

  • “我上个月在餐馆花了多少钱?”

  • “查找标记为业务费用的交易”

预算

  • “显示我本月的预算摘要”

  • “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 年 1 月 1 日至 2024 年 1 月 31 日)

  • 交易可以使用任何日期范围

  • 所有货币价值均以其原始货币返回

执照

麻省理工学院

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

Available Tools

4 tools
get-budget-summaryC

Get budget summary for a specific time period

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateYesStart date (YYYY-MM-DD, should be start of month)
end_dateYesEnd date (YYYY-MM-DD, should be end of month)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesCategory name
daysNoNumber of days to look back

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to look back
limitNoMaximum number of transactions to return

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesSearch term to look for
daysNoNumber of days to look back
limitNoMaximum number of transactions to return

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 4 tool updatesv1.0.0
    • First observedget-budget-summary
    • First observedget-category-spending
    • First observedget-recent-transactions
    • First observedsearch-transactions

TDQS

B3.1/5.0

Scored across 4 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness3/5

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

ActivityInactive
ResponsivenessUnresponsive

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.

  • 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

  • A
    license
    Not graded
    quality
    C
    maintenance
    A 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
  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
    -
  • A
    license
    A
    quality
    A
    maintenance
    An 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.
    59
    1,709 npm
    109
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    An 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.
    26
    MIT