Skip to content

Releases: SynderAccounting/gl-importer-plugin

v0.1.5 — verb_noun naming + optional config knobs

Choose a tag to compare

@VasilySynderBot VasilySynderBot released this 20 Jun 18:03

What's in

  • Tool naming: all 19 tools renamed to verb_noun MCP convention.
    account_get → get_account, companies_list → list_companies, etc.
    Full rename list in the commit body.
  • Optional config (×3): importer_request_timeout_ms (default 30000),
    importer_log_level (default "info"), importer_max_retries (default 2).
  • Real wiring — the new env vars do real work:
    • Timeout via AbortController on every fetch.
    • Log level gates process.stderr writes by error|warn|info|debug.
    • Max retries overrides the client's 429 attempt cap.
  • New TIMEOUT ErrorCode so users see a specific code when an AbortController fires.

Breaking

Pre-1.0 rename: any caller hard-coding old tool names (account_get,
mapping_create, etc.) needs to switch to the new verb_noun names. MCP hosts
that use tools/list discovery (Claude Desktop, Cursor, Smithery toolbox)
auto-rebind.

Why

Targets the last 17pt in the Smithery quality rubric (Naming -4.44pt,
Optional config -15pt). Should land us at ~100/100; if Optional-config
hypothesis is wrong we still bank the +4.44 naming bump.

Re-publish to Smithery

curl -L -o /tmp/gl-importer-mcp-0.1.5.mcpb https://github.com/SynderAccounting/gl-importer-plugin/releases/download/v0.1.5/gl-importer-mcp-0.1.5.mcpb && smithery mcp publish /tmp/gl-importer-mcp-0.1.5.mcpb -n michael-012x/gl-importer-mcp

v0.1.4 — Output schemas + tool annotations (Smithery score)

Choose a tag to compare

@VasilySynderBot VasilySynderBot released this 20 Jun 17:20

