Skip to main content
Glama

fisc

Сервер MCP с открытым исходным кодом для профессионального налогового ПО.

Подключайте AI-агентов к Taxprep, DT Max и другим канадским пакетам для подготовки налоговых деклараций через Model Context Protocol.

Что это такое?

Канадские бухгалтерские фирмы готовят налоговые декларации в таком ПО, как Taxprep (Wolters Kluwer) и DT Max (Thomson Reuters). Эти системы создавались для профессиональных налоговых рабочих процессов, а не для единого интерфейса для AI-агентов. fisc — это открытый уровень интероперабельности, который призван дать агентам единообразный способ чтения, заполнения и управления декларациями в различных налоговых программах.

Your AI agent
    ↓ MCP
   fisc
    ↓ adapters
Taxprep  ·  DT Max  ·  ...

Related MCP server: brasilnfe-mcp

Почему с открытым исходным кодом?

Мы не считаем, что коннектор должен быть точкой блокировки.

Бухгалтерские фирмы должны иметь возможность подключать AI к уже используемому налоговому ПО через интерфейс, который можно проверять, переносить и дополнять. Общий уровень интероперабельности также упрощает разработчикам и поставщикам ПО добавление адаптеров без повторного создания одной и той же инфраструктуры в частном порядке.

Coalesc строит свой продукт поверх этого уровня: рабочий процесс взаимодействия, интеллектуальный анализ документов, доказательства, оркестрация, контроль проверки и логика, определяющая, что должно произойти дальше. Открываем рельсы; конкурируем на уровне интеллекта и рабочего процесса.

Статус

Ранняя разработка. fisc пока не работает. Сначала мы создаём адаптер для Taxprep через CCH iFirm Taxprep Web API, затем исследуем наиболее подходящий путь для DT Max.

Планируемые инструменты

Инструмент

Описание

create_return

Создать новую налоговую декларацию для налогоплательщика

set_field

Установить значение в декларации (например, доход от работы, медицинские расходы)

get_field

Прочитать значение из декларации

list_forms

Перечислить доступные формы в декларации

get_diagnostics

Получить диагностику проверки

list_returns

Перечислить существующие декларации

Планируемые адаптеры

  • Taxprep (CCH iFirm Taxprep Web API) — в разработке

  • DT Max (Thomson Reuters) — путь интеграции исследуется

  • И другие

Архитектура

fisc использует нейтральный к поставщику слой налоговых концепций. Вместо того чтобы заставлять агента разбираться в специфичных для ПО идентификаторах ячеек, он может работать с семантическими концепциями:

// What your agent says:
await client.callTool("set_field", {
  return_id: "2026-john-smith",
  concept: "employment_income",
  value: 82400,
  source: "t4_acme.pdf"
});

// An adapter translates that concept to the tax software's native representation.

Сопоставления концепций с поставщиками ведутся отдельно для каждого налогового года, ПО и типа декларации.

Начало работы

Примечание: fisc пока не работает. Поставьте звезду репозиторию, чтобы следить за прогрессом.

# Clone
git clone https://github.com/coalesc/fisc.git
cd fisc

# Install
npm install

# Configure (when adapters are ready)
cp .env.example .env
# Add your CCH iFirm API credentials

# Run
npm start

Структура проекта

src/
  index.ts              # MCP server entry point
  concepts/             # Vendor-neutral tax concept definitions
  adapters/
    taxprep/            # CCH iFirm Taxprep adapter
    dtmax/              # DT Max adapter (planned)
  tools/                # MCP tool implementations

Участие в разработке

Мы приветствуем вклад — особенно:

  • Новые адаптеры для профессионального налогового ПО

  • Сопоставления концепций для дополнительных типов деклараций (T2, T3, T5013)

  • Обновления сопоставлений для новых налоговых годов

  • Более безопасные шаблоны инструментов и проверки для AI-ассистированных налоговых рабочих процессов

См. CONTRIBUTING.md для получения рекомендаций.

Кто это создаёт?

fisc создаётся компанией Coalesc, которая разрабатывает комплексное рабочее пространство, где бухгалтеры и AI вместе готовят, проверяют и продвигают взаимодействие с клиентами. Мы планируем использовать fisc как уровень интероперабельности между этим пространством и налоговым ПО, которое уже используют фирмы.

Лицензия

Лицензия Apache 2.0

Available Tools

8 tools
create_returnB

