Model Context Protocol server for QuickFile UK accounting software - giving AI assistants full access to invoicing, clients, purchases, banking, and financial reporting.
- 37 MCP Tools across 7 categories for complete QuickFile API coverage
- Client Management: Create, search, update, delete clients and contacts
- Invoicing: Create invoices, estimates, credit notes; send by email; get PDF
- Purchases: Record and manage purchase invoices from suppliers
- Supplier Management: Full supplier CRUD operations
- Banking: Bank accounts, transactions, balances
- Financial Reports: Profit & Loss, Balance Sheet, VAT obligations, Ageing reports
- System Operations: Account details, event log, notes
git clone https://github.com/marcusquinn/quickfile-mcp.git
cd quickfile-mcp
npm install
npm run buildNote your install path for step 3 (run pwd to see it). The built server is at <your-path>/dist/index.js.
Create your QuickFile API credentials:
mkdir -p ~/.config/.quickfile-mcp
cat > ~/.config/.quickfile-mcp/credentials.json << 'EOF'
{
"accountNumber": "YOUR_ACCOUNT_NUMBER",
"apiKey": "YOUR_API_KEY",
"applicationId": "YOUR_APPLICATION_ID"
}
EOF
chmod 600 ~/.config/.quickfile-mcp/credentials.jsonOr use the interactive setup script:
./setup.sh configureWhere to find these:
- Account Number: Visible in top-right corner of QuickFile dashboard
- API Key: Account Settings > 3rd Party Integrations > API Key
- Application ID: Account Settings > Create a QuickFile App > copy the Application ID
This server works with any MCP-compatible client. Replace /absolute/path/to/quickfile-mcp below with the actual path from step 1 (the output of pwd).
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"quickfile": {
"command": "node",
"args": ["/absolute/path/to/quickfile-mcp/dist/index.js"]
}
}
}Claude Code:
claude mcp add quickfile node /absolute/path/to/quickfile-mcp/dist/index.jsOpenCode (~/.config/opencode/opencode.json):
{
"mcp": {
"quickfile": {
"type": "local",
"command": ["node", "/absolute/path/to/quickfile-mcp/dist/index.js"],
"enabled": true
}
}
}You can also use the setup script to configure your client automatically:
./setup.sh clientRestart your MCP client and try:
"Show me my QuickFile account details"
"List my recent invoices"
"Search for clients named 'Smith'"
"Get the profit and loss report for this year"
| Tool | Description |
|---|---|
quickfile_system_get_account |
Get account details (company, VAT status, year end) |
quickfile_system_search_events |
Search the audit event log |
quickfile_system_create_note |
Add notes to invoices, clients, etc. |
| Tool | Description |
|---|---|
quickfile_client_search |
Search clients by name, email, postcode |
quickfile_client_get |
Get full client details |
quickfile_client_create |
Create a new client |
quickfile_client_update |
Update client details |
quickfile_client_delete |
Delete a client |
quickfile_client_insert_contacts |
Add contacts to a client |
quickfile_client_login_url |
Get passwordless login URL for client portal |
| Tool | Description |
|---|---|
quickfile_invoice_search |
Search invoices by type, client, date, status |
quickfile_invoice_get |
Get full invoice with line items |
quickfile_invoice_create |
Create invoice, estimate, or credit note |
quickfile_invoice_delete |
Delete an invoice |
quickfile_invoice_send |
Send invoice by email |
quickfile_invoice_get_pdf |
Get PDF download URL |
quickfile_estimate_accept_decline |
Accept or decline an estimate |
quickfile_estimate_convert_to_invoice |
Convert estimate to invoice |
| Tool | Description |
|---|---|
quickfile_purchase_search |
Search purchase invoices |
quickfile_purchase_get |
Get purchase details |
quickfile_purchase_create |
Create purchase invoice |
quickfile_purchase_delete |
Delete purchase invoice |
| Tool | Description |
|---|---|
quickfile_supplier_search |
Search suppliers |
quickfile_supplier_get |
Get supplier details |
quickfile_supplier_create |
Create a new supplier |
quickfile_supplier_delete |
Delete a supplier |
| Tool | Description |
|---|---|
quickfile_bank_get_accounts |
List all bank accounts |
quickfile_bank_get_balances |
Get account balances |
quickfile_bank_search |
Search transactions |
quickfile_bank_create_account |
Create a bank account |
quickfile_bank_create_transaction |
Add bank transaction |
| Tool | Description |
|---|---|
quickfile_report_profit_loss |
Profit & Loss report |
quickfile_report_balance_sheet |
Balance Sheet report |
quickfile_report_vat_obligations |
VAT returns (filed & open) |
quickfile_report_ageing |
Debtor/Creditor ageing |
quickfile_report_chart_of_accounts |
List nominal codes |
quickfile_report_subscriptions |
Recurring subscriptions |
npm install # Install dependencies
npm run build # Build TypeScript
npm run dev # Development mode (auto-reload)
npm test # Unit tests (no API calls)
npm run test:integration # Integration tests (requires credentials)
npm run test:all # All tests
npm run typecheck # Type check
npm run lint # Lint
npm run secretlint # Scan for secretsEnable debug mode to see raw API requests/responses (credentials redacted):
QUICKFILE_DEBUG=1 node dist/index.jsFor development and debugging, use the official MCP Inspector to call tools directly without an AI client:
npx @modelcontextprotocol/inspector node dist/index.jsThen open http://localhost:5173 to browse all 37 tools, fill in parameters, and view raw JSON responses.
quickfile-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── api/
│ │ ├── auth.ts # MD5 authentication
│ │ └── client.ts # HTTP client
│ ├── tools/
│ │ ├── index.ts # Tool registry & exports
│ │ ├── utils.ts # Shared utilities (error handling, logging)
│ │ ├── schemas.ts # Zod validation schemas
│ │ ├── system.ts # System tools (3)
│ │ ├── client.ts # Client tools (7)
│ │ ├── invoice.ts # Invoice & estimate tools (8)
│ │ ├── purchase.ts # Purchase tools (4)
│ │ ├── supplier.ts # Supplier tools (4)
│ │ ├── bank.ts # Bank tools (5)
│ │ └── report.ts # Report tools (6)
│ └── types/
│ └── quickfile.ts # TypeScript types
├── tests/
│ ├── unit/ # Unit tests (201 tests, ~96% coverage)
│ └── integration/ # API integration tests (19 tests)
├── .agents/ # AI assistant documentation (AGENTS.md)
└── .github/workflows/ # CI/CD (test, lint, build, release)
The QuickFile API has strict requirements for element ordering and required fields. When contributing:
- Always check the official API schema at https://api.quickfile.co.uk/
- Use Context7 for AI-assisted development: https://context7.com/websites/api_quickfile_co_uk
- Read AGENTS.md for API quirks, response structure patterns, and common workflows
- Credentials stored in
~/.config/.quickfile-mcp/credentials.json - File permissions should be 600 (owner read/write only)
- Never commit credentials to version control
- API key provides full access - treat it like a password
- Secretlint runs automatically on pre-commit to prevent accidental secret exposure
QuickFile has a default limit of 1000 API calls per day per account. Contact QuickFile support if you need this increased.
- QuickFile - UK accounting software
- QuickFile API Documentation
- Model Context Protocol - Protocol specification for AI tool integration
- AI DevOps Framework - AI infrastructure management
MIT License - see LICENSE file for details.
Created by Marcus Quinn - Copyright 2025-2026