{
  "markdown": "# Kaseya Quote Manager MCP Server\n\n[![Build Status](https://github.com/WYRE-AI/kaseya-quote-manager-mcp/actions/workflows/release.yml/badge.svg)](https://github.com/WYRE-AI/kaseya-quote-manager-mcp/actions/workflows/release.yml)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/)\n\nA [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server that gives AI\nassistants **read-only** access to [Kaseya Quote Manager](https://help.quotemanager.kaseya.com/)\n(Datto Commerce) — quotes, sales orders, purchasing, the product catalog, and customers.\n\n> Maintained by [Wyre Technology](https://github.com/WYRE-AI).\n\n## Quick Start\n\n**Claude Desktop** — download, open, done:\n\n1. Download `kaseya-quote-manager-mcp.mcpb` from the [latest release](https://github.com/WYRE-AI/kaseya-quote-manager-mcp/releases/latest)\n2. Open the file (double-click or drag into Claude Desktop)\n3. Enter your Kaseya Quote Manager **API Key** when prompted\n\n**Claude Code (CLI):**\n\n```bash\nclaude mcp add kaseya-quote-manager-mcp \\\n  -e KASEYA_QUOTE_MANAGER_API_KEY=your-api-key \\\n  -- npx -y github:WYRE-AI/kaseya-quote-manager-mcp\n```\n\n## Authentication\n\nQuote Manager authenticates with a single **API key** sent in the `apiKey` header. Generate\none in Quote Manager under **Settings → API**. Set it as `KASEYA_QUOTE_MANAGER_API_KEY`.\n\n## Features\n\n- **Read-only by design** — the Quote Manager API exposes only `list`/`get`; no tool can\n  mutate your data.\n- **39 entity tools** across 5 domains, plus `kqm_navigate` / `kqm_status` discovery tools.\n- **Decision-tree navigation** — call `kqm_navigate` to explore a domain's tools.\n- **Rate limiting** — respects the API's 60 req/min limit, with retry on 429/5xx.\n- **Dual transport** — stdio (local) and HTTP Streamable (gateway/Docker).\n- **MCPB packaging** for one-click Claude Desktop install.\n\n## Domains & tools\n\nTools are named `kqm_<entity>_list` and `kqm_<entity>_get`.\n\n| Domain | Entities |\n|--------|----------|\n| `sales` | quote, quote_section, quote_line, sales_order, sales_order_line, sales_order_payment |\n| `procurement` | purchase_order, purchase_order_line, purchase_order_cost, supplier, product_supplier |\n| `catalog` | product, product_image (list only), category, brand |\n| `crm` | customer, customer_address, contact |\n| `org` | employee, warehouse |\n\n`list` tools accept `page`, `pageSize` (max 100), and `modifiedAfter` where supported, plus\nentity-specific filters (e.g. `quoteNumber`, `customerID`, `purchaseOrderID`).\n\n## Usage example\n\n```\nkqm_navigate { \"domain\": \"sales\" }\nkqm_quote_list { \"page\": 1, \"pageSize\": 50 }\nkqm_quote_get { \"id\": 12345 }\nkqm_quote_section_list { \"quoteID\": 12345 }\n```\n\n## Docker\n\n```bash\ndocker build -t kaseya-quote-manager-mcp .\ndocker run --rm -p 8080:8080 \\\n  -e MCP_TRANSPORT=http \\\n  -e KASEYA_QUOTE_MANAGER_API_KEY=your-api-key \\\n  kaseya-quote-manager-mcp\n# Health: curl localhost:8080/health\n```\n\nIn the WYRE MCP Gateway the image runs with `AUTH_MODE=gateway`; the gateway injects the\nkey as the `x-kaseya-quote-manager-api-key` header per request.\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm test\nnpm run lint\n```\n\n## License\n\nApache-2.0 © WYRE Technology\n",
  "bytes": 3337,
  "sha": "4fafd0df898869e8627d6660c25cf949ffecbd34120e8cd72104aef7bb530905",
  "repo_slug": "wyre-technology/kaseya-quote-manager-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_wyre_technology_kaseya_quote_m_a80d2dc5/readme"
}