Skip to main content
Glama

UpGrowth: business data for Algeria, Tunisia and Morocco

Get the business tax rates of a country

get_tax_rates
Read-only

Get the business tax rates in force in 2026 for a country: the corporate income tax (the standard rate where there is one, the particular rates by sector or activity and the minimum tax), the value added tax rates and the main withholding tax rates, plus, for Algeria, the IRG income tax scale that applies to salaries (personal_income_tax) and the IFU flat tax of micro-businesses (flat_tax), and, for Morocco, the IR income tax scale (personal_income_tax) and the flat tax of the auto-entrepreneur (flat_tax), each with the legal article it comes from, the date it applies from when the text gives one and the official page it was read on. Algeria (DZ, the default country), Tunisia (TN) and Morocco (MA) have this dataset; for Tunisia, personal_income_tax and flat_tax are null. It is a reading of public texts, not tax advice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoLanguage of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).fr
countryNoCountry of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.DZ

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

With annotations already indicating readOnlyHint=true and openWorldHint=false, the safety profile is covered. The description adds valuable behavioral context about the data source ('a reading of public texts, not tax advice'), null return values for Tunisia, and the return of legal articles and dates. However, it doesn't cover rate limits or other operational aspects, and no output schema exists so return format is partially inferred.

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

Conciseness2/5

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

The description is a single, extremely long sentence that packs many details but is hard to parse. It is not front-loaded effectively; critical routing information (supported countries) is buried near the end. The verbosity exceeds what is needed for an agent to select and invoke the tool, and every sentence does not earn its place given schema coverage.

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?

Given the tool's complexity (multiple tax types, country-specific datasets), the description provides comprehensive context including supported countries, data sources, null values, and the non-advice disclaimer. With no output schema and annotations covering safety, it is nearly complete, though the lack of return structure detail slightly reduces completeness.

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%, so the schema already fully documents both parameters (lang enum, country pattern and allowed values). The description adds contextual examples (e.g., 'Algeria (DZ, the default country)') but doesn't provide syntax or format details beyond what the schema offers. Baseline 3 is appropriate when the schema does the heavy lifting.

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 (Get) and precise resource (business tax rates including CIT, VAT, withholding, and per-country extras like IRG/IFU for Algeria and IR/auto-entrepreneur for Morocco). It clearly distinguishes from siblings like calculate_ifu and get_social_contributions by focusing exclusively on tax rate data.

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

Usage Guidelines5/5

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

The description explicitly states which countries are supported (DZ, TN, MA), notes default settings, and mentions that list_countries shows available datasets. It also explains that unsupported countries return country_not_available, giving clear when-to-use and when-not-to-use guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.