FirmLedger
Ce que fait ce MCP
Searches and manages verified business directory listings, company profiles, leads, jobs, watchlists, analytics, advertising, and account integrations.
Outils
Schéma d’entrée
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 200, 'minLength': 3, 'description': 'A domain such as "example.co.ke" or a full URL.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listings'], 'properties': {'listings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The company: its FirmLedger slug (best — returned by search_listings), its exact name, its FirmLedger ID such as "FL-00012", or its FirmLedger profile URL.'}, 'maxItems': 4, 'minItems': 2, 'description': '2 to 4 companies (slugs are best).'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['subject', 'category', 'body'], 'properties': {'body': {'type': 'string', 'maxLength': 5000, 'minLength': 20, 'description': 'The issue in a few sentences.'}, 'subject': {'type': 'string', 'maxLength': 200, 'minLength': 4}, 'category': {'enum': ['billing', 'technical', 'listing', 'account', 'verification', 'other'], 'type': 'string'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['url', 'events'], 'properties': {'url': {'type': 'string', 'maxLength': 500, 'description': 'Public HTTPS destination for signed events.'}, 'label': {'type': 'string', 'maxLength': 80}, 'events': {'type': 'array', 'items': {'enum': ['listing.approved', 'listing.rejected', 'listing.updated', 'listing.created', 'listing.deleted', 'claim.verified'], 'type': 'string'}, 'maxItems': 6, 'minItems': 1}, 'categories': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'maxItems': 50}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': "Optional: one of the user's listings. Omit for all of them combined."}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'key_prefix': {'type': 'string', 'maxLength': 40, 'description': 'Optional: focus on one key by its prefix.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['lead_id'], 'properties': {'lead_id': {'type': 'integer', 'minimum': 1, 'description': 'lead_id from list_leads.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The company: its FirmLedger slug (best — returned by search_listings), its exact name, its FirmLedger ID such as "FL-00012", or its FirmLedger profile URL.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'limit': {'anyOf': [{'type': 'integer'}, {'type': 'string', 'pattern': '^-?[0-9]+$'}], 'default': 10, 'description': 'Stories to return (1-12).. Integer or numeric string, clamped to 1–12.'}, 'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The company: its FirmLedger slug (best — returned by search_listings), its exact name, its FirmLedger ID such as "FL-00012", or its FirmLedger profile URL.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 60, 'minimum': 1}, 'unread_only': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The company: its FirmLedger slug (best — returned by search_listings), its exact name, its FirmLedger ID such as "FL-00012", or its FirmLedger profile URL.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'anyOf': [{'type': 'integer'}, {'type': 'string', 'pattern': '^-?[0-9]+$'}], 'default': 10, 'description': 'limit. Integer or numeric string, clamped to 1–25.'}, 'query': {'type': 'string', 'maxLength': 80, 'description': 'Optional keyword in the job title or description.'}, 'offset': {'anyOf': [{'type': 'integer'}, {'type': 'string', 'pattern': '^-?[0-9]+$'}], 'default': 0, 'description': 'offset. Integer or numeric string, clamped to 0–10000.'}, 'company': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional company (slug, exact name, FirmLedger ID or profile URL).'}, 'location': {'type': 'string', 'maxLength': 80, 'description': 'Optional location, e.g. "Nairobi" or "Kenya" or "Remote".'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'box': {'enum': ['received', 'archived', 'sent'], 'type': 'string'}, 'page': {'type': 'integer', 'default': 1, 'minimum': 1}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'status': {'enum': ['new', 'contacted', 'qualified', 'won', 'lost'], 'type': 'string'}, 'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': "Optional: only leads for this listing of the user's."}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'ticket': {'type': 'string', 'maxLength': 40, 'description': 'Optional ticket reference, e.g. "TK-1A2B3C".'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1}, 'webhook_id': {'type': 'integer', 'minimum': 1, 'description': 'Optional: one destination, with its recent deliveries.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['action'], 'properties': {'label': {'type': 'string', 'maxLength': 60, 'description': 'create: a name for the key.'}, 'action': {'enum': ['create', 'revoke', 'update_scopes'], 'type': 'string'}, 'key_id': {'type': 'integer', 'minimum': 1, 'description': 'revoke/update_scopes: the key id from list_api_keys.'}, 'scopes': {'type': 'array', 'items': {'enum': ['read:listings', 'write:listings', 'export', 'manage:webhooks', 'read:usage', 'read:account', 'write:account'], 'type': 'string'}, 'maxItems': 9, 'minItems': 1, 'description': 'Scope ids. Required for update_scopes; create defaults to the standard scopes.', 'uniqueItems': True}, 'key_prefix': {'type': 'string', 'maxLength': 40, 'description': 'Optional alternative to key_id.'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['action', 'job_id'], 'properties': {'title': {'type': 'string', 'maxLength': 80}, 'action': {'enum': ['edit', 'close', 'remove', 'delete'], 'type': 'string'}, 'job_id': {'type': 'integer', 'minimum': 1}, 'location': {'type': 'string', 'maxLength': 80}, 'apply_url': {'type': 'string', 'maxLength': 400}, 'role_type': {'enum': ['Full-time', 'Part-time', 'Contract', 'Internship', 'Remote'], 'type': 'string'}, 'description': {'type': 'string', 'maxLength': 600}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['action', 'lead_id'], 'properties': {'action': {'enum': ['archive', 'unarchive', 'delete'], 'type': 'string'}, 'lead_id': {'type': 'integer', 'minimum': 1, 'description': 'The lead id from list_leads.'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['action'], 'properties': {'url': {'type': 'string', 'maxLength': 500, 'description': 'create/update: the receiver URL (https in production).'}, 'label': {'type': 'string', 'maxLength': 80}, 'action': {'enum': ['create', 'update', 'pause', 'resume', 'rotate_secret', 'test', 'retry_delivery', 'delete'], 'type': 'string'}, 'events': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 6, 'description': 'create/update: event types to subscribe to.'}, 'categories': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'maxItems': 50}, 'webhook_id': {'type': 'integer', 'minimum': 1, 'description': 'Required for every action except create.'}, 'delivery_id': {'type': 'integer', 'minimum': 1, 'description': 'retry_delivery: which delivery to retry.'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'all': {'type': 'boolean'}, 'notification_id': {'type': 'integer', 'minimum': 1}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing', 'title', 'location', 'apply_url', 'description'], 'properties': {'title': {'type': 'string', 'maxLength': 80, 'minLength': 3}, 'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': "One of the user's own listings."}, 'location': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'City, or "Remote".'}, 'apply_url': {'type': 'string', 'maxLength': 400, 'description': 'Full https:// link to the job post or careers page.'}, 'role_type': {'enum': ['Full-time', 'Part-time', 'Contract', 'Internship', 'Remote'], 'type': 'string'}, 'description': {'type': 'string', 'maxLength': 600, 'minLength': 30}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing', 'package'], 'properties': {'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': "One of the user's own approved listings (see get_my_listings or list_ad_packages)."}, 'package': {'type': 'string', 'maxLength': 120, 'description': 'The package id from list_ad_packages (or its exact name).'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'method': {'enum': ['dns', 'meta', 'badge'], 'type': 'string'}, 'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The company: its FirmLedger slug (best — returned by search_listings), its exact name, its FirmLedger ID such as "FL-00012", or its FirmLedger profile URL.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['name'], 'properties': {'city': {'type': 'string', 'maxLength': 80, 'description': 'Optional city.'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 2, 'description': 'Company name.'}, 'country': {'type': 'string', 'maxLength': 60, 'description': 'Optional country.'}, 'website': {'type': 'string', 'maxLength': 200, 'description': 'Company website, e.g. "example.co.ke".'}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'Optional category.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'plan': {'type': 'string', 'maxLength': 120, 'description': 'The plan id from list_plans (or its exact name).'}, 'promo_code': {'type': 'string', 'maxLength': 40, 'description': 'Optional promo code the user gave you.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': "One of the user's own approved listings."}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': "One of the user's own listings."}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': "One of the user's own listings."}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['lead_id', 'message'], 'properties': {'lead_id': {'type': 'integer', 'minimum': 1}, 'message': {'type': 'string', 'maxLength': 4000, 'minLength': 2, 'description': 'The reply text, written or approved by the user.'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['ticket', 'message'], 'properties': {'ticket': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'The ticket reference (e.g. TK-1A2B3C) or its id, from list_my_tickets.'}, 'message': {'type': 'string', 'maxLength': 4000, 'minLength': 2, 'description': 'The reply text, written or approved by the user.'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing', 'reason'], 'properties': {'reason': {'type': 'string', 'maxLength': 2000, 'minLength': 20, 'description': 'Why it should be removed (20+ characters).'}, 'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'A listing the user owns or submitted.'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'city': {'type': 'string', 'maxLength': 80, 'description': 'City or region, e.g. "Nairobi".'}, 'type': {'enum': ['company', 'startup', 'agency', 'organization', 'product', 'service', 'publisher'], 'type': 'string', 'description': 'Entity type.'}, 'limit': {'anyOf': [{'type': 'integer'}, {'type': 'string', 'pattern': '^-?[0-9]+$'}], 'default': 10, 'description': 'Results per page (1-25).. Integer or numeric string, clamped to 1–25.'}, 'query': {'type': 'string', 'maxLength': 100, 'description': 'Company name or keyword (matched against name, tagline, description, tags and city).'}, 'offset': {'anyOf': [{'type': 'integer'}, {'type': 'string', 'pattern': '^-?[0-9]+$'}], 'default': 0, 'description': 'Results to skip, for paging (use next_offset).. Integer or numeric string, clamped to 0–10000.'}, 'country': {'type': 'string', 'maxLength': 60, 'description': 'Country name, e.g. "Kenya".'}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'Category name, e.g. "Fintech". Call list_categories for valid names.'}, 'verified_only': {'anyOf': [{'type': 'boolean'}, {'enum': ['true', 'false'], 'type': 'string'}], 'description': 'Only ownership-verified records (boolean or the string true/false).'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['lead_id', 'status'], 'properties': {'status': {'enum': ['new', 'contacted', 'qualified', 'won', 'lost'], 'type': 'string'}, 'lead_id': {'type': 'integer', 'minimum': 1}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing', 'message'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'description': 'Optional sender name; defaults to the member profile name.'}, 'phone': {'type': 'string', 'maxLength': 40}, 'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The company: its FirmLedger slug (best — returned by search_listings), its exact name, its FirmLedger ID such as "FL-00012", or its FirmLedger profile URL.'}, 'message': {'type': 'string', 'maxLength': 4000, 'minLength': 10}, 'looking_for': {'type': 'string', 'maxLength': 140, 'description': 'Optional short subject or what the member needs.'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'city': {'type': 'string', 'maxLength': 80}, 'name': {'type': 'string', 'maxLength': 120}, 'size': {'type': 'string', 'maxLength': 40}, 'tags': {'type': 'string', 'maxLength': 300}, 'email': {'type': 'string', 'maxLength': 190}, 'phone': {'type': 'string', 'maxLength': 40}, 'region': {'type': 'string', 'maxLength': 80}, 'address': {'type': 'string', 'maxLength': 200}, 'country': {'type': 'string', 'maxLength': 80}, 'founded': {'type': 'string', 'maxLength': 12}, 'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The company: its FirmLedger slug (best — returned by search_listings), its exact name, its FirmLedger ID such as "FL-00012", or its FirmLedger profile URL.'}, 'socials': {'anyOf': [{'type': 'object', 'properties': {'x': {'type': 'string', 'maxLength': 500}, 'youtube': {'type': 'string', 'maxLength': 500}, 'facebook': {'type': 'string', 'maxLength': 500}, 'linkedin': {'type': 'string', 'maxLength': 500}, 'instagram': {'type': 'string', 'maxLength': 500}}, 'additionalProperties': False}, {'type': 'string', 'maxLength': 800}], 'description': 'Social profile links keyed by network; use an empty object to clear. A JSON object string is also accepted.'}, 'tagline': {'type': 'string', 'maxLength': 160}, 'website': {'type': 'string', 'maxLength': 300}, 'logo_url': {'type': 'string', 'maxLength': 500}, 'description': {'type': 'string', 'maxLength': 4000}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The company: its FirmLedger slug (best — returned by search_listings), its exact name, its FirmLedger ID such as "FL-00012", or its FirmLedger profile URL.'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['listing'], 'properties': {'listing': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The company: its FirmLedger slug (best — returned by search_listings), its exact name, its FirmLedger ID such as "FL-00012", or its FirmLedger profile URL.'}, 'confirmation_token': {'type': 'string', 'maxLength': 2048, 'description': 'Leave empty on the first call: you get an action_summary and a token instead of the action. After the user explicitly confirms that summary, call again with the SAME arguments plus this token.'}}, 'additionalProperties': False}
Modifications récentes des outils
Serveurs MCP similaires
AwardCast Federal Contracts
Searches and analyzes US federal solicitations, agencies, contractors, award history, pricing benchmarks, and upcoming recompetes.
Vetari
Provides Swiss commercial-register company and publication data with AI-based lead scoring.
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
Stratalize Healthcare
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Governance
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Oracle
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Real Estate
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…