Skip to main content
Glama

Andru MCP Server

Revenue intelligence for complex B2B growth. Your agent builds the assets technical founders sell with, and prepares them for real buyer conversations.

Andru is a revenue intelligence layer for complex B2B growth. Give your agent 30 tools and a catalog of 139 assets, built from what Andru knows about your company and buyers. Start with:

  • Pure Signal Market Resonance: who needs your product most, and why now (Framework $12; your first ICP is free)

  • Buying Committee Navigation: the committee, its objectors and the order to engage them (Framework $12)

  • Champion Enablement Kit: what your champion needs to win the meetings you're not in (Framework $12)

  • Technical Sales Translator: technical features in the language buyers pay for (Framework $12)

  • Executive Business Case Builder: the case your champion takes to the people who sign (Decision $49)

Prepare for real conversations with buyer role-play ($5 for a 25-turn session) and pre-meeting briefs ($3). Lookups are free. Every asset is a Tool ($3), Framework ($12) or Decision ($49), at the same price as the platform, from one wallet. 5 free calls a day on MCP and another 5 on A2A cover paid calls of $3 or less.

Build any of them with generate_asset (for example generate_asset with asset: "Champion Enablement Kit"), and find the rest with list_assets.

Installation

npm install -g mcp-server-andru-intelligence

Or run directly:

ANDRU_API_KEY=sk_live_... npx mcp-server-andru-intelligence

Related MCP server: battlecard

Configuration

Environment Variables

Variable

Required

Default

Description

ANDRU_API_KEY

Yes

—

Your Andru Platform API key

ANDRU_API_URL

No

https://api.andru-ai.com

API base URL. The default is Andru's production API; you don't need to change it. Your key is only sent to *.andru-ai.com or this machine; set ANDRU_ALLOW_CUSTOM_API_URL=true to use another host on purpose.

