{
  "markdown": "# gl-importer (Claude Code plugin)\n\nImport CSV/XLSX accounting data into QuickBooks Online or Xero from inside Claude Code,\nusing the [Synder Importer API](https://importer.synder.com/apidocs).\n\nThis plugin bundles:\n\n- An **MCP server** wrapping the Synder Importer REST API (`/api/v1`) — full read + write,\n  19 tools covering account, companies, settings, entities, fields, mappings, imports,\n  status polling, results, cancel, revert, plus two composite \"happy path\" tools.\n- The `gl-importer` **agent skill** with natural-language guidance for the two-step\n  import flow (dry-run → confirm).\n\n## Requirements\n\n- Node.js 18 or newer\n- Claude Code with plugin support (`/plugin` command available)\n- A Synder Importer API token — set as `IMPORTER_API_TOKEN` in your shell env.\n  Generate at [importer.synder.com](https://importer.synder.com) → **Account → API Keys**.\n\n## Install\n\n### From the Claude Code marketplace (recommended)\n\n```\n/plugin marketplace add SynderAccounting/gl-importer-plugin\n/plugin install gl-importer\n```\n\nThen set your token in the shell that launches Claude Code:\n\n```bash\nexport IMPORTER_API_TOKEN=\"your_token_here\"\n```\n\n### Claude Desktop (one-click MCP install)\n\nDownload the latest `.mcpb` bundle from [Releases](https://github.com/SynderAccounting/gl-importer-plugin/releases) and double-click it. Claude Desktop will prompt you for the API token.\n\n### From source (development)\n\n```bash\ngit clone https://github.com/SynderAccounting/gl-importer-plugin\ncd gl-importer-plugin\nnpm install\nnpm run build\n# Point Claude Code at this directory:\nclaude --plugin-dir .\n```\n\n## Configuration\n\n| Env var | Required | Default | Purpose |\n|---|---|---|---|\n| `IMPORTER_API_TOKEN` | yes | — | Bearer token for the Synder Importer API |\n| `IMPORTER_BASE_URL` | no | `https://importer.synder.com/api/v1` | Override for staging/test |\n\n## Example prompts\n\nOnce installed, talk to Claude Code naturally:\n\n- *\"Import `~/Downloads/march-bills.csv` as Bills into my QuickBooks company.\"*\n- *\"What entities can I import into Xero?\"*\n- *\"Show me the saved mapping called 'Stripe payouts' and update it to map Date → TxnDate.\"*\n- *\"List my last 10 imports and tell me which ones failed.\"*\n- *\"Revert import 12345 — I uploaded the wrong file.\"*\n- *\"What's the status of import 12345? Wait for it to finish and tell me how many warnings.\"*\n\nThe skill will walk Claude Code through a safe two-step flow: a **dry-run** that\nshows the proposed field mapping, then a **confirmed** call that actually creates\nthe import and polls until it terminates.\n\n## Tools\n\nThe MCP server exposes 19 tools. The ones an LLM will hit most often:\n\n| Tool | Purpose |\n|---|---|\n| `import_csv` | **Happy path.** Auto-resolves company, uploads file, runs dry-run, then (on confirm) executes + waits. |\n| `wait_for_import` | Polls a running import to a terminal state with exponential backoff (2s → 1.5× → 30s cap). |\n| `list_companies` / `list_entities` / `get_fields` | Discover what you can import where. |\n| `list_mappings` / `create_mapping` / `update_mapping` / `delete_mapping` | Saved-mapping CRUD. |\n| `auto_import` / `execute_import` | Lower-level: create an import with auto-mapping or an explicit mapping. |\n| `get_import_status` / `get_import_results` / `cancel_import` / `revert_import` | Lifecycle. |\n| `get_settings` / `update_settings` | Per-company import settings. |\n| `get_account` | Whoami / token check. |\n\nFull schemas are emitted at MCP startup — the agent skill (`skills/gl-importer/SKILL.md`)\nalso documents the conventions.\n\n## Development\n\n```bash\nnpm install\nnpm run build       # tsc → dist/\nnpm test            # vitest, 60+ unit tests, virtual-clock polling tests\nnpm run watch       # tsc --watch for iterative dev\n```\n\nCI runs on every push and PR (`.github/workflows/ci.yml`).\n\n## Release process\n\n1. Bump `version` in `package.json` and `.claude-plugin/plugin.json` (keep them in sync).\n2. Commit and tag: `git tag v0.x.y && git push --tags`.\n3. The `publish.yml` workflow publishes to npm on the tag push (uses `NPM_TOKEN` secret).\n4. The marketplace install path resolves through this GitHub repo, so the tag is the release.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n\n## Support\n\n- Issues: https://github.com/SynderAccounting/gl-importer-plugin/issues\n- Email: help@synder.com\n",
  "bytes": 4301,
  "sha": "c138e006e5c6a8c8db4e43b804c3445110faed2d43f49be9ae6ceefce88aec44",
  "repo_slug": "synderaccounting/gl-importer-plugin",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_synder_gl_importer_mcp_b065b8e5/readme"
}