# Apideck Mcp Month End Close

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

- **Type:** Skill
- **Install:** `agentstack add skill-apideck-libraries-api-skills-apideck-mcp-month-end-close`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [apideck-libraries](https://agentstack.voostack.com/s/apideck-libraries)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [apideck-libraries](https://github.com/apideck-libraries)
- **Source:** https://github.com/apideck-libraries/api-skills/tree/main/providers/claude/plugin/skills/apideck-mcp-month-end-close
- **Website:** https://developers.apideck.com/building-with-llms

## Install

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

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## 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

```json
{
  "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

```json
{
  "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

```json
{
  "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."*

```json
{
  "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

- [`apideck-mcp`](../apideck-mcp/) — front-door skill
- Workflow source: [src/gen/workflows/monthEndClose.ts](https://github.com/apideck-libraries/mcp/blob/main/src/gen/workflows/monthEndClose.ts)

## Source & license

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

- **Author:** [apideck-libraries](https://github.com/apideck-libraries)
- **Source:** [apideck-libraries/api-skills](https://github.com/apideck-libraries/api-skills)
- **License:** Apache-2.0
- **Homepage:** https://developers.apideck.com/building-with-llms

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

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-apideck-libraries-api-skills-apideck-mcp-month-end-close
- Seller: https://agentstack.voostack.com/s/apideck-libraries
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
