# UpGrowth: business data for Algeria, Tunisia and Morocco (remote · www.upgrowth.dz)

Official business data for Algeria, Tunisia and Morocco: activity codes, legal forms, tax, gazettes.

- Trust score: 71/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-07

## Components

- remote · `www.upgrowth.dz`: 71/100 (this document), [markdown](https://verifymcp.io/servers/z4kary-upgrowth-mcp/www.md), [page](https://verifymcp.io/servers/z4kary-upgrowth-mcp/www)

## Channel facts

- Endpoint: `https://www.upgrowth.dz/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-07.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 61/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 10277 tokens (~540/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 19 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the UpGrowth: business data for Algeria, Tunisia and Morocco MCP server?

UpGrowth: business data for Algeria, Tunisia and Morocco is a hosted endpoint at https://www.upgrowth.dz/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http z4kary-upgrowth-mcp 'https://www.upgrowth.dz/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "z4kary-upgrowth-mcp": {
      "url": "https://www.upgrowth.dz/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "z4kary-upgrowth-mcp": {
      "type": "http",
      "url": "https://www.upgrowth.dz/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.z4kary-upgrowth-mcp]
url = "https://www.upgrowth.dz/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "z4kary-upgrowth-mcp": {
      "type": "remote",
      "url": "https://www.upgrowth.dz/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add z4kary-upgrowth-mcp --url 'https://www.upgrowth.dz/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  z4kary-upgrowth-mcp:
    url: "https://www.upgrowth.dz/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "z4kary-upgrowth-mcp": {
      "Transport": "http",
      "Url": "https://www.upgrowth.dz/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add z4kary-upgrowth-mcp -t streamable-http -u 'https://www.upgrowth.dz/mcp'
```

### Other

```json
{
  "mcpServers": {
    "z4kary-upgrowth-mcp": {
      "type": "http",
      "url": "https://www.upgrowth.dz/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-07 (score 71)

First indexed and scored.

## MCP tools (19)

### `search_activity_codes` (~1043 tokens)

Search CNRC activity codes

Search the official Algerian nomenclature of commercial activities kept by the CNRC (Centre National du Registre du Commerce): the six-digit codes written on a trade register entry. Use it to find the code of an activity described in French, Arabic or English, to check whether an activity is free, regulated (prior authorization needed) or blocked, or to browse the activities of a sector. Returns a page of activities, each with its code, status, labels in the three languages, sector, group and the URL of its page on upgrowth.dz. meta.total is the number of matches. For Tunisia (country TN) it searches the official Tunisian nomenclature of activities, the NAT 2009 of the national statistics institute (INS): four-digit class codes (01.11 is written 0111), labels in French only, a section letter A to U as sector, each record citing its official source. The NAT is a statistical classification, not the list of activities that need an authorization: the status comes from a hand-reviewed map of its classes to the authorisations of annex 1 of décret 2018-417, the exclusive list (reglementee with the authorisations and their legal references, libre because the list is exclusive), never libre by default: without the map the status is not_determined. With list=authorisations it searches the authorisations themselves. Tunisia needs an API key. For Morocco (country MA) it searches the official NMA 2010 nomenclature of the Haut-Commissariat au Plan instead: four-digit codes, labels in French, the section letter A to U as sector, the branch and the sub-branch as group; the nomenclature is statistical and gives no authorization regime, so every Moroccan code has the status not_determined, never free. Morocco needs an API key. Without an API key at most 10 rows come back and meta.truncated says when more matched, so do not present such a list as complete.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).
- `limit` (integer): Maximum number of results in the page, from 1 to 100. Defaults to 20. Without an API key at most 10 rows come back.
- `list` (string): Tunisia only (country TN): nat (the default) searches the classes of the NAT 2009; authorisations searches the 100 authorisations of annex 1 (and the 27 of annex 2, those to be struck out) of décret…
- `offset` (integer): Number of results to skip, from 0 to 10000, to read the next pages. Defaults to 0. meta.total tells how many results match. Without an API key it must be 0: a search cannot be paged.
- `q` (string): Search text, at most 100 characters. Digits only, for example 5011: matches the activity codes that start with them. Words: every word must start a word of the activity label in French, Arabic or Eng…
- `sector` (string): Keep only activities of this sector. Algeria: the CNRC sector, given as its digit: 1 goods production, 2 artisanal production, 3 wholesale distribution, 4 import for resale, 5 retail distribution, 6…
- `status` (string): Keep only activities with this status: libre (free, no specific authorization needed to register), reglementee (regulated, a prior authorization or permit is required) or bloquee (blocked, cannot be…

### `get_activity_code` (~537 tokens)

Get a CNRC activity code

Get one activity of the Algerian CNRC nomenclature by its six-digit code, for example 101101: its status (free, regulated or blocked), its labels in French, Arabic and English, its sector and group, the URL of its page on upgrowth.dz and, in French, the official text of the code: the supervising authority, the type of authorization, what the activity covers, its accessory activities and its legal references. Use it when the user already gives a code, or after search_activity_codes. Returns an error when the code does not exist. For Tunisia (country TN) pass the four-digit NAT 2009 class code, for example 0111: you get its label in French, its section, division and group, its status (reglementee with the authorisations of annex 1 of décret 2018-417 that govern it and their legal references, or libre because that list is exclusive) and the official source. Pass A1-017 or A2-005 to get one authorisation of the decree as a record. For Morocco (country MA) pass the four-digit NMA 2010 code, for example 0111: you get its labels, section, branch, sub-branch and its status not_determined.

Input parameters:

- `code` (string, required): Activity code. Algeria: the CNRC code, six digits, for example 101101. Tunisia (country TN): the NAT 2009 class code, four digits, for example 0111 or 01.11, or the code of an authorisation of décret…
- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `search_anae_activities` (~652 tokens)

Search ANAE auto-entrepreneur activities

Search the official ANAE nomenclature: the list of activities that the Agence Nationale de l'Auto-Entrepreneur opens to the auto-entrepreneur status in Algeria, grouped in domains. Use it to check whether an activity can be practised as an auto-entrepreneur and to find its six-digit code. Returns a page of activities with code, labels and domain. meta.total is the number of matches. For Morocco (country MA) the status is defined by exclusion: it returns the professions that decree 2-15-263 excludes from the auto-entrepreneur status (architects, lawyers, doctors, notaries and so on), each with key (an UpGrowth identifier, code is null: Morocco gives them no code), status excluded and its legal basis; it holds no list of eligible activities. Morocco needs an API key. Without an API key at most 10 rows come back and meta.truncated says when more matched, so do not present such a list as complete. For Tunisia (country TN) there is no list of activities: the one record is the regime of the auto-entrepreneur as the finance law 2023 states it (key regime), and meta.activity_list says that the official list of activities is not loaded, so an activity that is not in the answer is neither admitted nor excluded: never tell a user it is not eligible. Tunisia needs an API key.

Input parameters:

- `country` (string): Country 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 data…
- `domain` (string): Keep only activities of this ANAE domain, given by its six-digit domain code (it ends in 0000), for example 010000 for Advice, Expertise and Training. Every result carries its domain. Not used for Tu…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).
- `limit` (integer): Maximum number of results in the page, from 1 to 100. Defaults to 20. Without an API key at most 10 rows come back.
- `offset` (integer): Number of results to skip, from 0 to 10000, to read the next pages. Defaults to 0. meta.total tells how many results match. Without an API key it must be 0: a search cannot be paged.
- `q` (string): Search text, at most 100 characters. Digits only: matches the ANAE codes that start with them. Words: every word must start a word of the activity label in French, Arabic or English. Accents and lett…

### `get_anae_activity` (~490 tokens)

Get an ANAE activity

Get one activity of the Algerian ANAE nomenclature (auto-entrepreneur status) by its six-digit code, for example 010101: its labels in French, Arabic and English and its domain. Use it when the user gives a code, or after search_anae_activities. Returns an error when the code does not exist. For Tunisia (country TN) pass the key regime: you get who qualifies (Tunisian nationality, individual practice, the sectors, the ceiling of 75,000 dinars of yearly turnover), the exclusions, the duration, the registration, the single contribution with what it replaces and what it is made of, the late payment fine and the deregistration, each with the article of the law it comes from. The official list of activities is not loaded: say so, and never present the absence of an activity as an exclusion. For Morocco (country MA) pass the key of an excluded profession (for example avocats) to get it with the regime, or the key regime to get the regime alone: the definition, the turnover ceilings (500 000 and 200 000 dirhams), the tax rates (0.5 % and 1 %), the obligations and the legal texts (law 114-13 and its decrees).

Input parameters:

- `code` (string, required): ANAE activity code, six digits, for example 010101. For Morocco (country MA) it is the key of an excluded profession, for example avocats, or regime. Find codes with search_anae_activities. For Tunis…
- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `list_wilayas` (~358 tokens)

List wilayas and governorates

List the wilayas (provinces) of Algeria in the dataset, with their two-digit code, their names in the three languages, capital, region and population, the address and phone of the local CNRC (trade register) office and the address of the local CASNOS (social security of the self-employed) office. Use it to turn a wilaya code into a name or the reverse, or to find the local offices for a company registration or a CASNOS affiliation. For Tunisia (country TN) it lists the 24 governorates instead: code, ISO 3166-2 code, national statistics (INS) code, names in the three languages, chief town and the official source, and the answer names every page it was read on. For Morocco (country MA) it lists the 12 regions of the 2015 division the same way: code, ISO 3166-2 code, names in the three languages, chief town and the official source. The list is short and takes no filter. Tunisia and Morocco need an API key.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `get_wilaya` (~432 tokens)

Get a wilaya or governorate

Get one Algerian wilaya by its two-digit code, for example 16 for Alger: its names, capital, region, population and the details of its local CNRC (trade register) and CASNOS (social security of the self-employed) offices. For Tunisia (country TN) pass the governorate code, for example 11 for Tunis: its ISO 3166-2 code, national statistics (INS) code, names in the three languages and chief town. For Morocco (country MA) pass the region code, for example 06 for Casablanca-Settat: its ISO 3166-2 code, names in the three languages and chief town. Returns an error when the code is unknown. Use list_wilayas to see the codes. Tunisia and Morocco need an API key.

Input parameters:

- `code` (string, required): Wilaya code, two digits, for example 16 for Alger or 31 for Oran. For Tunisia (country TN) it is the governorate code, two digits, the number of its ISO 3166-2 code, for example 11 for Tunis (TN-11);…
- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `list_jo_years` (~376 tokens)

List Journal Officiel years

List the years covered by the index of the Journal Officiel de la République Algérienne (JORA), the official gazette in which Algerian laws, ordinances, decrees and orders are published, from 1962, newest year first. For each year: its number of issues, the last issue number, how many issues have a French and an Arabic edition, and for how many issues UpGrowth holds a summary. For Morocco (country MA) it lists the years of the Bulletin officiel du Royaume du Maroc, the Moroccan official gazette, from 1912: its French and Arabic editions (the French translation edition holds fewer issues) and no summaries. For Tunisia (country TN) it lists the years of the Journal Officiel de la République Tunisienne (JORT), the Tunisian official gazette, from 1956: its French and Arabic editions and no summaries. Use it first, to see which years exist before listing the issues of a year. Without an API key only Algeria answers, and meta.free_years lists the years it may read: the other years need a key. Takes only the optional lang and country.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `list_jo_issues` (~497 tokens)

List the Journal Officiel issues of a year

List the issues of the Algerian Journal Officiel for one year: for each issue its number, whether the French and Arabic editions exist with the links to their official PDF files on joradp.dz, and whether UpGrowth holds its summary. For Morocco (country MA) it lists the issues of the Bulletin officiel for one year, from 1912: for each issue its number, its publication date and the links to its French and Arabic editions on sgg.gov.ma (editions.fr and editions.ar, each with available true or false and pdf_url); a supplement (bis, ter) is listed beside its issue, with its suffix. For Tunisia (country TN) it lists the issues of the JORT for one year, from 1956: for each issue its number within the year, its publication date and whether its French and Arabic editions exist; the official site gives no direct link to the PDF files, so pdf_url is null. Returns an error when no issue is indexed for the year. Use it to find the number of an issue, then get_jo_issue to see what the issue contains. Without an API key only Algeria answers, for the current year and the two before it (older years return key_required), and at most 10 issues come back: meta.truncated says when more exist.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).
- `year` (integer, required): Year of the gazette: the Journal Officiel from 1962 for Algeria, the Bulletin officiel from 1912 for Morocco (country MA), the Journal Officiel de la République Tunisienne from 1956 for Tunisia (coun…

### `get_jo_issue` (~528 tokens)

Get a Journal Officiel issue

Get one issue of the Algerian Journal Officiel by year and number: the links to its official editions and, when UpGrowth holds it, its summary (sommaire): the date and, section by section, the official titles of the texts published in the issue. The summary exists only for some years and issues; otherwise data.sommaire is null and data.note says why. For Morocco (country MA) pass the number of the Bulletin officiel, a continuous series (for example 7522): you get its publication date, the links to its French and Arabic editions and, in data.supplements, the supplements of that number (bis, ter); data.sommaire is always null, no Moroccan summary is held yet. For Tunisia (country TN) pass the number of the issue within the year (for example 97): you get its publication date and whether its French and Arabic editions exist, with no direct PDF link; data.sommaire is always null. Use it to find which texts an issue published. Without an API key only Algeria answers, for the current year and the two before it (older years return key_required).

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).
- `number` (integer, required): Number of the issue. Algeria: its number within the year, starting at 1. Morocco: the number of the Bulletin officiel, a continuous series, for example 7522. Tunisia: its number within the year, for…
- `year` (integer, required): Year of the gazette: the Journal Officiel from 1962 for Algeria, the Bulletin officiel from 1912 for Morocco (country MA), the Journal Officiel de la République Tunisienne from 1956 for Tunisia (coun…

### `search_jo_titles` (~560 tokens)

Search Journal Officiel titles

Search the official titles of the texts listed in the summaries (sommaires) of the Algerian Journal Officiel: laws, ordinances, decrees, orders and notices. Each match gives the year and issue number, the section heading, the title and the links to the issue page and to its official PDF. Use it to find when and where a text was published. Only the issues whose summary UpGrowth holds are searched: every year from 2002 to today (without an API key, only the current year and the two before it, and at most 10 matches: meta.free_years and meta.truncated say so); for 1962 to 2001 the issues and their official PDFs are listed by the other tools but their summaries are not held yet (meta.sommaire_years lists the years searched), so an empty result does not prove that a text does not exist. Optionally restrict it to one year. Returns a page of matches; meta.total is their number. Algeria only: no Moroccan summaries are held yet, so country MA returns country_not_available, and so does country TN.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).
- `limit` (integer): Maximum number of results in the page, from 1 to 100. Defaults to 20. Without an API key at most 10 rows come back.
- `offset` (integer): Number of results to skip, from 0 to 10000, to read the next pages. Defaults to 0. meta.total tells how many results match. Without an API key it must be 0: a search cannot be paged.
- `q` (string, required): Words to look for in the official titles of the texts, for example loi de finances 2026. Every word must start a word of the title; accents and letter case are ignored. From 2 to 100 characters.
- `year` (integer): Search only the issues of this year (1962 or later). Leave it out to search every year. Without an API key only the current year and the two before it can be searched.

### `customs_tariff_sections` (~292 tokens)

List customs tariff sections

List the sections of the Algerian customs tariff, the first level of the harmonized system classification of goods, each with its Roman numeral, its title and the range of its chapters. Use it to locate a family of products before listing the chapters of a section. For Tunisia (country TN) it lists the sections of the Tunisian customs tariff, with the titles in French read on the site of the General Directorate of Customs (douane.gov.tn); Tunisia needs an API key. For Morocco (country MA) it lists the 21 sections of the harmonized system 2022 in French (the ADII tariff adopts it; MA needs an API key). This dataset holds no duty rates and no tariff lines below the chapter level.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `customs_tariff_chapters` (~268 tokens)

List the chapters of a customs tariff section

List the chapters (two-digit codes) of one section of the Algerian customs tariff with their titles, for example the chapters of section XVI. Use it after customs_tariff_sections. The same for the Tunisian tariff with country TN (French titles; needs an API key) and for Morocco with country MA (harmonized system 2022, French titles; needs an API key). This dataset holds no duty rates and no tariff lines below the chapter level.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).
- `section` (string, required): Section of the customs tariff in capital Roman numerals, for example XVI. Find the sections with customs_tariff_sections.

### `creation_legal_forms` (~454 tokens)

List company legal forms and State fees

List the legal forms available to create a company in Algeria (for example SARL, EURL, SPA) with the number of partners allowed, the minimum capital and the official State fees of each creation step (trade register, legal announcements and so on) for 2026, with the total of the published fees. A step whose price no official text fixes, such as the notary or the bank, is flagged as not priced instead of guessed. It lists State fees only, never the fees of a service provider, so it is not a quote for a creation. For Tunisia (country TN) it lists the legal forms of the commercial companies code (SARL, SUARL, SA, SNC, SCS) and the sole trader, with the partners allowed, the minimum capital, the liability and the registration steps at the National Register of Enterprises, each with its official fee in Tunisian dinars, its documents and its delay. For Morocco (country MA) it lists the SARL, the single-member SARL (SARL AU), the SA, the SAS, the SNC and the SCS, the sole trader and the auto-entrepreneur status, with the partners allowed, the minimum capital, the liability and the creation steps (negative certificate of OMPIC, statutes, registration of the deeds, professional tax and tax identification, trade register, CNSS affiliation, publication in the official gazette), each with its official fee in Moroccan dirhams when an official page states one. Tunisia and Morocco need an API key.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `calculate_casnos` (~1601 tokens)

Estimate the CASNOS contribution

Estimate the yearly contribution to CASNOS, the Algerian social security fund of the self-employed, for 2026, with the same formula as the UpGrowth calculator: a rate applied to a base that depends on the tax regime, between a floor and a ceiling indexed on the minimum wage (SNMG). Give the regime and, for most regimes, the amount. Returns the yearly, monthly and quarterly contribution with the figures it was computed from, and its limitations: read data.limitations before quoting the result. It is an estimate from public texts, not tax or legal advice. For Tunisia (country TN) it gives the CNSS contribution of the self-employed workers of the non-agricultural sector: regime INDEPENDANT_NON_AGRICOLE and income_class (1 to 10), the quarterly amount the CNSS prints for that class (rate 14.71 %), the yearly amount (four quarters) and the monthly equivalent, in Tunisian dinars, with the period the scale is valid for and the full scale of ten classes; the revenue is not used. Other Tunisian self-employed schemes (agricultural, fishing, craftsmen) are regimes of the same tool, and the Tunisian flat tax is calculate_ifu. Tunisia needs an API key. Morocco (country MA): regime AUTO_ENTREPRENEUR returns the bracket, the quarterly and yearly AMO contribution (supplementary rights, decree 2-21-928) and the pension contribution at 1.57 times it, with the payment dates; regime TRAVAILLEUR_NON_SALARIE returns, for a category (doctor, notary, driver, farmer...), the forfait income multiple set by its decree with its Bulletin officiel, and the forfait income in dirhams when minimum_wage_hourly is given; the contribution rates of the non-salaried workers are not in the decrees and are not served.

Input parameters:

- `annual_hours` (integer): Morocco only (country MA): the normal yearly working time in hours used with minimum_wage_hourly; 2,288 (article 184 of the Labour Code, not read in the decrees) when left out.
- `category` (string): Morocco only (country MA), regime TRAVAILLEUR_NON_SALARIE: the category of non-salaried worker, for example doctor, dentist, pharmacist, notary, architect, veterinarian, land_surveyor, judicial_baili…
- `country` (string): Country 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 data…
- `income_class` (integer): Tunisia only (country TN): the income class of the insured person in the CNSS scale of the self-employed, from 1 (the lowest base) to 10. Required with the regime INDEPENDANT_NON_AGRICOLE; the answer…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).
- `minimum_wage_hourly` (number): Morocco only (country MA), regime TRAVAILLEUR_NON_SALARIE: the legal hourly minimum wage of non-agricultural activities in dirhams, which the decrees do not state. With it the answer gives the forfai…
- `net_profit` (number): Morocco only (country MA), category trader_artisan_accounting under the actual net result regime: the annual net profit in dirhams, which picks the tier (up to 100,000 dirhams or above).
- `regime` (string, required): Algeria: FORFAITAIRE_ACHAT_VENTE, FORFAITAIRE_PRESTATIONS (flat-rate regimes, resale and services), BENEFICE_REEL (actual profit), AUTO_ENTREPRENEUR (flat yearly option) or PREMIERE_ANNEE (first year…
- `revenue` (number): Yearly amount in Algerian dinars (DZD). For the flat-rate regimes send the turnover (chiffre d'affaires) of the previous year; for BENEFICE_REEL send the taxable profit. Needed for those three regime…
- `seniority_years` (number): Morocco only (country MA): the seniority in years, which picks the tier of the categories whose forfait income depends on it (dentist, veterinarian, land_surveyor, architect). Complete years count.
- `smig_monthly_tnd` (number): Tunisia only (country TN): the monthly guaranteed minimum wage (SMIG) in dinars, for the craftsmen of the law no. 2002-32 (regime ARTISAN of calculate_casnos, activity crafts of calculate_ifu): their…
- `tier` (string): Morocco only (country MA): the tier of the category when it has several (for example general or specialist for a doctor, owner or non_owner for a driver, class_1 to class_9 for a farmer, simplified f…
- `week_hours` (integer): Tunisia only (country TN): the weekly working-time regime whose SMIG of décret 2026-67 the craftsmen's contribution uses when smig_monthly_tnd is left out: 48 (554.736 dinars a month, the default) or…
- `year` (integer): Year of the rates. Only the 2026 rates are published today, so this can be left out.

### `calculate_ifu` (~1237 tokens)

Estimate the IFU flat tax

Estimate the IFU (Impôt Forfaitaire Unique), the flat tax of Algerian micro-businesses, for 2026, with the same formula as the UpGrowth calculator: a rate on the yearly turnover that depends on the regime (auto-entrepreneur or general) and, for the general regime, on the kind of activity, with a minimum tax. Returns the inputs, the base, the rate, whether the minimum applied and the result, and its limitations: read data.limitations before quoting the result. It is an estimate from public texts, not tax or legal advice. For Tunisia (country TN, regime ae) it estimates the single contribution of the auto-entrepreneur, a yearly amount that does not depend on the turnover (which is only compared with the ceiling of 75,000 dinars): 200 dinars of income tax in a communal zone or 100 dinars elsewhere (zone), plus the social part of the first bracket of the CNSS scale; activity is required and, for a craft activity of the order of 23 July 2002 (crafts), the social part is 7.5 % of two thirds of the hourly SMIG over 200 hours a month (SMIG of décret 2026-67, or smig_monthly_tnd). Tunisia also serves regime forfait (option, zone, rural) and regime general (net_income: the income tax scale). Tunisia needs an API key. For Morocco (country MA) it computes the tax of the auto-entrepreneur on the turnover collected (regime ae only, activity required: 0.5 % for production and commerce up to 500 000 dirhams, 1 % for services up to 200 000 dirhams), with amounts in dirhams (tax_mad); the contribution professionnelle unique is not covered. Morocco needs an API key.

Input parameters:

- `activity` (string): Kind of activity: production (goods), commerce (resale in the same state) or services (including liberal professions). Required with the general regime, where it sets the rate; ignored with ae. Tunis…
- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).
- `net_income` (number): Tunisia only (country TN), required with regime general: the net taxable income in Tunisian dinars, after the deductions of the code. The scale of article 44 of the income tax code is applied to it;…
- `option` (string): Tunisia only (country TN), regime forfait: standard for the tariff of article 44 ter (400 dinars in a communal zone, 200 elsewhere, up to 10,000 dinars of turnover, then 3 %) or optional for the opti…
- `regime` (string, required): ae for the auto-entrepreneur status (ANAE), general for the general IFU regime of the other micro-businesses. Tunisia (country TN): ae (single contribution), forfait (forfait tax of article 44 ter of…
- `rural` (boolean): Tunisia only (country TN), regime forfait with option optional: true for a person working in the rural zones and the villages, who pays half the amount.
- `smig_monthly_tnd` (number): Tunisia only (country TN): the monthly guaranteed minimum wage (SMIG) in dinars, for the craftsmen of the law no. 2002-32 (regime ARTISAN of calculate_casnos, activity crafts of calculate_ifu): their…
- `turnover` (number, required): Yearly turnover (chiffre d'affaires) in Algerian dinars (DZD), or in Moroccan dirhams (MAD) for country MA.
- `week_hours` (integer): Tunisia only (country TN): the weekly working-time regime whose SMIG of décret 2026-67 the craftsmen's contribution uses when smig_monthly_tnd is left out: 48 (554.736 dinars a month, the default) or…
- `zone` (string): Tunisia only (country TN), required: communal for a person working in a communal zone, within the limits of the communes before 1 January 2015 (200 dinars of income tax a year), other for any other z…

### `get_tax_rates` (~338 tokens)

Get the business tax rates of a country

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. Tunisia and Morocco need an API key.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `get_social_contributions` (~357 tokens)

Get the social contributions of a country

Get the social contributions and payroll levies in a country in 2026, each with its base, its legal source and the official page it was read on. Algeria (DZ, the default country): the CNAS social security contribution on salaries with its employer, employee and social works shares, the special categories of workers, and the CASNOS contribution of the self-employed with its rate, its base, its floor and ceiling and the auto-entrepreneur flat option. Tunisia (TN): the social security (CNSS) contribution with its employer and employee shares, the work accident range, the complementary pension regime and the payroll levies (vocational training tax TFP and housing fund contribution FOPROLOS). Morocco (MA): the CNSS contributions (family allowances, short-term and long-term social benefits with their salary ceiling), the compulsory health insurance (AMO) and the vocational training tax (TFP), with the employer and employee shares. For an Algerian estimate use calculate_casnos and calculate_ifu. Tunisia and Morocco need an API key.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `list_institutions` (~344 tokens)

List the key public bodies of a country

List the key public bodies a company deals with in a country, each with its official website, a one-line role and the official page it was read on. Use it to find which body handles a formality. Algeria (DZ, the default country): the trade register (CNRC), the investment promotion agency (AAPI), the tax administration (DGI), social security (CNAS for employees, CASNOS for the self-employed), customs, the statistics office (ONS), the Bank of Algeria and the auto-entrepreneur agency (ANAE). Tunisia (TN): the business register, the investment authority, the industry agency, the tax administration, social security, customs, the statistics institute and the central bank. Morocco (MA): the regional investment centres (CRI), the company register office (OMPIC), the tax administration, social security, customs, the statistics office (HCP) and the central bank. The list is short and takes no filter. Tunisia and Morocco need an API key.

Input parameters:

- `country` (string): Country 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 data…
- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

### `list_countries` (~450 tokens)

List the countries of the data

List the countries this server has business data for: for each its ISO code, its names in French, Arabic and English, the languages and the currency, its status (live: the data is served, planned: announced and not served yet) and the datasets it has. Algeria (DZ) is live with twelve datasets, the nine of its first release and its tax rates, social contributions and institutions, and Tunisia (TN) and Morocco (MA) with five each (governorates or regions, company legal forms, tax rates, social contributions, institutions); Morocco (MA) also has the index of its official gazette, the Bulletin officiel (list_jo_years, list_jo_issues, get_jo_issue), and Tunisia (TN) the index of its own, the Journal Officiel de la République Tunisienne (JORT), through the same three tools. Tunisia (TN) also has the activity nomenclature NAT 2009 (search_activity_codes, get_activity_code), the sections and chapters of its customs tariff (customs_tariff_sections, customs_tariff_chapters) and the CNSS contribution of the self-employed (calculate_casnos), the regime of the auto-entrepreneur as the finance law 2023 states it (search_anae_activities, get_anae_activity with the key regime; the official list of activities is not loaded) and the single contribution of the auto-entrepreneur (calculate_ifu with regime ae). Morocco (MA) also has the NMA 2010 activity nomenclature (activities), the auto-entrepreneur regime with its excluded professions (anae) and the auto-entrepreneur tax calculator (ifu). Use it first to see which countries and datasets exist before asking another tool for a country, or after a call came back country_not_available. Every country carries free_access: true when it answers without an API key (today Algeria only), false when it needs one. It takes no country, only the optional lang.

Input parameters:

- `lang` (string): Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/z4kary-upgrowth-mcp/www#diagnostics

## Score history

- 2026-10-07: 71

## Common questions

### What is the UpGrowth: business data for Algeria, Tunisia and Morocco MCP server?

UpGrowth: business data for Algeria, Tunisia and Morocco is an MCP server listed in the public MCP registry as io.github.Z4KARY/upgrowth-mcp. Official business data for Algeria, Tunisia and Morocco: activity codes, legal forms, tax, gazettes. This page covers its hosted endpoint (https://www.upgrowth.dz/mcp).

### Is the UpGrowth: business data for Algeria, Tunisia and Morocco MCP server safe to use?

UpGrowth: business data for Algeria, Tunisia and Morocco scores 71 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the UpGrowth: business data for Algeria, Tunisia and Morocco MCP server expose?

UpGrowth: business data for Algeria, Tunisia and Morocco exposes 19 tools: search_activity_codes, get_activity_code, search_anae_activities, get_anae_activity, list_wilayas, and 14 more. Their descriptions and schemas cost roughly 10,814 tokens of context every time the server is loaded.

### Does the UpGrowth: business data for Algeria, Tunisia and Morocco MCP server require authentication?

No. We connected to UpGrowth: business data for Algeria, Tunisia and Morocco without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the UpGrowth: business data for Algeria, Tunisia and Morocco MCP server still maintained?

UpGrowth: business data for Algeria, Tunisia and Morocco is still listed as active in the MCP registry. We last reached this channel on 7 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://www.upgrowth.dz/mcp
- Repository: https://github.com/UpGrowth-dz/upgrowth-mcp
- Website: https://www.upgrowth.dz/api
- Changelog RSS feed: https://verifymcp.io/servers/z4kary-upgrowth-mcp/www.xml
- Changelog JSON feed: https://verifymcp.io/servers/z4kary-upgrowth-mcp/www.json
- HTML version of this page: https://verifymcp.io/servers/z4kary-upgrowth-mcp/www