Get your API key at platform.andru-ai.com/settings/developer.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "andru-intelligence": {
      "command": "npx",
      "args": ["mcp-server-andru-intelligence"],
      "env": {
        "ANDRU_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Claude Code

claude mcp add andru-intelligence npx mcp-server-andru-intelligence \
  --env ANDRU_API_KEY=sk_live_your_key_here

Available Tools

Qualification & Scoring

Tool

What It Does

Latency

get_icp_fit_score

Tells you in seconds whether a company is worth your time — scores across 5 dimensions against who actually buys from you

<100ms

batch_fit_score

Score up to 50 companies at once — tier and score so you can rank a list in under a second

<500ms

classify_opportunity

Full read on a deal — fit score, persona match, risk flags, disqualification check, and a verdict: pursue, pause, or walk away

<200ms

get_disqualification_signals

Find out if you're wasting time on a deal that won't close — three layers of signal and a clear recommendation

<200ms

Stakeholder Understanding

Tool

What It Does

Latency

get_persona_profile

Look up who you're actually talking to — what they care about at 7 AM, what they need before they say yes, and exactly how to open

<50ms

get_messaging_framework

Words that fit each buyer, adapted to how each person prefers to communicate, so the analytical CTO and the results-driven VP Sales each get a version that fits them

<50ms

get_competitive_positioning

How you compare with a specific competitor, from the buyer's point of view: pass their features to see where you overlap, where you're different and where you're the better fit; without them, the concerns this buyer is likely to raise

<100ms

get_evaluation_criteria

Scores how well you match what a buyer needs — across pain coverage, outcome clarity, capability fit, and 3 more dimensions

<100ms

Account & Pipeline

Tool

What It Does

Latency

get_account_plan

Builds the account plan you'd normally spend a weekend on — stakeholder map, MEDDICC gaps, and the unified story

<100ms

get_icp_profile

Returns everything Andru knows about your ideal customer — all 5 intelligence layers and the patterns that predict churn

<100ms

get_capability_profile

Machine-readable snapshot of what your product does and who it's for — designed for buyer-side evaluation

<50ms

Prospecting & Meetings

Tool

What It Does

Latency

discover_prospects

Finds real companies likely to buy your product — searches the web live and links the page behind every piece of evidence

up to ~2 min

get_pre_brief

Pre-call prep so you don't walk in cold — talk track, discovery questions, the concerns this buyer is likely to raise and what they need to hear, and the one thing to get done

10-20s

Founder Tools

Tool

What It Does

Latency

get_sales_blueprint

First sales hire blueprint — JD, comp model, interview questions, and 90-day ramp plan for the stage you're at

10-20s

get_thesis_match

Match your company against VC investment theses — top 5 fits with reasoning for why each thesis applies

10-20s

get_founder_wellness

Burnout risk from your work days, late nights and meeting load, with recovery actions — "not scored yet" until Andru has your activity or calendar data

<200ms

simulate_buyer_persona

A Deal Prep session ($5, 25 turns): Andru acts as the CFO, CTO or VP Sales and asks the questions your real buyers ask, so you come into the real meeting equipped

5-15s

Revenue Memory

Tool

What It Does

Latency

get_revenue_memory

Query what Andru has learned about your business over time: metrics, deal patterns, account history, decisions

varies

log_revenue_insight

Save an insight, decision, metric or pattern to Andru's memory; earlier values are versioned automatically

varies

get_founder_context

Everything Andru knows about you, organised by memory type, to prime any revenue conversation

varies

get_memory_history

How a metric, deal stage or priority has changed over time ("What was my MRR 3 months ago?")

varies

Market & Portfolio Intelligence

Tool

What It Does

Latency

get_market_signals

What's moving in your market now: ranked signals, each with its buyer impact and a recommended action

varies

assess_company_readiness

Scores a company's Revenue Readiness Index (0–100) from its operating metrics, with its #1 growth constraint

varies

get_portfolio_readiness_rollup

A board-ready scorecard of every portfolio company by Revenue Readiness Index, with aggregates

varies

generate_portfolio_brief

A board/LP-grade brief for a portfolio: per-company performance, market context, cross-portfolio opportunities

varies

Consultation

Tool

What It Does

Latency

consult_agent

Ask one of Andru's domain expert agents in natural language and get a domain-scoped answer ($3 per turn)

varies

Asset Catalog

Tool

What It Does

Price

list_assets

Search Andru's catalog of 139 sales, hiring, fundraising and buying assets: what each is, its business outcome, price, and whether it can be generated today

Free

generate_asset

Generate any catalog asset from everything Andru knows about your company; saved to your Andru library

Its catalog price: Tool $3, Framework $12, Decision $49 (your first ICP is free)

get_asset

Collect a generated asset as markdown

Free

Product Context

Tool

What It Does

Price

set_product_context

Tell Andru what you sell, once: your company website (Andru reads it) or a short description. Every later call uses it

Free

Pricing

The same work costs the same as in the Andru platform, from the same wallet:

  • Answers from your own data (fit scores, ICP, personas, account plan…): always free.

  • Tool, $3: a pre-meeting brief, a diagnostic, one expert-agent turn, or a single-piece catalog asset.

  • Framework, $12 and Decision, $49: the rest of the catalog.

  • Deal Prep session, $5: 25 turns of buyer role-play and coaching (simulate_buyer_persona).

5 free calls a day on MCP, and another 5 on A2A, cover paid calls priced $3 or less (pre-meeting brief, diagnostic); Deal Prep sessions, consultations and catalog assets are always paid. A call that only asks you for more information is never charged. Your wallet balance is at platform.andru-ai.com/settings/billing.

CLI

These tools are also available from the command line via the companion andru-intel package:

npx andru-intel assets board            # search the asset catalog (free)
npx andru-intel generate "Board Presentation" --out board-deck.md   # build it, save as markdown
npx andru-intel list                    # see all tools
npx andru-intel score "AI code review"  # instant ICP (works offline)
npx andru-intel persona CFO             # buyer persona deep dive
npx andru-intel blueprint --stage "Series A" --arr "$2M"
npx andru-intel thesis "AI sales platform" --stage "Seed"
npx andru-intel roleplay CTO
npx andru-intel wellness
npx andru-intel run get_competitive_positioning --companyName "Acme"

Cold-Start Support

7 tools work without any pipeline data — just describe your product:

  • get_icp_fit_score, get_persona_profile, get_messaging_framework, get_competitive_positioning, get_evaluation_criteria, classify_opportunity, get_disqualification_signals

Andru only needs to know what you sell once:

  • Signed up with a company email? Andru reads your company's website and remembers your product. Nothing to do.

  • Client shows forms (Claude Code, Cursor, VS Code)? The first tool that needs it asks for your website in one field, then answers.

  • Otherwise: call set_product_context with your website (or a description) once.

You can still pass productDescription, vertical, and targetRole on any call; what you send first is remembered. The tools use pre-built stakeholder understanding (5 pre-built buyer personas, 3 vertical segment profiles) to deliver results immediately.

Run a full ICP pipeline at platform.andru-ai.com for understanding tuned to your specific product and market.

Available Resources

URI

Description

andru://icp/profile

The complete profile of the companies you should actually be selling to — 5 intelligence layers, 7 critical questions, and churn prediction patterns

andru://pipeline/runs

All your pipeline runs and what each one produced — ICP layers, lead gen strategy, account plans, and deck output

andru://accounts

Your tracked accounts — tier, pipeline value, stakeholder count, and account plan status

How It Works

This MCP server is a thin proxy that authenticates with your Andru API key and forwards tool/resource requests to the Andru backend. All intelligence generation, ICP scoring, and data access happens server-side — the MCP server itself is stateless.

When your AI app connects, the server tells Andru the app's name and version. Each tool call is recorded by tool name, outcome and cost; what you typed isn't part of that record.

Claude Desktop/Code  →  MCP Server (stdio)  →  Andru API (HTTPS)

A2A Protocol

Andru also supports the Agent-to-Agent (A2A) protocol for direct agent-to-agent communication. The AgentCard is available at:

https://api.andru-ai.com/.well-known/agent.json

Intelligence Briefs

Free signal reads for the questions technical founders ask at 11 PM:

License

MIT

Available Tools

30 tools
assess_company_readinessA
Read-only

Scores a company's Revenue Readiness Index (0–100) from its operating metrics — stage-fit, confidence, NRR / CAC-payback / pipeline-coverage, and the #1 growth constraint. Use it to screen a target or assess a portfolio company. Pass the metrics you have; more metrics = higher confidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricsYesOperating metrics (any subset): arr, mrr, momGrowth or yoyGrowth (%), netRevenueRetention (%), grossMargin (%), monthlyChurn (%), cac, ltv, burnMultiple, customerCount, pipelineValue, salesCycleDays. Percentages as numbers (110 = 110%; 1.1 is read as 110% for retention and margin). The more provided, the higher the confidence.
companyNameNoOptional label for the company being assessed.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, so the safety profile is already covered. The description adds genuine behavioral context beyond that: the output is a bounded 0–100 index and confidence scales with how many metrics are supplied, which tells the agent this is a tolerant, partial-input scoring call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what is produced before how to use it and how input affects confidence. No filler or restated boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so adequately: the 0–100 index and the '#1 growth constraint' output are named. It does not describe the shape of the remaining response fields, but an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the metrics object already enumerates every accepted field with percentage-formatting rules, so the schema does the heavy lifting. The description's metric families ('stage-fit, confidence, NRR / CAC-payback / pipeline-coverage') roughly mirror those inputs but do not add syntax or format meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Scores a company's Revenue Readiness Index (0–100)') plus the input basis (operating metrics) and the headline output (score plus #1 growth constraint). This clearly separates it from siblings like get_portfolio_readiness_rollup, which aggregates rather than scoring one company.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts ('screen a target or assess a portfolio company') and a practical rule for input handling ('Pass the metrics you have; more metrics = higher confidence'). It stops short of naming an alternative tool or an explicit when-not-to-use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_fit_scoreA
Read-only

Score up to 50 companies at once — gives each a tier and score so you can rank a list in under a second. Returns individual scores plus aggregate statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
companiesYesCompanies to score (max 50)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating safe read operations with flexible inputs. The description adds valuable behavioral context beyond annotations: the 50-company limit, performance expectation ('under a second'), and output structure ('individual scores plus aggregate statistics'). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. First sentence establishes purpose and scope, second sentence describes output. Perfectly front-loaded with essential information, no redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only batch scoring tool with good annotations and full schema coverage, the description provides adequate context about purpose, constraints, and output. The main gap is lack of output schema, but the description compensates by describing return values ('individual scores plus aggregate statistics'). Could be more specific about scoring methodology.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the input schema fully documents the single parameter and its nested structure. The description adds minimal parameter semantics beyond the schema, only mentioning the 50-company limit which is already in the schema description. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Score up to 50 companies at once'), the resource ('companies'), and the output ('gives each a tier and score'). It distinguishes from sibling tools like 'get_icp_fit_score' by emphasizing batch processing and ranking capabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('to rank a list in under a second') and implies it's for batch processing rather than single-company scoring. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_opportunityA
Read-only

Run a full read on a deal in one call — fit score, persona match, risk flags, disqualification check, and a verdict: pursue, pause, or walk away. Combines multiple scoring engines for a comprehensive assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
revenueNoRevenue range
industryNoIndustry
verticalNoThe 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 unclear, ask.
dealStageNoCurrent deal stage
dealValueNoEstimated deal value
geographyNoLocation
techStackNoTechnologies used
painPointsNoKnown pain points
targetRoleNoThe 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 vertical.
companyNameYesCompany name
contactTitleNoPrimary contact job title
employeeCountNoNumber of employees
triggerEventsNoTrigger events
championIdentifiedNoHas a champion been identified?
competitorInvolvedNoKnown competitor in the deal
productDescriptionNoA 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, ask them: "What does your product do, and who do you sell to?" before calling this tool.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and openWorldHint=true, which the description does not contradict. The description adds behavioral context by mentioning it 'combines multiple scoring engines' and outputs a verdict, which goes beyond annotations. However, it lacks details on rate limits, error handling, or performance characteristics that would be useful for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence and efficiently lists outputs without redundancy. Every sentence adds value by clarifying scope and methodology, making it appropriately sized and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (16 parameters, no output schema) and annotations covering safety, the description adequately explains what the tool does and its comprehensive nature. However, without an output schema, it could benefit from more detail on the return format (e.g., structure of the verdict) to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 16 parameters. The description does not add any parameter-specific details beyond what the schema provides, such as explaining relationships between parameters or usage tips. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('run a full read on a deal') and resources ('deal'), listing the comprehensive outputs (fit score, persona match, risk flags, disqualification check, verdict). It effectively distinguishes from siblings by emphasizing it 'combines multiple scoring engines for a comprehensive assessment,' unlike more focused sibling tools like 'get_icp_fit_score' or 'get_disqualification_signals'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by stating it provides a 'full read' and 'comprehensive assessment,' suggesting it should be used for holistic deal evaluation rather than piecemeal analysis. However, it does not explicitly state when not to use it or name specific alternatives among the sibling tools, which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

consult_agentA
Read-only

Consult one of Andru's domain expert agents in natural language and get a domain-scoped answer (it may call free lookup tools; paid tools must be called directly). $3 per turn. One consultation 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').

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleYesWhich domain agent to consult (e.g. 'market-clarity', 'due-diligence', 'portfolio-ops').
historyNoOptional prior turns: [{ role, content }]. At most 10 turns of 2,000 characters each.
messageYesYour question / request for the agent (up to 4,000 characters).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint. The description adds the traits that actually matter for a paid, stateful tool: $3 per turn, one consultation turn per call, and that conversation state only persists via `history`. That is substantive disclosure beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action, then cost, then turn/history mechanics, then module selection. Four dense sentences with no filler and no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description tells the agent what comes back (a domain-scoped answer). It covers cost, statefulness, continuation, and agent selection, leaving nothing an agent needs in order to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning the schema lacks: `history` is the mechanism for continuing a conversation ('pass prior turns as `history` to continue'), and `module` selects the expert. The enumerated module values largely duplicate the schema, so it is not a full 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Consult'), a specific resource ('domain expert agents'), and the output shape ('domain-scoped answer'). The consult-a-domain-expert action is clearly distinguishable from the surrounding get_*/generate_* siblings, so an agent can pick it correctly without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real context: it may call free lookup tools but paid tools must be called directly, and continuation is done by passing prior turns as `history`. This effectively implies a when-not (for paid operations, call those tools directly). It stops short of naming sibling alternatives, so it falls just under a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_prospectsA
Read-only

Finds real companies likely to buy your product. Searches the web for companies showing they have the problem you solve right now (hiring, launches, funding, expansion) and links the page behind every piece of evidence. Uses the product saved on your account. Takes up to a couple of minutes; nothing is charged if no company has sourced evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
industryNoTarget industry to search within
companyNameNoYour company name. Defaults to the product saved on your account.
targetMarketNoTarget market segment (e.g., "Series A SaaS companies")
coreCapabilityNoThe single most important thing your product does — the core capability that makes customers buy
productDescriptionNoWhat your product does and who it's for. Defaults to the product saved on your account.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover readOnlyHint and openWorldHint. The description adds genuinely new behavioral facts: it can take up to a couple of minutes (latency), nothing is charged when no company has sourced evidence (a conditional billing model), and every piece of evidence is backed by a linked source page (output trust model). That is exactly the extra context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core purpose before the mechanism and the operational caveats. No filler, though the latency/billing sentence could be slightly more compact. Every sentence adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden, and it handles that by stating that every claim is backed by a linked evidence page. It also covers latency and cost. All five parameters are optional and schema-covered, so the remaining gap is minor (no guidance on result volume or how to narrow a search).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each of the five parameters is already documented in the input schema, including the 'defaults to the product saved on your account' behavior for companyName and productDescription. The description's mention of the saved product context repeats rather than extends the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource: 'Finds real companies likely to buy your product', amplified by 'Searches the web for companies showing they have the problem you solve right now'. An agent can immediately tell this is a web-sourced prospect discovery tool, distinct from the get_*/list_* siblings. It stops short of explicitly naming any sibling, so it doesn't earn a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than prescribed: it explains the signal types it looks for (hiring, launches, funding, expansion) and that it runs against the saved product context, which tells an agent when this is the relevant tool. But there is no explicit when-to-use vs. an alternative, and no stated prerequisites (e.g. needing product context set first) beyond the soft 'uses the product saved on your account'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_assetA

Generate an asset from Andru's catalog (find it with list_assets) — e.g. 'Board Presentation', 'Buying Committee Navigation'. Charged at its catalog price (Tool $3, Framework $12, Decision $49); your first ICP is free. Built from everything Andru knows about your company and saved to your Andru library. Takes up to a few minutes: returns a job_id — call get_asset with it to receive the asset as markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesThe asset name from list_assets.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds genuinely valuable behavior beyond that: per-tier pricing ($3/$12/$49), a free first ICP, an async 'up to a few minutes' duration, a job_id return, and persistence to the Andru library. Cost, latency, and persistence semantics an agent could not infer are all disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and examples, then packed with cost, latency, and return mechanics. Dense but every clause carries distinct information. Slightly congested with parenthetical pricing detail, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by explaining the async job_id return and the follow-up get_asset call. Cost, latency, and save destination are all covered, so an agent has everything needed to invoke and follow through correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the sole parameter's purpose is documented in the schema. The description still adds value by clarifying the value must come from list_assets and by giving example asset names, though it doesn't specify name format or handling of invalid names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate an asset from Andru's catalog') and grounds it with concrete examples ('Board Presentation', 'Buying Committee Navigation'). It also distinguishes itself from siblings by naming list_assets as the discovery path and get_asset as the retrieval path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: find the asset name via list_assets, and retrieve the result via get_asset using the returned job_id. This gives clear context for the generate step. It stops short of stating when NOT to generate (e.g., cost gating or prerequisites), so it isn't a full when/when-not treatment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_portfolio_briefA
Read-only

Generates a board/LP-grade intelligence brief for a portfolio — per-company performance, market context, and cross-portfolio opportunities — for a reporting period. For PE/VC fund reporting and quarterly reviews.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodEndNoOptional ISO date for the period end. Default: the end of the last full period.
periodTypeNoReporting period type. Default quarterly.
periodStartNoOptional ISO date for the period start. Default: the start of the last full period.
portfolioIdYesThe portfolio to brief. Must belong to the caller.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful content-scope context (what the brief contains), but says nothing about output format, latency, or the fact that portfolioId must belong to the caller beyond what the schema notes. Adds some value over annotations, but not rich behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first front-loads the core purpose and contents, the second gives the audience/use-case. No filler, and the most important information leads.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry return-value burden; it does so adequately by naming the brief's components (per-company performance, market context, cross-portfolio opportunities). Missing practicals such as format and whether the brief is persisted, but it is largely complete for a read-only report generator.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with periodStart/periodEnd/periodType/portfolioId each documented and defaults stated in the schema. The description only alludes to 'a reporting period' and adds no syntax or format detail beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Generates) plus the resource (a board/LP-grade intelligence brief for a portfolio) and enumerates the contents (per-company performance, market context, cross-portfolio opportunities). The audience/use-case framing (PE/VC fund reporting) further narrows it against generic reporting siblings. An agent can tell this apart from get_portfolio_readiness_rollup or get_pre_brief without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly scopes usage with 'For PE/VC fund reporting and quarterly reviews,' giving clear context for when to invoke it. It does not name any alternative tool or a when-not condition, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_account_planA
Read-only

Builds the account plan you'd normally spend a weekend on — stakeholder map, what each person needs to hear, MEDDICC gaps, and the unified story across the buying committee.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany domain
industryNoIndustry vertical
accountNameYesTarget account/company name
dealContextNoCurrent deal context
stakeholdersNoKnown stakeholders at the account

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and openWorldHint=true, showing it's a safe, generative operation. The description adds context about generating a comprehensive plan with specific components, which goes beyond annotations. However, it doesn't disclose behavioral traits like rate limits, processing time, or output format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Builds the account plan') and lists key components without unnecessary details. Every part of the sentence adds value, making it appropriately sized and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters with nested objects) and lack of output schema, the description provides a good overview of what the tool generates. However, it could be more complete by hinting at the output format or depth of analysis, especially since no output schema exists to clarify return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. The description doesn't add specific meaning beyond the schema, such as explaining how parameters influence the plan generation. The baseline score of 3 is appropriate since the schema carries the parameter documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it 'builds the account plan' with specific components like stakeholder map, messaging needs, MEDDICC gaps, and unified story. It uses a specific verb ('builds') and resource ('account plan'), and distinguishes itself from siblings by focusing on comprehensive planning rather than scoring, classification, or profiling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'you'd normally spend a weekend on' and referencing a 'buying committee,' suggesting it's for complex sales scenarios. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_sales_blueprint' or 'get_pre_brief,' nor does it provide exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_assetA
Read-only

Collect an asset started with generate_asset. While it is building you get its progress; when it is done you get the full asset as markdown (also saved to your Andru library). Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job_id returned by generate_asset.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations covering only the safety profile (readOnlyHint/openWorldHint), the description adds the behavioral details that matter: it is a polling call whose response changes shape (progress while building, full asset when complete), the payload format is markdown, the result is persisted to the Andru library, and there is no cost. These are traits an agent cannot infer from the schema or annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler: the action and its prerequisite come first, followed by the state-dependent return behavior. Everything earns its place, including the trailing cost note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the return-value burden and does so by describing both possible responses (progress vs full markdown asset). For a one-parameter polling tool this is sufficient to call and interpret it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter's description already states it is the job_id from generate_asset. The description adds no syntax, format, or lifecycle detail (e.g. expiry) beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (collect) and resource (asset) and ties it explicitly to the producing tool, generate_asset. This clearly separates it from siblings like generate_asset (which creates the job) and list_assets (which enumerates existing assets).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tells the agent when to call it (after generate_asset, with the returned job_id) and what to expect at each stage. No explicit when-not or alternatives are given, but the dependency on generate_asset makes the usage context unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_capability_profileA
Read-only

Returns a machine-readable snapshot of what your product actually does and who it's for — capabilities, verified outcomes, trust signals, pricing model, and integrations. Designed for buyer-side agent evaluation.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceRefreshNoForce regeneration even if cached (default: false)
includeOutcomesNoInclude verified outcomes (default: true)
includeTrustSignalsNoInclude trust signals (default: true)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and open-world hints, so the agent knows this is a safe, non-destructive query with flexible data. The description adds value by specifying the tool's design intent ('buyer-side agent evaluation') and the snapshot's content scope, but it does not disclose additional behavioral traits like rate limits, authentication needs, or caching behavior beyond the forceRefresh parameter in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence and efficiently adds context in the second sentence. Every phrase ('machine-readable snapshot,' 'buyer-side agent evaluation') contributes meaning without redundancy, making it appropriately sized and zero-waste for a tool with clear annotations and schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (retrieving a comprehensive product profile) and the presence of annotations (readOnlyHint, openWorldHint) and full schema coverage, the description is mostly complete. It outlines the snapshot's components and the tool's design intent. However, without an output schema, it could benefit from hinting at the return format (e.g., structured data like JSON), but this is a minor gap given the annotations provide safety context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the three optional parameters (includeOutcomes, includeTrustSignals, forceRefresh) with their defaults. The description does not add any parameter-specific semantics beyond what the schema provides, such as explaining the implications of 'verified outcomes' or 'trust signals,' but this is acceptable given the high schema coverage, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Returns a machine-readable snapshot') and resource ('what your product actually does and who it's for'), listing key components like capabilities, outcomes, trust signals, pricing, and integrations. It explicitly distinguishes this tool from siblings by noting it's 'Designed for buyer-side agent evaluation,' which none of the sibling tools mention.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('Designed for buyer-side agent evaluation'), which helps differentiate it from siblings focused on scoring, classification, or data retrieval. However, it does not explicitly state when not to use it or name specific alternatives among the siblings, such as get_icp_profile or get_persona_profile, which might overlap in purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_competitive_positioningA
Read-only

