项目简介
这是一个基于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进行安全连接,并通过环境变量管理敏感凭证。
安装步骤
- 确保您已安装Python 3.10或更高版本。
- 按照README中的指示安装 'uv' 工具(一个快速的Python包管理器)。
- 克隆此仓库到您的本地机器。
- 在项目根目录创建一个 '.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服务器的列出工具),然后根据工具返回的结果给您回应。
信息
分类
商业系统