Zoho Books账户管理服务

一个基于Python/FastAPI的应用程序,用于管理多个Zoho Books账户并通过MCP接口与自动化工具交互。

  • by fordez
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 fordez/zoho-books-mcp-server-openapi

使用说明

Zoho图书MCP服务器

该项目提供了一个Python/FastAPI应用程序来管理多个Zoho Books帐户,并公开了一个MCP(微控制协议)接口,以便通过自动化工具与它们进行交互。

该应用程序允许您:

  • 管理Zoho帐户: 连接、选择和管理多个Zoho Books帐户。
  • OAuth身份验证: 使用Zoho的OAuth流来获取和刷新访问令牌。
  • MCP接口: 显示专用URL(/mcp)用于外部MCP服务器获取凭据并执行Zoho Books操作。
  • 综合文档: 直接从web界面访问工具文档。

先决条件

项目设置

  1. 克隆存储库:

    git clone <URL_OF_YOUR_REPOSITORY>
    cd <NAME_OF_YOUR_REPOSITORY>
    
  2. 配置环境变量:

    创建一个 .env 基于项目根目录的文件 .env.example (如果存在)或根据中定义的所需变量 config.py 和 docker-compose.yml。您至少需要定义以下变量(根据您的Zoho环境调整值):

    • ZOHO_CLIENT_ID:您的Zoho应用程序的客户端ID。
    • ZOHO_CLIENT_SECRET:您的Zoho应用程序的客户端密码。
    • ZOHO_REDIRECT_URI:Zoho应用程序中配置的重定向URI(默认为 http://localhost:8000/oauth/callback).
    • MCP_PORT:MCP接口的内部端口(默认为 8001).
    • APP_PORT:web界面的外部端口(默认为 8000).

    示例 .env 内容:

    ZOHO_CLIENT_ID=your_client_id_here
    ZOHO_CLIENT_SECRET=your_client_secret_here
    ZOHO_REDIRECT_URI=http://localhost:8000/oauth/callback
    MCP_PORT=8001
    APP_PORT=8000
    
  3. 使用Docker Compose构建和运行:

    docker-compose up -d --build
    

    此命令将构建应用程序映像(如果需要)并启动中定义的容器 docker-compose.yml 在后台(-d).

用法

  1. 访问Web界面:

    打开您的网络浏览器并导航到 http://localhost:[APP_PORT] (默认值为 http://localhost:8000).

    • 在这里,您可以管理您的Zoho Books帐户(连接新帐户、选择活动帐户、删除)。
    • 您将看到您的外部代理或工具应使用的MCP服务器URL。
  2. 连接Zoho帐户:

    • 在web界面中,单击“🚀 连接Zoho图书”按钮。
    • 登录您的Zoho帐户并授权该应用程序。
    • 如果这是一个没有组织的新帐户,您将被重定向到Zoho Books设置页面以创建一个。
  3. 使用MCP接口:

    您的外部MCP服务器应指向 http://localhost:[APP_PORT]/mcp (例如。, http://localhost:8000/mcp)通过此应用程序与Zoho Books进行交互。

  4. 访问工具文档:

    • 在主web界面中,单击“📘 工具文档”按钮。
    • 将打开一个新页面,其中包含有关可用工具及其响应的详细文档。
  5. 停止容器:

    docker-compose down
    

项目结构

  • docker-compose.yml:定义Docker服务(app、db)及其配置。
  • Dockerfile:为Python应用程序构建Docker映像的说明。
  • .env:用于定义敏感环境变量的文件(不包括在版本控制中)。
  • src/:Python应用程序代码的主目录。
    • main.py:主要应用程序入口点(如适用)。
    • routes.py:定义web路由和业务逻辑。
    • auth.py:处理Zoho OAuth身份验证和令牌管理。
    • templates.py:包含HTML模板呈现函数。
    • docs.py:包含工具文档的HTML模板。
    • utils.py:实用功能。
  • config.py:配置设置(例如端口、Zoho API详细信息)。
  • zoho_tokens.db:SQLite数据库文件(默认情况下保存在容器的卷内)。

备注

  • 该应用程序使用SQLite存储帐户信息和令牌。数据库文件 zoho_tokens.db 通常使用Docker卷进行持久化。
  • 确保 ZOHO_REDIRECT_URI 与Zoho开发人员控制台中配置的OAuth回调完全匹配,以使OAuth回调正常工作。
  • 此应用程序充当中介,管理Zoho凭据并提供MCP端点。部署时确保其安全性。