How you compare with a specific competitor, from the buyer's point of view. Pass the competitor's features in competitorFeatures to get where you overlap, where you're different, and where you're the better fit; without them you get the concerns this buyer is likely to raise. Free. For a written comparison to share, generate the Competitive Positioning Framework with generate_asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoAdditional context (e.g., "enterprise deal", "competing on price")
verticalNoThe 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 unclear, ask.
targetRoleNoThe 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 vertical.
competitorNameYesCompetitor company name
competitorFeaturesNoKnown competitor features or capabilities
productDescriptionNoA 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, ask them: "What does your product do, and who do you sell to?" before calling this tool.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds genuine beyond-schema context: the output differs based on inputs (overlap/differentiation/fit vs. likely buyer concerns) and that the call is "Free", a useful cost trait. It doesn't cover latency or result ranking, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then the input-driven behavior, then the alternative — three tightly ordered sentences with no filler. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only comparison tool with fully documented parameters and no output schema, the description supplies the missing pieces: what the output represents and how it varies, plus the escape hatch to the asset-generation sibling. Nothing needed to invoke it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description goes beyond the schema by explaining the conditional effect of `competitorFeatures` (what you get with vs. without them). The schema itself carries the infer-from-context guidance for the other params, which is strong.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource and frames it precisely ("How you compare with a specific competitor, from the buyer's point of view"), which is distinct from sibling analysis tools like get_icp_fit_score or get_evaluation_criteria. It also names the sibling (generate_asset) it is not, so an agent can route without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly conditions behavior on the presence of `competitorFeatures` and names the alternative route for a shareable output ("For a written comparison to share, generate the Competitive Positioning Framework with `generate_asset`"). Both the when-to-use and the alternative are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_disqualification_signalsA
Read-only