Create or validate creation of a tax return. Mutations default to validate-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNovalidate (default) or commit
tax_yearYes
return_typeYes
taxpayer_refYesOpaque taxpayer reference. Do not pass a SIN directly through the MCP tool.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It usefully reveals that mutations default to validate-only, meaning the tool does not commit changes unless explicitly set to commit mode. The SIN warning in the schema also adds important safety context, though the description itself does not discuss side effects or commit-mode consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences and front-loads the core purpose. The phrase 'Create or validate creation' is slightly awkward and redundant, but the overall text is efficient and every sentence contributes meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's main intent and its default validate-only behavior, which is essential for safe invocation. However, with no output schema and no annotations, it does not explain what validation returns, what commit does exactly, or what errors might occur, leaving moderate gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool description adds no parameter-level meaning. Schema description coverage is only 50%, with tax_year and return_type left undocumented; the description does not compensate for those gaps. It relies entirely on the schema's mode and taxpayer_ref descriptions, which are insufficient for full agent comprehension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Create or validate creation') and a resource ('tax return'), and the 'validate-only' default clarifies the tool's dual behavior. It is distinguishable from sibling list/read tools like list_returns or set_field, though it doesn't explicitly name a sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used to create or validate a tax return, but it does not explicitly say when to use it versus alternatives or what conditions favor validate vs. commit mode. The 'Mutations default to validate-only' sentence gives contextual guidance, but no exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_capabilitiesA

Describe the configured adapter and supported operations

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. The verb 'Describe' implies a read-only introspection operation, and mentioning 'supported operations' indicates the kind of information returned. Still, it does not state side-effect freedom, output format, or adapter-specific context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, tightly worded sentence conveys the tool's purpose with no filler. Every word earns its place and the core concept is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter introspection tool, the description covers what the tool returns and its scope. It omits any detail about response structure, but the simple nature of the tool makes this a minor gap rather than a blocking one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty schema, so no parameter documentation is needed. Baseline 4 applies because no parameter semantics are required for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Describe') and a clear resource ('the configured adapter and supported operations'). It clearly distinguishes this introspection tool from siblings like list_forms or get_field, which act on domain data rather than tool capabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: call this tool when you need to know what the current adapter supports. However, it does not explicitly contrast with alternatives or state when not to use it, leaving some room for inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_diagnosticsC

Retrieve validation diagnostics for a return

ParametersJSON Schema
NameRequiredDescriptionDefault
return_idYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It implies a read-only retrieval but does not explicitly state side effects, data format, or any error conditions. The minimal wording offers no deeper behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. It front-loads the action and resource. However, it is too sparse to count as well-structured; it is more under-specified than effectively structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is incomplete. It lacks details on what the diagnostics contain, how they are returned, or any context about the return_id. An agent would need to infer too much.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only says 'for a return,' which loosely implies return_id is a return identifier, but it does not explain the parameter's format, purpose, or constraints. This is insufficient given the zero coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('Retrieve') and specific resource ('validation diagnostics for a return'), distinguishing it from siblings like get_field or get_capabilities. An agent can understand the core action without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention any prerequisites, typical scenarios, or conditions that would favor this tool over siblings like get_field or list_returns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fieldC

Read a tax field using a vendor-neutral concept

ParametersJSON Schema
NameRequiredDescriptionDefault
conceptYes
tax_yearYes
return_idYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the operation is a read, which is useful, but it does not describe return format, error conditions, pagination, access requirements, or behavior when the requested concept is unsupported.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It is appropriately compact, though the phrase 'vendor-neutral concept' is somewhat vague and could be clearer without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read operation with no output schema, no annotations, and three undocumented required parameters, the description is too sparse. It does not explain what a 'concept' is, how to discover valid concepts, or how the return value is shaped. Sibling list_concepts could have been referenced but is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. 'Vendor-neutral concept' adds some meaning for the concept parameter, but return_id and tax_year are left entirely to their self-evident names. No parameter-level detail is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific action ('Read a tax field') and resource ('tax field'), with the additional qualifier 'vendor-neutral concept' to indicate the lookup mechanism. It is distinguishable from sibling set_field (write operation) and list_concepts (listing concepts), though it does not explicitly name or contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The verb 'Read' implies a read operation, but there is no explicit context, exclusions, or mention of suitable alternatives such as set_field for writing or list_concepts for discovering available concepts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_conceptsB

List verified vendor-neutral tax concepts for a return type

ParametersJSON Schema
NameRequiredDescriptionDefault
return_typeYesTax return type

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. 'List' communicates a read-only operation, and 'verified vendor-neutral' adds filtering behavior. However, it doesn't disclose ordering, pagination, permissions, or response format, though the tool is simple enough that this is a modest gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence includes the key qualifiers 'verified' and 'vendor-neutral' without redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter list tool with no output schema, the description plus a fully described enum parameter is sufficient for basic invocation. The main missing piece is usage selection guidance, but that is covered under usage_guidelines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the only parameter has an enum and description. The description's 'for a return type' adds little beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('List ... tax concepts') and adds qualifiers ('verified vendor-neutral') that distinguish it from list_forms and list_returns. It doesn't explicitly name a sibling, but the resource is distinct enough to prevent confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to choose this tool over list_forms or list_returns, nor any exclusions or prerequisites. An agent must infer the appropriate context from the tool name and sibling names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_formsB

List forms in a tax return

