Skip to main content
Glama
jakzaizzat

cukaimax-tax-authority

CukaiMax for AI agents

Smithery skills.sh jakzaizzat/cukaimax-agent MCP server

CukaiMax gives ChatGPT, Codex, Claude, Gemini, Cursor, VS Code, GitHub Copilot, Kiro and any Streamable HTTP MCP client a source-linked Malaysian individual-tax authority layer.

The public server covers:

  • YA2025 Form BE authority search and deterministic draft preparation.

  • YA2025 Form B authority search and preparation-readiness checks for sole proprietors, freelancers, Grab drivers and e-commerce sellers.

  • YA2026 source-verified planning changes, with filing fields blocked until HASiL publishes the official form and explanatory notes.

Endpoint: https://www.cukaimax.com/.well-known/mcp

No CukaiMax API key is required.

Install

Portable Agent Plugin

This repository is an Agent Plugins 1.0 package. Its root plugin.json, mcp.json, skills/ directory and public Streamable HTTP server can be loaded together by compatible clients including ChatGPT/Codex, Cursor, VS Code, GitHub Copilot and Kiro.

Install the repository URL through the selected client's plugin interface:

https://github.com/jakzaizzat/cukaimax-agent

ChatGPT and Codex

Paste this into the agent:

Read https://www.cukaimax.com/install-agent.md and install the CukaiMax Tax Authority for this project. Verify it by listing supported releases.

The repository also contains a complete OpenAI plugin package with an MCP connection and the CukaiMax tax-authority skill.

Claude Code

claude mcp add --transport http --scope project \
  cukaimax-tax-authority https://www.cukaimax.com/.well-known/mcp

Gemini CLI

Install this repository as an extension:

gemini extensions install jakzaizzat/cukaimax-agent

Or add only the MCP connection:

gemini mcp add --transport http --scope project cukaimax-tax-authority \
  https://www.cukaimax.com/.well-known/mcp

VS Code / GitHub Copilot

code --add-mcp '{"name":"cukaimax-tax-authority","type":"http","url":"https://www.cukaimax.com/.well-known/mcp"}'

Cursor

Use the one-click installer on cukaimax.com/install-agent, or merge:

{
  "mcpServers": {
    "cukaimax-tax-authority": {
      "type": "http",
      "url": "https://www.cukaimax.com/.well-known/mcp"
    }
  }
}

Kiro

Open the Powers panel, choose Add Custom Power → Import power from GitHub, and install:

https://github.com/jakzaizzat/cukaimax-agent

Kiro loads the portable skill and manages the remote MCP connection from the Agent Plugins manifests.

Smithery

Discover, inspect, and connect the same hosted MCP through the CukaiMax Smithery listing. Smithery has indexed all five read-only tools and eight public resources. The official registry release is also indexed as a hosted connector on Glama and as an open-source server at glama.ai/mcp/servers/jakzaizzat/cukaimax-agent. This repository includes a stdio catalog adapter (npm start) so Glama can start the process and run initialize / tools/list. Production clients should keep using the hosted Streamable HTTP endpoint.

Agent Skills registry

Install the indexed CukaiMax skill through the portable Agent Skills CLI:

npx skills add jakzaizzat/cukaimax-agent --skill cukaimax-tax-authority

The public listing is available on skills.sh.

Related MCP server: Conversor IAE-CNAE MCP Server

Example prompts

  • Should I use Form B or Form BE for YA2025?

  • What records should a Grab driver keep for deductible expenses?

  • Which YA2025 Form B worksheets apply to an e-commerce seller?

  • Check whether my fictional Form B example is ready for manual preparation.

  • What is confirmed for YA2026, and what is still blocked pending HASiL forms?

Safety and privacy

The public MCP is read-only and stateless. Do not send taxpayer names, identification numbers, credentials, receipts or account data. No tool files or submits a return to MyTax. CukaiMax source verification is not official HASiL approval.

License

The integration package is MIT licensed. Official tax materials remain subject to their publishers' terms. See the linked CukaiMax release records for source provenance.

Available Tools

5 tools
assess_form_b_2025_readinessAssess Form B 2025 preparation readinessA
Read-onlyIdempotent
Inspect

Check whether the source records, finalised accounts, official worksheets, and conditional schedules needed for manual Form B preparation are ready. This does not calculate or submit Form B.

ParametersJSON Schema
NameRequiredDescriptionDefault
auditNo
taxYearNo
recordsKeptYes
assessmentTypeYes
incentiveClaimNo
carriesOnBusinessYes
partnershipIncomeNo
residentIndividualYes
businessLossClaimedNo
businessAccountsReadyYes
incentiveApprovalReadyNo
taxPaymentRecordsReadyYes
capitalAllowanceClaimedNo
businessComputationReadyYes
businessLossScheduleReadyNo
partnershipStatementReadyNo
foreignIncomeScheduleReadyNo
personalReliefEvidenceReadyYes
capitalAllowanceScheduleReadyNo
assessmentIssuedInTaxpayerNameNo
foreignIncomeReceivedInMalaysiaNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive behavior. The description adds value by clarifying that this is a readiness check only and explicitly excludes calculation and submission, which is a meaningful behavioral boundary beyond the annotations. It does not describe the output shape, but the safety profile is well covered.

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 two sentences with no filler. It front-loads the core purpose, lists the relevant record types, and closes with an important exclusion. Every sentence earns its place.

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?