Find out if you're wasting time on a deal that won't close. Runs the company through three layers of signal — ICP fit, anti-pattern matching, and churn patterns — and tells you whether to keep investing or walk away.

ParametersJSON Schema
NameRequiredDescriptionDefault
revenueNoRevenue range
industryNoIndustry
verticalNoThe 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 unclear, ask.
geographyNoLocation
techStackNoTechnologies they use
targetRoleNoThe 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 vertical.
companyNameNoCompany name to check
dealContextNoCurrent deal context (if applicable)
employeeCountNoNumber of employees
productDescriptionNoA 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, ask them: "What does your product do, and who do you sell to?" before calling this tool.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe, exploratory operation. The description adds behavioral context by explaining the three analysis layers (ICP fit, anti-pattern matching, churn patterns) and the actionable outcome ('tells you whether to keep investing or walk away'), which goes beyond annotations. However, it does not disclose details like rate limits, authentication needs, or specific output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by specific analysis details and outcome. It uses two efficient sentences with zero wasted words, each earning its place by clarifying the tool's function and value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, nested objects) and lack of output schema, the description is reasonably complete for a read-only analysis tool. It explains the analysis method and decision outcome, but does not detail the return format (e.g., score, reasons, confidence) or error handling, which could be important given the open-world hint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 10 parameters. The description does not add any parameter-specific semantics beyond what the schema provides, such as explaining how 'techStack' influences disqualification or how 'dealContext' affects the analysis. It only implies general usage of company and deal data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('find out', 'runs', 'tells you') and resources ('company', 'three layers of signal'), and distinguishes it from siblings by focusing on disqualification signals rather than scoring, classification, or prospecting. It explicitly answers 'whether to keep investing or walk away', which is unique among the listed tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('wasting time on a deal that won't close'), but does not explicitly state when not to use it or name alternatives among siblings. It implies usage for deal evaluation but lacks explicit exclusions or comparisons to tools like 'classify_opportunity' or 'get_icp_fit_score'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_evaluation_criteriaA
Read-only

Scores how well you match what this buyer needs — across pain coverage, outcome clarity, capability fit, and 3 more dimensions. Returns 0-100 per dimension plus overall alignment score. Pass the buyer's buyerPainPoints and requiredCapabilities; pain coverage and capability fit are scored against them. Use get_icp_fit_score to check whether a company is worth pursuing at all, and this tool once you know what the buyer needs. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
verticalNoThe 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 unclear, ask.
buyerSizeNoBuyer company size
targetRoleNoThe 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 vertical.
buyerIndustryNoBuyer's industry
buyerPainPointsNoPain points the buyer has expressed or you expect them to have
productDescriptionNoA 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, ask them: "What does your product do, and who do you sell to?" before calling this tool.
requiredCapabilitiesNoCapabilities the buyer needs from a solution

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly and openWorld, so the description must carry the behavioral load — and it does, disclosing the return shape (0-100 per dimension plus overall alignment), the scoring logic, and that the tool is free. It stops short of describing failure modes or latency, but the core behavioral picture is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences ordered as what-it-does, what-it-returns, what-to-pass, when-to-use — strongly front-loaded. Slightly dense with backtick-heavy parameter references, but no wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema present, the description correctly compensates by explaining the return values (0-100 per dimension plus overall). Combined with the alternative-tool routing and the 'Free' cost note, an agent has enough to invoke this confidently; only minor gaps like required-vs-optional param framing remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the 3 baseline applies, but the description adds real value by linking specific parameters to specific outputs — buyerPainPoints drives pain coverage and requiredCapabilities drives capability fit. That causal mapping is not derivable from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Scores") and resource (match quality against buyer needs), enumerates the dimensions covered (pain coverage, outcome clarity, capability fit, +3 more), and names the sibling it is distinct from. An agent can tell it apart from get_icp_fit_score without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes usage: use get_icp_fit_score to decide whether a company is worth pursuing at all, and this tool 'once you know what the buyer needs.' Both the alternative and the selecting condition are stated outright.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_founder_contextA
Read-only

Get a full context dump of everything Andru knows about this founder — organized by memory type (What I Know, Patterns I've Noticed, How You Operate). Used to prime any revenue conversation with accumulated intelligence.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true (safe read) and openWorldHint=true (returns varied data). The description adds valuable behavioral context: it specifies the output is 'organized by memory type (What I Know, Patterns I've Noticed, How You Operate)' and that it provides 'accumulated intelligence.' This goes beyond annotations by detailing the structure and nature of the intelligence returned. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise: two sentences that each earn their place. The first sentence defines the tool's purpose and output structure, while the second provides clear usage guidelines. No redundant information, well-structured, and front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with readOnly and openWorld annotations, the description is quite complete. It explains what the tool returns (full context dump organized by memory types) and when to use it (priming revenue conversations). The main gap is the lack of output schema, so the description doesn't specify exact return format details, but it provides enough semantic context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%. With no parameters to document, the baseline is 4. The description appropriately doesn't waste space on parameter details, focusing instead on the tool's purpose and output characteristics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a full context dump of everything Andru knows about this founder — organized by memory type.' It specifies the resource (founder context), the verb (get), and the organizational structure (memory types). It also distinguishes from siblings by focusing on comprehensive founder intelligence rather than specific aspects like wellness, capability, or competitive positioning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'Used to prime any revenue conversation with accumulated intelligence.' This provides clear context for usage (revenue conversations) and implies it's for preparation rather than real-time analysis. It distinguishes from siblings by focusing on holistic founder context rather than targeted assessments like fit scores or disqualification signals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_founder_wellnessA
Read-only

Checks for early signs of burnout from your work days, late nights and meeting load, then gives you a risk score and specific recovery actions. Until Andru has your activity or calendar data, it says the risk is not scored yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoassessment = burnout risk score + recommendations. dashboard = full wellness data. Default: assessment.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: it discloses the degraded state where no activity/calendar data exists and the tool reports risk as unscored, which tells the agent how to interpret an empty result. It stops short of explaining how data becomes available or any latency/privacy considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the tool's function and followed by the one non-obvious caveat about unscored risk. No filler, no restatement of the title, and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description responsibly characterizes the return values (risk score, specific recovery actions, 'not scored yet' state). It is nearly complete for a zero-required-parameter read tool; the only gap is the unexplained 'dashboard' mode, whose output shape the agent must infer from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single enum parameter 'mode' is fully documented in the schema (assessment vs dashboard). The description never mentions the mode switch or explains what 'dashboard' returns, so it adds no meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('checks for early signs of burnout') and spells out the signal sources (work days, late nights, meeting load) plus the outputs (risk score and recovery actions). Nothing in the sibling list overlaps with this wellness/burnout function, so an agent can identify it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose rather than stated: there is no explicit 'use when...' nor any alternative tool to route to. The one piece of guidance present is the data prerequisite ('Until Andru has your activity or calendar data, it says the risk is not scored yet'), which is a useful condition but not a full when-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_icp_fit_scoreA
Read-only

Tells you in seconds whether the company you're thinking about is worth your time — scores them against who actually buys from you and why, across 5 dimensions. No AI calls, instant results.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany website domain
revenueNoRevenue range (e.g., "$1M-$5M")
industryNoIndustry vertical
verticalNoThe 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 unclear, ask.
geographyNoHQ location
techStackNoTechnologies the company uses
painPointsNoKnown pain points or challenges they face
targetRoleNoThe 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 vertical.
companyNameNoCompany name to evaluate
employeeCountNoNumber of employees
triggerEventsNoRecent trigger events (e.g., "just raised Series B", "new CTO hired")
productDescriptionNoA 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, ask them: "What does your product do, and who do you sell to?" before calling this tool.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only and open-world hints, which the description doesn't contradict. It adds valuable context beyond annotations: 'No AI calls, instant results' clarifies performance characteristics, and 'scores them against who actually buys from you and why' hints at data-driven matching. However, it doesn't detail rate limits, authentication needs, or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by clarifying details. Every sentence earns its place: the first defines the tool, the second adds scoring context and performance traits. No wasted words, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, no output schema) and rich annotations, the description is mostly complete. It covers purpose, behavior, and context but could better explain output expectations (e.g., score format) or parameter interdependencies. The absence of an output schema means the description should ideally hint at return values, which it partially does with 'scores them'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. The description doesn't add meaning beyond the schema, such as explaining how parameters influence the score or which are most critical. It mentions '5 dimensions' but doesn't map them to parameters, so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: scoring a company against buyer profiles across 5 dimensions to determine if it's worth pursuing. It specifies the verb ('scores'), resource ('company'), and scope ('against who actually buys from you'), distinguishing it from siblings like 'get_icp_profile' or 'classify_opportunity' by focusing on fit evaluation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use it ('whether the company you're thinking about is worth your time') and mentions 'No AI calls, instant results' as a behavioral trait, but it doesn't explicitly state when not to use it or name alternatives like 'batch_fit_score' for multiple companies or 'get_disqualification_signals' for negative filtering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_icp_profileA
Read-only

Returns everything Andru knows about your ideal customer — all 5 intelligence layers, the 7 critical buyer questions, and the patterns that predict churn. Optionally filter to specific layers.

ParametersJSON Schema
NameRequiredDescriptionDefault
layersNoSpecific layers to include (1-5). Omit for all layers.
includeAntiPatternsNoInclude anti-patterns and churn predictors (default: true)
includeSevenAnswersNoInclude seven critical buyer answers (default: true)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and open-world characteristics. The description adds valuable context about what information is returned (5 layers, 7 buyer questions, churn patterns) and the optional filtering capability, which goes beyond the annotations. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: the first states the comprehensive return value, and the second mentions the optional filtering capability. Every element serves a purpose with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only query tool with good annotations and full parameter documentation, the description provides adequate context about what intelligence is returned. However, without an output schema, it could benefit from more detail about the return format structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema fully documents all three parameters. The description mentions optional filtering to specific layers, which aligns with the 'layers' parameter but doesn't add meaningful semantic context beyond what's already in the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns comprehensive ICP information with specific details about 'all 5 intelligence layers, the 7 critical buyer questions, and the patterns that predict churn.' It distinguishes itself from siblings by focusing on complete ICP profiles rather than specific aspects like fit scores, positioning, or disqualification signals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining complete ICP intelligence but doesn't explicitly state when to use this tool versus alternatives like get_icp_fit_score, get_competitive_positioning, or get_disqualification_signals. No specific exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_signalsA
Read-only

Surfaces what's moving in your market right now — relevance-ranked industry signals (trends, buyer pain, competitor moves, regulatory/tech shifts, hiring + funding) each with its buyer impact and a recommended action. Use it for deal/market context before a screen, or to time GTM moves.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax signals (1–25). Default 10.
industryNoOptional industry/vertical filter.
signalTypeNoOptional filter to one signal category.
windowDaysNoLook-back window in days (1–30). Default 7.
minRelevanceNoMinimum relevance 0–1. Default 0.5.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and external-data scope are covered. The description usefully adds that signals are relevance-ranked and each carries a buyer impact and recommended action, but says nothing about freshness, source coverage, or rate limits beyond the read-only profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences: the first front-loads what the tool returns and its enrichment, the second covers usage. No filler and no repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description reasonably compensates by enumerating returned signal categories and noting each has buyer impact and a recommended action. All five parameters are documented in the schema. The main gap is the absence of any sibling routing or exclusions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with all five parameters documented, so the schema does the heavy lifting. The description echoes the signal categories and relevance ranking, which loosely maps to signalType and minRelevance, but adds no syntax or formatting detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (surfaces) and resource (relevance-ranked industry signals) with the exact content types returned — trends, buyer pain, competitor moves, regulatory/tech shifts, hiring and funding. An agent knows precisely what comes back, though it does not name a sibling tool to distinguish itself from the surrounding get_* context tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: 'for deal/market context before a screen, or to time GTM moves.' This tells the agent when the tool is appropriate. It stops short of naming alternatives or stating when NOT to use it (e.g. vs get_competitive_positioning or get_pre_brief), so it is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_memory_historyA
Read-only

Get the version history of a specific memory — see how a metric, deal stage, or priority has evolved over time. Answers questions like "What was my MRR 3 months ago?" or "When did the Acme deal move to negotiation?"

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesMemory key (e.g., "mrr", "acme_deal_stage").
categoryYesMemory category (e.g., "metric", "account").

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and open-world behavior, which the description does not contradict. The description adds value by specifying that it retrieves 'version history' and 'evolved over time,' providing context about what data is returned, but it does not disclose additional behavioral traits like rate limits, authentication needs, or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by illustrative examples that earn their place by clarifying use cases. It is appropriately sized with no wasted words, making it efficient and easy to understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (historical data retrieval), annotations cover safety (read-only) and data scope (open-world), and schema coverage is complete. However, without an output schema, the description could better explain return values (e.g., format of version history). It is mostly complete but has a minor gap in output details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the parameters. The description adds semantic context by linking parameters to examples (e.g., 'metric' for category, 'mrr' for key), but it does not provide new information beyond what the schema already states. This meets the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Get the version history') and resources ('of a specific memory'), and it distinguishes from siblings by focusing on historical evolution rather than current states or other operations. Examples like 'What was my MRR 3 months ago?' reinforce its unique function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (to see how metrics, deal stages, or priorities have evolved over time), but it does not explicitly mention when not to use it or name specific alternatives among the sibling tools. The examples help guide usage but lack explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_messaging_frameworkA
Read-only

Words that fit each buyer, by buyer type, channel and funnel stage, adapted to how each person prefers to communicate, so the analytical CTO and the results-driven VP Sales each get a version that fits them. Returns value propositions, answers to the concerns each buyer raises, voice variants and outbound templates. Set mbtiCategory for one communication style, or leave it out to get all four. Use get_persona_profile to learn who the buyer is, and get_pre_brief to prepare for one specific meeting. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
stageNoWhere the buyer is in their journey
channelNoChannel (email, linkedin, phone, etc.)
segmentNoTarget segment or vertical
verticalNoThe 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 unclear, ask.
targetRoleNoThe 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 vertical.
personaTypeNoTarget buyer title
mbtiCategoryNoCommunication style to adapt the message to
productDescriptionNoA 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, ask them: "What does your product do, and who do you sell to?" before calling this tool.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint, so the description usefully adds that the tool is free and enumerates the returned content categories, which matters because no output schema exists. It still doesn't disclose generation latency or determinism, but the added cost and return context is solid beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with purpose, then returns, then parameter guidance, then routing, then 'Free.' Every sentence earns its place. The opening sentence is slightly overwrought but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema and a read-only annotation profile, the description covers what the tool produces and when to reach for it, including cost. It is complete enough to invoke correctly, though it omits any note on output size or limits across the four MBTI variants.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds genuine meaning: set mbtiCategory for a single communication style or omit it to get all four, which is not derivable from the enum alone. Inference guidance for vertical/targetRole is echoed in the schema, so no extra credit there.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource (messaging framework) and scope precisely: words adapted by buyer type, channel, funnel stage and communication style. It then enumerates the concrete outputs (value propositions, objection answers, voice variants, outbound templates). The first sentence is flowery, but the second grounds it well enough for an agent to distinguish it from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes to two alternatives with conditions: use get_persona_profile to learn who the buyer is, and get_pre_brief for one specific meeting. It also explains the optional mbtiCategory behavior (one style vs all four). It does not distinguish from generate_asset, a potential overlap, so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_persona_profileA
Read-only

