These tools require API access: Manage and Taxes: View in the connected
company. OAuth
finta:read is sufficient. Permissions are checked on each call,
and a public ID cannot select a different company. All three tools are read-only.
Try asking:
- “Have we filed our 2025 taxes?”
- “What is our 2025 R&D credit, and does payroll submission need action?”
- “Which 2025 1099 records still need a W-9?”
Search or retrieve by ID
For discovery, omitid and pass filters, or pass an empty argument object to
search all available records. Omit year to search all available years; there
is no implicit current-year default. Filters combine with AND.
The examples below show the tool name and arguments your MCP client sends.
Your client handles OAuth and the MCP transport.
id alone:
Filters
Every tool accepts an exact four-digityear from 1000 through 9999, limit
(1–500, default 100), and starting_after for pagination. The year is the tax
year for filings/credits and the reporting year for 1099s, not submission year.
Use JSON booleans (
true or false), rather than strings. Passing false applies
the filter; it is different from omitting the argument.
Results and pagination
Successful calls include the same JSON instructuredContent and a text content
block, with isError: false. Both search and ID retrieval return data,
has_more, and next_cursor in a list envelope. An ID lookup returns one record,
has_more: false, and next_cursor: null. A missing or inaccessible ID is an
error, not an empty successful result.
If has_more is true, repeat the same tool and filters, adding the returned
next_cursor unchanged as starting_after. Never use a record ID as a cursor.
Pagination is live, so records can change between pages. For an invalid or stale
cursor, start a fresh search with the desired filters.
Illustrative exact-ID structuredContent, with synthetic IDs and timestamps:
Annual 1099 summaries
Onlysearch_1099s includes summaries. Filter searches return complete annual
reports selected by year, independent of other filters or pagination.
For example, pending: true restricts data to pending records, while
summaries still counts the year’s filed records too. Summaries repeat on each
page; never add their counts across pages. Required equals pending plus
filed; review-required records are counted separately.
ID retrieval returns summaries: [] because no annual summary was requested.
It does not establish zero annual counts. Search by year to get the summary.
An absent report is unknown; an existing report with no required or unconfirmed
records is not_required. These describe tracked records, not legal obligations.
Counts describe filing records, not unique recipients; do not merge records by
vendor name. The 1099 guide
defines the record and annual-summary stages.
Interpret progress and amounts
search_taxes reads the recorded filing workflow. One income record shares a
filing status across federal and recorded state jurisdictions. Preserve any
unmapped_jurisdictions; recognized codes may not cover every recorded state.
filed means workflow completion is recorded, without establishing authority
acceptance or payment. Read filing_status even when no PDF is available. See
the filing guide for status definitions.
search_tax_credits returns integer USD cents. Divide by 100 for dollars, and
keep null as unknown rather than converting it to zero. State amount_basis
when reporting a credit: estimate, prepared_return, filed_return, or null
when unknown. claimed describes a positive credit recorded in the filed
income-tax return; payroll_submission.status separately describes payroll
submission recorded in Finta. submitted does not establish provider acceptance,
and payroll allocation is not a refund received. The credit guide
defines the amounts, claim stages, and payroll stages.
Available tax PDFs and W-9/1099 document links expire after five minutes. Retrieve
the record again with id alone to refresh them. Keep signed links private.
An empty collection does not establish that a company has no tax obligations.
Treat future unknown status values as unrecognized rather than complete.
Errors and limits
A business failure returnsisError: true with text content in the MCP result,
even when the transport returns HTTP 200. API error codes and parameters appear
in that text. They are not a REST error object in structuredContent.
An expired or revoked OAuth token is a transport authentication failure. Let the
client refresh it, or reconnect. Calls consume the existing MCP allowance;
the internal API read does not consume an additional API call. Honor rate-limit
retry guidance and wait for the reset or an allowance change after a monthly
limit rejection.
These tools read existing records. They do not calculate or claim credits, file
returns or 1099s, send W-9 requests, or change tax records.