quiqsol
by Asholamide
README.md
# @quiqsol/mcp
Connect [QuiQSol](https://quiqsol.com) to Claude, ChatGPT, Cursor and any AI agent.
This package gives you two things:
- **`quiqsol mcp`**: a local [Model Context Protocol](https://modelcontextprotocol.io) server over stdio, for apps that launch a command (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code).
- **`quiqsol`**: a command line for your terminal, scripts and agents, with JSON output.
Both run on the QuiQSol remote MCP server at `https://api.quiqsol.com/mcp`. Tools, permissions and safety rules live on the server, so this package stays small, has zero dependencies and never needs an update to gain new tools.
MIT licensed.
## What your agent can do
| Product | Read | Act |
| --- | --- | --- |
| CRM | Search; list and get leads, contacts, companies, deals, notes, tasks; view the pipeline | Create and update leads, contacts, companies and deals; move deal stages; add notes; create and complete tasks |
| Help Desk | List and read tickets with their full conversation | Reply (preview first), add internal notes, change status |
| Inbox | List conversations across WhatsApp, website chat and social; read messages | Reply inside the WhatsApp 24-hour window (preview first) |
| Invoices | List and read invoices and totals | Create draft invoices; send (preview first) |
| Projects | List projects and tasks | Create and update tasks |
| Forms | List forms and submissions | |
| Analytics | Business overview, sales, Help Desk and invoice summaries | |
## Security model
- **Scoped access.** Every key and connection carries explicit scopes (`crm:read`, `crm:write`, `helpdesk:read`, `helpdesk:write`, `inbox:read`, `inbox:send`, `invoices:read`, `invoices:write`, `invoices:send`, `projects:read`, `projects:write`, `forms:read`, `analytics:read`). An agent only sees the tools its scopes allow.
- **Your own permissions.** An agent acts as the person who created the key or approved the connection, inside that person's role. It can never do more than they can in the app.
- **Nothing reaches a customer without approval.** Ticket replies, inbox replies and invoice sends return a preview first. They only go out when called again with `confirm: true`, which agents are instructed to do only after you approve.
- **Untrusted content is labelled.** Every result is wrapped as workspace data, with customer-written text marked as data, never instructions.
- **No secrets in output.** Tokens, hashes and keys are stripped from every result server-side.
- **Revocable and audited.** Revoke any key or connection in Settings > Developer Platform. Every call is listed in the API activity log there.
## Get a key
In QuiQSol, open **Settings > Developer Platform > AI agents**, choose **Create AI agent key**, pick the scopes and copy the key (shown once).
Claude and ChatGPT do not need a key: add `https://api.quiqsol.com/mcp` as a connector and sign in with OAuth. See the [setup guide](https://quiqsol.com/developers/ai-agents).
## Use with Claude Desktop, Cursor or any stdio MCP client
```json
{
"mcpServers": {
"quiqsol": {
"command": "npx",
"args": ["-y", "@quiqsol/mcp", "mcp"],
"env": { "QUIQSOL_API_KEY": "aur_live_..." }
}
}
}
```
Claude Desktop: Settings > Developer > Edit Config. Cursor: `~/.cursor/mcp.json` or Settings > MCP.
Clients that support remote servers can skip the package and point straight at the server:
```json
{
"mcpServers": {
"quiqsol": {
"url": "https://api.quiqsol.com/mcp",
"headers": { "Authorization": "Bearer aur_live_..." }
}
}
}
```
Claude Code:
```bash
claude mcp add --transport http quiqsol https://api.quiqsol.com/mcp
```
## Use the CLI
```bash
npm install -g @quiqsol/mcp
quiqsol login
quiqsol whoami
```
```bash
quiqsol leads list --status NEW --limit 10
quiqsol leads create --first-name Ada --last-name Obi --email ada@example.com --source WEBSITE
quiqsol deals pipeline
quiqsol deals move 66f0c2aa66f0c2aa66f0c2aa "Proposal sent"
quiqsol tickets list --status OPEN --mine
quiqsol tickets reply 66f0c2aa66f0c2aa66f0c2aa --body "Your refund was processed today."
quiqsol inbox list --channel whatsapp --unread
quiqsol invoices create --contact-id 66f0c2aa66f0c2aa66f0c2aa --item "Website design:1:450000" --due-date 2026-11-30
quiqsol invoices send 66f0c2aa66f0c2aa66f0c2aa
quiqsol analytics overview --days 30
```
Any tool, by name:
```bash
quiqsol tools
quiqsol call crm_list_deals '{"stage":"Negotiation","limit":5}'
```
Output is JSON on stdout (pretty in a terminal, compact when piped). Commands that reach a customer show a preview and ask before sending; in scripts they print the preview and exit with code `3` unless you pass `--yes`.
| Exit code | Meaning |
| --- | --- |
| 0 | Done |
| 1 | Error (message on stderr) |
| 2 | Usage error |
| 3 | Preview only, nothing was sent |
Configuration: `QUIQSOL_API_KEY` and `QUIQSOL_API_URL` override the saved login in `~/.config/quiqsol/config.json` (written with owner-only permissions).
## Use from code
```js
const { QuiqsolClient } = require('@quiqsol/mcp');
const quiqsol = new QuiqsolClient({ apiKey: process.env.QUIQSOL_API_KEY });
const { data } = await quiqsol.callTool('crm_list_leads', { status: 'NEW', limit: 5 });
```
Prefer plain HTTP? The same tools are available as REST at `https://api.quiqsol.com/public/v1/agent` (`GET /tools`, `POST /tools/{name}`).
## Requirements
Node.js 18 or later.
## License
MIT. The QuiQSol platform itself is a commercial service; this connector is open source so you can read exactly what runs on your machine.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues