Nigeria CAC tools: name checks, fees, annual returns, register search, TIN, NIN requests.
Maintained byfastcac.com(verified)Also a maintainer?
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
CAC's official registration fees, line by line, for a business name, a limited company (by authorised share capital, default ₦1,000,000) or an NGO (Incorporated Trustees). Use it for any question about what CAC charges to register. These are government fees, not FastCAC's price.
Companies only: authorised share capital in naira.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http cac https://api.fastcac.com/mcp
Tool list last changed Nov 3, 2026.
CAC's official registration fees, line by line, for a business name, a limited company (by authorised share capital, default ₦1,000,000) or an NGO (Incorporated Trustees). Use it for any question about what CAC charges to register. These are government fees, not FastCAC's price.
| Argument | Type | Description |
|---|---|---|
| entity* | string | |
| share_capital | number | Companies only: authorised share capital in naira. |
{
"type": "object",
"required": [
"entity"
],
"properties": {
"entity": {
"enum": [
"business_name",
"company",
"ngo"
],
"type": "string"
},
"share_capital": {
"type": "number",
"description": "Companies only: authorised share capital in naira."
}
}
}For a CAC business name: which annual returns are due from its registration date, which are overdue, CAC's estimated charge, and when the next one is due. Ask for the registration date (it's on the certificate). Without the date, point them to the annual returns checker page, which looks it up by BN number.
| Argument | Type | Description |
|---|---|---|
| registration_date* | string | YYYY-MM-DD, from the CAC certificate. |
{
"type": "object",
"required": [
"registration_date"
],
"properties": {
"registration_date": {
"type": "string",
"description": "YYYY-MM-DD, from the CAC certificate."
}
}
}Run a proposed business name and its exact CAC line of business through CAC's own compliance and similarity checker. Returns compliance/similarity scores and, when the name is too close to an existing one, CAC's suggested alternatives. Slower and rate limited: use it for a name the user is seriously considering.
| Argument | Type | Description |
|---|---|---|
| proposed_name* | string | |
| line_of_business* | string | An exact entry from CAC's line-of-business picklist. |
{
"type": "object",
"required": [
"proposed_name",
"line_of_business"
],
"properties": {
"proposed_name": {
"type": "string"
},
"line_of_business": {
"type": "string",
"description": "An exact entry from CAC's line-of-business picklist."
}
}
}Search CAC's public registry for names matching or similar to a name, across every registration type (business names, companies, LLPs, trustees). CAC rejects a new name that's too close to any of them, active or inactive. close_matches share a distinctive word with the name: any close match means the name is at risk. other_matches only share generic words. An empty close_matches usually means it's available, but CAC makes the final call.
| Argument | Type | Description |
|---|---|---|
| name* | string | The business name to check. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The business name to check."
}
}
}Brainstorm CAC-registrable business names for an idea. Each name comes back already checked against CAC's registry, with `availability`: likely_available, similar_names_exist, or unchecked (CAC's search was busy). Present the results as they are; don't re-check them with check_name_availability unless the user asks about a specific name.
| Argument | Type | Description |
|---|---|---|
| idea* | string | Short description of the business. |
| line_of_business | string | Optional CAC line of business to keep every name in. |
{
"type": "object",
"required": [
"idea"
],
"properties": {
"idea": {
"type": "string",
"description": "Short description of the business."
},
"line_of_business": {
"type": "string",
"description": "Optional CAC line of business to keep every name in."
}
}
}Get the Tax ID (TIN) CAC's public search shows for a registered business. Takes company_id, rc_number and classification_id from a search_cac_register result. Returns { name, rc_number, tax_id }, or an error 'not_found' when CAC has none.
| Argument | Type | Description |
|---|---|---|
| rc_number* | string | rc_number from search_cac_register, e.g. '1234567'. |
| company_id* | integer | company_id from search_cac_register. |
| classification_id* | integer | classification_id from search_cac_register. |
{
"type": "object",
"required": [
"company_id",
"rc_number",
"classification_id"
],
"properties": {
"rc_number": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,20}$",
"description": "rc_number from search_cac_register, e.g. '1234567'."
},
"company_id": {
"type": "integer",
"minimum": 1,
"description": "company_id from search_cac_register."
},
"classification_id": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "classification_id from search_cac_register."
}
},
"additionalProperties": false
}Where a request from start_nin_request stands: status (waiting_for_person, started, settling, verified, failed, expired, paid, delivered, delivery_failed), next_step in words, the products and their naira prices. Never the NIN or the person's details: those go only to the person.
| Argument | Type | Description |
|---|---|---|
| request_handle* | string | From start_nin_request. |
{
"type": "object",
"required": [
"request_handle"
],
"properties": {
"request_handle": {
"type": "string",
"maxLength": 64,
"description": "From start_nin_request."
}
},
"additionalProperties": false
}Search the Corporate Affairs Commission's (CAC) public register for businesses already registered in Nigeria, by name or by RC/BN number. Returns `results`: name, rc_number (the BN number for a business name), registration_date, classification, nature_of_business, status (e.g. ACTIVE or INACTIVE), company_id and classification_id. This lists what exists; it isn't an availability check (use check_name_availability or check_business_name_compliance). An `error` never means there's no match.
| Argument | Type | Description |
|---|---|---|
| query* | string | A business name, or an RC/BN number such as '1234567'. |
| entity_type | string | Limit to one kind of registration. Defaults to ALL. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 100,
"minLength": 3,
"description": "A business name, or an RC/BN number such as '1234567'."
},
"entity_type": {
"enum": [
"ALL",
"BUSINESS NAME",
"COMPANY",
"INCORPORATED TRUSTEE",
"LIMITED PARTNERSHIP",
"LIMITED LIABILITY PARTNERSHIP"
],
"type": "string",
"description": "Limit to one kind of registration. Defaults to ALL."
}
},
"additionalProperties": false
}Find exact entries in CAC's line-of-business picklist matching what the business does.
| Argument | Type | Description |
|---|---|---|
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string"
}
},
"additionalProperties": false
}Start a paid request on fastcac.com for: 'slip' = the person's NIMC NIN slip (PDF and print-ready image), using their NIN; 'phone' = the person's NIN, found with the phone number they registered with NIMC (on fastcac.com they can add the slip; you can't request it here). Returns a link for the person and a request_handle for you. The person does a live face check and pays on fastcac.com (₦1,000 for the slip; ₦500 for the NIN, ₦1,200 with the slip); the result goes only to them. Starting is free and charges nothing.
| Argument | Type | Description |
|---|---|---|
| kind* | string | 'slip' if they know their NIN and want the slip; 'phone' to find their NIN (the person chooses whether to add the slip on fastcac.com). |
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"slip",
"phone"
],
"type": "string",
"description": "'slip' if they know their NIN and want the slip; 'phone' to find their NIN (the person chooses whether to add the slip on fastcac.com)."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.
What changed in this server's tools since we started watching, newest first. Each change is scanned again.
Start a paid request on fastcac.com for: 'slip' = the person's NIMC NIN slip (PDF and print-ready image), using their NIN; 'phone' = the person's NIN, found with the phone number they registered with NIMC (slip(on optional).fastcac.com they can add the slip; you can't request it here). Returns a link for the person and a request_handle for you. The person does a live face check and pays on fastcac.com (₦1,000 for the slip; ₦500 for the NIN, ₦1,200 with the slip); the result goes only to them. Starting is free and charges nothing.
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"slip",
"phone"
],
"type": "string",
"description": "'slip' if they know their NIN and want the slip; 'phone' to find their NIN."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"slip",
"phone"
],
"type": "string",
"description": "'slip' if they know their NIN and want the slip; 'phone' to find their NIN (the person chooses whether to add the slip on fastcac.com)."
}
},
"additionalProperties": false
}