Given the tool has 21 parameters, 8 required booleans, a nested audit object, and no output schema, the description is too thin. It does not explain what the returned readiness result looks like, how required parameters interact, or what conditional schedule dependencies exist, so an agent would still need to infer much of the calling contract.

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 input schema has 21 parameters with 0% description coverage, and the description does not compensate. It only refers broadly to 'source records, finalised accounts, official worksheets, and conditional schedules,' leaving key parameters like assessmentType, partnershipIncome, foreignIncomeReceivedInMalaysia, and the various schedule-ready booleans 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 uses a specific verb ('Check whether...are ready') and identifies concrete resources: source records, finalised accounts, official worksheets, and conditional schedules. It further distinguishes itself from preparation/calculation/submission tools, especially the sibling prepare_be_2025_draft.

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

Usage Guidelines4/5

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

The context is clear: this tool is for assessing readiness before manual Form B preparation. It explicitly states what it does not do ('does not calculate or submit Form B'), providing a useful when-not signal, though it does not name sibling alternatives or explicitly sequence it before prepare_be_2025_draft.

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

get_tax_authority_releaseGet Malaysian tax authority releaseB
Read-onlyIdempotent
Inspect

Return a supported Form BE or Form B release, its official sources, validation result, review status, and known limitations.

ParametersJSON Schema
NameRequiredDescriptionDefault
auditNo
taxYearNo
formTypeNoBE

TDQS

B3/5.0
Behavior3/5

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

The annotations already communicate read-only, idempotent, non-destructive behavior, so less description is needed. The phrase 'supported' adds a hint of availability filtering and the response contents are useful, but the description does not disclose error cases, operational constraints, or required auth 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?

One sentence with no filler, front-loaded with the core action and resource, then a compact enumeration of return contents. Every word earns its place.

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 a nested audit parameter, the description is too thin. It does not clarify the taxYear values, the meaning of 'supported,' the audit fields, or how to choose among the sibling tools, leaving a nontrivial operation underspecified.

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 needs to compensate. It mentions Form BE or Form B, which maps to formType, but it does not explain the taxYear parameter, the audit object, or how they affect the release being returned.

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, 'Return,' and names the resource as a supported Form BE or Form B release, while also listing what is included: official sources, validation result, review status, and known limitations. It is clear on its own, but it does not explicitly contrast itself with sibling list/search tools.

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 usage guidance is provided. The description does not say when to use this tool instead of list_tax_authority_releases, search_tax_authority, or the preparation/assessment siblings, and it lacks any prerequisites, exclusions, or selection criteria.

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

list_tax_authority_releasesList Malaysian tax authority releasesA
Read-onlyIdempotent
Inspect

Discover supported years, forms, versions, statuses, capabilities, and limitations before selecting a release.

ParametersJSON Schema
NameRequiredDescriptionDefault
auditNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already convey that this is a safe, read-only, idempotent operation, so the description does not need to repeat those facts. It adds value by disclosing what the tool reveals: supported years, forms, versions, statuses, capabilities, and limitations. It does not mention pagination or exact response shape, but that is secondary for a discovery tool.

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 sentence, front-loaded with the tool's purpose and ending with the concrete dimensions the agent can discover. Every phrase earns its place and there is no redundant wording.

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 read-only listing/discovery tool with strong annotations and only one optional audit parameter, the description gives the agent enough context to call it at the right time and understand what can be learned. It does not detail the return structure, but given the explicit list of discovery dimensions, the omission is acceptable.

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?

The only parameter, audit, is an optional nested object with runId, sequence, and previousEventId, and schema description coverage is 0%. The description does not explain this parameter at all, leaving the agent without guidance beyond raw field names and JSON structure. Since schema coverage is low and the description fails to compensate, this dimension is poorly served.

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 clear discovery-oriented verb and names the resource—tax authority releases—and its purpose: to learn supported years, forms, versions, statuses, capabilities, and limitations before selecting a release. It distinguishes itself from fetch-style siblings like get_tax_authority_release by framing this as the pre-selection discovery step, though it does not explicitly name alternatives.

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

Usage Guidelines4/5

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

The description gives a clear context for use: call this tool before selecting a release, so the agent can understand available options and constraints. It does not explicitly name sibling tools or state when not to use it, so it falls just short of full alternative-routing guidance.

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

prepare_be_2025_draftPrepare Form BE 2025 draftA
Read-onlyIdempotent
Inspect

Compile reviewed taxpayer inputs and a deterministic TaxBrain relief evaluation into source-linked Form BE fields. This tool never stores data or submits to MyTax, and output remains review-gated.

