Firmledger
FirmLedger MCP server for accessing the FirmLedger business directory through AI assistants.
What it can do
- Search Listings: Search approved FirmLedger company records by name or keyword, category, country, city and verified status. Returns a short list (name, category, location, verified flag, tick, confid
- Get Listing: The public FirmLedger profile of one company: description, category, location, verification state (tick, how ownership was proved, when it was last checked), confidence and health scores,
- Get Relationships: FirmLedger Pro. The recorded relationship graph of one company: founders, investors, parent companies, subsidiaries, products, services and partners — plus the reverse edges (compan
What data it sees
Do you need an account
No: the server works without sign-in
FirmLedger MCP server for accessing the FirmLedger business directory through AI assistants. Free access includes business search, public company profiles, categories, countries, listing comparison, listing submission/claim preparation, plan and advertising information, upgrade preparation, and connection status. Pro access requires a FirmLedger API key on a Pro account and adds company relationships, company news, jobs, domain checks, and additional account tools including analytics, leads, watchlist, notifications, tickets, and account actions. Account-changing actions require explicit user confirmation.
How to connect
How to connect Firmledger to Claude
The server address to paste into Claude settings:
https://firmledger.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Firmledger to ChatGPT
The server address to paste into ChatGPT settings:
https://firmledger.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Firmledger to Cursor
The server address to paste into Cursor settings:
https://firmledger.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (36)
Raw names from tools/list. Only developers need these.
| search_listings | Search approved FirmLedger company records by name or keyword, category, country, city and verified status. Returns a short list (name, category, location, verified flag, tick, confidence score, one-line description) plus the accurate total, for picking the right company before calling get_listing. Use city for places like "Nairobi" and country for "Kenya". |
| get_listing | The public FirmLedger profile of one company: description, category, location, verification state (tick, how ownership was proved, when it was last checked), confidence and health scores, sources, recent moderated news headlines and the open jobs count. With FirmLedger Pro it also includes website, email, phone, social links, key people, timeline and technology — the same line the website draws. |
| get_relationships | FirmLedger Pro. The recorded relationship graph of one company: founders, investors, parent companies, subsidiaries, products, services and partners — plus the reverse edges (companies it founded or invested in). Only relationships recorded by the verified owner or moderators; nothing is inferred. |
| get_news | FirmLedger Pro. Recent moderated news headlines about one company with dates, publishers and links — the same accuracy-gated stories shown on the profile's news panel. |
| list_jobs | FirmLedger Pro. Open roles at approved FirmLedger companies, filtered by company and/or location and keyword: title, company, location, posted date and where to apply. Jobs on unapproved listings never appear. |
| check_domain | FirmLedger Pro. Given a website domain or URL, report whether an approved FirmLedger record uses it and return that record — useful for "is this site legit?" questions. |
| list_categories | Every FirmLedger category with its number of approved listings. Use to pick a valid category for search_listings. |
| list_countries | The countries present in the FirmLedger directory, each with its number of approved listings. |
| prepare_listing_submission | Does NOT create anything. Returns a link to the real FirmLedger submission form with the company name, website and (optional) category, country and city pre-filled. The user opens it, signs in, completes the remaining fields, reviews everything and submits it themselves. Also reports if the company is already listed, so nothing is submitted twice. |
| compare_listings | Compare 2 to 4 approved FirmLedger companies side by side: entity type, category, location, founded, team size, website, tagline, date registered, ownership, tick, confidence and sponsored status — the same rows as the FirmLedger comparison page. Use after search_listings when the user wants to weigh companies against each other. |
| list_plans | The current FirmLedger Pro offers with price, billing and duration. With an API key it also says whether this account is already on Pro and whether a free trial is available. Use before prepare_upgrade. |
| list_ad_packages | The current Sponsored-placement advertising packages with price, billing and duration. With an API key it also lists the user's own listings and which of them can be advertised or are already sponsored. Use before prepare_advertising. |
| prepare_upgrade | Does NOT charge anything. Returns a personal link to FirmLedger's own checkout for the chosen Pro plan (optionally with a promo code). The user opens it, signs in, reviews the order on FirmLedger and pays on the secure Lemon Squeezy checkout themselves. You can never complete or confirm a payment and must never ask for card details; if the user says "yes, do it", give them the link again. Without an API key it returns the pricing page instead. |
| prepare_advertising | Does NOT charge anything. Checks that the listing belongs to this account and is approved, then returns a personal link to FirmLedger's own checkout for the chosen Sponsored-placement package. The user reviews and pays there themselves; you can never complete or confirm a payment. If the user says "yes, do it", give them the link again. |
| get_my_listings | The listings this account owns or submitted, with moderation status, tick, scores, Pro perks, sponsorship, jobs and new-lead counts. Use first when the user refers to "my listing". |
| get_analytics | Audience analytics for the user's own listings — views today/7/30 days/total, unique visitors, profile and website clicks, leads, the 30-day funnel, top visitor locations and per-listing views. The same numbers as Dashboard → Audience analytics. |
| list_leads | The user's FirmLedger Leads inbox: inquiries received on their listings (box "received", the default), archived ones ("archived"), or inquiries they sent to other businesses ("sent"). Filter by status or listing; paginated. |
| get_lead | One conversation from the Leads inbox with the inquirer's details and every message, oldest first. Use before reply_to_lead so the reply fits the thread. |
| get_watchlist | The companies the user watches on FirmLedger, newest first. |
| export_watchlist_csv | The user's watchlist as CSV text (name, category, type, location, contact details, tech stack, verified owner, confidence, watched since) — the same file as the dashboard's Export button. |
| get_notifications | The user's in-app FirmLedger notifications, newest first, with the unread count. Set unread_only for just the unread ones. |
| list_my_tickets | The user's FirmLedger support tickets. Pass a ticket reference to read that ticket's full conversation. |
| reply_to_lead | Send a reply in one of the user's lead conversations, exactly as the Reply box on the website does (the other party is notified). Requires the user's confirmation: the first call returns the exact message for them to approve. |
| set_lead_status | Move a lead in the user's business inbox to new, contacted, qualified, won or lost. Requires the user's confirmation. |
| watchlist_add | Add an approved company to the user's watchlist so they are notified when its record changes. Requires the user's confirmation. |
| watchlist_remove | Remove a company from the user's watchlist. Requires the user's confirmation. |
| create_support_ticket | Open a FirmLedger support ticket for the user. Categories: billing, technical, listing, account, verification, other. Requires the user's confirmation of the exact subject and message. |
| post_job | Submit a job opening on one of the user's listings (the listing needs active Pro perks; up to 5 open or pending roles). Like the dashboard form, it goes to moderation first and is published after approval. Requires the user's confirmation. |
| mark_notifications_read | Mark one notification (notification_id) or all of them (all: true) as read. Requires the user's confirmation. |
| refresh_listing_scores | Recompute the confidence, health and completeness scores of one of the user's listings from its current record — the dashboard's "Re-align scores". Requires the user's confirmation. |
| refresh_listing_tech | Scan the website of one of the user's listings and refresh its technology snapshot — the dashboard's "Refresh tech". Requires the user's confirmation. |
| refresh_listing_news | Look for new coverage of one of the user's approved listings with the same accuracy rules and moderation as the dashboard's "Refresh news" (once a minute per listing). Requires the user's confirmation. |
| request_listing_removal | Send a removal request for a listing the user owns or originally submitted. A moderator reviews it; nothing is removed until they accept. Requires the user's confirmation. |
| prepare_listing_claim | Free. Prepare a link to claim an approved listing using DNS TXT, HTML meta tag or site badge. Creates nothing and never grants ownership. The user signs in, generates a token, installs the proof on the business domain and verifies it on FirmLedger. |
| create_webhook | Register a webhook on the user’s account after explicit confirmation. Listing events will be sent to this URL. Requires Pro (including a free trial) and write:account. The signing secret is returned only once; keep it private. |
| connection_status | Report what this FirmLedger connection can do: Free or Pro access, authentication and active free-trial status, and which tools and fields are available. Use when the user asks why something is locked. |