zoho-books-mcp


Namezoho-books-mcp JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryConnect your Zoho Books account to AI assistants like Claude Desktop through the Model Context Protocol (MCP)
upload_time2025-08-02 14:13:04
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT
keywords ai books claude mcp model-context-protocol zoho
VCS
bugtrack_url
requirements mcp httpx python-dotenv pydantic email-validator pytest pytest-cov pytest-httpx pytest-asyncio structlog click asyncio anyio starlette uvicorn
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Zoho Books MCP Server

Connect your Zoho Books account to AI assistants like Claude Desktop through the Model Context Protocol (MCP).

## Quick Start

### 1. Get Zoho API Credentials

1. Go to [Zoho API Console](https://api-console.zoho.com/)
2. Create a "Server-based Application"
3. Add redirect URI: `http://localhost:8099/callback`
4. Select scope: `ZohoBooks.fullaccess.all`
5. Save your Client ID, Client Secret, and Organization ID

### 2. Install via uvx

Add to your Claude Desktop configuration:

```json
{
  "mcpServers": {
    "zoho-books": {
      "command": "uvx",
      "args": ["zoho-books-mcp"],
      "env": {
        "ZOHO_CLIENT_ID": "your_client_id",
        "ZOHO_CLIENT_SECRET": "your_client_secret",
        "ZOHO_REFRESH_TOKEN": "your_refresh_token",
        "ZOHO_ORGANIZATION_ID": "your_organization_id",
        "ZOHO_REGION": "US"
      }
    }
  }
}
```

To get a refresh token: `uvx zoho-books-mcp --setup-oauth`

### 3. Restart Claude Desktop

Look for the 🔌 icon to verify connection.

## Local Development

```bash
# Clone and setup
git clone https://github.com/kkeeling/zoho-mcp.git
cd zoho-mcp
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

# Run tests
pytest

# Run server
python server.py
```

For local development in Claude Desktop:
```json
{
  "mcpServers": {
    "zoho-books": {
      "command": "/path/to/venv/bin/python",
      "args": ["/path/to/zoho-mcp/server.py"],
      "env": {
        "ZOHO_CLIENT_ID": "your_client_id",
        "ZOHO_CLIENT_SECRET": "your_client_secret",
        "ZOHO_REFRESH_TOKEN": "your_refresh_token",
        "ZOHO_ORGANIZATION_ID": "your_organization_id",
        "ZOHO_REGION": "US"
      }
    }
  }
}
```

## Available Features

### Tools

**Invoices**: create_invoice, email_invoice, record_payment, send_payment_reminder, void_invoice, list_invoices, get_invoice, mark_invoice_as_sent

**Contacts**: create_customer, create_vendor, update_contact, delete_contact, email_statement, list_contacts, get_contact

**Expenses**: create_expense, update_expense, categorize_expense, upload_receipt, list_expenses, get_expense

**Items**: create_item, update_item, list_items, get_item

**Sales Orders**: create_sales_order, update_sales_order, convert_to_invoice, list_sales_orders, get_sales_order

### Resources

- **dashboard://summary** - Business metrics overview
- **invoice://overdue** - Overdue invoices list
- **invoice://unpaid** - Unpaid invoices
- **payment://recent** - Recent payments
- **contact://list** - All contacts
- **expenses://summary** - Expense overview

### Prompts

- **invoice_collection_workflow** - Complete invoice-to-payment cycle
- **monthly_invoicing** - Bulk invoice creation
- **expense_tracking_workflow** - Expense recording and categorization

## Configuration

### Regions
- US (zoho.com), EU (zoho.eu), IN (zoho.in), AU (zoho.com.au), JP (zoho.jp), UK (zoho.uk), CA (zoho.ca)

### Troubleshooting
- **Tools not showing**: Restart Claude Desktop completely
- **Auth errors**: Regenerate refresh token with `uvx zoho-books-mcp --setup-oauth`
- **Module errors**: Ensure virtual environment is activated

## Development & Releases

### Creating a Release

To publish a new version to PyPI and create a GitHub release:

1. **Update version** in `pyproject.toml`
2. **Update CHANGELOG.md** with release notes
3. **Create and push a git tag**:
   ```bash
   git tag v0.1.0
   git push origin v0.1.0
   ```
4. **Create GitHub Release** from the tag (triggers automatic PyPI publish)

The GitHub Actions workflow will automatically:
- Build the package
- Publish to PyPI (via trusted publishing)
- Attach distribution files to the GitHub release

### Prerequisites for Publishing
- PyPI account with trusted publishing configured
- GitHub repository with PyPI environment protection enabled

## License

MIT License - see [LICENSE](LICENSE) file for details.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "zoho-books-mcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "ai, books, claude, mcp, model-context-protocol, zoho",
    "author": null,
    "author_email": "Keenan Keeling <keenan@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/6f/04/73aa256a058c8a8d7e83129121ed59d964f35b9ec1fd4399b2a66ec00513/zoho_books_mcp-0.1.0.tar.gz",
    "platform": null,
    "description": "# Zoho Books MCP Server\n\nConnect your Zoho Books account to AI assistants like Claude Desktop through the Model Context Protocol (MCP).\n\n## Quick Start\n\n### 1. Get Zoho API Credentials\n\n1. Go to [Zoho API Console](https://api-console.zoho.com/)\n2. Create a \"Server-based Application\"\n3. Add redirect URI: `http://localhost:8099/callback`\n4. Select scope: `ZohoBooks.fullaccess.all`\n5. Save your Client ID, Client Secret, and Organization ID\n\n### 2. Install via uvx\n\nAdd to your Claude Desktop configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"zoho-books\": {\n      \"command\": \"uvx\",\n      \"args\": [\"zoho-books-mcp\"],\n      \"env\": {\n        \"ZOHO_CLIENT_ID\": \"your_client_id\",\n        \"ZOHO_CLIENT_SECRET\": \"your_client_secret\",\n        \"ZOHO_REFRESH_TOKEN\": \"your_refresh_token\",\n        \"ZOHO_ORGANIZATION_ID\": \"your_organization_id\",\n        \"ZOHO_REGION\": \"US\"\n      }\n    }\n  }\n}\n```\n\nTo get a refresh token: `uvx zoho-books-mcp --setup-oauth`\n\n### 3. Restart Claude Desktop\n\nLook for the \ud83d\udd0c icon to verify connection.\n\n## Local Development\n\n```bash\n# Clone and setup\ngit clone https://github.com/kkeeling/zoho-mcp.git\ncd zoho-mcp\npython -m venv venv\nsource venv/bin/activate  # Windows: venv\\Scripts\\activate\npip install -r requirements.txt\n\n# Run tests\npytest\n\n# Run server\npython server.py\n```\n\nFor local development in Claude Desktop:\n```json\n{\n  \"mcpServers\": {\n    \"zoho-books\": {\n      \"command\": \"/path/to/venv/bin/python\",\n      \"args\": [\"/path/to/zoho-mcp/server.py\"],\n      \"env\": {\n        \"ZOHO_CLIENT_ID\": \"your_client_id\",\n        \"ZOHO_CLIENT_SECRET\": \"your_client_secret\",\n        \"ZOHO_REFRESH_TOKEN\": \"your_refresh_token\",\n        \"ZOHO_ORGANIZATION_ID\": \"your_organization_id\",\n        \"ZOHO_REGION\": \"US\"\n      }\n    }\n  }\n}\n```\n\n## Available Features\n\n### Tools\n\n**Invoices**: create_invoice, email_invoice, record_payment, send_payment_reminder, void_invoice, list_invoices, get_invoice, mark_invoice_as_sent\n\n**Contacts**: create_customer, create_vendor, update_contact, delete_contact, email_statement, list_contacts, get_contact\n\n**Expenses**: create_expense, update_expense, categorize_expense, upload_receipt, list_expenses, get_expense\n\n**Items**: create_item, update_item, list_items, get_item\n\n**Sales Orders**: create_sales_order, update_sales_order, convert_to_invoice, list_sales_orders, get_sales_order\n\n### Resources\n\n- **dashboard://summary** - Business metrics overview\n- **invoice://overdue** - Overdue invoices list\n- **invoice://unpaid** - Unpaid invoices\n- **payment://recent** - Recent payments\n- **contact://list** - All contacts\n- **expenses://summary** - Expense overview\n\n### Prompts\n\n- **invoice_collection_workflow** - Complete invoice-to-payment cycle\n- **monthly_invoicing** - Bulk invoice creation\n- **expense_tracking_workflow** - Expense recording and categorization\n\n## Configuration\n\n### Regions\n- US (zoho.com), EU (zoho.eu), IN (zoho.in), AU (zoho.com.au), JP (zoho.jp), UK (zoho.uk), CA (zoho.ca)\n\n### Troubleshooting\n- **Tools not showing**: Restart Claude Desktop completely\n- **Auth errors**: Regenerate refresh token with `uvx zoho-books-mcp --setup-oauth`\n- **Module errors**: Ensure virtual environment is activated\n\n## Development & Releases\n\n### Creating a Release\n\nTo publish a new version to PyPI and create a GitHub release:\n\n1. **Update version** in `pyproject.toml`\n2. **Update CHANGELOG.md** with release notes\n3. **Create and push a git tag**:\n   ```bash\n   git tag v0.1.0\n   git push origin v0.1.0\n   ```\n4. **Create GitHub Release** from the tag (triggers automatic PyPI publish)\n\nThe GitHub Actions workflow will automatically:\n- Build the package\n- Publish to PyPI (via trusted publishing)\n- Attach distribution files to the GitHub release\n\n### Prerequisites for Publishing\n- PyPI account with trusted publishing configured\n- GitHub repository with PyPI environment protection enabled\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Connect your Zoho Books account to AI assistants like Claude Desktop through the Model Context Protocol (MCP)",
    "version": "0.1.0",
    "project_urls": {
        "Changelog": "https://github.com/kkeeling/zoho-mcp/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/kkeeling/zoho-mcp#readme",
        "Issues": "https://github.com/kkeeling/zoho-mcp/issues",
        "Repository": "https://github.com/kkeeling/zoho-mcp"
    },
    "split_keywords": [
        "ai",
        " books",
        " claude",
        " mcp",
        " model-context-protocol",
        " zoho"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e366ed97858fde1737b2f6e44d0dec075b57a10d056810b770a0d9cf1f7ffcdd",
                "md5": "cfe1d387c26a8497af792230429b16af",
                "sha256": "8b29fc799af961912ee983026358141d25465f28cf495e74d393a16a0fd4bd32"
            },
            "downloads": -1,
            "filename": "zoho_books_mcp-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cfe1d387c26a8497af792230429b16af",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 67208,
            "upload_time": "2025-08-02T14:13:03",
            "upload_time_iso_8601": "2025-08-02T14:13:03.733344Z",
            "url": "https://files.pythonhosted.org/packages/e3/66/ed97858fde1737b2f6e44d0dec075b57a10d056810b770a0d9cf1f7ffcdd/zoho_books_mcp-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6f0473aa256a058c8a8d7e83129121ed59d964f35b9ec1fd4399b2a66ec00513",
                "md5": "e87e8a19f6aca2b9bc8b7069519b0d2c",
                "sha256": "3c735e9b7ecb7980ae2257420068a764d3d778752d8b57ec732987c34c4c2b9a"
            },
            "downloads": -1,
            "filename": "zoho_books_mcp-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e87e8a19f6aca2b9bc8b7069519b0d2c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 106600,
            "upload_time": "2025-08-02T14:13:04",
            "upload_time_iso_8601": "2025-08-02T14:13:04.874841Z",
            "url": "https://files.pythonhosted.org/packages/6f/04/73aa256a058c8a8d7e83129121ed59d964f35b9ec1fd4399b2a66ec00513/zoho_books_mcp-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-02 14:13:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kkeeling",
    "github_project": "zoho-mcp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "mcp",
            "specs": [
                [
                    ">=",
                    "1.6.0"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": [
                [
                    ">=",
                    "0.25.0"
                ]
            ]
        },
        {
            "name": "python-dotenv",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2.4.0"
                ]
            ]
        },
        {
            "name": "email-validator",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "7.0.0"
                ]
            ]
        },
        {
            "name": "pytest-cov",
            "specs": [
                [
                    ">=",
                    "4.1.0"
                ]
            ]
        },
        {
            "name": "pytest-httpx",
            "specs": [
                [
                    ">=",
                    "0.25.0"
                ]
            ]
        },
        {
            "name": "pytest-asyncio",
            "specs": [
                [
                    ">=",
                    "0.21.0"
                ]
            ]
        },
        {
            "name": "structlog",
            "specs": [
                [
                    ">=",
                    "23.1.0"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    ">=",
                    "8.1.0"
                ]
            ]
        },
        {
            "name": "asyncio",
            "specs": [
                [
                    ">=",
                    "3.4.3"
                ]
            ]
        },
        {
            "name": "anyio",
            "specs": [
                [
                    ">=",
                    "3.7.0"
                ]
            ]
        },
        {
            "name": "starlette",
            "specs": [
                [
                    ">=",
                    "0.27.0"
                ]
            ]
        },
        {
            "name": "uvicorn",
            "specs": [
                [
                    ">=",
                    "0.23.0"
                ]
            ]
        }
    ],
    "lcname": "zoho-books-mcp"
}
        
Elapsed time: 1.52307s