gl-importer
OfficialThe gl-importer server lets you import CSV/XLSX accounting data into QuickBooks Online or Xero via the Synder Importer API, with full lifecycle management of imports and mappings.
Account & Companies
Verify your API token and view account details (email, status, subscription) with
get_accountList connected accounting companies (QuickBooks Online / Xero) with
list_companies
Discovery
List importable entity types for a company (Invoice, Bill, JournalEntry, Customer, Vendor, etc.) with
list_entitiesInspect field schemas (types, required flags, allowed values, column aliases) with
get_fields
Settings
Read per-company import settings (date format, duplicate handling, auto-creation rules) with
get_settingsSelectively update per-company import settings with
update_settings
Field Mapping CRUD
List, create, update, and delete saved field mappings (
list_mappings,create_mapping,update_mapping,delete_mapping)
Running Imports
Happy-path two-step flow: dry-run to preview auto-proposed mapping, then confirm to execute with
import_csvAuto-map and import a file in one call (or dry-run only) with
auto_importExecute an import using an existing saved mapping with
execute_importSupports
.csv,.xlsx,.xlsfiles up to 50MB
Import Lifecycle & Monitoring
List recent imports with
list_importsCheck import status (SCHEDULED → IN_PROGRESS → FINISHED / FAILED / CANCELED) with
get_import_statusPoll an import to completion with exponential backoff with
wait_for_importRetrieve per-row results (INFO / WARNING / ERROR), paginated and filterable, with
get_import_resultsCancel a running import with
cancel_importRevert a finished import (deletes the created QBO/Xero entries) with
revert_import
Provides tools for importing CSV/XLSX accounting data into QuickBooks Online, including dry-run import, mapping management, and lifecycle operations.
Provides tools for importing CSV/XLSX accounting data into Xero, including dry-run import, mapping management, and lifecycle operations.
gl-importer (Claude Code plugin)
Import CSV/XLSX accounting data into QuickBooks Online or Xero from inside Claude Code, using the Synder Importer API.
This plugin bundles:
An MCP server wrapping the Synder Importer REST API (
/api/v1) — full read + write, 19 tools covering account, companies, settings, entities, fields, mappings, imports, status polling, results, cancel, revert, plus two composite "happy path" tools.The
gl-importeragent skill with natural-language guidance for the two-step import flow (dry-run → confirm).
Requirements
Node.js 18 or newer
Claude Code with plugin support (
/plugincommand available)A Synder Importer API token — set as
IMPORTER_API_TOKENin your shell env. Generate at importer.synder.com → Account → API Keys.
Related MCP server: MCP Accounting
Install
From the Claude Code marketplace (recommended)
/plugin marketplace add SynderAccounting/gl-importer-plugin
/plugin install gl-importerThen set your token in the shell that launches Claude Code:
export IMPORTER_API_TOKEN="your_token_here"Claude Desktop (one-click MCP install)
Download the latest .mcpb bundle from Releases and double-click it. Claude Desktop will prompt you for the API token.
From source (development)
git clone https://github.com/SynderAccounting/gl-importer-plugin
cd gl-importer-plugin
npm install
npm run build
# Point Claude Code at this directory:
claude --plugin-dir .Configuration
Env var | Required | Default | Purpose |
| yes | — | Bearer token for the Synder Importer API |
| no |
| Override for staging/test |
Example prompts
Once installed, talk to Claude Code naturally:
"Import
~/Downloads/march-bills.csvas Bills into my QuickBooks company.""What entities can I import into Xero?"
"Show me the saved mapping called 'Stripe payouts' and update it to map Date → TxnDate."
"List my last 10 imports and tell me which ones failed."
"Revert import 12345 — I uploaded the wrong file."
"What's the status of import 12345? Wait for it to finish and tell me how many warnings."
The skill will walk Claude Code through a safe two-step flow: a dry-run that shows the proposed field mapping, then a confirmed call that actually creates the import and polls until it terminates.
Tools
The MCP server exposes 19 tools. The ones an LLM will hit most often:
Tool | Purpose |
| Happy path. Auto-resolves company, uploads file, runs dry-run, then (on confirm) executes + waits. |
| Polls a running import to a terminal state with exponential backoff (2s → 1.5× → 30s cap). |
| Discover what you can import where. |
| Saved-mapping CRUD. |
| Lower-level: create an import with auto-mapping or an explicit mapping. |
| Lifecycle. |
| Per-company import settings. |
| Whoami / token check. |
Full schemas are emitted at MCP startup — the agent skill (skills/gl-importer/SKILL.md)
also documents the conventions.
Development
npm install
npm run build # tsc → dist/
npm test # vitest, 60+ unit tests, virtual-clock polling tests
npm run watch # tsc --watch for iterative devCI runs on every push and PR (.github/workflows/ci.yml).
Release process
Bump
versioninpackage.jsonand.claude-plugin/plugin.json(keep them in sync).Commit and tag:
git tag v0.x.y && git push --tags.The
publish.ymlworkflow publishes to npm on the tag push (usesNPM_TOKENsecret).The marketplace install path resolves through this GitHub repo, so the tag is the release.
License
MIT — see LICENSE.
Support
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SynderAccounting/gl-importer-plugin'
If you have feedback or need assistance with the MCP directory API, please join our Discord server