Look up who you're actually talking to before the call — what they care about at 7 AM, what they need before they say yes, and exactly how to open. Returns persona details including communication preferences, empathy map and messaging angles.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesJob title of the person you're meeting (e.g., "VP Engineering", "CTO", "Head of Sales")
industryNoTheir industry
verticalNoThe 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 unclear, ask.
targetRoleNoThe 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 vertical.
companySizeNoTheir company size range
productDescriptionNoA 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, ask them: "What does your product do, and who do you sell to?" before calling this tool.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint, so the safety profile is covered. The description usefully adds what the response contains (communication preferences, empathy map, messaging angles), which is real context beyond the annotations, though it omits anything on data freshness or sourcing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that leads with the purpose and then the returned value. Slightly salesy phrasing ("before they say yes", "7 AM") costs a little precision but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by naming the return contents. For a read-only, open-world lookup with full parameter documentation, an agent has enough to call it correctly; only sibling routing is under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including the required title and inference guidance for vertical/targetRole/productDescription is fully documented in the schema. The description adds nothing parameter-specific, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (look up) and resource (persona profile), and names the returned content: communication preferences, empathy map, messaging angles. It does not distinguish itself from adjacent siblings like simulate_buyer_persona or get_icp_profile, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Before the call" implies the usage moment, giving implicit context for when to invoke it. However, there is no explicit when-not guidance and no mention of how it relates to alternatives such as simulate_buyer_persona, leaving the routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_readiness_rollupA
Read-only

A board-ready scorecard of every portfolio company by Revenue Readiness Index — comparable by construction — with aggregates (avg readiness, at-risk count, customer-concentration risk). For PE/VC operators monitoring a book.

ParametersJSON Schema
NameRequiredDescriptionDefault
portfolioIdYesThe portfolio to roll up. Must belong to the caller.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuinely useful behavioral content: it commits to the concrete aggregates returned (avg readiness, at-risk count, customer-concentration risk) and the normalization guarantee ("comparable by construction"), which matters since no output schema exists. It is silent on pagination/limits and access errors beyond the schema's ownership note.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the what (scorecard) before the who (PE/VC operators). "Comparable by construction" is slightly jargon-heavy but carries real meaning about normalization; there is no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the burden of describing return content via its aggregate list, and the sole parameter is schema-documented. Adequate for an agent to call and interpret it, though it omits scope/size limits on "every portfolio company".

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (portfolioId) and the schema already documents it fully at 100% coverage, including the ownership constraint. The description adds no syntax, format, or scoping detail beyond what the schema states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (portfolio-wide scorecard of every portfolio company) and the ranking metric (Revenue Readiness Index), which implicitly distinguishes it from the company-level sibling assess_company_readiness. It stops short of explicitly naming an alternative tool, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"For PE/VC operators monitoring a book" identifies an audience and a rough context, but gives no when-to-use/when-not-to-use condition and no routing against assess_company_readiness or generate_portfolio_brief. Usage is implied, not specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pre_briefA
Read-only

Writes your pre-call prep so you don't walk in cold — talk track, discovery questions tuned to this buyer, the concerns this buyer is likely to raise and what they need to hear, and the one thing you need to get done in this meeting. Just say who you're meeting with — Andru checks your calendar automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
dealIdNoAssociated deal ID for additional deal intelligence
eventIdNoCalendar event ID (from Andru calendar integration). If provided, skips calendar search.
briefTypeNoType of meeting brief to generate (default: general)
companyNameNoCompany you're meeting with. Andru finds the matching calendar event and pulls attendee context automatically.
contactNameNoName of the person you're meeting (optional — helps match the right event and personalize the brief).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint=true, openWorldHint=true), so the bar is lower. The description still adds real behavior: it auto-resolves the calendar event, pulls buyer context, and discloses the exact contents of the generated brief — important since there is no output schema. "Writes" reads as "composes/drafts" for the user, consistent with a read-only get_ tool, so no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, purpose front-loaded before the how-to-use clause. The middle list of brief contents is dense but each item is informative. "so you don't walk in cold" is mild marketing filler, the only real trim available.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the return-value burden by enumerating what the brief contains. All five parameters are schema-documented and annotations cover the safety profile, so an agent has enough to call it correctly. Minor gaps: no latency/cost or freshness notes on the calendar lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters including the auto-matching behavior of companyName and the eventId shortcut. The description's "say who you're meeting with" only restates the companyName semantics already in the schema, adding no format or precedence detail. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ("Writes your pre-call prep") and enumerates the concrete artifacts produced: talk track, buyer-tuned discovery questions, likely objections with rebuttals, and the meeting's single objective. It is far from a tautology. It stops short of naming or contrasting any sibling (e.g. get_persona_profile, get_account_plan), so it earns a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear invocation context: "Just say who you're meeting with — Andru checks your calendar automatically," which tells the agent the minimal input needed and that calendar lookup is implicit. It does not state when-not to use it or point to alternative prep tools, so no exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_revenue_memoryA
Read-only

Query this founder's accumulated stakeholder understanding — metrics, deal patterns, account history, decisions, and behavioral insights Andru has learned over time. Filter by memory type (episodic facts, semantic patterns, procedural habits) or business domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter to a specific memory category. Omit to search all.
keyPatternNoFilter keys matching this pattern (supports * wildcards, e.g., "*mrr*", "acme_*").
memoryTypeNoFilter by memory type. episodic=specific facts, semantic=patterns, procedural=behavioral habits.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating safe read operations with potentially incomplete data. The description adds valuable context about what types of memories are available (episodic facts, semantic patterns, procedural habits) and the business domains covered, which goes beyond the annotations. No contradictions with annotations exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose in the first clause. The second sentence adds useful filtering context without redundancy. While efficient, it could be slightly more structured for optimal clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (querying accumulated insights with filtering), annotations cover safety and data completeness, and the schema fully documents parameters. The description provides good context about memory types and content, though without an output schema, it doesn't detail return values. It's mostly complete but could benefit from more explicit behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all parameters well-documented in the schema. The description mentions filtering by memory type and business domain, which aligns with the schema but doesn't add significant meaning beyond it. The baseline of 3 is appropriate given the comprehensive schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries accumulated stakeholder understanding with specific content types (metrics, deal patterns, account history, decisions, behavioral insights) and mentions filtering capabilities. It distinguishes from siblings by focusing on 'revenue memory' rather than other tools like get_account_plan or get_capability_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for querying learned insights about a founder, but doesn't explicitly state when to use this tool versus alternatives like get_memory_history or get_founder_context. No exclusions or clear alternatives are provided, leaving usage context somewhat implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sales_blueprintA
Read-only

Builds everything you need to make your first sales hire — job description, comp structure, interview questions that actually reveal sales ability, 90-day ramp plan, and weekly activity targets tied to your ARR goal.

