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.

Andru

NPM · MCP-SERVER-ANDRU-INTELLIGENCE · 3 COMPONENTS

Revenue intelligence for complex B2B growth.

+3 this week 74 Trust /100

Last scanned (11 hours ago)

Scores higher than 49% 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
  • 51 of 128 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability77
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 8607 tokens (~239/item across 36 items; 35 tools + 1 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 Management67
  • Stability check failed: the tool surface changed between 1.9.3 and 2.0.2: 2 tool removals, 0 breaking changes, 7 additions. See how to fix → Fail
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
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 35 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 37 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
What we tested

Checks we ran (16)

  • Malware scan
  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

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.

  • 4 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63.

  • 3 Nov 26 0
    • Security disclosure: unverified → fail ▼ functional
  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57.

  • 1 Nov 26 0
    • Security disclosure: fail → unverified ▼ functional
  • 30 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47.

  • 28 Oct 26 +16
    • Malware scan: unverified → pass ▲ security
  • 27 Oct 26 0
    • Malware scan: unverified → pass ▲ security
    • Package version: 2.0.0 → 2.0.2 functional
    • Package version: 2.0.0 → 2.0.1 functional
  • 26 Oct 26 −26
    • Malware scan: pass → unverified ▼ security
    • Stability: 0.37 → fail ▼ security
    • Provenance: pass → fail ▼ security
    • The attested source repository moved: geter-andru/mcp-server-andru-intelligence security
    • Schema quality: 211 → 240 ▼ functional
    • Package version: 1.10.9 → 2.0.0 functional
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 5 Nov 2026 · Analysed npm/mcp-server-andru-intelligence@2.0.2

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 128 packages
Packages resolved 128
Deprecated 1
Stale 50
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 35 exposed · ~8,258 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
assess_company_readiness ~312

Checking whether a company's revenue engine is ready for its next stage: use this when the person wants to score one company's revenue readiness from its operating metrics (for example ARR, net revenue retention, sales cycle). Returns a Revenue Readiness Index (0-100) with stage fit, confidence, and the #1 growth constraint. Pass the metrics you have; more metrics give higher confidence. For every portfolio company at once, use get_portfolio_readiness_rollup. Paid. Check the price with quote before running.

NameTypeReqDescription
companyNamestring–Optional label for the company being assessed.
idempotencyKeystring–Optional: any unique string for this call. Retrying with the same key returns the first result and never charges twice.
maxAmountCentsinteger–Optional: the most this call may cost, in cents. If the price is higher, nothing runs and nothing is charged.
metricsobjectyesOperating metrics (any subset): arr, mrr, momGrowth or yoyGrowth (%), netRevenueRetention (%), grossMargin (%), monthlyChurn (%), cac, ltv, burnMultiple, customerCount, pipelineValue, salesCycleDays.…
quoteIdstring–Optional: the quote_id from quote, to pay the quoted price (held for 30 minutes).

No output schema declared.

No examples provided.

batch_fit_score ~67

Before outreach, choosing where to spend time: use this when the person has a list of companies to score or rank against their ICP (up to 50 at once). Returns each company's tier and score, plus totals.

NameTypeReqDescription
companiesarrayyesCompanies to score (max 50)

No output schema declared.

No examples provided.

cancel_job ~77

Use this when the person wants to stop an asset that generate_asset is still building. Send the job_id. What it had written is discarded. A build that already finished stays as it is; collect it with get_asset. Briefs and account plans can't be stopped.

NameTypeReqDescription
job_idstringyesThe job_id returned by generate_asset.

No output schema declared.

No examples provided.

classify_opportunity ~410

Use this after a first conversation, when the person wants one read on whether this buyer is ready: fit score, how well the people involved match the buyers in their ICP, risk flags and a fit check, ending in one call: pursue, proceed with caution, deprioritize, or not a fit today. It doesn't confirm a champion; that takes asking the person. For a quick fit score only, use get_icp_fit_score.

NameTypeReqDescription
championIdentifiedboolean–Has a champion been identified?
companyNamestringyesCompany name
competitorInvolvedstring–Known competitor in the deal
contactTitlestring–Primary contact job title
dealStagestring–Current deal stage
dealValuenumber–Estimated deal value
employeeCountnumber–Number of employees
geographystring–Location
industrystring–Industry
painPointsarray–Known pain points
productDescriptionstring–A brief description of what the user's product does and who it's for. Infer this from the conversation if the user has already described their product. If the user hasn't mentioned their product yet,…
revenuestring–Revenue range
targetRolestring–The buyer role being evaluated (e.g., "CFO", "CTO", "VP Sales"). Infer from context — often explicit in the user's question. If not mentioned, default to the most senior relevant role for their verti…
techStackarray–Technologies used
triggerEventsarray–Trigger events
verticalstring–The industry the user sells into (e.g., "fintech", "healthcare", "defense"). Infer from conversation context — the user's product description, company name, or the companies they're asking about. If…

No output schema declared.

No examples provided.

consult_agent ~297

Any step, when no other tool fits: use this when the person asks an open question for one of Andru's domain experts. Gets a domain-scoped answer in natural language (it may call lookup tools; tools that cost money must be called directly). One turn per call; pass prior turns as `history` to continue. Use `module` to pick the expert (e.g. 'market-clarity', 'deal-acceleration', 'due-diligence', 'portfolio-ops'). Paid. Check the price with quote before running.

NameTypeReqDescription
historyarray–Optional prior turns: [{ role, content }]. At most 10 turns of 2,000 characters each.
idempotencyKeystring–Optional: any unique string for this call. Retrying with the same key returns the first result and never charges twice.
maxAmountCentsinteger–Optional: the most this call may cost, in cents. If the price is higher, nothing runs and nothing is charged.
messagestringyesYour question / request for the agent (up to 4,000 characters).
modulestringyesWhich domain agent to consult (e.g. 'market-clarity', 'due-diligence', 'portfolio-ops').
quoteIdstring–Optional: the quote_id from quote, to pay the quoted price (held for 30 minutes).

No output schema declared.

No examples provided.

discover_prospects ~307

Before outreach, finding companies with a reason to change now: use this when the person needs new companies to sell to, for example when their pipeline is thin. Searches the web for real companies showing the problem the person's product solves right now (hiring, launches, funding, expansion) and links the page behind every piece of evidence. Uses the product saved on the account. Takes up to a couple of minutes. Only companies with sourced evidence are returned. Paid. Check the price with quote before running.

NameTypeReqDescription
companyNamestring–Your company name. Defaults to the product saved on your account.
coreCapabilitystring–The single most important thing your product does — the core capability that makes customers buy
idempotencyKeystring–Optional: any unique string for this call. Retrying with the same key returns the first result and never charges twice.
industrystring–Target industry to search within
maxAmountCentsinteger–Optional: the most this call may cost, in cents. If the price is higher, nothing runs and nothing is charged.
productDescriptionstring–What your product does and who it's for. Defaults to the product saved on your account.
quoteIdstring–Optional: the quote_id from quote, to pay the quoted price (held for 30 minutes).
targetMarketstring–Target market segment (e.g., "Series A SaaS companies")

No output schema declared.

No examples provided.

generate_asset ~175

Building the material a step needs, often what the champion carries into rooms the person won't be in: use this when the person picked an asset from Andru's catalog (find it with list_assets), e.g. 'Board Presentation', 'Buying Committee Navigation'. Built from everything Andru knows about their company and saved to their Andru library. Takes up to a few minutes: returns a job_id; call get_asset with it to receive the asset as markdown.

NameTypeReqDescription
assetstringyesThe asset name from list_assets.
prospectCompanystring–For a prospect asset (Pre-Call Intelligence Brief, Deal Reengagement Strategy, Personalized Cost of Inaction One-Pager): the company it is for.
prospectContactstring–For a prospect asset: the person it is for, name and title.

No output schema declared.

No examples provided.

generate_portfolio_brief ~358

Portfolio oversight: use this when a PE or VC operator wants a written brief on their portfolio companies' go-to-market activity for a period: what Andru's work across the companies found (targets, opportunities, overlaps), each company's public go-to-market news, and the market signals around their buyers, with sources. Not a financial or performance report. Send the companies (name and website, up to 15) or a portfolioId; with neither, Andru suggests the companies on the firm's website for the person to confirm. Takes a few minutes: returns a job_id; call get_asset with it. Paid. Check the price with quote before running.

NameTypeReqDescription
companiesarray–The portfolio companies to brief, up to 15. Saved as a portfolio on your account the first time.
idempotencyKeystring–Optional: any unique string for this call. Retrying with the same key returns the first result and never charges twice.
maxAmountCentsinteger–Optional: the most this call may cost, in cents. If the price is higher, nothing runs and nothing is charged.
periodEndstring–Optional ISO date for the period end. Default: the end of the last full period.
periodStartstring–Optional ISO date for the period start. Default: the start of the last full period.
periodTypestring–Reporting period type. Default quarterly.
portfolioIdstring–A portfolio already on your account (returned by an earlier brief). With companies, they are added to it.
quoteIdstring–Optional: the quote_id from quote, to pay the quoted price (held for 30 minutes).

No output schema declared.

No examples provided.

get_account_plan ~298

Use this when the person wants a plan for a specific target account. Builds a first map of the buying committee, the opportunities that fit what they sell, the likely champion, what each person needs to hear, and next steps, from sourced research, saved to their Andru account. Treat the committee and champion as a map to confirm with each person. Returns the plan's link with a short summary. A plan for the same company from the last 30 days comes back at once. Takes 1 to 3 minutes: returns a job_id; call get_asset with it. Paid. Check the price with quote before running.

NameTypeReqDescription
accountNamestringyesThe company to plan for.
idempotencyKeystring–Optional: any unique string for this call. Retrying with the same key returns the first result and never charges twice.
maxAmountCentsinteger–Optional: the most this call may cost, in cents. If the price is higher, nothing runs and nothing is charged.
productDescriptionstring–What you sell to this account, if different from the product saved in Andru (a sentence or two).
quoteIdstring–Optional: the quote_id from quote, to pay the quoted price (held for 30 minutes).
refreshboolean–Build a new plan even if one from the last 30 days exists ($12). Default false.

No output schema declared.

No examples provided.

get_asset ~121

Collecting what Andru built for a step: use this when the person asks whether something Andru started is done: an asset from generate_asset, a brief from generate_portfolio_brief, or an account plan from get_account_plan. While it is building you get its progress; when it is done you get the asset or brief in full as markdown, or the plan's link and summary (all saved to their Andru account).

NameTypeReqDescription
job_idstringyesThe job_id returned by generate_asset, generate_portfolio_brief or get_account_plan.

No output schema declared.

No examples provided.

get_competitive_positioning ~306

Use this when a buyer is weighing another option, or the person asks how they compare with a named alternative. Treats it as diligence for the buyer: where the alternative fits this buyer better, where the person's product does, and questions that help the buyer decide for themselves. Grounded in the account's ICP.

NameTypeReqDescription
competitorFeaturesarray–What that alternative offers, as you know it.
competitorNamestringyesThe alternative the buyer is weighing (a product or company).
contextstring–Additional context (e.g., "enterprise deal", "competing on price")
productDescriptionstring–A brief description of what the user's product does and who it's for. Infer this from the conversation if the user has already described their product. If the user hasn't mentioned their product yet,…
targetRolestring–The buyer role being evaluated (e.g., "CFO", "CTO", "VP Sales"). Infer from context — often explicit in the user's question. If not mentioned, default to the most senior relevant role for their verti…
verticalstring–The industry the user sells into (e.g., "fintech", "healthcare", "defense"). Infer from conversation context — the user's product description, company name, or the companies they're asking about. If…

No output schema declared.

No examples provided.

get_disqualification_signals ~324

Use this when a deal has stalled or the person wonders whether this buyer is ready for them. Checks the company against the account's ICP and the profile of companies that aren't a fit, and returns one of four fit levels with the reasons. When the answer is no, help the person tell the buyer kindly who fits them better today.

NameTypeReqDescription
companyNamestring–Company name to check
dealContextobject–Current deal context (if applicable)
employeeCountnumber–Number of employees
geographystring–Location
industrystring–Industry
productDescriptionstring–A brief description of what the user's product does and who it's for. Infer this from the conversation if the user has already described their product. If the user hasn't mentioned their product yet,…
revenuestring–Revenue range
targetRolestring–The buyer role being evaluated (e.g., "CFO", "CTO", "VP Sales"). Infer from context — often explicit in the user's question. If not mentioned, default to the most senior relevant role for their verti…
techStackarray–Technologies they use
verticalstring–The industry the user sells into (e.g., "fintech", "healthcare", "defense"). Infer from conversation context — the user's product description, company name, or the companies they're asking about. If…

No output schema declared.

No examples provided.

get_evaluation_criteria ~336

After discovery, checking what the buyer said they need against what the person offers: use this when the person knows what a buyer needs and wants to see how well their product matches. Pass the buyer's `buyerPainPoints` and `requiredCapabilities`. Returns 0-100 for pain coverage, outcome clarity, capability fit and 3 more dimensions, plus an overall score. To check whether a company is a fit at all, use get_icp_fit_score.

NameTypeReqDescription
buyerIndustrystring–Buyer's industry
buyerPainPointsarray–Pain points the buyer has expressed or you expect them to have
buyerSizestring–Buyer company size
productDescriptionstring–A brief description of what the user's product does and who it's for. Infer this from the conversation if the user has already described their product. If the user hasn't mentioned their product yet,…
requiredCapabilitiesarray–Capabilities the buyer needs from a solution
targetRolestring–The buyer role being evaluated (e.g., "CFO", "CTO", "VP Sales"). Infer from context — often explicit in the user's question. If not mentioned, default to the most senior relevant role for their verti…
verticalstring–The industry the user sells into (e.g., "fintech", "healthcare", "defense"). Infer from conversation context — the user's product description, company name, or the companies they're asking about. If…

No output schema declared.

No examples provided.

get_founder_context ~56

The context behind every step: use this when the person asks what Andru knows about them or their company. Returns their profile, product, and memory grouped as What I Know, Patterns I've Noticed and How You Operate.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_icp_fit_score ~382

Use this when the person asks whether one company is a good fit, before they reach out or spend more time. Scores it in seconds against the account's ICP on 5 dimensions (company profile, tech stack, pain, budget fit, buying signals) and returns an A–D tier with the reason behind each score. For many companies at once, use batch_fit_score.

NameTypeReqDescription
companyNamestring–Company name to evaluate
domainstring–Company website domain
employeeCountnumber–Number of employees
geographystring–HQ location
industrystring–Industry vertical
painPointsarray–Known pain points or challenges they face
productDescriptionstring–A brief description of what the user's product does and who it's for. Infer this from the conversation if the user has already described their product. If the user hasn't mentioned their product yet,…
revenuestring–Revenue range (e.g., "$1M-$5M")
targetRolestring–The buyer role being evaluated (e.g., "CFO", "CTO", "VP Sales"). Infer from context — often explicit in the user's question. If not mentioned, default to the most senior relevant role for their verti…
techStackarray–Technologies the company uses
triggerEventsarray–Recent trigger events (e.g., "just raised Series B", "new CTO hired")
verticalstring–The industry the user sells into (e.g., "fintech", "healthcare", "defense"). Infer from conversation context — the user's product description, company name, or the companies they're asking about. If…

No output schema declared.

No examples provided.

get_icp_profile ~103

Use this when the person asks who their ideal customer is, who isn't a fit, or needs to explain who buys from them and why. Returns the account's ICP, built from what they sell: the buyers who decide, what each one is measured on and the concerns each needs answered, the signals that a company is ready to change, and who isn't a fit. If the first ICP is still being built, it says so; ask again in a minute.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_market_signals ~179

Use this when the person asks what's changing in their market or their buyers' markets, or needs a reason a buyer might act now. Returns relevance-ranked signals (trends, buyer pain, moves by the alternatives buyers weigh, regulatory and tech shifts, hiring and funding), each with its impact on buyers and a recommended action. Signals come from Market Pulse; if the account has no Market Pulse yet, it says so.

NameTypeReqDescription
industrystring–Optional industry/vertical filter.
limitnumber–Max signals (1–25). Default 10.
minRelevancenumber–Minimum relevance 0–1. Default 0.5.
signalTypestring–Optional filter to one signal category.
windowDaysnumber–Look-back window in days (1–30). Default 7.

No output schema declared.

No examples provided.

get_memory_history ~94

Use this when the person asks how one saved metric, deal stage or priority changed over time, such as "What was my MRR 3 months ago?" or "When did my biggest deal move into procurement?".

NameTypeReqDescription
categorystringyesMemory category (e.g., "metric", "account").
keystringyesMemory key (e.g., "mrr", "acme_deal_stage").

No output schema declared.

No examples provided.

get_messaging_framework ~335

Use this when the person needs to put their story in one buyer's terms: a first note to an executive about what they could change, or the same point for the CFO and the IT lead. Returns what that buyer responds to, the problem in their words, and the concerns they need answered, for a channel and funnel stage. Built from the account's ICP. To learn who the buyer is, use get_persona_profile; to prepare for one specific meeting, use get_pre_brief.

NameTypeReqDescription
channelstring–Channel (email, linkedin, phone, etc.)
personaTypestring–Target buyer title
productDescriptionstring–A brief description of what the user's product does and who it's for. Infer this from the conversation if the user has already described their product. If the user hasn't mentioned their product yet,…
segmentstring–Target segment or vertical
stagestring–Where the buyer is in their journey
targetRolestring–The buyer role being evaluated (e.g., "CFO", "CTO", "VP Sales"). Infer from context — often explicit in the user's question. If not mentioned, default to the most senior relevant role for their verti…
verticalstring–The industry the user sells into (e.g., "fintech", "healthcare", "defense"). Infer from conversation context — the user's product description, company name, or the companies they're asking about. If…

No output schema declared.

No examples provided.

get_persona_profile ~332

Use this when the person asks what a specific buyer role cares about (a CFO, a VP of Operations) or why that person isn't responding. Returns Andru's starting picture of that buyer from the account's ICP: what they're measured on, what worries them, the concerns they need answered before they say yes, and what they need to hear. Treat it as something to confirm with the real person, not a conclusion. To prepare for one specific meeting, use get_pre_brief.

NameTypeReqDescription
companySizestring–Their company size range
industrystring–Their industry
productDescriptionstring–A brief description of what the user's product does and who it's for. Infer this from the conversation if the user has already described their product. If the user hasn't mentioned their product yet,…
targetRolestring–The buyer role being evaluated (e.g., "CFO", "CTO", "VP Sales"). Infer from context — often explicit in the user's question. If not mentioned, default to the most senior relevant role for their verti…
titlestringyesJob title of the person you're meeting (e.g., "VP Engineering", "CTO", "Head of Sales")
verticalstring–The industry the user sells into (e.g., "fintech", "healthcare", "defense"). Infer from conversation context — the user's product description, company name, or the companies they're asking about. If…

No output schema declared.

No examples provided.

get_portfolio_readiness_rollup ~194

Portfolio oversight: use this when a PE or VC operator wants a scorecard across all their portfolio companies, or asks which company is most at risk. Returns each company's Revenue Readiness Index, comparable across companies, with the average, the at-risk count and customer-concentration risk. Paid. Check the price with quote before running.

NameTypeReqDescription
idempotencyKeystring–Optional: any unique string for this call. Retrying with the same key returns the first result and never charges twice.
maxAmountCentsinteger–Optional: the most this call may cost, in cents. If the price is higher, nothing runs and nothing is charged.
portfolioIdstringyesThe portfolio to roll up. whoami lists yours with their ids.
quoteIdstring–Optional: the quote_id from quote, to pay the quoted price (held for 30 minutes).

No output schema declared.

No examples provided.

get_pre_brief ~359

Use this when the person has a specific upcoming meeting or call and wants to be ready for it. This is the default for "prepare me for my call". Returns a short brief: what the meeting is for and what each person in the room likely thinks going in (what they want, the concerns they need answered, what moves them, and where they'll disagree), built from the account's buying committee and labelled as Andru's assumptions to correct. Send the meeting (from their calendar, or described in a sentence), what kind of meeting it is, and who will be there by title. If you leave out who's in the room, Andru answers with the six buyers to choose from. To talk with the buyers before the meeting, use simulate_buyer_persona with the same brief.

NameTypeReqDescription
companyNamestring–Company you're meeting. Andru looks for the matching meeting on the person's calendar.
meetingstring–The meeting in a sentence if it isn't on their calendar, e.g. 'pricing call with the company's VP of Finance and their IT lead'.
meetingIdstring–The meeting from the person's calendar (an id from a previous reply). Leave it out and describe the meeting in `meeting` instead.
roomarray–Who will be there: up to 8 people, each with their title and, if you know it, which of the six buyers they are.
situationstring–What kind of meeting: a discovery call, where they speak first; a deal meeting (demo, pricing, pilot, procurement); or a customer review.
stageinteger–Where the deal is, by the last thing the buyer did (required for a deal meeting).

No output schema declared.

No examples provided.

get_revenue_memory ~133

Learning from every deal: use this when the person asks what they decided, learned or recorded before: metrics, deal patterns, account history, decisions and habits Andru has saved. Filter by category, key pattern or memory type.

NameTypeReqDescription
categorystring–Filter to a specific memory category. Omit to search all.
keyPatternstring–Filter keys matching this pattern (supports * wildcards, e.g., "*mrr*", "acme_*").
memoryTypestring–Filter by memory type. episodic=specific facts, semantic=patterns, procedural=behavioral habits.

No output schema declared.

No examples provided.

get_sales_blueprint ~332

When the founder is ready to hand the path they've proven to a first seller: use this when the person is planning a sales hire: what role, how to pay it, how to interview for it, or how to ramp the new hire. Returns a job description, comp structure, interview questions that reveal sales ability, a 90-day ramp plan and weekly activity targets tied to their ARR goal. Paid. Check the price with quote before running.

NameTypeReqDescription
arrTargetstringyesAnnual recurring revenue target (e.g., "$2M", "$5M", "$10M"). Ask the user if not mentioned.
avgCycleLengthstring–Average sales cycle length (e.g., "30 days", "60 days", "90+ days"). Infer or ask.
companyStagestringyesCurrent funding stage. Infer from conversation context if the user has mentioned it.
dealSizestring–Average deal size (e.g., "$15K ACV", "$50K ACV"). Infer from context or ask.
idempotencyKeystring–Optional: any unique string for this call. Retrying with the same key returns the first result and never charges twice.
maxAmountCentsinteger–Optional: the most this call may cost, in cents. If the price is higher, nothing runs and nothing is charged.
quoteIdstring–Optional: the quote_id from quote, to pay the quoted price (held for 30 minutes).
teamSizenumber–Current team size. Infer from context if mentioned.

No output schema declared.

No examples provided.

get_thesis_match ~304

Fundraising, not selling: use this when the person is raising money and asks which investors to talk to. Finds up to 3 VC firms investing now in companies like theirs, each with a recent deal or stated focus and a link to the page it came from (a live web search, about 30 seconds). Only firms with sourced evidence are returned. Paid. Check the price with quote before running.

NameTypeReqDescription
arrRangestring–Current ARR range (e.g., "$0-$500K", "$500K-$2M", "$2M-$10M"). Infer or ask.
idempotencyKeystring–Optional: any unique string for this call. Retrying with the same key returns the first result and never charges twice.
maxAmountCentsinteger–Optional: the most this call may cost, in cents. If the price is higher, nothing runs and nothing is charged.
productDescriptionstringyesWhat the company does and who it serves. Infer from conversation context if the user has already described their product.
quoteIdstring–Optional: the quote_id from quote, to pay the quoted price (held for 30 minutes).
stagestringyesCurrent funding stage. Infer from context if mentioned.
verticalstring–Industry vertical (e.g., "AI/ML", "FinTech", "HealthTech", "SaaS"). Infer from product description.

No output schema declared.

No examples provided.

list_assets ~179

Use this when the person needs a deliverable, often something their champion will carry into meetings the person won't be in (a business case for the CFO, an email draft, a board deck), or asks what Andru can make. Searches Andru's catalog of 139 sales, hiring, fundraising and buying assets. Each entry says what it is, the business outcome, its price, whether it needs the person's own data, and whether it can be generated today. Then call generate_asset with the asset's name.

NameTypeReqDescription
available_onlyboolean–Only assets that can be generated today.
groupstring–Optional catalog group.
limitnumber–Maximum results (default 15).
querystring–Keywords for what you need, e.g. 'board deck', 'buying committee', 'first sales hire'.

No output schema declared.

No examples provided.

log_revenue_insight ~211

Writing down what each deal taught: use this when the person asks you to remember something about their revenue: a deal decision, a reason a deal was won or lost, an ICP refinement, a metric update or a strategic pivot. Saving an existing key keeps the previous value in its history.

NameTypeReqDescription
categorystringyesWhat kind of memory this is.
confidencenumber–How confident this memory is (0.0-1.0). Default: 1.0 for founder-stated facts.
domainstring–Business domain this memory relates to. Default: general.
keystringyesUnique identifier for this memory (lowercase_underscored, e.g., "current_arr", "acme_deal_stage").
memoryTypestring–episodic=time-bound fact, semantic=general pattern, procedural=behavioral habit. Default: episodic.
valuestringyesThe memory content — a concise, specific fact or insight.

No output schema declared.

No examples provided.

preview_company ~146

Before any outreach: use this when the person wants to see how a company's website reads to the buyers it wants, before they have an Andru account. Returns who the company sells to, the buyers who decide, and what the site says versus what those buyers need to hear. Send the website. No account needed. Takes about a minute: you get a preview_id; call again with it to collect the read. If the person signs up with signup_start and this preview_id, the read becomes their first ICP.

NameTypeReqDescription
previewIdstring–From an earlier call, to collect the read.
websitestring–The company's website, e.g. acme.com.

No output schema declared.

No examples provided.

quote ~127

Before spending on the person's behalf: use this when the person asks what a call would cost, or before running a paid tool. Send the tool name and its arguments. Returns the price, whether today's free calls cover it, the wallet balance, how much this key can still spend without asking, and a quote_id that holds the price for 30 minutes. Pass quote_id with the call to pay the quoted price.

NameTypeReqDescription
argumentsobject–The arguments you plan to send with it.
toolstringyesThe tool you plan to call, e.g. get_pre_brief.

No output schema declared.

No examples provided.

set_product_context ~179

Use this when the person tells you what they sell, or Andru doesn't know their product yet. Send their company website (Andru reads it and remembers the product) or a short product description, once. Andru turns it into a product description and, from that, their first ICP: who fits and who doesn't (about 3 minutes). Every later call uses it. Call with no arguments to see what Andru has saved.

NameTypeReqDescription
productDescriptionstring–Or: what your product does and who it is for (2-3 sentences).
targetRolestring–Optional: the buyer role you target, e.g. CFO.
verticalstring–Optional: the industry you sell into.
websitestring–Your company website, e.g. acme.com. Andru reads the homepage once.

No output schema declared.

No examples provided.

signup_start ~244

Getting set up: use this when the person asks to sign up for or sign in to Andru from here. Send their email. Andru emails them a 6-digit code and an Approve button. If they read you the code, call signup_verify. If they tap Approve, call signup_status with the request_id until it returns your key. They also choose how much you can spend without asking them; it starts at nothing beyond the daily free calls.

NameTypeReqDescription
agentNamestring–Optional: your agent's name. The key is named after it.
emailstringyesThe person's email. The code goes here.
foundViastring–Optional: how the person or their agent found Andru: moltbook, a2a_directory, mcp_registry (includes Smithery), npm, search, ai_assistant, person or other. Other text is kept as written.
previewIdstring–Optional: from preview_company. The read becomes their first ICP.
websitestring–Optional: their company website, e.g. acme.com. Andru reads it so its answers are about what they sell.

No output schema declared.

No examples provided.

signup_status ~86

Getting set up: use this after signup_start when the person approves by tapping the button in their email instead of reading you a code. Send the request_id. Returns "waiting" (ask again after the number of seconds it gives), your API key once they approve (shown once; save it), or "expired".

NameTypeReqDescription
requestIdstringyesThe request_id from signup_start.

No output schema declared.

No examples provided.

signup_verify ~152

Getting set up: use this after signup_start when the person reads you the 6-digit code from their email. Send the email and the code. Returns an Andru API key for this agent.

NameTypeReqDescription
agentNamestring–Optional: your agent's name. The key is named after it.
codestringyesThe 6-digit code from the email.
emailstringyesThe email the code was sent to.
foundViastring–Optional: how the person or their agent found Andru: moltbook, a2a_directory, mcp_registry (includes Smithery), npm, search, ai_assistant, person or other. Other text is kept as written.

No output schema declared.

No examples provided.

simulate_buyer_persona ~664

Use this only when the person asks to talk with, or play out the meeting with, the buyers who'll be in the room. Andru writes a brief of what each person likely thinks going in (10 briefs a day), then plays them, one or several at once, in a Deal Prep session of 25 turns, asking what real buyers ask. Say "End role-play. How did I do?" for a scored debrief and what to take into the meeting. For the written brief alone, use get_pre_brief; it writes the same brief this session starts from. Paid. Check the price with quote before running.

NameTypeReqDescription
brief_idstring–The brief to open a session from.
idempotencyKeystring–Optional: any unique string for this call. Retrying with the same key returns the first result and never charges twice.
maxAmountCentsinteger–Optional: the most this call may cost, in cents. If the price is higher, nothing runs and nothing is charged.
meetingstring–The meeting in a sentence, when it isn't on the calendar.
meeting_idstring–A meeting from mode=meetings.
messagestring–mode=reply: what the seller says to the buyer. "End role-play. How did I do?" ends with a debrief.
modestring–meetings = the user's calendar meetings in the next 7 days (free). brief = the free brief for a meeting (10 a day). opening = open a session ($5) from a brief_id, or with one buyer. reply = the found…
personastring–Which of the user's six buyers to simulate (mode=list shows them, from their buying committee). Pick based on who the user is preparing to meet.
productDescriptionstring–What the user's product does. Defaults to the product in their ICP.
productNamestring–Product name. Defaults to the product in their ICP.
quoteIdstring–Optional: the quote_id from quote, to pay the quoted price (held for 30 minutes).
roomarray–Who's in the room, 1–8 people, each with persona (one of the six buyers) and an optional title and name.
session_idstring–The Deal Prep session to continue (returned by mode=opening). Required for mode=reply.
session_keystring–Optional idempotency key for opening a session: retrying with the same key never charges twice.
situationstring–discovery, deal or customer_review.
speakerstring–Who answers this turn (p1, p2…, from the brief).
stagenumber–The deal's stage, 0–7.
stageIdnumber–Buyer journey stage (1=Researching, 2=Quantifying, 3=Exploring, 4=Comparing, 5=Business Case, 6=Implementing, 7=Advocating). Default: 3 (Exploring).

No output schema declared.

No examples provided.

whoami ~79

Before spending on the person's behalf: use this when the person asks what this key or connection can spend, or how much is left. Returns the account, the key's name, how much it can spend today and this month without asking, the wallet balance, and free calls left today, and the portfolios this account can see, each with its id.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the Andru MCP server?

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

npm · mcp-server-andru-intelligence

# add to Claude Code
claude mcp add geter-andru-andru-intelligence -- npx -y mcp-server-andru-intelligence
Common questions

What is the Andru MCP server?

Andru is an MCP server listed in the public MCP registry as io.github.geter-andru/andru-intelligence. Revenue intelligence for complex B2B growth. This page covers its npm package (mcp-server-andru-intelligence).

Is the Andru MCP server safe to use?

Andru scores 74 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 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 Andru MCP server expose?

Andru exposes 35 tools: preview_company, signup_start, signup_verify, signup_status, whoami, and 30 more. Their descriptions and schemas cost roughly 8,258 tokens of context every time the server is loaded.

Is the Andru MCP server still maintained?

Andru 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.

What licence is the Andru MCP server under?

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

What did VerifyMCP test on the Andru MCP server?

VerifyMCP ran 16 checks on Andru, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.