AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Apideck Mcp Month End Close

skill-apideck-libraries-api-skills-apideck-mcp-month-end-close · by apideck-libraries

Task playbook for fetching a month-end financial snapshot via the Apideck MCP server's `apideck-month-end-close-check` workflow tool. Use when the user asks for a P&L, balance sheet, aged creditors, or aged debtors view at a point in time. Read-only, idempotent, returns partial snapshots when some reports aren't supported by the connector.

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-apideck-libraries-api-skills-apideck-mcp-month-end-close

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-apideck-libraries-api-skills-apideck-mcp-month-end-close)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Apideck Mcp Month End Close? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Month-end close snapshot (Apideck MCP)

When the user wants a one-shot financial snapshot, prefer apideck-month-end-close-check over fetching the four reports individually. The workflow fans out aged creditors, aged debtors, balance sheet, and profit-and-loss in parallel against the connected accounting service and returns one aggregated object.

When this is the right tool

| User intent | Tool | |---|---| | "Run the month-end close", "P&L plus balance sheet for last month", "Aged AP/AR snapshot as of March 31" | apideck-month-end-close-check ✓ | | "Just the P&L" | accounting-profit-and-loss-get directly | | "Just aged creditors" | accounting-aged-creditors-get directly | | "Reconcile bank statements" | Out of scope — use the connector's native reconciliation |

IMPORTANT RULES

  • READ-ONLY, idempotent. Safe to call repeatedly — no confirmation needed. The tool fetches data; it doesn't post anything.
  • OMIT report_as_of_date to use today. Most users running a month-end ask for "last month", in which case pass an explicit YYYY-MM-DD like "2026-03-31".
  • EXPECT partial results. Connector coverage varies — Odoo doesn't implement aged-creditors, Moneybird doesn't implement balance-sheet, etc. The workflow returns { unsupported: true, reason } for steps the connector can't fulfill, plus a top-level warnings[] array. Surface these to the user instead of treating them as failures.
  • **isError: true only fires when every report failed** — typically a missing connection or expired credentials. Partial snapshots come back as isError: false so the agent can still extract value.

Argument map

| Arg | Required | Default | Notes | |---|---|---|---| | report_as_of_date | no | today (YYYY-MM-DD) | Cutoff date for aged reports + balance sheet. | | x-apideck-service-id | no | first accounting connection | E.g. "xero", "quickbooks". |

Result shape

Full success

{
  "report_as_of_date": "2026-03-31",
  "service_id": "xero",
  "aged_creditors": { "summary": [...] },
  "aged_debtors":   { "summary": [...] },
  "balance_sheet":  { "assets": 100000, ... },
  "profit_and_loss":{ "revenue": 250000, ... }
}

Partial — some reports unsupported

{
  "report_as_of_date": "2026-03-31",
  "service_id": "odoo",
  "aged_creditors": { "unsupported": true, "reason": "Aged-creditors not implemented for Odoo" },
  "aged_debtors":   { "unsupported": true, "reason": "..." },
  "balance_sheet":  { "assets": 100000, ... },
  "profit_and_loss":{ "revenue": 250000, ... },
  "warnings": [
    "aged_creditors: unsupported on odoo (...)",
    "aged_debtors: unsupported on odoo (...)"
  ]
}

isError: false — two reports came back, that's still useful.

Total failure

{
  "report_as_of_date": "2026-03-31",
  "service_id": null,
  "aged_creditors": { "error": "..." },
  "aged_debtors":   { "error": "..." },
  "balance_sheet":  { "error": "..." },
  "profit_and_loss":{ "error": "..." },
  "warnings": [...]
}

With isError: true. Usually a missing connection — surface the elicitation URL.

Worked example

User: "Give me a month-end snapshot for March 2026 from QuickBooks."

{
  "name": "apideck-month-end-close-check",
  "arguments": {
    "report_as_of_date": "2026-03-31",
    "x-apideck-service-id": "quickbooks"
  }
}

Then summarize for the user, calling out any unsupported rows distinctly:

> On 2026-03-31 in QuickBooks: revenue $250K, total assets $100K. Aged creditors / aged debtors aren't supported by this connector — pull those from the Bills-list and Invoices-list reports if you need them.

Common failure modes

| Symptom | Cause | Fix | |---|---|---| | All four reports unsupported | Connector doesn't implement these (e.g. Odoo without the Reports module) | Surface the limitation; suggest aggregating from accounting-bills-list + accounting-invoices-list instead | | UnsupportedFiltersError on a report | Connector rejects filter[report_as_of_date] or filter[end_date] | Connector quirk — currently surfaces as unsupported with the upstream message | | UrlElicitationRequiredError | Connection expired/missing | Surface consent URL, retry |

Related

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.