ParametersJSON Schema
NameRequiredDescriptionDefault
return_idYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the read-only nature (listing) but doesn't specify what happens if the return_id is invalid, whether it returns only form identifiers or full details, or any output format. For a read operation, the missing behavior context is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence with no waste. The core action and scope are front-loaded, making it efficient for agents to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one required parameter and no output schema, so the description is mostly adequate. However, it lacks information on what forms the output contains (e.g., form IDs, statuses) and any edge case behaviors. Given the simplicity, it's acceptable but could be clearer on the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has only one parameter with 0% description coverage, so the description must clarify its meaning beyond the type. The description mentions 'in a tax return' which implies return_id is the tax return identifier, adding some context. However, it doesn't specify the format or constraints, but given the low complexity, this is minimally adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('List') and resource ('forms') with a scope ('in a tax return'), distinguishing it from siblings like list_returns and list_concepts. However, it doesn't explicitly differentiate from list_returns or list_concepts beyond the resource name, but the purpose is reasonably clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when you need forms within a specific tax return, suggested by the 'in a tax return' scope, especially compared to list_returns for listing returns. However, it doesn't explicitly state when NOT to use it or what alternatives exist, leaving some inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_returnsC

List tax returns visible to the configured vendor adapter

ParametersJSON Schema
NameRequiredDescriptionDefault
tax_yearNo
return_typeNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds one scoping behavior ('visible to the configured vendor adapter') but omits any indication of read-only nature, required permissions, response format, or pagination. For a no-annotation tool this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, front-loading the action and then the scope. It is concise and every word earns its place, though it is sparse enough to reduce overall helpfulness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, an agent cannot know the shape of the returned tax returns, whether pagination exists, or how the two optional parameters affect results. The description is a purpose statement, not a usable contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not mention either parameter. The schema provides only names and type/enum/range constraints, leaving the domain meaning of tax_year and return_type unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List tax returns', and the qualifier 'visible to the configured vendor adapter' clarifies the scope. This distinguishes it from sibling list tools like list_forms and list_concepts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. It does not mention sibling tools, exclusions, or conditions that should lead an agent to prefer this over other list or retrieval tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_fieldB

Set or validate a tax field using a vendor-neutral concept. Mutations default to validate-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNovalidate (default) or commit
valueYes
conceptYes
tax_yearYes
return_idYes
evidence_pageNo
evidence_checksumNo
evidence_source_idNo
evidence_source_typeNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It usefully discloses that mutations default to validate-only, an important safety-relevant behavior. However, it omits other behavioral details such as what a committed mutation does, whether the action is reversible, required permissions, or what the response looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler, and the primary action is front-loaded. It is efficiently structured, although it could use the saved space to add a bit more parameter or behavior guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, 4 required, no output schema, and no annotations, the description is not complete enough for reliable invocation. It does not explain how evidence parameters relate to validation/commit, what validate-only mode returns, or what commit actually does, leaving substantial gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 11%, so the description must compensate for undocumented parameters. It adds meaning for 'concept' (vendor-neutral) and indirectly for 'mode' (mutations default to validate-only), but it leaves the required return_id, tax_year, and value, as well as all evidence_* parameters, without semantic explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Set or validate'), a clear resource ('a tax field'), and the key qualifier ('using a vendor-neutral concept'). This distinguishes set_field from the read-oriented sibling get_field and the concept-listing sibling list_concepts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that the tool is used to set or validate a field, and notes that mutations default to validate-only, which gives context for the mode parameter. However, it does not explicitly say when to choose 'validate' versus 'commit', nor does it mention alternatives such as get_field for reading or list_concepts for finding valid concepts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.3.0
    • First observedcreate_return
    • First observedget_capabilities
    • First observedget_diagnostics
    • First observedget_field
    • First observedlist_concepts
    • First observedlist_forms
    • First observedlist_returns
    • First observedset_field

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct operation: capabilities introspection, concept discovery, return creation, field reads/writes, form/return listing, and diagnostics. No two tools have overlapping responsibilities, so an agent can reliably select the right tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (get_, list_, create_, set_). The mix of get_ vs list_ for read operations is standard and distinguishes single-item retrieval from collection listing.

Tool Count5/5

Eight tools are well-scoped for the tax-return domain, covering discovery, creation, field manipulation, listing, and diagnostics. Each tool earns its place without unnecessary redundancy or bloat.

Completeness4/5

The set supports a validate-first workflow with creation, field access, listings, and diagnostics. It lacks explicit update/delete operations for returns, but set_field covers field-level mutation and deletion may be out of scope for this adapter.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A sovereign, MIT-licensed MCP server for US tax operations, enabling offline-capable and self-hostable tax workflow management.
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    MCP server that exposes Brazilian tax infrastructure as tools, resources, and prompts, enabling AI agents to emit and manage fiscal documents (NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e) through natural language.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A standalone MCP server for Indian personal income-tax work (ITR-1/2/3/4 + post-filing notices) with 8 deterministic tools, running fully offline with no API keys.
    21 PyPI
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that connects AI agents to 34,500+ Australian Taxation Office documents, providing cited answers, tax deduction discovery, depreciation scheduling, BAS checklists, and audit risk assessment through 13 specialized tools.
    174 npm
    11
    AGPL 3.0