项目简介

这是一个基于Model Context Protocol (MCP) 实现的服务器,旨在将QuickBooks的API功能和基本的本地文件系统访问能力暴露给支持MCP的LLM(大型语言模型)客户端,如Claude Desktop。它允许LLM通过调用服务器提供的工具来获取财务数据、执行查询以及进行文件操作。

主要功能点

  • QuickBooks集成: 允许LLM通过预定义的工具或QuickBooks查询语言与QuickBooks账户进行交互,获取账户、账单、客户等财务信息。
  • API工具动态生成: 能够根据QuickBooks OpenAPI规范动态生成对应的MCP工具,使得几乎所有QuickBooks API的功能都可以通过LLM调用。
  • 文件系统访问: 提供基本的工具,允许LLM获取当前工作目录、列出目录内容、搜索文件及改变目录。
  • 安全认证: 使用OAuth2协议与QuickBooks API进行安全连接,并通过环境变量管理敏感凭证。

安装步骤

  1. 确保您已安装Python 3.10或更高版本。
  2. 按照README中的指示安装 'uv' 工具(一个快速的Python包管理器)。
  3. 克隆此仓库到您的本地机器。
  4. 在项目根目录创建一个 '.env' 文件,并按 'environment.py' 或 README 中配置示例的要求,填入您的QuickBooks API凭证('QUICKBOOKS_CLIENT_ID', 'QUICKBOOKS_CLIENT_SECRET', 'QUICKBOOKS_REFRESH_TOKEN', 'QUICKBOOKS_COMPANY_ID')。

服务器配置

此MCP服务器配置主要用于告知MCP客户端(如Claude Desktop)如何启动并连接到此服务器。您需要在您的MCP客户端的开发者或设置中进行配置。通常配置项是一个JSON结构,包含一个或多个服务器定义。

以下是基于仓库信息为您需要配置的MCP服务器信息(请在您的客户端界面中按照其指导填入相应字段,不是直接粘贴以下代码):

  • 服务器名称 (Server Name): 您可以自定义一个名称,例如 'QuickBooks' 和 'filesystem',对应将启动的两个MCP服务器实例。
  • 启动命令 (Command): 'uv' 工具的完整路径。
  • 命令参数 (Args): 一系列参数,告诉 'uv' 如何运行服务器脚本。
    • 参数 '--directory': 指定运行脚本的目录,应设置为此项目仓库在您本地的绝对路径。
    • 参数 'run': 告诉 'uv' 运行一个脚本。
    • 参数 'main_quickbooks_mcp.py': 第一个服务器实例要运行的主脚本。
    • 参数 'filesystem.py': 第二个服务器实例要运行的主脚本。
  • 环境变量 (Environment Variables): 对于QuickBooks服务器 ('main_quickbooks_mcp.py' 实例),需要设置以下环境变量:
    • 'QUICKBOOKS_CLIENT_ID': 您的QuickBooks客户端ID。
    • 'QUICKBOOKS_CLIENT_SECRET': 您的QuickBooks客户端密钥。
    • 'QUICKBOOKS_REFRESH_TOKEN': 您的QuickBooks刷新令牌。
    • 'QUICKBOOKS_COMPANY_ID': 您要连接的QuickBooks公司ID。

完成配置并重新启动您的MCP客户端后,客户端将能够发现并连接到这些MCP服务器,加载其提供的工具。

基本使用方法

配置并启动MCP客户端后,您可以通过与LLM进行自然语言对话来利用这些工具。LLM会识别出您的问题或请求需要调用特定的MCP工具来获取信息或执行操作。

例如,您可以尝试以下对话:

  • 获取所有QuickBooks账户:'Get all accounts from QuickBooks.'
  • 获取指定日期后创建的账单:'Get all bills from QuickBooks created after 2024-01-01.'
  • 获取所有QuickBooks客户:'Get all customers from QuickBooks.'
  • 列出您桌面上的文件:'List files on my desktop.'
  • 搜索某个文件:'Search for file named report.pdf.'

LLM将解析您的请求,调用相应的MCP工具(例如调用QuickBooks服务器的查询工具或filesystem服务器的列出工具),然后根据工具返回的结果给您回应。

信息

分类

商业系统