ParametersJSON Schema
NameRequiredDescriptionDefault
dealSizeNoAverage deal size (e.g., "$15K ACV", "$50K ACV"). Infer from context or ask.
teamSizeNoCurrent team size. Infer from context if mentioned.
arrTargetYesAnnual recurring revenue target (e.g., "$2M", "$5M", "$10M"). Ask the user if not mentioned.
companyStageYesCurrent funding stage. Infer from conversation context if the user has mentioned it.
avgCycleLengthNoAverage sales cycle length (e.g., "30 days", "60 days", "90+ days"). Infer or ask.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only and open-world hints, but the description adds valuable behavioral context: it's a comprehensive generator tool that creates multiple artifacts (not just a single document). The description doesn't contradict annotations and provides insight into the scope and output nature beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently communicates the tool's comprehensive output. Every word contributes to understanding the tool's purpose without redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generative tool with read-only/open-world annotations but no output schema, the description adequately conveys what will be produced. However, it doesn't specify format (e.g., document type, structure) or whether outputs are editable/templates, leaving some implementation details unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents all 5 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions, so it meets the baseline expectation without providing extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Builds everything you need') and the comprehensive output (job description, comp structure, interview questions, ramp plan, activity targets). It distinguishes itself from siblings by focusing on sales hiring infrastructure rather than prospecting, classification, or other sales-related functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('to make your first sales hire') but doesn't explicitly state when to use this tool versus alternatives. No guidance is provided about prerequisites, timing, or comparison to other tools like 'get_icp_profile' or 'simulate_buyer_persona' that might be related to sales planning.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_thesis_matchA
Read-only

Finds the 5 VCs whose investment thesis best matches your company — scores each on fit, explains why they'd be interested, and tells you how to approach them. Saves weeks of investor research.

ParametersJSON Schema
NameRequiredDescriptionDefault
stageYesCurrent funding stage. Infer from context if mentioned.
arrRangeNoCurrent ARR range (e.g., "$0-$500K", "$500K-$2M", "$2M-$10M"). Infer or ask.
verticalNoIndustry vertical (e.g., "AI/ML", "FinTech", "HealthTech", "SaaS"). Infer from product description.
productDescriptionYesWhat the company does and who it serves. Infer from conversation context if the user has already described their product.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only and open-world hints, but the description adds valuable behavioral context: it specifies the output includes 5 VCs with fit scores, explanations of interest, and approach guidance. This goes beyond annotations by detailing what the tool returns and its practical benefits, though it lacks explicit rate limits or data source disclosures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core functionality in the first sentence, followed by a benefit statement. Every sentence earns its place by conveying essential information without redundancy, making it efficient and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (matching VCs with scoring and explanations) and lack of output schema, the description provides a good overview of what to expect. However, it could be more complete by specifying output format details or error handling, though annotations cover safety aspects adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the input schema already documents all parameters well. The description does not add meaning beyond the schema, as it doesn't explain how parameters like 'productDescription' or 'arrRange' influence the matching process. Baseline score of 3 is appropriate since the schema handles parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Finds', 'scores', 'explains', 'tells') and resources ('5 VCs', 'investment thesis', 'your company'). It distinguishes itself from siblings by focusing on VC matching with fit scoring and approach guidance, unlike tools like 'get_icp_fit_score' or 'discover_prospects' which have broader or different scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage ('Saves weeks of investor research'), implying it's for startup fundraising preparation. However, it does not explicitly state when not to use this tool or name alternatives among siblings, such as 'get_syndication_status' for post-investment tracking or 'classify_opportunity' for general opportunity assessment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_assetsA
Read-only

Search Andru's catalog of sales, hiring, fundraising and buying assets — 139 deliverables from email drafts to board decks. Each entry says what it is, the business outcome, its price (Tool $3, Framework $12, Decision $49), whether it needs your own data, and whether it can be generated today. Free. Then call generate_asset with the asset's name.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoOptional catalog group.
limitNoMaximum results (default 15).
queryNoKeywords for what you need, e.g. 'board deck', 'buying committee', 'first sales hire'.
available_onlyNoOnly assets that can be generated today.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint. The description adds real behavioral context: it is 'Free', and each entry carries business outcome, price tier, data requirement, and same-day-generatability. This tells the agent what it gets back and that no cost is incurred, going beyond the safety profile annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and scope in the first clause, then supplemental detail on entry contents and the follow-up call. The pricing enumeration (Tool $3, Framework $12, Decision $49) is slightly dense but earns its place by signaling tiering. No wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by enumerating what each entry contains. Combined with the routing to generate_asset and the free/cost signal, this is nearly complete; only pagination behavior is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents group, limit, query, and available_only. The description adds no syntax or format detail for these parameters beyond what the schema supplies, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Search') and resource ('Andru's catalog of sales, hiring, fundraising and buying assets') with concrete scope ('139 deliverables'). It distinguishes itself from the sibling generate_asset by routing the agent there as the next step, so an agent knows this is the discovery step rather than the generation step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: search the catalog, then 'call generate_asset with the asset's name.' This establishes the intended workflow. However, it gives no explicit when-not guidance and never mentions get_asset (the likely sibling for retrieving a single asset), so alternatives are only partially disambiguated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

log_revenue_insightA

Save a revenue insight, decision, metric, or pattern into Andru's memory so it compounds over time. Use after any deal decision, ICP refinement, metric update, or strategic pivot. The system automatically versions previous values.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesUnique identifier for this memory (lowercase_underscored, e.g., "current_arr", "acme_deal_stage").
valueYesThe memory content — a concise, specific fact or insight.
domainNoBusiness domain this memory relates to. Default: general.
categoryYesWhat kind of memory this is.
confidenceNoHow confident this memory is (0.0-1.0). Default: 1.0 for founder-stated facts.
memoryTypeNoepisodic=time-bound fact, semantic=general pattern, procedural=behavioral habit. Default: episodic.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond annotations: it explains that the system 'automatically versions previous values,' which clarifies persistence and versioning behavior. Annotations indicate this is a write operation (readOnlyHint: false) with open-world data (openWorldHint: true) and non-destructive (destructiveHint: false), and the description aligns with this by describing saving/compounding without contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and concise with two sentences that efficiently convey purpose and usage without wasted words. Every sentence adds value: the first defines the tool's function, and the second provides context and behavioral insight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, write operation) and rich annotations, the description is mostly complete but lacks details on output or error handling. It covers purpose, usage, and key behavior (versioning), but without an output schema, it could benefit from mentioning what happens after saving (e.g., confirmation).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not provide additional parameter semantics beyond what the input schema already covers. With 100% schema description coverage, the schema fully documents all parameters, so the baseline score of 3 is appropriate as the description adds no extra parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Save a revenue insight, decision, metric, or pattern into Andru's memory') and resources ('memory'), and it distinguishes from siblings by specifying this is for saving/compounding insights rather than retrieving them (unlike get_memory_history or get_revenue_memory).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance with 'Use after any deal decision, ICP refinement, metric update, or strategic pivot,' giving clear context for when to invoke this tool. It implicitly distinguishes from retrieval-focused siblings by emphasizing saving/compounding rather than getting data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_product_contextA
Idempotent

Tell Andru what you sell, once. Give your company website (Andru reads it and remembers your product) or a short product description. Every later call uses it, so tools stop asking for product context. Call with no arguments to see what Andru has saved. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteNoYour company website, e.g. acme.com. Andru reads the homepage once.
verticalNoOptional: the industry you sell into.
targetRoleNoOptional: the buyer role you target, e.g. CFO.
productDescriptionNoOr: what your product does and who it is for (2-3 sentences).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=true) by explaining that Andru actually reads the homepage, that the context persists and is reused, and that it is free. It never states what happens to previously saved context on a re-call, which is the notable remaining gap for an idempotent-claimed write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, front-loaded, and every sentence carries information (purpose, inputs, persistence effect, retrieval mode, cost). The telegraphic fragments are efficient, though the ordering of 'Free' at the very end is a small afterthought.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema the description appropriately covers both the write path and the read-back path (call with no arguments), which is what an agent needs to use this tool correctly. Missing only edge-case behavior such as overwrite semantics or how long ingestion of a website takes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each of the four parameters is already documented with examples in the schema. The prose adds only the mutually-exclusive intent of website vs. productDescription, not new format or constraint detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it sets the product context that Andru persists. The description makes the intent unmistakable and clearly separates it from the read-side siblings (get_*) by framing it as the one-time write that feeds all later calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lays out the two input paths (website vs. short product description) and adds a third no-argument mode for inspecting what was saved, plus 'every later call uses it'. It omits an explicit when-not-to-use or routing against a sibling, so it stops just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_buyer_personaA

