QuickFile MCP Server

QuickFile MCP Server

Enables AI assistants to interact with QuickFile UK accounting software, providing access to invoicing, client management, purchases, banking, and financial reporting through 40+ tools covering the complete QuickFile API.

Category
访问服务器

README

QuickFile MCP Server

Model Context Protocol server for QuickFile UK accounting software - giving AI assistants full access to invoicing, clients, purchases, banking, and financial reporting.

License: MIT Version CI Quality Gate Status Codacy Badge Maintainability CodeFactor CodeRabbit Pull Request Reviews MCP AGENTS.md QuickFile TypeScript Node.js

Features

  • 40+ MCP Tools 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

Quick Start

1. Clone and Install

cd ~/git
git clone https://github.com/marcusquinn/quickfile-mcp.git
cd quickfile-mcp
npm install
npm run build

2. Configure Credentials

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.json

Where to find these:

  1. Account Number: Visible in top-right corner of QuickFile dashboard
  2. API Key: Account Settings → 3rd Party Integrations → API Key
  3. Application ID: Account Settings → Create a QuickFile App → copy the Application ID

3. Install OpenCode (if not already installed)

OpenCode is an open-source AI coding assistant that runs in your terminal. It supports MCP (Model Context Protocol) servers like this one.

# Install OpenCode globally
npm install -g opencode

# Or run directly with npx
npx opencode

See the OpenCode documentation for more installation options and configuration.

4. Configure OpenCode

Add to your ~/.config/opencode/opencode.json:

{
  "mcp": {
    "quickfile": {
      "type": "local",
      "command": ["node", "/path/to/quickfile-mcp/dist/index.js"],
      "enabled": true
    }
  }
}

Or use the setup script:

./setup.sh opencode

5. Start Using

Restart OpenCode 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"

Available Tools

System (3 tools)

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.

Clients (7 tools)

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

Invoices (8 tools)

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

Purchases (4 tools)

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

Suppliers (4 tools)

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

Banking (5 tools)

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

Reports (6 tools)

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

API Rate Limits

QuickFile has a default limit of 1000 API calls per day per account. Contact QuickFile support if you need this increased.

Development

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run in development mode (with auto-reload)
npm run dev

# Run unit tests (fast, no API calls)
npm test

# Run integration tests (requires credentials)
npm run test:integration

# Run all tests
npm run test:all

# Type check
npm run typecheck

# Lint
npm run lint

# Debug API calls (shows request/response with redacted credentials)
QUICKFILE_DEBUG=1 node dist/index.js

Testing with MCP Inspector

For development and debugging, use the official MCP Inspector tool instead of running through an AI assistant. This provides:

  • Direct tool invocation - Call MCP tools directly with custom parameters
  • Real-time response viewing - See full JSON responses without AI interpretation
  • Faster iteration - No waiting for AI to process requests
  • Debug visibility - View raw server output and errors

Quick Start

# Install MCP Inspector globally
npm install -g @modelcontextprotocol/inspector

# Run inspector with this server
npx @modelcontextprotocol/inspector node dist/index.js

Then open http://localhost:5173 in your browser to:

  1. See all 37 available tools listed
  2. Click a tool to view its input schema
  3. Fill in parameters and execute
  4. View the raw JSON response

Example Test Workflow

  1. Test account access: Call quickfile_system_get_account with {}
  2. Test client search: Call quickfile_client_search with {"companyName": "test"}
  3. Test reports: Call quickfile_report_profit_loss with {"startDate": "2024-01-01", "endDate": "2024-12-31"}
  4. Test invoice listing: Call quickfile_invoice_search with {"invoiceType": "INVOICE"}

This is the recommended approach for:

  • Debugging API response issues
  • Verifying new tools work correctly
  • Testing parameter validation
  • Investigating error responses

Contributing

QuickFile API Documentation

The QuickFile API has strict requirements for element ordering and required fields. When contributing:

  1. Always check the official API schema at https://api.quickfile.co.uk/
  2. Use Context7 for AI-assisted development: https://context7.com/websites/api_quickfile_co_uk
    • Context7 has indexed the full QuickFile API documentation
    • Use it to query exact field names, required parameters, and element ordering
    • Example: "What are the required fields for Purchase_Search?"

Key API Quirks

  • Element ordering matters - XML schema validation requires specific field order
  • Required fields vary by endpoint - OrderResultsBy and OrderDirection are required for most search endpoints
  • Field naming is inconsistent - e.g., FromDate/ToDate vs DateFrom/DateTo
  • SearchParameters wrapper - Most endpoints need this wrapper around query params
  • NominalCode types - Sometimes string, sometimes int (check schema)

Architecture

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
│   │   ├── client.ts      # Client tools
│   │   ├── invoice.ts     # Invoice tools
│   │   ├── purchase.ts    # Purchase tools
│   │   ├── supplier.ts    # Supplier tools
│   │   ├── bank.ts        # Bank tools
│   │   └── report.ts      # Report tools
│   └── types/
│       └── quickfile.ts   # TypeScript types
├── tests/
│   ├── unit/              # Unit tests (201 tests)
│   └── integration/       # API integration tests (16 tests)
├── .agent/                # AI assistant documentation
└── .opencode/agent/       # OpenCode agent files

Credential Security

  • 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
  • Run npm run secretlint manually to scan for secrets

Related Projects

License

MIT License - see LICENSE file for details.

Created by Marcus Quinn - Copyright © 2025

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选