FastCAC
REMOTE · API.FASTCAC.COM
Register a Nigerian business with CAC: name checks, fees, register search, TIN. Sign in when needed.
Available components
Last scanned (2 hours ago)
Scores higher than 44% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Finance and Payments
Recent critical change
Authorization (4 Nov 2026). See the changelog before you install this server.
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. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (create_share_link). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability68
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 4027 tokens (~85/item across 47 items; 47 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
- Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage83
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 42% of tool parameters carry a description.Partial
- Structured output schemas are declared (23% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 48 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “check_business_name_compliance” rewrote its description, which is the text the model reads security
- Tool “check_name_availability” rewrote its description, which is the text the model reads security
- Tool “search_cac_register” rewrote its description, which is the text the model reads security
- Schema quality: 69 → 85 ▼ functional
- Tool coverage: 30% → 42% ▲ functional
- New tool “search_knowledge_base” functional
- “check_business_name_compliance” added an optional parameter “name_type” cosmetic
- “generate_business_names” added an optional parameter “name_type” cosmetic
- “check_business_name_compliance” reworded the description of “line_of_business” cosmetic
- 4 Nov 26 −8
- Authorization: partial → fail ▼ critical
- The server rewrote its instructions, which are the text every model session reads security
- New tool “create_share_link”, which the server declares destructive security
- New tool “delete_business”, which the server declares destructive security
- New tool “remove_whatsapp”, which the server declares destructive security
- New tool “revoke_share_link”, which the server declares destructive security
- New tool “update_registration_fields”, which the server declares destructive security
- Tool coverage: 81% → 30% ▼ functional
- Tool coverage: 100% → 22% ▼ functional
- Stability: unverified → 0.03 ▲ functional
- Schema quality: fail → pass ▲ functional
- Destructive annotations: pass → 100 functional
- New tool “apply_discount_code” functional
- New tool “create_business” functional
- New tool “fetch_nin_slip” functional
- New tool “get_action_status” functional
- New tool “get_cac_documents” functional
- New tool “get_capabilities” functional
- New tool “get_credits” functional
- New tool “get_notification_preferences” functional
- New tool “get_registration_state” functional
- New tool “get_subscription” functional
- New tool “list_my_businesses” functional
- New tool “list_notifications” functional
- New tool “list_share_links” functional
- New tool “manage_subscription” functional
- New tool “mark_notifications_read” functional
- New tool “recheck_documents” functional
- New tool “refresh_cac_status” functional
- New tool “remove_discount_code” functional
- New tool “rename_business” functional
- New tool “request_credit_purchase” functional
- New tool “request_documents” functional
- New tool “request_nin” functional
- New tool “request_payment” functional
- New tool “request_subscription” functional
- New tool “request_whatsapp_verification” functional
- New tool “set_share_review” functional
- New tool “show_share_link” functional
- New tool “switch_workspace” functional
- New tool “update_notification_preferences” functional
- New tool “update_profile” functional
- New tool “use_nin_photo_for_passport” functional
- 3 Nov 26 70
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://api.fastcac.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.fastcac.com | CN=YE1,O=Let's Encrypt,C=US | 16 Oct 2026 | 14 Jan 2027 | ECDSA 256 | ECDSA-SHA384 | 62b0d2737d173517debe4416785acae846d |
| SANs: api.fastcac.com | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.fastcac.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| fastcac.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.fastcac.com/mcp | Verified | 200 | |
| http (plaintext) | http://api.fastcac.com/mcp | HTTPS enforced | 308 | https://api.fastcac.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
apply_discount_code Apply a discount code ~40
Apply a discount code the user gives you to a registration that isn't paid yet.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
| code | string | yes | – |
No output schema declared.
No examples provided.
calculate_cac_fees Calculate CAC registration fees ~101
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.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | yes | – |
| share_capital | number | – | Companies only: authorised share capital in naira. |
| Name | Type | Req | Description |
|---|---|---|---|
| extra | object | – | NGOs only: the newspaper notice, a range in naira, not a CAC fee. |
| lines | array | yes | – |
| total | number | yes | Naira, CAC's fees only. |
No examples provided.
check_annual_returns Work out annual returns due ~88
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. Needs the registration date (it's on the certificate). Without it, the annual returns checker on fastcac.com looks the date up by BN number.
| Name | Type | Req | Description |
|---|---|---|---|
| registration_date | string | yes | YYYY-MM-DD, from the CAC certificate. |
| Name | Type | Req | Description |
|---|---|---|---|
| cac_fee_per_year | number | yes | Naira. |
| estimated_cac_total | number | – | Naira, if none were filed. |
| next_return | object | yes | – |
| registered_on | string | – | – |
| returns_due | array | yes | – |
No examples provided.
check_business_name_compliance Run CAC's name compliance check ~287
CAC's verdict on a proposed name, the same check fastcac.com's name checker runs: CAC's naming rules first, then CAC's own compliance and similarity engine. Returns `tone` (ok, caveat = a certificate is needed, blocked), a plain `message`, `code` (CAC's 00-14; none when one of CAC's naming rules blocked it), `similar_names`/`most_similar_name`/`similarity_score`, and `alternatives`: names to offer, each already passing the rules (for a name missing its ending, the name with each accepted ending: Ventures, Enterprises, Services, Concepts, Hub, Fashion, Beauty, Biz, or Limited/Ltd for a company). `line_of_business` must be one of CAC's entries; anything else returns error line_of_business_invalid with `choices` to ask about, never a guess. A name ending in Limited/Ltd/PLC is checked as a company unless `name_type` says otherwise. An `error` is never a verdict: say CAC didn't answer.
| Name | Type | Req | Description |
|---|---|---|---|
| line_of_business | string | yes | An exact entry from CAC's line-of-business picklist (search_line_of_business). |
| name_type | string | – | Optional: business name or company (Ltd). Inferred from the name's ending when left out. |
| proposed_name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| alternatives | array | yes | Names to offer instead, each already passing CAC's rules. |
| certificate_required | boolean | – | – |
| code | string|null | – | CAC's 00-14 code; null when one of CAC's naming rules blocked it. |
| line_of_business | string|null | – | The exact CAC entry the name was checked with. |
| message | string | yes | The reason, in plain words, to show the person. |
| most_similar_name | string|null | – | – |
| name_type | string | – | – |
| proposed_name | string | – | – |
| similar_names | array | – | – |
| similarity_score | number|null | – | – |
| source | string | – | heuristics (CAC's naming rules) or bulkupload (CAC's engine). |
| tone | string | yes | ok: CAC would accept it; caveat: accepted, but a certificate is needed; blocked: not accepted. |
No examples provided.
check_name_availability Check a name against CAC's register ~233
Search CAC's public register for names matching or similar to a name, across every registration type (business names, companies, LLPs, trustees), ranked like fastcac.com's public search. CAC rejects a new name that's too close to any of them, active or inactive. `exact_match` is the registered name that is this name (case, spacing and the legal form like Ltd ignored), or null. close_matches come best first, each with `match` (exact, close, similar, or null when it only shares a distinctive word); a close match is often the same name with another ending (ADAEZE ENTERPRISES for "Adaeze Ventures"), which CAC treats as a clash. Lead with exact_match when there is one; when it's null, say nothing is registered under this exact name and lead with the closest matches as the clash they are. Any close match means the name is at risk; CAC makes the final call (check_business_name_compliance asks it). For an RC/BN number use search_cac_register instead.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | The business name to check. |
| Name | Type | Req | Description |
|---|---|---|---|
| close_matches | array | yes | Names that put this one at risk, best first. |
| exact_match | string|null | – | The registered name that IS this name (case, spacing and the legal form like Ltd ignored), or null. Lead with it when present; a close match is often the same name with another ending, which CAC trea… |
| likely_available | boolean | yes | True when nothing on CAC's register is close (no exact, close or similar match, and none sharing a distinctive word). CAC still decides: check_business_name_compliance asks it. |
| other_match_count | integer | – | – |
| other_matches | array | – | Names sharing only generic words. |
| results_capped | boolean | – | CAC's search hit its 50-result cap. |
| searched | string | – | – |
No examples provided.
create_business Start a business registration ~97
Start a new registration: creates the business (as a draft) with the name the user wants to register, in the workspace they're in (pass `workspace` only when they ask for the other one). A personal registration needs a verified WhatsApp number: without one it returns whatsapp_unverified (request_whatsapp_verification sets it up).
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | The business name they want to register. |
| workspace | string | – | – |
No output schema declared.
No examples provided.
create_share_link Create a share link ~82
Make a share link and show it as a Copy button. If one is already live, this replaces it (the old one stops working), so it shows a Confirm button first. review_enabled (status links) lets the viewer review the registration details.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
| purpose | string | – | – |
| review_enabled | boolean | – | – |
No output schema declared.
No examples provided.
delete_business Delete a business ~94
Delete one of their businesses that hasn't been paid for (draft or pending_payment) with its registration details and documents. If it can be deleted, a Confirm button is shown and nothing is deleted until they tap it; if not, you get the reason (e.g. it's been paid for). Call it only when they ask to delete it - not when they just ask whether they can.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
fetch_nin_slip Fetch the NIN slip for a registration ~73
Get their NIN slip for them from NIMC's record for their confirmed NIN, instead of them uploading a photo of it. Free to them. Only after they agree, and only once their NIN is confirmed. The slip is never shown to them.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
generate_business_names Suggest business names ~113
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).
| Name | Type | Req | Description |
|---|---|---|---|
| idea | string | yes | Short description of the business. |
| line_of_business | string | – | Optional CAC line of business to keep every name in. |
| name_type | string | – | Optional: company (Ltd) names end in Limited; business names (the default) in a word like Ventures. |
| Name | Type | Req | Description |
|---|---|---|---|
| names | array | yes | – |
No examples provided.
get_action_status Check a step on FastCAC ~87
Whether the person finished a step you handed them on FastCAC (a tool returned status 'action_required' with an action_id): confirming a change, paying, uploading documents, entering their NIN or verifying WhatsApp. Returns status (pending, started, completed, failed, cancelled, expired) and next_step in words.
| Name | Type | Req | Description |
|---|---|---|---|
| action_id | string | yes | From the tool's result. |
No output schema declared.
No examples provided.
get_cac_documents Get the CAC certificate and status report ~39
For an approved registration: show Download buttons for the CAC certificate and status report, once we have them.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
get_cac_tax_id Get a registered business's Tax ID ~120
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.
| Name | Type | Req | Description |
|---|---|---|---|
| classification_id | integer | yes | classification_id from search_cac_register. |
| company_id | integer | yes | company_id from search_cac_register. |
| rc_number | string | yes | rc_number from search_cac_register, e.g. '1234567'. |
| Name | Type | Req | Description |
|---|---|---|---|
| name | string|null | – | – |
| rc_number | string|null | – | – |
| tax_id | string | yes | The TIN. |
No examples provided.
get_capabilities Check what the account can do ~75
What they can do right now and why not: the workspace they're in and who they register for, the Agent subscription (status, renewal, days left), credits, WhatsApp, personal drafts, whether a registration can start in each workspace (and the tool that unblocks it), credit purchases, and features switched on for them.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_credits Check credit balance ~36
Their credit balance, recent credit activity, Agent subscription status, and the credit packs they can buy (pack_id for request_credit_purchase).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_nin_request_status Check a NIN request ~86
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.
| Name | Type | Req | Description |
|---|---|---|---|
| request_handle | string | yes | From start_nin_request. |
| Name | Type | Req | Description |
|---|---|---|---|
| chosen_product | string|null | – | – |
| next_step | string | yes | – |
| products | array | yes | – |
| status | string | yes | – |
| url | string | – | The link again, while the person hasn't started. |
No examples provided.
get_notification_preferences Check notification settings ~29
How they get updates: in-app, email, WhatsApp, and WhatsApp tips and offers.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_registration_state Check a registration's progress ~123
Read where one of the user's registrations stands: status, stage, next action and action_path, which form sections are done, missing or invalid fields (names only), each document's status and what's wrong with it, payment status, whether their NIN is confirmed, and for a queried registration CAC's reason plus each flagged item with its fix_path and whether it's resolved. It never includes personal details (NIN, date of birth, phone, addresses); those are on the registration page.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | A business id from list_my_businesses. |
No output schema declared.
No examples provided.
get_subscription Check the subscription ~28
Their Agent subscription: status (none, trialing, active, past_due...) and period end.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_my_businesses List my businesses ~37
List the signed-in user's businesses with each registration's stage, the next action, and action_path (the dashboard page for that action).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_notifications List notifications ~26
Their recent notifications (unread only by default).
| Name | Type | Req | Description |
|---|---|---|---|
| unread_only | boolean | – | – |
No output schema declared.
No examples provided.
list_share_links List a business's share links ~62
A business's share links: the status link (anyone with it sees progress) and the details form link (the owner fills in their own details). Whether each is live, when it expires. Never the link itself.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
manage_subscription Open subscription billing ~25
Show a button to Paystack's page for changing their card or cancelling the subscription.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
mark_notifications_read Mark notifications read ~16
Mark all their notifications as read.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
recheck_documents Recheck uploaded documents ~61
Run the checks again on documents that are stuck (e.g. the check service was down, or the NIN slip is waiting on the passport photo). Not for a document that failed - that needs a new upload.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
refresh_cac_status Refresh a registration's CAC status ~42
Ask CAC now for the latest on a registration that's with them (submitted or queried). Changes arrive as system events too.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
remove_discount_code Remove a discount code ~29
Remove the discount code from a registration that isn't paid yet.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
remove_whatsapp Remove the WhatsApp number ~21
Remove their WhatsApp number. Shows a Confirm button first.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
rename_business Rename a business ~38
Rename a business (its display name; not allowed once CAC approved it).
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
| name | string | yes | – |
No output schema declared.
No examples provided.
request_credit_purchase Ask the person to buy credits ~38
Show a Pay button for a credit pack (Agent subscribers). Use a pack_id from get_credits.
| Name | Type | Req | Description |
|---|---|---|---|
| pack_id | string | yes | – |
No output schema declared.
No examples provided.
request_documents Ask the person to upload documents ~103
Show an Upload button for a registration's documents (passport photo, NIN slip, signature, and a supporting document if CAC's name check asked for one). Without document_types it asks for every required document still missing or failed; name document_types to ask for specific ones again (e.g. CAC queried the passport photo). Files never pass through you; each verdict arrives as a system event.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
| document_types | array | – | – |
No output schema declared.
No examples provided.
request_nin Ask for the person's NIN on FastCAC ~61
Show a secure NIN field for a business so the user can verify their identity. Their name, date of birth and gender are filled from it. The NIN is typed into that field, not into the conversation.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
request_payment Ask the person to pay for a registration ~62
Show a Pay button for a registration once its form is complete. The amount comes from FastCAC's pricing (less any discount code applied). You never see card details or the payment link; the outcome arrives as a system event.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
request_subscription Ask the person to subscribe ~37
Show a Start free trial button for the Agent subscription (for people registering businesses for clients). 14 days free, set up on Paystack.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
request_whatsapp_verification Ask the person to verify WhatsApp ~37
Show a Verify on WhatsApp button. Needed before starting a business or paying (create_business / request_payment return whatsapp_unverified).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
revoke_share_link Revoke a share link ~38
Turn off a business's share link. Shows a Confirm button first.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
| purpose | string | – | – |
No output schema declared.
No examples provided.
search_cac_register Search CAC's public register ~211
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, classification_id and match (exact, close, similar or null), best match first; RC/BN numbers ("RC 8911267") are read as numbers. Lead with the result whose match is exact; when none is, say plainly that nothing is registered under that exact name before listing the closest. This lists what exists; it isn't an availability check (check_name_availability and check_business_name_compliance are). An `error` never means there's no match.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_type | string | – | Limit to one kind of registration. Defaults to ALL. |
| query | string | yes | A business name, or an RC/BN number such as '1234567'. |
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | – |
No examples provided.
search_knowledge_base Search FastCAC's knowledge base ~346
Search FastCAC's knowledge base: the articles, policies, guides and how-tos FastCAC's team has written (pricing and what it includes, refunds, timelines, documents, what happens after payment, CAC rules and procedures, post-registration steps). Use it before answering a question about FastCAC's service or CAC process that the instructions above don't settle, and answer from the passages, not memory. Returns passages best first, each with its document title, heading, updated_at, a 0-1 rank score and a 0-1 similarity (how close in meaning; about 0.7 and up answers the question), plus total_matches and has_more. Weak or no results: try mode 'broad', reword the query, or page on with offset. If it still has nothing, say plainly that you don't have that information.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Optional: only this category. |
| document | string | – | Optional: one document, by title (or part of it) or document_id. |
| include_context | boolean | – | Include the text just before and after each passage. |
| limit | integer | – | Passages to return (default 8). |
| min_score | number | – | Optional: drop passages less similar than this (0-1). |
| mode | string | – | balanced (default); precise = only close matches; broad = looser matches, weighted to meaning, with each passage's neighbouring text. |
| offset | integer | – | Skip this many (for the next page). |
| query | string | yes | The question or keywords, in plain words. |
| tags | array | – | Optional: documents with any of these tags. |
| Name | Type | Req | Description |
|---|---|---|---|
| has_more | boolean | yes | – |
| hint | string | – | – |
| mode | string | – | – |
| note | string | – | – |
| offset | integer | – | – |
| query | string | – | – |
| results | array | yes | – |
| retrieval | string | – | keyword_only when search by meaning was unavailable. |
| total_matches | integer | yes | – |
No examples provided.
search_line_of_business Find a CAC line of business ~34
Find exact entries in CAC's line-of-business picklist matching what the business does.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| exact | boolean | – | – |
| matches | array | yes | Exact CAC options, best first. |
| note | string | – | – |
No examples provided.
set_share_review Turn share-link review on or off ~43
Turn on or off the 'review the details' section on a business's live status link.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
| enabled | boolean | yes | – |
No output schema declared.
No examples provided.
show_share_link Show a share link ~36
Show a Copy button for a business's live share link.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
| purpose | string | – | – |
No output schema declared.
No examples provided.
start_nin_request Start a NIN or NIN slip request ~192
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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | '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). |
| Name | Type | Req | Description |
|---|---|---|---|
| chosen_product | string|null | – | – |
| next_step | string | – | – |
| products | array | yes | – |
| request_handle | string | yes | Keep it: get_nin_request_status needs it. |
| status | string | yes | – |
| url | string | yes | The link again, while the person hasn't started. |
No examples provided.
switch_workspace Switch workspace ~43
Switch the dashboard between their Personal workspace (their own businesses) and the Agent workspace (businesses they register for clients; needs the subscription).
| Name | Type | Req | Description |
|---|---|---|---|
| workspace | string | yes | – |
No output schema declared.
No examples provided.
update_notification_preferences Change notification settings ~60
Turn update channels on or off. Only pass the ones they asked to change.
| Name | Type | Req | Description |
|---|---|---|---|
| email_enabled | boolean | – | – |
| in_app_enabled | boolean | – | – |
| whatsapp_enabled | boolean | – | – |
| whatsapp_marketing_enabled | boolean | – | – |
No output schema declared.
No examples provided.
update_profile Update the profile name ~42
Change their account name (first and/or last name). Not a registration's proprietor name.
| Name | Type | Req | Description |
|---|---|---|---|
| first_name | string | – | – |
| last_name | string | – | – |
No output schema declared.
No examples provided.
update_registration_fields Fill in the registration form ~174
Save registration form fields from what the user told you. Only these fields can be set: proposedOption1 (Proposed business name), lineOfBusiness (Line of business (exact CAC picklist entry)), proprietorPhonenumber (Phone number (digits only)), proprietorEmail (Email), proprietorState (State), proprietorLga (LGA), proprietorCity (City), proprietorStreetNumber (Street number), proprietorServiceAddress (Street name / address), proprietorPostcode (Postcode (digits only)), companyState (Company state), companyCity (Company city), companyStreetNumber (Company street number), companyAddress (Company street name / address), companyEmail (Company email). Returns what saved, anything invalid, and what's still missing.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
| fields | object | yes | Field name -> value. |
No output schema declared.
No examples provided.
use_nin_photo_for_passport Use the NIN photo as the passport photo ~53
Use the photo from their confirmed NIN record as the passport photograph instead of uploading one. Only after they agree, and only once their NIN is confirmed.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | yes | – |
No output schema declared.
No examples provided.
How do I install the FastCAC MCP server?
FastCAC is a hosted endpoint at https://api.fastcac.com/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.
remote · api.fastcac.com
claude mcp add --transport http com-fastcac-cac 'https://api.fastcac.com/mcp'
What is the FastCAC MCP server?
FastCAC is an MCP server listed in the public MCP registry as com.fastcac/cac. Register a Nigerian business with CAC: name checks, fees, register search, TIN. Sign in when needed. This page covers its hosted endpoint (https://api.fastcac.com/mcp).
Is the FastCAC MCP server safe to use?
FastCAC scores 63 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 FastCAC MCP server expose?
FastCAC exposes 47 tools: calculate_cac_fees, check_annual_returns, check_business_name_compliance, check_name_availability, generate_business_names, and 42 more. Their descriptions and schemas cost roughly 3,798 tokens of context every time the server is loaded.
Does the FastCAC MCP server require authentication?
No. We connected to FastCAC without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the FastCAC MCP server still maintained?
FastCAC is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.