Prepare for a key meeting with the buying committee. Andru acts as key decision-makers asking you questions your real buyers ask so you come into real-world meetings equipped to succeed. A Deal Prep session is $5 for 25 turns: open it, reply turn by turn with the session_id, and say "End role-play. How did I do?" for a scored debrief.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoopening = open a session ($5) and get the buyer's opening line. reply = send the seller's next message on session_id. list = available personas. Default: opening.
messageNomode=reply: what the seller says to the buyer. "End role-play. How did I do?" ends with a debrief.
personaNoWhich buyer to simulate. Pick based on who the user is preparing to meet.
stageIdNoBuyer journey stage (1=Researching through 7=Advocating). Default: 3.
session_idNoThe Deal Prep session to continue (returned by mode=opening). Required for mode=reply.
productNameNoProduct name. Infer from context.
session_keyNoOptional idempotency key for opening a session: retrying with the same key never charges twice.
productDescriptionNoWhat the user's product does. Infer from conversation context.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare this is mutating and open-world, but the description adds genuinely non-derivable facts: the $5 charge, the 25-turn cap, the session lifecycle, and the scored-debrief ending. These are important behavioral traits an agent cannot infer from structured fields. It doesn't explain what happens on turn exhaustion or session expiry, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the purpose followed by mechanics and pricing. The 'Andru acts as...' sentence is slightly promotional but carries the role-play framing. No wasted sentences, though it could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, multi-mode tool with no output schema, the description covers the session workflow, cost, turn limit, and debrief path adequately. It leaves the exact return shape of each mode unstated, but the schema carries the mode semantics, so the definition is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema (mode, session_id, message, etc.). The description's 'reply turn by turn with the session_id' reinforces the reply flow but adds no syntax or format detail beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it simulates a buyer persona ('Andru acts as key decision-makers') for deal preparation. The purpose is clear and distinct from pure data-retrieval siblings. It stops short of naming alternatives like get_persona_profile or get_pre_brief, so an agent gets no explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context is given: use it to 'Prepare for a key meeting with the buying committee,' with a concrete three-step workflow (open, reply turn by turn, end with the debrief phrase). There are no explicit exclusions or named alternatives, so it lands at clear-context-but-no-routing rather than full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.4.4
    • Changedassess_company_readiness1 field changed
      • changedInput schema / properties / metrics / description
        Previous value: -"Operating metrics (any subset): arr, mrr, growthRate, netRevenueRetention, grossMargin, cac, ltv, burnRate, runwayMonths, pipelineValue, customerCount, churnRate, etc."New value: +"Operating metrics (any subset): arr, mrr, momGrowth or yoyGrowth (%), netRevenueRetention (%), grossMargin (%), monthlyChurn (%), cac, ltv, burnMultiple, customerCount, pipelineValue, salesCycleDays. Percentages as numbers (110 = 110%; 1.1 is read as 110% for retention and margin). The more provided, the higher the confidence."
    • Changeddiscover_prospects3 fields changed
      • changedInput schema / properties / companyName / description
        Previous value: -"Your company name"New value: +"Your company name. Defaults to the product saved on your account."
      • changedInput schema / properties / productDescription / description
        Previous value: -"What your product does and who it's for. Infer from conversation context if the user has already described their product."New value: +"What your product does and who it's for. Defaults to the product saved on your account."
      • removedInput schema / required
        Removed value: -[
        -  "companyName",
        -  "productDescription"
        -]
    • Changedgenerate_portfolio_brief2 fields changed
      • changedInput schema / properties / periodEnd / description
        Previous value: -"Optional ISO date for the period end."New value: +"Optional ISO date for the period end. Default: the end of the last full period."
      • changedInput schema / properties / periodStart / description
        Previous value: -"Optional ISO date for the period start."New value: +"Optional ISO date for the period start. Default: the start of the last full period."
    • Changedget_founder_wellness1 field changed
      • removedInput schema / properties / userId
        Removed value: -{
        -  "description": "The user's Andru account ID. Required for personalized wellness tracking.",
        -  "type": "string"
        -}
  2. 13 tool updatesv1.4.1
    • Addedassess_company_readiness
    • Addedconsult_agent
    • Addedgenerate_asset
    • Addedgenerate_portfolio_brief
    • Addedget_asset
    • Addedget_market_signals
    • Changedget_messaging_framework1 field changed
      • changedInput schema / properties / mbtiCategory / description
        Previous value: -"MBTI communication category for message adaptation"New value: +"Communication style to adapt the message to"
    • Addedget_portfolio_readiness_rollup
    • Removedget_syndication_status
    • Addedlist_assets
    • Addedset_product_context
    • Changedsimulate_buyer_persona8 fields changed
      • addedInput schema / properties / message
        Added value: +{
        +  "description": "mode=reply: what the seller says to the buyer. \"End role-play. How did I do?\" ends with a debrief.",
        +  "type": "string"
        +}
      • changedInput schema / properties / mode / description
        Previous value: -"opening = buyer's opening message. list = available personas. Default: opening."New value: +"opening = open a session ($5) and get the buyer's opening line. reply = send the seller's next message on session_id. list = available personas. Default: opening."
      • changedInput schema / properties / mode / enum
        Previous value: -[
        -  "opening",
        -  "list"
        -]New value: +[
        +  "opening",
        +  "reply",
        +  "list"
        +]
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "The Deal Prep session to continue (returned by mode=opening). Required for mode=reply.",
        +  "type": "string"
        +}
      • addedInput schema / properties / session_key
        Added value: +{
        +  "description": "Optional idempotency key for opening a session: retrying with the same key never charges twice.",
        +  "type": "string"
        +}
      • changedInput schema / properties / stageId / description
        Previous value: -"Buyer journey stage (0=Unaware through 7=Advocating). Default: 3."New value: +"Buyer journey stage (1=Researching through 7=Advocating). Default: 3."
      • changedInput schema / properties / stageId / enum
        Previous value: -[
        -  0,
        -  1,
        -  2,
        -  3,
        -  4,
        -  5,
        -  6,
        -  7
        -]New value: +[
        +  1,
        +  2,
        +  3,
        +  4,
        +  5,
        +  6,
        +  7
        +]
      • changedInput schema / required
        Previous value: -[
        -  "persona"
        -]New value: +[]
    • Removedtrigger_syndication
  3. 23 tool updatesv1.4.0
    • First observedbatch_fit_score
    • First observedclassify_opportunity
    • First observeddiscover_prospects
    • First observedget_account_plan
    • First observedget_capability_profile
    • First observedget_competitive_positioning
    • First observedget_disqualification_signals
    • First observedget_evaluation_criteria
    • First observedget_founder_context
    • First observedget_founder_wellness
    • First observedget_icp_fit_score
    • First observedget_icp_profile
    • First observedget_memory_history
    • First observedget_messaging_framework
    • First observedget_persona_profile
    • First observedget_pre_brief
    • First observedget_revenue_memory
    • First observedget_sales_blueprint
    • First observedget_syndication_status
    • First observedget_thesis_match
    • First observedlog_revenue_insight
    • First observedsimulate_buyer_persona
    • First observedtrigger_syndication

TDQS

A3.7/5.0

Scored across 30 tools

Disambiguation3/5

There is heavy functional overlap among the scoring tools: get_icp_fit_score, batch_fit_score, get_evaluation_criteria, get_disqualification_signals, assess_company_readiness, and classify_opportunity all evaluate a company/deal and risk misselection. Descriptions do try to differentiate (single vs batch, fit vs eval vs disqualify, quick vs full read), and memory tools are reasonably distinct, but the boundary between several fit/readiness tools remains blurry.

Naming Consistency4/5

Names are consistently snake_case and mostly follow an action_noun pattern (get_*, generate_*, list_*, log_*, set_*, assess_*, discover_*, classify_*, consult_*, simulate_*). Minor deviations exist (batch_fit_score's prefix style, same-resource tools using different verbs like get_asset vs list_assets), but the convention is predictable and readable.

Tool Count2/5

At 30 tools this is a heavy surface, above the typical 3-15 sweet spot, spanning memory, prospecting, scoring, portfolio ops, buyer prep, assets, and consultation. The breadth reflects a sprawling multi-domain platform rather than a tightly scoped tool set, so each tool does not clearly earn its place.

Completeness4/5

The surface covers a wide lifecycle: memory read/write/history, product context, prospect discovery, multiple scoring layers, persona/deal prep, portfolio reporting, and asset catalog list/generate/retrieve. A few gaps exist (no explicit memory delete/correct beyond versioning, and scoring overlaps suggest consolidation rather than a missing capability), but core workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive B2B intelligence server providing over 48 tools for lead generation, company research, and sales automation via the Model Context Protocol. It enables AI-powered prospect discovery, enrichment, and competitive analysis through seamless integrations with Make.com, Claude Desktop, and Apify.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Competitive intelligence MCP server for sales teams. Get battle cards, objection handlers, pricing comparisons, pre-call briefings, and AI sales simulations for any company vs any competitor. 11 tools with a free tier.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    GTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.
    21
    601 npm
    3
    MIT