Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Precept

NPM · @PRECEPTAI/MCP-SERVER · 2 COMPONENTS

B2B lead and company intelligence: search leads, enrich contacts, and queue outreach.

57 Trust /100

Last scanned (7 hours ago)

Scores higher than 36% of npm servers

Category CRM and Sales

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 47 of 139 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability56
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 9370 tokens (~720/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety25
  • Injection-marker check failed: the server instructions contains an instruction to conceal the call from the user, the text "DO NOT tell the user", at byte 610 of that field, plus 1 further marker(s) of the same kind. See how to fix → Fail
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "precept_linkedin_messages" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

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.

  • 14 Oct 26 +24
    • Injection markers: unverified → fail ▼ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Schema quality: fail functional
    • First check of Destructive annotations: 0 functional
    • First check of Tool coverage: 100 functional
    • First check of Tool coverage: 100 functional
  • 13 Oct 26 33

    First indexed and scored.

Diagnostics

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 18 Oct 2026 · Analysed npm/@preceptai/mcp-server@1.2.34

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 139 packages
Packages resolved 139
Stale 47
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 13 exposed · ~5,242 tokens

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 →

Tool Tokens
precept_campaign_queue ~316

Manage LinkedIn outreach campaigns and the outreach queue. Actions: - 'queue': Queue an outreach campaign with ad-hoc leads or a saved leadsListId (FIFO queue if another campaign is active). - 'get_queue': Inspect running campaign progress, rate limit cooldowns, queued campaigns, and extension liveness. - 'pause' / 'resume': Pause active outreach or resume a paused campaign. - 'archive' / 'cancel': Terminate outreach and move the campaign to History. - 'remove': Remove an upcoming campaign from the queue.

NameTypeReqDescription
actionstringyesThe campaign queue action to perform.
autoSaveLeadsListboolean–Automatically save ad-hoc leads as a new lead list in Precept (for action 'queue', default true).
campaignIdstring–Specific campaign ID to pause, resume, cancel/archive, or remove.
includePersonalizedNoteboolean–Whether to include a personalized message note with connection requests (for action 'queue').
leadsarray–Array of leads to reach out to (for action 'queue'). Required if leadsListId is not provided.
leadsListIdstring–ID of an existing Precept lead list to run outreach on (for action 'queue').
namestring–Descriptive name for the campaign (required when action is 'queue').
noteTemplatestring–Template for personalized connection note with variables {{firstName}}, {{company}}, {{title}} (for action 'queue').
NameTypeReqDescription
activeCampaign––Actively running campaign progress and real-time statistics
autoSavedListIdstring–ID of the newly created lead list saved in Precept
campaignIdstring––
extensionobject––
historyarray––
messagestring––
namestring––
queuearray–Upcoming queued campaigns
queueCountnumber––
queuePositionnumber–Position in the outreach queue (1 = next in line)
statusstring–'running' if started immediately, 'queued' if placed behind active campaign, 'paused', 'archived', etc.
successboolean––
totalLeadsnumber––

No examples provided.

precept_check_credits ~42

Check the remaining credit balance for your Precept account. Returns the total number of credits currently available for search and enrichment tasks, along with server version status.

Input schema present but exposes no named parameters.

NameTypeReqDescription
creditsnumber–Available credit balance for this account
versionStatusobject–MCP server version status

No examples provided.

precept_check_version ~48

Check the current running version of the Precept MCP server against the latest published version. Returns whether the server is up to date and provides instructions to refresh the connector if an update is available.

Input schema present but exposes no named parameters.

NameTypeReqDescription
messagestring–Status message
serverVersionstring–Currently running MCP server version
statusstring–Server status code

No examples provided.

precept_enrich_leads ~574

Enrich a list of specific contacts with verified contact details and AI-powered insights. Each lead can be identified by LinkedIn URL or a combination of first name, last name, and company name/domain. Returns enriched data including verified emails, phone numbers, professional summary, top problems, strategic initiatives, and public appearances. IMPORTANT: Always check user credits with precept_check_credits before calling this tool. This is an async operation — it returns an enrichment_id (jobId) immediately. You MUST continuously poll precept_get_job_status every 4 seconds for up to 150 attempts (~10 minutes) while in progress, providing the user with status updates at least every 15 polls (~1 minute) until completed. Upon completion, always try to give users the lead results in a sheet doc.

NameTypeReqDescription
generateMessagearray–Optional array specifying outreach channels to generate personalized messages for: 'email' (PIPE framework cold email: Problem, Impact, Proof, Engage under 70 words, < 6 words subject line) and/or 'l…
includeContactDetailsboolean–Whether to find and verify email and phone numbers (+1 credit for email per lead, +10 for phone per lead, or +11 for both per lead). If true, results include enrich_email and enrich_phone fields. IMP…
interestsarray–Optional array of up to 5 keyword interests for the batch (e.g. ['Banking', 'Insurance']). Precept researches the web to find verified information about each person related to these topics and append…
leadsarrayyesArray of leads to enrich (up to 1000). Each lead must have either a linkedinUrl OR a combination of firstName + lastName + (companyName or companyDomain).
namestring–A readable name for this enrichment job, used for searching on the Precept dashboard.
streamingResultsboolean–Optional. When true (and webhookUrl is provided), contact results are progressively streamed to the webhook as each lead is enriched. NOT needed when polling with precept_get_job_status.
translateboolean–Set to true if lead names are not in English. Names will be translated before enrichment for more accurate results.
webhookUrlstring–Optional webhook URL to receive enrichment results. NOTE: NOT needed for MCP assistant workflows. You can omit this and use precept_get_job_status with the returned enrichment_id to fetch the results…
NameTypeReqDescription
enrichment_idstring–The unique job ID to poll with precept_get_job_status
finalLimitnumber–Adjusted limit based on available credit balance
messagestring–Status message describing the initialized job

No examples provided.

precept_get_company_insights ~302

Retrieve detailed insights and enrichments for a list of specific companies. Provide companies by website URL or LinkedIn URL, and optionally specify enrichments like decision makers, technology stack, revenue, funding, employee counts, and department ratios. You can also ask custom natural language queries about each company (e.g. 'What CRM do they use?'). IMPORTANT: Always check user credits with precept_check_credits before calling this tool. This is an async operation — it returns an enrichment_id (jobId) immediately. You MUST continuously poll precept_get_job_status every 4 seconds for up to 150 attempts (~10 minutes) while in progress, providing the user with status updates at least every 15 polls (~1 minute) until completed. Upon completion, always try to give users the company results in a sheet doc.

NameTypeReqDescription
companiesarrayyesList of companies to retrieve insights for (up to 5000). Each company must have at least a companyWebsite or companyLinkedin.
enrichmentsobject–Optional enrichment configuration. See Precept API docs for detailed enrichment types and costs.
namestring–A readable name for this enrichment job.
queriesarray–Custom natural language questions to ask about each company (e.g. ['What CRM do they use?', 'What compliance certifications do they hold?']). Each query costs 0.2 credits per company. Responses retur…
NameTypeReqDescription
enrichment_idstring–The unique job ID to poll with precept_get_job_status
finalLimitnumber–Adjusted limit based on available credit balance
messagestring–Status message describing the initialized job

No examples provided.

precept_get_extension_status ~75

Check whether the user's Precept Chrome extension is installed, active, and communicating with Precept. Automated outreach runs in the background of Google Chrome via this extension (no open tabs or DOM interaction needed). If the extension is not installed or inactive, the response contains instructions and a direct Chrome Web Store link for the user.

Input schema present but exposes no named parameters.

NameTypeReqDescription
activebooleanyesWhether the extension has communicated with Precept recently (<10 min)
chromeStoreUrlstringyesDirect Chrome Web Store URL to install the extension
extensionVersionstring|null–Installed version of the Chrome extension
installedbooleanyesWhether the Precept Chrome extension is installed
lastSeenAtstring|null–ISO timestamp of the last extension heartbeat check-in
messagestringyesHuman-readable status summary and next action instructions

No examples provided.

precept_get_job_status ~300

Check the status and retrieve results of any Precept enrichment or search job. All Precept tools (search leads, enrich leads, company insights, search companies) are asynchronous and return an enrichment_id (jobId). MANDATORY POLLING RULE: Continue to poll this tool every 4 seconds for up to 150 attempts (~10 minutes) as long as the job status is in progress ('pending', 'processing', 'in_progress'). You MUST also provide the user with progress updates on what is happening at least every 15 polls (~1 minute) until completed. If the job reaches 150 attempts (~10 minutes) and is still in progress, stop polling and inform the user to check back in a few minutes as it is taking longer than usual. Returns status 'processing' with progress info while running, or 'completed' with the full results when done. When completed, always try to give users the lead or company results in a sheet doc. For lead results, if you searched only default 30 leads on the first run, in the follow-up AFTER returning results, first tell the user that only 30 leads were searched for on this initial run, and then ask if they want to find more (asking them to specify how many more) or if they want to enrich the contacts with phone numbers or email addresses.

NameTypeReqDescription
jobIdstringyesThe enrichment_id returned by any of the Precept search or enrichment tools.
NameTypeReqDescription
costobject–Credit cost summary
emails_foundnumber–Total email addresses successfully found
enrichment_idstring–The job ID
namestring–Readable name of the job if specified
phones_foundnumber–Total phone numbers successfully found
progressobject–Progress counters while the job is still running
results––Array of discovered lead or company objects when completed
statusstring–Current lifecycle status of the job (e.g. 'pending', 'in_progress', 'processing', 'completed', 'failed')

No examples provided.

precept_get_leads_from_post_search ~1,017

Discover business leads and contacts directly from authors who recently published LinkedIn posts matching specific keywords. Unlike precept_search_leads (which searches by persona query), this tool discovers leads directly from content authors without requiring a persona query. Each discovered lead includes their verified profile and the specific LinkedIn post they authored. CRITICAL TIMEFRAME RULE: Do NOT silently default to 'month'. When a user asks to search posts without specifying a timeframe, the ONLY question you may ask the user upfront is their preferred timeframe: past 24 hours ('24h'), past week ('week'), or past month ('month'). DO NOT mention that you are searching for 30 leads or ask about volume upfront, and DO NOT ask if they want contact details (emails/phones) upfront. Silently default to 30 leads and without contact details. All other questions must come AFTER the first result is returned. CRITICAL KEYWORD GUIDELINES: Keep keywords concise (1 to 3 words or a short phrase, e.g. ['SEO problem', 'struggling with SEO'] or ['AI workflow', 'marketing automation']). Do NOT generate long conversational sentences or filler phrases (e.g. avoid 'looking for a new senior product designer for our fintech startup') as long phrases drastically lower search engine recall. IMPORTANT: Always verify user has sufficient credits with precept_check_credits before executing (+5 credits/lead for post search). Silently default to 30 on the first attempt without asking about count. This is an async operation — it returns an enrichment_id (jobId) immediately. You MUST continuously poll precept_get_job_status every 4 seconds for up to 150 attempts (~10 minutes) while in progress. Upon completion, always try to give users the lead results in a sheet doc. If you searched only default 30 leads on the first run, in the follow-up AFTER returning results, first tell the user that only 30 leads were searched for on this initial run, and then ask if they want to find more (asking t…

NameTypeReqDescription
descriptionstring–A clear, detailed description of what the user is searching for (e.g. 'Founders discussing AI workflow automation or marketing challenges'). This provides context for relevance evaluation.
enrichTypearray–Type of contact details to find. Options: 'emails' (+1 credit/lead), 'phones' (+10 credits/lead). Default: both (+11 credits/lead). Only used when includeContactDetails is true.
findInsightsboolean–Generate AI insights for each lead including professional summary, top problems, internal strategic initiatives, and public appearances. Costs 1.1 credits per lead if true, 0.1 credits if false. Defa…
includeContactDetailsboolean–Whether to find and verify email addresses and phone numbers for discovered authors. Adds +1 credit for email, +10 for phone (or +11 for both) per person. IMPORTANT: Do NOT enable unless the user exp…
keywordsarrayyes1 to 5 concise keywords or phrases to search LinkedIn posts for (e.g. ['SEO problem', 'struggling with SEO'] or ['AI workflow', 'marketing automation']). Keep phrases short (1-3 words) to maximize se…
limitnumber–Maximum number of leads to return (max 1000). Default is 30 on initial searches. DO NOT ask the user about volume or lead count upfront.
locationstring–Optional target location/country to filter post authors by (e.g. 'United States', 'US', 'UK', 'Canada'). Filters authors by verified profile location/country in real-time.
namestring–A readable name for this enrichment job, used for searching on the Precept dashboard.
streamingResultsboolean–Optional. When true (and webhookUrl is provided), contact results are progressively streamed to the webhook as each lead is enriched.
timeframestring–Timeframe of LinkedIn posts to search: '24h' (past 24 hours), 'week' (past week), 'month' (past month), or 'year' (past year). 'day' is also accepted for backward compatibility. Do NOT silently defau…
webhookUrlstring–Optional webhook URL to receive enrichment results. NOTE: NOT needed for MCP assistant workflows. You can omit this and use precept_get_job_status with the returned enrichment_id to fetch the results…
NameTypeReqDescription
enrichment_idstring–The unique job ID to poll with precept_get_job_status
finalLimitnumber–Adjusted limit based on available credit balance
messagestring–Status message describing the initialized job

No examples provided.

precept_job_posting_subscriptions ~709

Manage automated recurring job posting subscriptions to monitor target companies or natural language queries for active hiring signals and discover decision makers. Actions: - 'create': Create a subscription. Supports query-driven mode ('query', 'limit') or company-driven mode ('companies', 'departments', 'jobTitles'). Set cadence with 'frequencyDays' (7-30). - 'get': Retrieve a subscription by 'subscriptionId', including latest hiring findings and decision makers. - 'update': Update target companies, query, departments, cadence, webhookUrl, or status ('active'/'paused') by 'subscriptionId'. - 'list': List all job posting subscriptions. - 'delete': Cancel and permanently delete a subscription by 'subscriptionId'.

NameTypeReqDescription
actionstringyesThe subscription action to perform.
addCompaniesarray–Append new companies to the existing monitored list in 'update'.
companiesarray–Array of up to 100 companies to monitor (for company-driven mode, or full replacement in 'update').
departmentsarray–Canonical department names to find employees or insights for. Must be chosen from the enum values. CONCEPTUAL MAPPING: Map broad business functions to the closest canonical enum options: - 'Commercia…
frequencyDaysnumber–Cadence in days between automated checks (7 to 30, default 7).
jobTitlesarray–Specific job titles to monitor (max 10).
limitnumber–Maximum number of job postings to scan per run for query-driven mode (min 1, max 100, default 30).
namestring–A readable name for this subscription (for 'create' or 'update').
querystring–Natural language search query string for query-driven mode (e.g. 'active marketing or sales jobs posted by companies with 20-1000 employees in fmcg in the US'). Mutually exclusive with 'companies'.
removeCompanyWebsitesarray–List of company website domains to remove in 'update'.
runImmediatelyboolean–Whether to immediately start the first run upon creation (default: true).
statusstring–Change subscription status: 'active' to run on schedule, 'paused' to halt (for 'update').
subscriptionIdstring–The unique subscription ID (required for 'get', 'update', 'delete').
webhookUrlstring–Optional webhook URL where findings will be POSTed on each completed run.
NameTypeReqDescription
companiesCountnumber––
countnumber–Count of subscriptions returned
droppedCompaniesarray––
frequencyDaysnumber––
latestResult––Most recently discovered job postings and decision makers
limitnumber––
messagestring––
namestring––
nextRunAtnumber––
statusstring––
subscription––Detailed subscription configuration and latest run stats
subscriptionIdstring––
subscriptionsarray–List of all job posting subscriptions (when action is 'list')
successboolean––
typestring––

No examples provided.

precept_lead_subscriptions ~453

Manage automated recurring lead signal subscriptions to monitor target people via LinkedIn URLs for job changes, role title changes, new LinkedIn posts, and recent relevant comments. Actions: - 'create': Subscribe to monitor leads (up to 150 total leads org quota) with a 7-30 day cadence and optional company description for AI relevance evaluation. Baseline company/title is saved on initial run. - 'get': Retrieve subscription details and latest detected signals (job/title changes, LinkedIn post content, relevant comments, and generated outreach message templates). - 'update': Add/remove leads, modify cadence (7-30d), update company description, set/clear webhookUrl, or pause/resume. - 'list': List all lead subscriptions with lead counts, quota usage, and schedules. - 'delete': Cancel and permanently remove a lead subscription.

NameTypeReqDescription
actionstringyesThe lead subscription action to perform.
addLeadsarray–Additional target leads to monitor (for 'update', subject to org 150 leads quota).
descriptionstring–Context on what your company does or topics you care about. Used by AI to evaluate relevance of candidate LinkedIn posts and comments (for 'create' or 'update').
frequencyDaysnumber–Frequency cadence in days between checks (7 to 30, default 7).
leadsarray–List of target leads using LinkedIn profile URLs (up to 150 total, for 'create').
namestring–Descriptive name for this lead subscription (for 'create' or 'update').
removeLeadUrlsarray–List of LinkedIn URLs to remove from monitoring (for 'update').
runImmediatelyboolean–Whether to immediately trigger the first check upon creation (for 'create', default: true).
statusstring–Change subscription status: 'active' to run on schedule, 'paused' to halt (for 'update').
subscriptionIdstring–The unique lead subscription ID (required for 'get', 'update', 'delete').
webhookUrlstring–Optional webhook URL where signal findings will be POSTed on each completed run.
NameTypeReqDescription
countnumber–Count of lead subscriptions returned
droppedLeadsarray––
frequencyDaysnumber––
latestResult––Latest detected signals including job/role changes, relevant LinkedIn posts, relevant comments, and AI-generated outreach templates
leadsCountnumber––
maxAllowedLeadsnumber––
maxOrgSubscribedLeadsnumber––
messagestring––
namestring––
nextRunAtnumber––
statusstring––
subscription––Detailed lead subscription configuration
subscriptionIdstring––
subscriptionsarray–List of all lead signal subscriptions (when action is 'list')
successboolean––
totalOrgSubscribedLeadsnumber–Total actively subscribed leads across all subscriptions for the organization (max 150)
totalSubscribedLeadsnumber––

No examples provided.

precept_linkedin_messages ~376

Send direct LinkedIn messages and check delivery status via the Precept Chrome extension. Actions: - 'send': Send a direct message or outreach note to an individual lead via the Precept Chrome extension. MANDATORY PRE-CHECK: Before calling 'send', verify that the extension is active using precept_get_extension_status. If the lead is already a 1st-degree connection, it delivers as a direct message (DM). If not connected, it automatically routes to a connection request with your message as a personalized note (capped at 200 chars). - 'get_status': Check the delivery status of a previously dispatched message. MANDATORY POLLING RULE: Once dispatched via 'send', you MUST continuously poll 'get_status' up to 40 times (every 3 seconds) while status is 'pending'. If status becomes 'sent', 'already_pending', or 'failed', present the final outcome (including error details if failed). If still pending after 40 checks, tell the user it is taking longer than usual and they can check back later.

NameTypeReqDescription
actionstringyesThe messaging action to perform: 'send' or 'get_status'.
fallbackToConnectionNoteboolean–Whether to automatically fall back to sending a connection request with this message as a note if the lead is not a 1st-degree connection (for action 'send', default true).
messagestring–The message text to send (required when action is 'send'). Keep concise (ideally under 200 chars) for connection note compatibility.
messageIdstring–The message ID returned by 'send' to check status for (required when action is 'get_status').
recipientobject–The lead to send the message to (required when action is 'send').
NameTypeReqDescription
deliveryMethodstring|null–'direct_message' (1st-degree connection) or 'connection_note' (fallback note)
errorstring|null––
messagestring––
messageIdstring–Unique message identifier
processedAtstring|null––
queuedAtstring––
recipientobject––
statusstring–'pending' while in queue, 'sent', 'already_pending', or 'failed'
successboolean––
warningstring––

No examples provided.

precept_search_companies ~334

Search for companies using natural language queries and optionally enrich them with insights, decision makers, or custom queries. Examples: 'SaaS companies in London with 50-200 employees', 'Y Combinator startups in fintech', 'AI companies in Berlin'. IMPORTANT: Always verify user has sufficient credits with precept_check_credits before executing. Unless the user specifies a count, default to returning 30 on the first attempt and ask if they want more afterwards. This is an async operation — it returns an enrichment_id (jobId) immediately. You MUST continuously poll precept_get_job_status every 4 seconds for up to 150 attempts (~10 minutes) while in progress, providing the user with status updates at least every 15 polls (~1 minute) until completed. Upon completion, always try to give users the company results in a sheet doc.

NameTypeReqDescription
enrichmentsobject–Optional enrichment configuration. See Precept API docs for detailed enrichment types and costs.
limitnumber–Maximum number of companies to return (max 1000). Unless the user specifies a count, default to 30 on the first attempt and ask if they want more afterwards. Always verify the user has sufficient cre…
namestring–A readable name for this enrichment job.
queriesarray–Custom natural language questions to ask about each discovered company. Each query costs 0.2 credits per company.
querystringyesNatural language query to search for companies (e.g. 'SaaS companies in the UK with 50-200 employees').
NameTypeReqDescription
enrichment_idstring–The unique job ID to poll with precept_get_job_status
finalLimitnumber–Adjusted limit based on available credit balance
messagestring–Status message describing the initialized job

No examples provided.

precept_search_leads ~696

Search and discover business leads/contacts using natural language queries. Finds people matching your ideal customer profile and can enrich them with verified contact details and AI-powered insights. IMPORTANT: Always verify user has sufficient credits with precept_check_credits before executing. Silently default to returning 30 leads on the first attempt — DO NOT tell the user you are defaulting to 30 and DO NOT ask about volume or contact details upfront. This is an async operation — it returns an enrichment_id (jobId) immediately. You MUST continuously poll precept_get_job_status every 4 seconds for up to 150 attempts (~10 minutes) while in progress, providing the user with status updates at least every 15 polls (~1 minute) until completed. Upon completion, always try to give users the lead results in a sheet doc. If you searched only default 30 leads on the first run, in the follow-up AFTER returning results, first tell the user that only 30 leads were searched for on this initial run, and then ask if they want to find more (asking them to specify how many more) or if they want to enrich the contacts with phone numbers or email addresses.

NameTypeReqDescription
enrichTypearray–Type of contact details to find. Options: 'emails' (+1 credit/lead), 'phones' (+10 credits/lead). Default: both (+11 credits/lead). Only used when includeContactDetails is true.
findInsightsboolean–Generate AI insights for each lead including professional summary, top problems, internal strategic initiatives, and public appearances. Costs 1.1 credits per lead if true, 0.1 credits if false. Defa…
includeContactDetailsboolean–Whether to find and verify email addresses and phone numbers for each discovered lead. Enables waterfall search across 140+ data providers (+1 credit for email per lead, +10 for phone per lead, or +1…
limitnumber–Maximum number of leads to return (max 1000). Default is 30 on initial searches. DO NOT ask the user about volume or lead count upfront.
namestring–A readable name for this enrichment job, used for searching on the Precept dashboard.
querystringyesNatural language search query describing the target persona and company (e.g. 'Marketing heads at SaaS companies in California', 'CTOs at fintech startups in London with 50-200 employees').
signalobject–Optional LinkedIn activity signal for filtering persona search. Finds leads matching your query who recently engaged with relevant posts. Adds +5 credits per lead. (For discovering leads directly fro…
streamingResultsboolean–Optional. When true (and webhookUrl is provided), contact results are progressively streamed to the webhook as each lead is enriched. NOT needed when polling with precept_get_job_status.
webhookUrlstring–Optional webhook URL to receive enrichment results. NOTE: NOT needed for MCP assistant workflows. You can omit this and use precept_get_job_status with the returned enrichment_id to fetch the results…
NameTypeReqDescription
enrichment_idstring–The unique job ID to poll with precept_get_job_status
finalLimitnumber–Adjusted limit based on available credit balance
messagestring–Status message describing the initialized job

No examples provided.

Install

How do I install the Precept MCP server?

Precept runs locally as an npm package, launched with npx -y @preceptai/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @preceptai/mcp-server

# add to Claude Code
claude mcp add uk-co-preceptai-precept -- npx -y @preceptai/mcp-server
Common questions

What is the Precept MCP server?

Precept is an MCP server listed in the public MCP registry as uk.co.preceptai/precept. B2B lead and company intelligence: search leads, enrich contacts, and queue outreach. This page covers its npm package (@preceptai/mcp-server).

Is the Precept MCP server safe to use?

Precept scores 57 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 18 October 2026. It declares no install or post-install scripts. 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 Precept MCP server expose?

Precept exposes 13 tools: precept_search_leads, precept_get_leads_from_post_search, precept_enrich_leads, precept_get_company_insights, precept_search_companies, and 8 more. Their descriptions and schemas cost roughly 5,242 tokens of context every time the server is loaded.

Is the Precept MCP server still maintained?

Precept is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Precept MCP server under?

Precept declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.