What's in

  • outputSchema per tool — every one of the 19 tools now declares the JSON shape of its successful response (top-level fields, types, descriptions, required keys). Source: src/tools/*.ts carries the shared shape objects (IMPORT_OBJECT_SHAPE, MAPPING_OUTPUT_SHAPE, IMPORT_RESULT_ROW_SHAPE) so the runtime server card matches the static manifest.
  • MCP standard annotations per toolreadOnlyHint, destructiveHint, idempotentHint, openWorldHint. Highlights:
    • read-only: account_get, companies_list, settings_get, entities_list, fields_get, mappings_list, imports_list, import_status, import_results, import_wait
    • destructive: mapping_delete, import_cancel, import_revert
    • idempotent (safe to retry): settings_update, mapping_update, mapping_delete, import_cancel, import_revert
    • openWorld: all (we call out to QBO/Xero)
  • Wiring: tools/list JSON-RPC now includes outputSchema + annotations when present, matching what's in mcpb/manifest.json.

Why

Smithery's quality score detail showed:

  • Capability Quality 22/40 — Output schemas 0/19 (-10.37pt), Annotations 0/19 (-5.93pt)

This release targets +16.30pt → ~51/100 once redeployed.

Compatibility

No breaking changes. Tool names, input schemas, and handlers all preserved. New fields are additive.

Tests

61/61 passing (no test changes needed).

Re-publish to Smithery

curl -L -o /tmp/gl-importer-mcp-0.1.4.mcpb https://github.com/SynderAccounting/gl-importer-plugin/releases/download/v0.1.4/gl-importer-mcp-0.1.4.mcpb && smithery mcp publish /tmp/gl-importer-mcp-0.1.4.mcpb -n michael-012x/gl-importer-mcp

v0.1.3 — Smithery API fix (inputSchema per tool)

Choose a tag to compare

@VasilySynderBot VasilySynderBot released this 20 Jun 05:58

What's in

  • mcpb/manifest.json: each of the 19 tools now carries inputSchema (the standard MCP Tool shape Smithery's deploy API requires).
  • mcpb/build.sh: packs the bundle with raw zip instead of npx @anthropic-ai/mcpb pack. Bypasses MCPB v0.3/v0.4's strict McpbManifestToolSchema = z.strictObject({name, description}) so the richer per-tool shape survives the bundle.

Why

v0.1.2 publish to Smithery returned 400 Invalid input: expected object, received undefined once per tool. Smithery's CLI forwards manifest.tools straight to its server-card API; the API expects standard MCP Tool objects with inputSchema. MCPB's strict packer wouldn't let us include it, so we removed Anthropic's packer from the build path. Smithery and Claude Desktop both just JSON.parse the manifest from inside the zip — no client-side validation depends on MCPB's strict shape.

Compatibility

  • Claude Desktop one-click install — still works (Anthropic's @anthropic-ai/mcpb consumer also just reads the manifest at install time).
  • Smithery stdio bundle deploy — fixes the 400.
  • npm @cloudbusiness/gl-importer-mcp — unchanged; this release affects bundle packaging only.

Re-publish to Smithery

curl -L -o /tmp/gl-importer-mcp-0.1.3.mcpb https://github.com/SynderAccounting/gl-importer-plugin/releases/download/v0.1.3/gl-importer-mcp-0.1.3.mcpb && smithery mcp publish /tmp/gl-importer-mcp-0.1.3.mcpb -n michael-012x/gl-importer-mcp

v0.1.2 — Smithery score boost: 19 tools declared in MCPB manifest

Choose a tag to compare

@VasilySynderBot VasilySynderBot released this 20 Jun 04:14

What's new

Adds the full 19-tool inventory to the MCPB manifest so marketplaces (Smithery, Glama) can show tool names + descriptions without having to scan the running server.

Why

Smithery's getBundleDeployPayload reads tools, prompts, resources, and user_config directly from the manifest. Without static tools, Smithery falls back to a runtime MCP connection — which fails for stdio servers that need an API token, and tanks the listing quality score.

Format note

MCPB v0.3/v0.4 strict schema only allows {name, description} per tool, so inputSchema lives only in the server code. MCP clients discover full input schemas via the standard tools/list RPC at runtime — no functional change.

Install (Claude Desktop)

Download gl-importer-mcp-0.1.2.mcpb below and double-click. Enter your Importer API token when prompted.

Smithery re-publish (one-liner)

```bash
curl -L -o /tmp/gl-importer-mcp-0.1.2.mcpb https://github.com/SynderAccounting/gl-importer-plugin/releases/download/v0.1.2/gl-importer-mcp-0.1.2.mcpb && smithery mcp publish /tmp/gl-importer-mcp-0.1.2.mcpb -n michael-012x/gl-importer-mcp
```

🤖 Generated with Claude Code

v0.1.1 — gl-importer MCP

Choose a tag to compare

@VasilySynderBot VasilySynderBot released this 20 Jun 02:03

First MCPB-bundled release of the Synder gl-importer MCP server.

Install in Claude Desktop (one click)

Download gl-importer-mcp-0.1.1.mcpb below and double-click it. Claude Desktop will prompt for your Synder Importer API token (generate at importer.synder.com → Account → API Keys), then the server is live with all 19 tools.

Install via npm / npx

npx -y @cloudbusiness/gl-importer-mcp

Then add to your .mcp.json / Claude Desktop config:

{
  "mcpServers": {
    "gl-importer": {
      "command": "npx",
      "args": ["-y", "@cloudbusiness/gl-importer-mcp"],
      "env": {
        "IMPORTER_API_TOKEN": "your_token_here"
      }
    }
  }
}

Distribution

What's in the bundle

  • 19 MCP tools covering import (auto + explicit mapping), wait-for-finish polling, status, results, cancel, revert, mappings CRUD, settings, entities, fields, companies, account info
  • 2 composite "happy path" tools (import_csv, import_wait) for simple flows
  • All production dependencies bundled — no npm install needed
  • ~3 MB compressed, ~10 MB unpacked

License

MIT