ParametersJSON Schema
NameRequiredDescriptionDefault
auditNo
incomeYes
creditsNo
rebatesNo
taxYearNo
paymentsNo
donationsNo
inputBlockersNo
assessmentTypeYesForm BE A6 assessment-type code selected by the taxpayer
reliefEvaluationYes
assessmentIssuedInTaxpayerNameNoRequired for A6 code 1 or 2; true only when the joint assessment is issued in this taxpayer’s name

TDQS

A4.2/5.0
Behavior5/5

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

The description adds valuable behavioral facts beyond the annotations: 'never stores data or submits to MyTax', 'output remains review-gated', and 'source-linked'. These details align with readOnlyHint=true, idempotentHint=true, and destructiveHint=false, with no contradiction.

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 two concise sentences with the core action front-loaded and the safety/review constraints stated immediately after. No filler or redundant 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?

Given 11 parameters, nested objects, no output schema, and low schema coverage, the description covers the tool's purpose and constraints but leaves out guidance on how to structure the inputs or what the returned draft will contain. It is adequate for selection but not fully complete for invocation.

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 low at 18%, so the description must compensate for undocumented parameters, but it only generically references 'taxpayer inputs' and 'relief evaluation'. It does not explain required fields like assessmentType or income, or clarify the meaning of the many nested objects.

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 the specific verb 'Compile' and names the resource 'Form BE fields', with clear inputs ('reviewed taxpayer inputs and a deterministic TaxBrain relief evaluation'). It also distinguishes itself from the sibling tools, which are about tax authority releases and readiness assessment, by focusing on draft preparation.

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

Usage Guidelines4/5

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

The description clearly implies the tool should be used after inputs have been reviewed and after a deterministic TaxBrain relief evaluation exists. It does not provide explicit exclusions or name alternatives, but the context signals and sibling list make the intended usage reasonably clear.

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

search_tax_authoritySearch Malaysian tax rulesA
Read-onlyIdempotent
Inspect

Search cited Form BE or Form B rules by topic, field ID, rule ID, or TaxBrain category. Returns official source records with every match.

ParametersJSON Schema
NameRequiredDescriptionDefault
auditNo
queryYesTax topic, Form BE field, or TaxBrain category
taxYearNo
formTypeNoBE

TDQS

A4/5.0
Behavior4/5

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

Annotations already reveal readOnly, idempotent, and non-destructive behavior, so the description only needs to add context beyond that. It does so by noting the tool 'Returns official source records with every match', which clarifies result completeness and source authority. It does not contradict the annotations.

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?

Two compact sentences pack in the action, resource, search dimensions, and return behavior with no filler. The key scoping information is front-loaded and every clause adds value.

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 read-only search tool, the description covers scope, search inputs, and return shape ('official source records with every match'). It lacks explicit guidance on taxYear semantics and the internal audit parameter, but those are partially addressed by schema defaults and the tool's nature. Overall it is adequate for successful invocation without being exhaustive.

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 description coverage is only 25%, so the description carries significant parameter-documentation responsibility. It enriches the query semantics by mentioning field ID and rule ID, and it covers formType via 'Form BE or Form B', but taxYear and audit are not explained in the description. This is a partial, not complete, compensation for the low schema 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 opens with a specific verb ('Search'), names the resource ('cited Form BE or Form B rules'), and enumerates search dimensions ('topic, field ID, rule ID, or TaxBrain category'). This clearly separates it from sibling tools like list_tax_authority_releases or prepare_be_2025_draft.

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 when to use the tool by defining it as a search operation, but it does not explicitly state when to choose this over sibling tools, nor does it name alternatives. With siblings like list_tax_authority_releases and get_tax_authority_release, some implicit differentiation exists, but no explicit usage boundary is provided.

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. 5 tool updatesv0.1.0
    • First observedassess_form_b_2025_readiness
    • First observedget_tax_authority_release
    • First observedlist_tax_authority_releases
    • First observedprepare_be_2025_draft
    • First observedsearch_tax_authority

TDQS

A3.8/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct stage of the workflow: release discovery, release retrieval, rule search, draft preparation, and readiness assessment. No two tools could be reasonably interchanged.

Naming Consistency4/5

All tool names use a verb-first snake_case pattern, but the objects are inconsistent: 'tax_authority_releases', 'tax_authority', 'be_2025_draft', and 'form_b_2025_readiness' mix naming styles. 'search_tax_authority' is also less descriptive than the others.

Tool Count5/5

Five tools is well-scoped for a tax-authority assistant, covering discovery, lookup, search, readiness, and draft preparation without unnecessary redundancy.

Completeness4/5

The set covers the main workflow end-to-end: discover releases, retrieve a release, search rules, assess readiness, and prepare a draft. Minor gaps like update, submit, or validation tools are absent, but the descriptions suggest these are intentionally out of scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Remote MCP server that lets any AI agent submit Saudi Arabia tax invoices to ZATCA (Fatoora Phase 2) — the Zakat, Tax and Customs Authority national e-invoicing gateway.
    MIT
  • F
    license
    Not graded
    quality
    D
    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
    C
    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.
    MIT