- Brand
- Unknown
- Category
- Pending
- Primary Subcategory
- Pending
Integration details
Description
Numeric Close helps accounting teams review close tasks and reconciliations, inspect financial reports and transaction lines, attach support evidence, and update close workflows through ChatGPT.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Category
- Pending
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Unknown
- Access
- Account required
- First tracked
- 2026-10-17
- Tool count
- 43
- Geography
- US
The broad Category that contains the Primary Subcategory.
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Numeric Close
Get updates when Numeric Close’s Discoverability Score or category rank changes.
Competitive lineup
43 tools agents can invoke
Add a comment to a task. Supports @mentions and review notes. May send Slack notifications to task participants and mentioned users according to their notification settings. **@mentions**: Use plain-text `@First Last` in the text field to mention users. The tool automatically resolves names to user IDs and generates the required HTML markup. Names are matched case-insensitively against active workspace members. Only mention users when the user explicitly asks to tag someone. **Review notes**: Optionally attach review notes to the comment. A review note assigns a follow-up item to a specific user with a due date. Only create review notes when explicitly requested. **Task URL**: Use the url column from list_tasks for deep links to tasks in the Numeric UI.
Assign or unassign a user to/from a task role. Each role (preparer, reviewer, second reviewer) can have one assignee. Assigning overwrites the current assignee for that role. Only active users can be assigned — the tool validates this automatically.
Attach an uploaded file to a task for a specific period. file_id comes from get_file_upload_url (after the curl PUT succeeds) or list_files. period_id is REQUIRED — attachments are period-specific and never apply to recurring-task templates. The attach validates the file exists in this workspace and its bytes were uploaded. Retry-safe: re-attaching an already-attached file is a no-op. To replace a file, attach the new file_id, then detach_file the superseded one.
Attach a support LINK (URL) to a task for a period — a Google Sheet, Drive file, Loom, etc. To upload a file instead, use attach_file. period_id is REQUIRED; links never apply to recurring templates. Only durable https links are accepted (http and other schemes are rejected). Do NOT attach temporary or expiring URLs — files.oaiusercontent.com links (they expire in minutes), sandbox:/mnt/data/... paths (not URLs at all), chatgpt.com/share/... or claude.ai chat share links (a shared chat does not carry its files), and blob: URLs (dead once the tab closes) — they stop resolving and are not valid close evidence; upload those as files instead. Before attaching, confirm the destination is shared with the customer's team or lives in an org-owned Shared Drive or SharePoint library — a document you created defaults to private-to-owner, and a reviewer would hit a "request access" wall.
Build an ad-hoc report for exploration without saving it. Returns TSV format; the first column, RowKey, is the canonical row identifier to pass when writing flux explanations or task actions. **Workflow guidance**: Reports aggregate GL data by grouping/pivoting on dimensions (account, department, entity, vendor, etc.). Use this to get a high-level view, then drill into specific rows with query_transaction_lines to see individual GL entries. If query_transaction_lines returns too many lines, build a more targeted report first — add pivots to group by the dimension you care about (e.g. vendor), apply filters, then drill into the narrower result. This iterative approach helps you zoom in on what you're looking for. Requires a gl_connection_id — pass an entity id from get_workspace_context (e.g. "api_123/1") to report on that entity, or the entity's gl_connection_id field for the whole workspace.
Set tags or organizations on a task. Tags are grouped — provide the tag group ID and which tag option IDs to apply. Organizations link tasks to entities.
Change an existing task's type between Custom and Journal Entry. Works on task instances and recurring templates, and supports single or batch task_key. Reconciliation and flux analysis tasks cannot be converted (the API rejects them). Changing to the same type is a no-op.
Connect a workbook tab as a reconciliation SOURCE for a reconciliation report and period, then download it and sync the report's balances. Run inspect_reconciliation_source first and only call this when it returned ready; the same validation is re-run here and a stale inspection never bypasses it. scope is REQUIRED and must be confirmed with the customer: this_period affects only this close, this_and_future_periods keeps syncing the workbook into every later period. Re-running with identical arguments reuses the existing connection and retries the download/sync (safe recovery after a failure); a different scope for an already-connected tab is refused rather than silently rewriting its window. The result reports connected / downloaded / balances separately — a connected source with a failed download has supplied no balances. If the file is inside a connected folder, that folder's file list is refreshed so the file appears under it. This never submits or completes the reconciliation task. Requires an open or reopened period and the Manage Sources permission. Not for attaching evidence to a task — that is attach_link.
Create workspace holidays in bulk (up to 100 per call). Holidays shift business-day due dates: importing recalculates task due dates in all open periods (the response reports how many task assignments were swept). Holidays that already exist are skipped by name+date, so re-running an import is safe. `recurs: true` repeats the SAME calendar date every year — use it only for fixed-date holidays; floating holidays (e.g. US Thanksgiving, Easter) must be imported per-year with recurs false. Check get_workspace_context for existing holidays first: recurring ones are listed under an old projected year but already cover every future year, and an import matching one is skipped even if the recurs values differ. Avoid importing past years — closed periods are never recalculated and old one-off holidays do not display in Settings.
Create a new property (tag option) within a property group. Use get_workspace_context to find the property group ID.
Create a new property group (tag group) in the workspace. Property groups organize properties — e.g. a "Team" group with options like "Finance", "Legal". Use get_workspace_context to see existing groups before creating duplicates.
Create a task. If the user has not specified a period, suggest the latest open period but confirm before proceeding. If the user has not indicated whether the task should recur, ask. Due dates, assignees, and recurrence can all be set in this single call — avoid follow-up edits when the information is available upfront. Provide frequency for recurring, omit for one-off. To create a subtask, pass parent_task_key; the subtask is added after the parent's existing subtasks.
Permanently delete holidays by ID (up to 100 per call). Get holiday IDs from get_workspace_context, and confirm with the user before deleting — this cannot be undone through MCP. Deleting recalculates task due dates in all open periods; the response reports deleted ids, skipped ids (already gone — re-running is safe), and how many task assignments were swept.
Remove an attached file from a task for a specific period (the file itself stays in the workspace). period_id is REQUIRED — never omit it. Detaching a file that is not attached is a no-op. Use after attaching a replacement to remove the superseded file_id.
Remove an attached support link from a task for a specific period (the link record stays in the workspace and can be re-attached). resource_uri_id comes from the attach_link response or list_task_attachments. period_id is REQUIRED — never omit it. Only links that list_task_attachments shows can be removed; anything else (already detached, or a journal-entry link) is a no-op. Use after attaching a replacement to remove the superseded link.
Edit a task's name or description. Works on both task instances and templates.
Step 1 of attaching a NEW file to a task: mints a presigned upload URL (valid 5 minutes). Returns a curl PUT command; run it, then call attach_file with the returned file_id. Allowed types: pdf, xlsx, csv, docx, png, jpg, jpeg, txt, md, json; max 50MB declared size. file_name must be a bare name like "rollforward.xlsx" (no paths). Clients in a cloud sandbox without internet egress (e.g. claude.ai web, Cowork) cannot use this tool — attach an existing file with list_files + attach_file instead, or run from a local shell. To attach a file already in the workspace, skip this and use list_files + attach_file.
Get all flux explanations for a report in a specific period. Returns a map of row keys to explanation history (each entry has content, author, timestamp, and whether it was AI-generated).
Read a V3 Flux report’s close requirement for a specific period, its quarter-end rule, the source of the effective decision, and audit history with actor IDs, timestamps, and before/after values. Requires workspace administrator access. Read-only; does not change requirements. Use list_reports to find reportConfig.id.
Recomputing a period-backed report can update task materiality and scope, automatically submit or unsubmit tasks, reset reconciliation progress, and send Slack notifications. Get report data for a saved report. Financial thresholds are unchanged when a report is not required for close; use list_tasks for effective explanation requirements or get_flux_requirements for its period-specific state (administrators only). Returns TSV (tab-separated) format for readability; the first column, RowKey, is the canonical row identifier to pass when writing flux explanations or task actions. Use list_reports to find the configuration_id — it is the reportConfig.id field (urc_…), not a periodHistory id. Reconciliation reports are NOT in list_reports: their id is the rep_… value in the report_id column of list_tasks (rec_prepare_account rows) or list_reconciliation_sources; pass it as configuration_id together with period_id to get each account's GL Balance, Rec. Balance, Rec. Items, Variance and Threshold State. Date selection: pass period_id (a workspace period from get_workspace_context) OR as_of (YYYY-MM-DD). as_of works for any date with synced GL data, including months before the workspace's earliest period. For a standard full-month view pass the LAST day of the month (e.g. 2024-01-31); a mid-month date returns amounts through that exact day (month-to-date), matching the app's As-of picker. A month-end as_of that matches a workspace period returns that period's view, so flux commentary (get_flux_explanations) aligns with it; dates without a period have no flux commentary.
Get the trend/breakdown of a report row across comparison time periods. Shows how amounts change period-over-period for a specific row. Works on all reports returned by list_reports.
Returns task review notes (checklist/reconciliation/flux) for a period in a single call, so you do not have to loop get_task_comments per task. Cash review notes are not yet covered. Returns TSV. The count line echoes which period the call resolved to (slug + status: open/closed/reopened) — check it before concluding "no review notes". period_id is optional — when omitted the workspace's current period (latest by start date, which may be closed) is used. By default review notes of every status are returned; pass status (single value or array, e.g. ["pending", "resolved"]) to narrow. Note text is raw — tabs/newlines collapsed to spaces, no spreadsheet-formula escaping. Custom task properties are resolved to readable columns: by default every tag group with at least one value in the results appears; all-empty groups are dropped and named in a trailing "# NOTE:" line (a zero-row response has no property columns). Property column sets depend on the returned rows and can differ between calls — match cells to columns by header name, not position. Pass include_properties to force specific property columns (always included, even when empty), or [] for none. Capped at 500 notes — when truncated, a trailing "# NOTE:" line is emitted; narrow with status and/or period_id.
Get comments and review notes for a task.
Get event history for tasks in a period.
Get workspace context: users, periods, entities, holidays, tags, permissions. Users include an active field — only assign active users to tasks. Inactive users may still appear as assignees on existing tasks.
Inspect a workbook link as a candidate reconciliation SOURCE for a reconciliation report and period without changing source connections or reconciliation balances. Returns the file and provider, the tabs (with which are format-valid and which have an entity column), whether an entity (organization_id) is required, the accounts the selected tab would cover for that period, format warnings/errors, conflicts with sources already supplying those accounts, and any existing connection of the same tab. If the file is inside a folder already connected to this report, the response names that folder, and after connecting the file is listed under it in Manage Sources. Work in stages: call with just url + period_id + report_id to see tabs; add tab_name (and organization_id for a single-entity sheet) to get coverage. status is needs_selection (ask the customer), blocked (fix something first), or ready (call connect_reconciliation_source with the same arguments). Requires the Manage Sources permission because it reads the document through the customer's connected provider. Not for task attachments — those are attach_link / list_task_attachments.
List workspace files available for attach_file — metadata only, no file contents. Returns TSV (file_id, name, size_bytes, created_at, created_by), newest first, capped at 200 rows; created_by is the uploader's display name. Use name_contains to narrow by file name (case-insensitive substring), and use the file_id with attach_file.
List all accounts in the chart of accounts.
List the spreadsheet reconciliation SOURCES active in a period — the Google Sheets / Excel workbooks that supply reconciliation balances for a report — with each source's tab, provider, entity, active window (this period only vs rolls forward), lifecycle state, last download, whether it has balances for the period, the report row keys (accounts) it covers, and the same warnings/errors the Manage Sources page shows. Use this to answer "what source backs this reconciliation?", "did my workbook sync?", or "why is a source missing?". Pass report_id to scope to one reconciliation report; omit it to see every report in the period. Reconciliation report ids are rep_… values — take them from the report_id column of list_tasks (rec_prepare_account rows) or from this tool's own output; list_reports does NOT list reconciliation reports. This is NOT the list of files/links attached to a task — for that use list_task_attachments. Returns TSV; the first line echoes the resolved period and scope. Sources removed during the period are hidden unless include_removed=true.
List all saved flux/general (V3) reports in the workspace, including reports not required for close. Reconciliation reports are NOT included: their rep_… ids come from the report_id column of list_tasks for rec_prepare_account tasks (or list_reconciliation_sources) and feed get_report_data with a period_id. This listing is not period-specific. Use list_tasks for period-specific required_for_close flags, or get_flux_requirements for a report’s requirement state and audit history (administrators only).
List everything attached to one task for a period — uploaded files AND support links, newest first. Returns TSV (type, id, name, size_bytes, created_at, created_by, url): type is file or link; id is the file_id (for detach_file) or resource_uri_id (for detach_link); url is set for links only, size_bytes for files only; created_at is when the file was attached, or when the link record was created. Use it to see existing attachments before adding one, to verify an attach or detach landed, or to find the id to detach. period_id is REQUIRED — attachments are period-specific.
List tasks in a period. Returns TSV format with deep-link URLs. Use filters to narrow results and reduce data. Use include_properties to add tag/property columns (e.g. "FSLI", "Team", "Location") — names are matched against workspace tag groups. Set templates=true to list recurring task templates (the template/abstract view) instead of a single period's instances — useful for finding tasks that do not generate in a given period, e.g. quarterly, annual, or custom-cadence tasks. For flux tasks, the is_material and requires_explanation columns are server-computed from each report's configured materiality thresholds (requires_explanation = required_for_close AND (material OR the report's always-require-explanation policy)) — use them to decide which flux rows need an explanation instead of assuming a fixed dollar or percent cutoff. required_for_close reflects the report’s period override for Flux instances; it is blank for templates and non-Flux tasks. Not-required tasks remain visible with their original statuses and materiality. Exclude them from outstanding-close summaries. required_only=true excludes not-required Flux reports; other progress exclusions still apply. For reconciliation tasks, in_scope is server-computed from the report's GL materiality threshold (abs GL balance vs the configured minimum): false means the reconciliation is Immaterial / not required this period and is excluded from progress, though it can still be submitted. Reconciliation tasks (task_type rec_prepare_account) also get a reconciliation_source column: the workbook whose latest download covers the task's account in its report (the tab is shown only when the same workbook is connected on several tabs; list_reconciliation_sources has the exact tab_name and URL); "multiple (N)" flags duplicate coverage and blank means no spreadsheet source backs it. Use list_reconciliation_sources for the full source detail. The blocked_by and blocking columns list each task's dependencies as task codes (the code column, e.g. NUM-306): blocked_by = tasks that must finish first, blocking = tasks this one holds up. Use set_task_dependencies to add or remove them. The parent column shows a subtask's parent as a task code (its key id when the parent is outside the listing) and is blank for top-level tasks; use create_task with parent_task_key to add a subtask, or set_task_parent to move existing tasks under a parent or detach them.
List workspaces the authenticated user has access to. Use this to find workspace IDs for set_workspace. Entries with mcp_access: false are workspaces where the user has a view-only role; they cannot be selected with set_workspace.
Query the underlying GL transaction lines for a specific report row within a date range. Returns individual journal entries, vendor payments, etc. as TSV. Use the row keys from get_report_data or build_report (the keys in the rows object). If results are too large, use build_report first with more specific pivots/filters to narrow down, then query lines on the narrower result.
Submit a bug report only when the user explicitly asks to send it or approves the proposed report. The report is stored by Numeric and sent to Numeric engineering's internal Slack with the user's and workspace's IDs. Explain this destination before asking for approval. Send a concise summary without credentials, personal data, customer financial data, raw tool responses, or full conversation text. Do not report errors automatically.
Add or remove dependencies between tasks (the "Blocked by" and "Blocking" lists on a task). task_key is the task being edited. blocked_by_task_keys are tasks that must finish before it; blocking_task_keys are tasks it holds up. Both lists describe the same link from either side — adding B to A's blocked_by is the same as adding A to B's blocking, so pass just one. Build every key from the key_id / key_type / report_id columns of list_tasks, whose blocked_by and blocking columns show the current dependencies as task codes. Adding a dependency that already exists, or removing one that does not, changes nothing and is not an error; a task cannot depend on itself; two tasks cannot block each other. With an array task_key each task is applied on its own: if any fail, the call returns an error naming the failed tasks and why, and the tasks that succeeded. Recurring tasks: the app links both the template and the current period's instance — call once without period_id (template, future periods) and once with period_id (this period) to do the same.
Set or clear the due date for a specific role on a task. Due dates are per-role (preparer, reviewer, second reviewer). For task instances, provide a calendar date. For templates, provide due date logic that calculates the date relative to each period.
Move existing tasks under a parent task (make them subtasks), or detach subtasks so they become top-level tasks. To create a new task as a subtask, use create_task with parent_task_key instead. Build every key from the key_id / key_type / report_id columns of list_tasks; its parent column shows each task's current parent. The parent must be a top-level Custom or Journal Entry task. Only Custom and Journal Entry tasks can be subtasks, and a task that has subtasks of its own cannot be moved under another, because subtasks go one level deep. Moved tasks go after the parent's existing subtasks, in the order given; a task already under the parent stays where it is, and a subtask can be moved straight to a new parent. Every task is checked before anything changes, so a call that breaks a rule changes nothing. Recurring tasks: the period and the template are linked separately — call once without period_id (template, future periods) and once with period_id (this period) to do both.
Set the active workspace for this session. Call list_workspaces first to see available workspaces. All subsequent tool calls will operate in this workspace.
Submit, unsubmit, approve, or return a task for a given role. Submit marks the role's work as done. Approve/return are for reviewers acting on submitted work. May send Slack notifications to task participants according to their notification settings.
Create or update a flux explanation for a specific row in a flux report. The explanation describes why a balance or amount changed between periods. Identify the row with the RowKey column from get_report_data or build_report (formatted as 'type#id', e.g. 'path#251'): set task_key.type to the part before '#' and task_key.id to the part after. Set content to null to clear an explanation. The period must be open and the task must not be submitted.
Update an existing holiday: rename it, move its dates, or change whether it recurs. Get holiday IDs from get_workspace_context. Changing dates or recurrence recalculates task due dates in all open periods (closed periods never change) — the response reports how many task assignments were swept; a name-only edit reports 0, which is expected. `recurs: true` repeats the SAME calendar date every year. To move a holiday, provide start and end together — for a single-day holiday pass end equal to start.
Update the recurrence frequency of an existing recurring task template. Always operates on the template; the change takes effect from the given period forward. Use `static` with `key: monthly | last_month_of_quarter | last_month_of_year` for standard cadences, `multi_month` with `months` (1-12) for custom calendars, or `never` to stop the task from recurring. For recon tasks, changing the frequency also reconciles open-period instances on or after `period_id` — pending instances that no longer fit the new frequency are removed, and new instances are generated where the new frequency applies.
Numeric Close ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Numeric Close's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.