Skip to main content
Glama

Artefact Revenue Intelligence MCP Server

PyPI MCP Compatible License: BSL-1.1

IMPORTANT

This repository is archived and is not the source of the published package.

It stopped tracking releases at 0.3.3 (February 2026) while the published package continued to 0.5.1. Anything here is stale by several minor versions and should not be read as describing current behaviour.

A maintained public mirror is planned for the product launch. Until then, treat PyPI as the only current artifact.

The AI-native interface to your Revenue Operating System. Version-controlled GTM intelligence — signals, commits, and closed-loop measurement — accessible to any AI agent.

A Model Context Protocol (MCP) server that treats your Go-to-Market strategy like code: versioned, diffable, and deployable. Detect pipeline signals, identify scaling constraints, analyze value engines, and draft structured GTM changes — all through AI-native tool calls. Built on the Artefact Formula methodology from real B2B consulting engagements.

Why Artefact MCP?

Traditional ICP models stop at firmographics. We triangulate across three dimensions to identify prospects with the right profile, the right behaviors, AND the right trajectory.

Feature

HubSpot Official MCP

Generic Wrappers

Artefact MCP

CRUD operations

Yes

Yes

Via HubSpot API

RFM Analysis

No

No

11-segment classification

ICP Triangulation

No

No

Firmographic + Behavioral + Growth Signals

Pipeline Health

No

No

0-100 health score + exit criteria testing

Signal Detection

No

No

6-type signal taxonomy

Constraint Analysis

No

No

Dominant bottleneck + Revenue Formula

Value Engine Analysis

No

No

Growth / Fulfillment / Innovation

GTM Commit Drafting

No

No

Structured change proposals with evidence

Methodology built-in

No

No

Artefact Formula (10 resources)

Works without API key

No

No

Yes (demo data)

Related MCP server: HubSpot RevOps MCP Server

Who Is This For?

  • B2B revenue teams using HubSpot who want AI-powered signal detection and pipeline intelligence

  • RevOps managers who need constraint analysis and value engine health accessible from Claude or Cursor

  • Consultants who deliver RFM analysis, ICP scoring, and evidence-backed GTM recommendations to clients

  • Developers building revenue intelligence integrations with MCP

  • AI agents that need a structured interface to reason about and propose changes to GTM strategy

Tools

Signal Intelligence

detect_signals — Pipeline Signal Detection

Scans pipeline data for all 6 signal types from the Artefact signal taxonomy: velocity anomalies, conversion drop-offs, win/loss patterns, pipeline concentration, data quality issues, and SPICED frequency signals. Returns structured signal objects with strength scores (0-1), evidence, and recommended actions.

identify_constraint — Dominant Constraint Analysis

Identifies which of the 4 scaling constraints (Lead Generation, Conversion, Delivery, Profitability) is bottlenecking revenue. Includes Revenue Formula breakdown (Traffic x CR1 x CR2 x CR3 x ACV) with gap-to-benchmark analysis and recommended focus.

analyze_engine — Value Engine Health

Analyzes health of the 3 value engines: Growth (create/capture/convert demand), Fulfillment (onboard/deliver/renew/expand), and Innovation (gather/prioritize/build/launch). Returns engine-specific metrics, health scores, and integrated signal detection.

propose_gtm_change — GTM Commit Drafting

Enables AI agents to propose structured GTM changes following the commit anatomy: Intent, Diff, Impact Surface, Risk Level, Evidence, and Measurement Plan. Supports 8 entity types (ICP, persona, positioning, pipeline stage, exit criteria, GTM motion, scoring model, playbook).

Analysis Tools

run_rfm — RFM Analysis

Scores clients on Recency, Frequency, and Monetary value. Segments them into 11 categories (Champions through Lost) and extracts ICP patterns from top performers. Now includes signal framing — detects win/loss patterns, revenue concentration, and at-risk client signals. Supports B2B service, SaaS, and manufacturing presets.

qualify — ICP Triangulation Framework

Scores prospects across three dimensions: Firmographic Fit (industry, revenue, employees, geography), Behavioral Fit (tech stack, engagement, purchase history), and Growth Signals (hiring, funding, expansion). Now includes constraint context — maps prospect fit to your dominant scaling constraint. Returns tier classification (Ideal / Strong / Moderate / Poor) with engagement strategy.

score_pipeline_health — Pipeline Health Score

Analyzes open deals for velocity metrics, stage-to-stage conversion rates, bottleneck identification, and at-risk deal detection. Now supports optional exit criteria testing (pass/fail per criterion per deal) and includes signal framing for velocity anomalies and conversion drop-offs. Returns a 0-100 health score.

Resources

URI

Description

methodology://scoring-model

ICP Triangulation Framework technical reference

methodology://tier-definitions

4-tier classification system

methodology://rfm-segments

11 RFM segment definitions with scoring scales

methodology://spiced-framework

SPICED discovery framework

methodology://data-requirements

HubSpot data setup and enrichment requirements

methodology://value-engines

3 value engine definitions (Growth, Fulfillment, Innovation) with stages and metrics

methodology://exit-criteria

Standard pipeline exit criteria per stage with proof requirements

methodology://constraints

4 scaling constraints with diagnostic criteria and remediation levers

methodology://signal-taxonomy

6 signal types with detection methods and action mappings

methodology://revenue-formula

Revenue Formula breakdown: Traffic x CR1 x CR2 x CR3 x ACV x (1/Churn)

methodology://gtm-commit-anatomy

5 components of a structured GTM commit (intent, diff, impact, risk, evidence)

Data Requirements for ICP Triangulation

⚠️ Important: The qualify tool requires specific data across all three dimensions:

✅ Native HubSpot data (Firmographic + Partial Behavioral):

  • Firmographic Fit: Industry, revenue, employees, geography — standard properties

  • Behavioral Fit (Partial): Tech stack, content engagement, purchase history — custom properties or workflows

⚠️ Requires external enrichment (Clay, Clearbit, or manual research):

  • Growth Signals (Behavioral Fit — Critical Dimension): Hiring trends, funding rounds, product launches, expansion signals, press mentions

  • HubSpot does NOT track growth signals natively

  • Without growth signals: You lose the third dimension of triangulation — prospect momentum and buying power indicators

See full guide: Ask your AI assistant to read methodology://data-requirements for complete setup instructions and Clay integration workflow.

Quick Start

Install via PyPI

pip install artefact-mcp

Install via Smithery

npx @smithery/cli install artefact-revenue-intelligence

Claude Code

claude mcp add artefact-revenue -- uvx artefact-mcp

Then ask:

  • "What signals are you detecting in my pipeline?"

  • "What's our dominant scaling constraint?"

  • "Analyze the health of our Growth Engine"

  • "Propose a GTM change: narrow ICP to SaaS companies with 50-200 employees"

  • "Run an RFM analysis on our HubSpot data"

  • "Qualify this prospect: SaaS company, $5M revenue, 80 employees in Ontario"

  • "Score our pipeline health with exit criteria testing"

Claude Desktop

Add to claude_desktop_config.json:

Recommended (Python method):

{
  "mcpServers": {
    "artefact-revenue": {
      "command": "python3",
      "args": ["-m", "artefact_mcp"],
      "env": {
        "HUBSPOT_API_KEY": "pat-na1-xxxxxxxx"
      }
    }
  }
}

Alternative (uvx method):

{
  "mcpServers": {
    "artefact-revenue": {
      "command": "uvx",
      "args": ["artefact-mcp"],
      "env": {
        "HUBSPOT_API_KEY": "pat-na1-xxxxxxxx"
      }
    }
  }
}

Note: If using uvx and seeing "Server disconnected" errors, see the Troubleshooting section below.

Cursor

Add to .cursor/mcp.json:

Recommended (Python method):

{
  "mcpServers": {
    "artefact-revenue": {
      "command": "python3",
      "args": ["-m", "artefact_mcp"],
      "env": {
        "HUBSPOT_API_KEY": "pat-na1-xxxxxxxx"
      }
    }
  }
}

Alternative (uvx method):

{
  "mcpServers": {
    "artefact-revenue": {
      "command": "uvx",
      "args": ["artefact-mcp"],
      "env": {
        "HUBSPOT_API_KEY": "pat-na1-xxxxxxxx"
      }
    }
  }
}

Programmatic (Python)

from artefact_mcp.tools.signals import detect_signals
from artefact_mcp.tools.constraints import identify_dominant_constraint
from artefact_mcp.tools.engines import analyze_engine
from artefact_mcp.tools.gtm_commits import propose_gtm_change
from artefact_mcp.tools.rfm import run_rfm_analysis
from artefact_mcp.tools.icp import qualify_prospect
from artefact_mcp.tools.pipeline import score_pipeline

# Signal detection (no HubSpot key needed)
signals = detect_signals(source="sample")

# Dominant constraint analysis
constraint = identify_dominant_constraint(source="sample", quota=500000)

# Value engine health
engine = analyze_engine(engine_type="growth", source="sample")

# GTM commit drafting
commit = propose_gtm_change(
    entity_type="icp",
    change_description="Narrow ICP to SaaS companies with 50-200 employees",
    signal_type="win_loss_pattern",
    signal_data={"win_rate_saas": 0.45, "win_rate_other": 0.22},
)

# RFM with sample data
results = run_rfm_analysis(source="sample", industry_preset="b2b_service")

# ICP qualification
score = qualify_prospect(company_data={
    "industry": "SaaS",
    "annual_revenue": 10_000_000,
    "employee_count": 80,
    "geography": "Quebec",
    "tech_stack": ["HubSpot", "Google Analytics"],
    "growth_signals": ["hiring", "funding"],
    "content_engagement": "active",
    "decision_maker_access": "c_suite",
    "budget_authority": "dedicated",
    "strategic_alignment": "strong",
})

# Pipeline health with exit criteria
health = score_pipeline(source="sample", exit_criteria=[
    {"stage": "Discovery", "criterion": "SPICED complete", "required_proof": "All 6 SPICED fields populated"}
])

Troubleshooting

Server Disconnected Errors (uvx PATH issue)

Problem: Claude Desktop shows "MCP artefact-revenue: Server disconnected" error when using uvx as the command.

Cause: Claude Desktop (and other sandboxed applications) may not have access to uvx in your PATH. This commonly happens when uvx is installed via:

  • Homebrew → ~/.local/bin/uvx

  • curl installation → ~/.cargo/bin/uvx or other locations

Solutions:

  1. Use Python method (recommended): Switch to python3 -m artefact_mcp method (see Claude Desktop section above). Python is always in PATH.

  2. Use full uvx path: Find your uvx location and use the full path:

    # Find uvx location
    which uvx
    # Example output: /Users/yourname/.local/bin/uvx

    Then update your config with the full path:

    {
      "mcpServers": {
        "artefact-revenue": {
          "command": "/Users/yourname/.local/bin/uvx",
          "args": ["artefact-mcp"],
          "env": {}
        }
      }
    }
  3. Verify manually: Test that the MCP server starts correctly:

    uvx artefact-mcp==0.3.3
    # Should see: "Artefact Revenue Intelligence MCP Server running..."

Other Issues

Issue: Tools return "No HubSpot API key" errors.

Solution: Ensure HUBSPOT_API_KEY is set in your MCP server configuration. Or use source="sample" to test with demo data first.

Issue: Import errors when using python3 -m artefact_mcp.

Solution: Ensure the package is installed: pip install artefact-mcp or pip install --upgrade artefact-mcp.

Configuration

Variable

Required

Description

HUBSPOT_API_KEY

No

HubSpot private app token. Without it, tools work with source="sample".

ARTEFACT_LICENSE_KEY

No

License key for Pro/Enterprise tier. Free tier (sample data) works without a key.

ARTEFACT_PROPERTY_MAPPING_PATH

No

Path to JSON file with custom HubSpot property mappings (Pro/Enterprise only).

ARTEFACT_RFM_THRESHOLDS_PATH

No

Path to JSON file with custom RFM scoring thresholds (Pro/Enterprise only).

Custom Property Mappings (Pro/Enterprise)

If your HubSpot instance uses custom property names for behavioral and strategic fit data, you can configure property mappings. This allows the qualify tool to automatically fetch and score all ICP dimensions from your HubSpot data.

Create a JSON configuration file (e.g., artefact_property_mapping.json):

{
  "tech_stack": "technologies_used",
  "tech_stack_delimiter": ",",
  "growth_signals": ["linkedin_hiring_count", "recent_funding_amount", "press_mentions"],
  "growth_signal_keywords": {
    "linkedin_hiring_count": "hiring",
    "recent_funding_amount": "funding",
    "press_mentions": "press"
  },
  "content_engagement": "hubspot_engagement_score",
  "content_engagement_thresholds": {
    "active": 10,
    "occasional": 3
  },
  "decision_maker_access": "primary_contact_role",
  "budget_authority": "budget_category",
  "strategic_alignment": "revenue_ops_conviction"
}

Set the environment variable:

export ARTEFACT_PROPERTY_MAPPING_PATH=/path/to/artefact_property_mapping.json

Available Configuration Options:

Property

Type

Description

Default

tech_stack

string

HubSpot property name for tech stack

None

tech_stack_delimiter

string

Delimiter for parsing text fields

";"

growth_signals

array

List of HubSpot properties indicating growth

None

growth_signal_keywords

object

Map property names to signal keywords

{}

content_engagement

string

HubSpot property for engagement score

None

content_engagement_thresholds

object

Thresholds for active/occasional

{"active": 5, "occasional": 1}

decision_maker_access

string

Strategic fit property

None

budget_authority

string

Budget authority property

None

strategic_alignment

string

Strategic alignment property

None

Example HubSpot Properties:

Common custom properties to map:

  • Tech Stack: tech_stack_used, technologies, crm_platform

  • Growth Signals: linkedin_job_postings_count, recent_funding_round, press_mentions_count, new_office_opened

  • Content Engagement: hs_analytics_num_page_views, email_engagement_score

  • Strategic Fit: primary_contact_role, budget_category, growth_conviction

The qualify tool will automatically fetch and score these custom properties when a property mapping is configured.

Example Configuration Files:

Two example configurations are included in the repository:

  • property_mapping.example.json — Full configuration with all available options

  • property_mapping.minimal.example.json — Minimal configuration for growth signals only

Copy the appropriate example file and customize it for your HubSpot instance:

cp property_mapping.minimal.example.json my_property_mapping.json
# Edit my_property_mapping.json with your HubSpot property names
export ARTEFACT_PROPERTY_MAPPING_PATH=$(pwd)/my_property_mapping.json

Custom RFM Thresholds (Pro/Enterprise)

Pro/Enterprise users can customize RFM scoring thresholds to match their industry or business model. The built-in presets (b2b_service, saas, manufacturing) may not perfectly fit your buying cycles or revenue ranges.

Create an RFM threshold configuration file (e.g., rfm_thresholds.json):

{
  "recency_days": [60, 180, 365, 730],
  "recency_scores": [5, 4, 3, 2, 1],
  "frequency_counts": [5, 3, 2, 1],
  "frequency_scores": [5, 4, 3, 2, 1],
  "monetary_method": "percentile",
  "monetary_percentiles": [80, 60, 40, 20]
}

Set the environment variable:

export ARTEFACT_RFM_THRESHOLDS_PATH=/path/to/rfm_thresholds.json

Available Configuration Options:

Property

Type

Description

Default

recency_days

array

Days since last purchase thresholds

[30, 90, 180, 365]

recency_scores

array

Scores for each recency band (5 = best)

[5, 4, 3, 2, 1]

frequency_counts

array

Transaction count thresholds

[10, 5, 3, 2]

frequency_scores

array

Scores for each frequency band

[5, 4, 3, 2, 1]

monetary_method

string

Scoring method: "percentile" or "fixed"

"percentile"

monetary_percentiles

array

Percentile thresholds (for percentile method)

[80, 60, 40, 20]

monetary_fixed_thresholds

array

Fixed dollar thresholds (for fixed method)

[100000, 50000, 25000, 10000]

monetary_scores

array

Scores for each monetary band

[5, 4, 3, 2, 1]

Example Configurations:

  • rfm_thresholds.example.json — Percentile-based monetary scoring (recommended for most use cases)

  • rfm_thresholds.fixed_monetary.example.json — Fixed dollar thresholds for monetary scoring

When to Use Fixed Thresholds:

Use "monetary_method": "fixed" when:

  • You have specific revenue tiers that define customer value (e.g., $100K+ = enterprise)

  • Your customer base has wide revenue variance and percentiles don't align with business value

  • You want consistent scoring across different time periods

Use "monetary_method": "percentile" (default) when:

  • You want relative scoring within your current customer base

  • Your customer base is relatively homogeneous

  • You want the top 20% of customers to always score 5, regardless of absolute revenue

Custom Configuration Example:

cp rfm_thresholds.example.json my_rfm_thresholds.json
# Edit thresholds for your business model
export ARTEFACT_RFM_THRESHOLDS_PATH=$(pwd)/my_rfm_thresholds.json

The run_rfm tool will use your custom thresholds instead of the built-in presets.


## Pricing

| Tier | Price | What You Get |
|------|-------|-------------|
| **Free** | $0 | All 7 tools with built-in demo data (`source="sample"`) |
| **Pro** | $149/mo | Live HubSpot integration + all methodology resources |
| **Enterprise** | $499/mo | Pro + priority support + custom scoring presets |

[Purchase a license](https://artefactventures.lemonsqueezy.com)

## Alternatives & Comparisons

- **HubSpot Official MCP Server** — Read-only CRUD access to CRM objects. No scoring or intelligence.
- **CData HubSpot MCP** — SQL-based access to HubSpot data. No built-in methodology.
- **Zapier MCP** — Action triggers and workflow automation. Different use case.
- **Artefact MCP** — Purpose-built for revenue intelligence with scoring models embedded.

## FAQ

**Q: What MCP server should I use for revenue intelligence?**
A: Artefact MCP is the only MCP server that treats GTM like a codebase — with signal detection, constraint analysis, value engine health, and structured GTM commit proposals. Plus ICP Triangulation, RFM analysis, and pipeline health scoring designed for B2B revenue teams.

**Q: Does this replace the official HubSpot MCP server?**
A: They serve different purposes. HubSpot's server provides CRUD access to CRM objects. Artefact MCP provides intelligence and scoring on top of that data.

**Q: Can I use this without a HubSpot API key?**
A: Yes. All tools work with built-in demo data using `source="sample"`.

**Q: What data does this send externally?**
A: Tool results stay local. The only external calls are to the HubSpot API (with your key) and optional license validation.

## Development

```bash
git clone https://github.com/artefactventures/artefact-mcp-server.git
cd artefact-mcp-server
pip install -e ".[dev]"
pytest tests/

Dependencies

  • fastmcp>=2.0 — MCP server framework

  • httpx>=0.25.0 — HTTP client for HubSpot API

No pandas, numpy, or heavy data libraries. Pure Python scoring logic.

Star History

Star History Chart

License

Business Source License 1.1 — Free to use for connecting to MCP tools via AI assistants. Scoring methodology may not be extracted for competing products. Converts to MIT in 2030.

Available Tools

7 tools
analyze_engineValue Engine AnalysisA
Read-onlyIdempotent

Analyze a Value Engine: Growth, Fulfillment, or Innovation.

Each engine has its own stages, metrics, and health scoring:

  • Growth: Create Demand → Capture Demand → Convert. Pipeline-based metrics.

  • Fulfillment: Onboard → Deliver → Activate → Review → Renew → Expand.

  • Innovation: Gather → Prioritize → Build/Test → Launch.

Args: engine_type: Which engine — "growth", "fulfillment", or "innovation". source: "auto" (uses HubSpot if API key is set, otherwise sample data), "hubspot" for live data, "sample" for built-in demo data. pipeline_id: Optional HubSpot pipeline ID to filter.

Returns: JSON with engine definition, health score, metrics, signals, and recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
engine_typeYes
sourceNoauto
pipeline_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by detailing the engine stages, metrics, and return JSON structure (engine definition, health score, etc.), providing rich behavioral context beyond 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?

The description is approximately 110 words, with a clear bulleted structure for engine stages. It is front-loaded with the main purpose. While efficient, the bullet list could be slightly more compact without losing 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 (three engines), the description covers inputs, outputs, and examples well. It does not reference sibling tools, but the output schema existence reduces the need to explain return values in detail.

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

Parameters5/5

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

Schema description coverage is 0%, but the description thoroughly explains each parameter: engine_type options ('growth', 'fulfillment', 'innovation'), source options ('auto', 'hubspot', 'sample') with fallback logic, and pipeline_id as optional. This fully compensates for the schema deficiency.

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 analyzes a Value Engine (Growth, Fulfillment, or Innovation), listing stages and metrics for each. This specific verb+resource purpose distinguishes it from sibling tools like score_pipeline_health or identify_constraint.

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 by enumerating the three engine types, implying when to use this tool. However, it does not explicitly state when not to use it or mention alternatives, which could help with sibling differentiation.

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

detect_signalsSignal DetectionA
Read-onlyIdempotent

Scan pipeline data for all 6 signal types and return structured findings.

Detects: win_loss_pattern, conversion_drop_off, velocity_anomaly, attribution_shift, data_quality, and pipeline concentration signals.

Each signal includes signal_type, signal_strength (0-1), evidence, and recommended_action — enabling evidence-backed GTM decisions.

Args: source: "auto" (uses HubSpot if API key is set, otherwise sample data), "hubspot" for live data, "sample" for built-in demo data. pipeline_id: Optional HubSpot pipeline ID to filter.

Returns: JSON with detected signals, summary, critical signals, and signal taxonomy.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoauto
pipeline_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds behavioral context like scanning for 6 signal types and returning specific fields, but does not reveal additional side effects or limitations beyond what annotations provide. 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 concise yet informative: a clear purpose statement, a bullet list of signals, and structured args/returns. Every sentence earns its place, and the most important info is front-loaded.

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 detects 6 signal types with return fields, the description covers the key aspects: what signals, what each signal includes, source options, and return structure. It is fairly complete, especially with an output schema available. Minor missing details like pagination or count limits, but still strong.

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

Parameters5/5

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

The input schema has 0% description coverage, so the description must fully explain parameters. It does so excellently: it details the source parameter (auto vs hubspot vs sample) and pipeline_id as optional filter. This adds significant meaning beyond the bare 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?

The description clearly states the tool scans pipeline data for all 6 specific signal types and returns structured findings, with a list of signals. This distinguishes it from sibling tools like 'analyze_engine' or 'qualify', which have different purposes.

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

Usage Guidelines2/5

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

The description explains the source parameter options (auto, hubspot, sample) but provides no explicit guidance on when to use this tool versus alternatives like 'analyze_engine' or 'score_pipeline_health'. No when-not-to-use or exclusion criteria are mentioned.

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

identify_constraintDominant Constraint IdentificationA
Read-onlyIdempotent

Identify the dominant scaling constraint bottlenecking revenue.

Analyzes pipeline coverage, conversion rates, velocity, and deal characteristics to determine which of 4 constraints is dominant: Lead Generation, Conversion, Delivery, or Profitability.

Returns the Revenue Formula breakdown (Traffic × CR1 × CR2 × ... × ACV × 1/Churn) with gap-to-benchmark for each lever and the weakest link.

Args: source: "auto" (uses HubSpot if API key is set, otherwise sample data), "hubspot" for live data, "sample" for built-in demo data. pipeline_id: Optional HubSpot pipeline ID to filter. quota: Optional quarterly revenue quota for pipeline coverage calculation.

Returns: JSON with dominant constraint, severity scores, revenue formula, and recommended focus.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoauto
pipeline_idNo
quotaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds value by explaining the analysis logic and return structure. It could be more explicit about being a non-modifying analysis, but annotations sufficiently cover the safety 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?

The description is around 130 words, well-structured with an opening purpose statement, analysis method, parameter details, and return description. Every sentence adds value, and the front-loaded style ensures key information is immediate.

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 complex tool with 3 parameters, multiple data sources, and analytical output, the description covers purpose, methodology, parameters, and return value. An output schema exists, but the description still summarizes the JSON structure appropriately.

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

Parameters5/5

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

Schema coverage is 0%, so the description must explain all parameters. It does so comprehensively: source options (auto, hubspot, sample) with behavior, and optional pipeline_id and quota with their purposes. This fully compensates for the lack of 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 identifies the dominant scaling constraint bottlenecking revenue, using specific verb 'identify' and resource 'constraint'. It details the analysis of pipeline metrics and four constraint types, distinguishing it from sibling tools like analyze_engine or score_pipeline_health.

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 explains parameter options (source values, optional pipeline_id, quota) and when to use each data source. However, it does not explicitly state when not to use this tool or provide direct comparisons to sibling tools, though the purpose is distinct enough.

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

propose_gtm_changeGTM Change ProposalA
Read-onlyIdempotent

Draft a structured GTM commit proposal following the GTM OS anatomy.

Creates a version-controlled change proposal with: Intent, Diff, Impact Surface, Risk Level, Evidence, and Measurement Plan. Does NOT apply the change — outputs a proposal for human review.

Args: entity_type: What's being changed — "icp", "persona", "positioning", "pipeline_stage", "exit_criteria", "gtm_motion", "scoring_model", "playbook". change_description: Human-readable description of the proposed change. current_state: Optional description of current state (before). proposed_state: Optional description of proposed state (after). signal_type: Optional signal type that triggered this change (win_loss_pattern, conversion_drop_off, velocity_anomaly, spiced_frequency, attribution_shift, data_quality). signal_data: Optional JSON string with structured evidence from signal detection.

Returns: JSON with structured commit proposal and next steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_typeYes
change_descriptionYes
current_stateNo
proposed_stateNo
signal_typeNo
signal_dataNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The description goes beyond annotations by stating the tool only outputs a proposal for human review and details the proposal components. This aligns with readOnlyHint and adds value.

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 well-structured with a clear summary, list of components, parameter details, and return value. It is front-loaded and each part serves a purpose.

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 an output schema exists and the description covers all parameters and return type, it is fairly complete. The term 'GTM OS anatomy' may be jargon but does not severely impact completeness.

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?

Despite 0% schema coverage, the description lists and explains all parameters with examples for entity_type and signal_type, providing meaning beyond the raw 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?

The description clearly states that the tool drafts a GTM commit proposal and explicitly says it does NOT apply the change. It specifies the components and distinguishes itself from sibling analysis tools.

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?

While the description implies its use for proposing changes, it does not explicitly compare with alternatives or state when to use this tool versus siblings like analyze_engine or identify_constraint.

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

qualifyICP QualificationA
Read-onlyIdempotent

Score a prospect against the Artefact 14.5-point ICP model with constraint context.

Evaluates Firmographic Fit (5 pts), Behavioral Fit (5 pts), and Strategic Fit (4.5 pts). Returns tier classification, score breakdown, recommended engagement strategy, and how this prospect relates to your scaling constraints.

Provide EITHER company_id (HubSpot ID, requires HUBSPOT_API_KEY) OR company_data (JSON string).

Args: company_id: HubSpot company ID to fetch and score. company_data: JSON string with company attributes. Example keys: industry, annual_revenue, employee_count, geography, tech_stack (list), growth_signals (list), content_engagement ("active"|"occasional"|"none"), purchase_history ("regular"|"occasional"|"never"), decision_maker_access ("c_suite"|"director"|"manager"|"indirect"|"none"), budget_authority ("dedicated"|"shared"|"possible"|"none"), strategic_alignment ("strong"|"partial"|"misaligned"). scoring_config: Optional JSON string to override default scoring parameters.

Returns: JSON with total score, tier, breakdown, constraint context, and recommended action.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNo
company_dataNo
scoring_configNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations mark the tool as readOnlyHint=true and idempotentHint=true, and the description confirms it is a scoring operation returning JSON, with no destructive actions. It adds context about the model structure and scaling constraints, and mentions the API key requirement for company_id, providing behavioral clarity beyond 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?

The description is well-structured with a clear first sentence stating the purpose, then breaking down the model and input options. It is reasonably concise, though the list of company_data keys could be shortened or referenced from an external source.

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 (3 parameters, output schema exists), the description covers inputs, model components, and return values adequately. It mentions constraint context and recommended action, but does not elaborate on error handling or detailed output schema (though the schema is separately defined). Overall, it provides sufficient context for an AI agent.

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?

With 0% schema description coverage, the description compensates well by detailing company_data with example keys and explaining company_id and scoring_config. However, scoring_config is described only as 'override default scoring parameters' without listing possible keys or formats, leaving some ambiguity.

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 that the tool scores a prospect against the Artefact 14.5-point ICP model, specifying the three fit components (Firmographic, Behavioral, Strategic) and the return values. It distinguishes itself from sibling tools like run_rfm and score_pipeline_health by focusing on ICP qualification.

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 instructions on input options: use company_id (with HubSpot API key) or company_data (JSON string) and optional scoring_config. It lists example keys for company_data. However, it does not explicitly state when to use this tool over alternatives or when not to use it.

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

run_rfmRFM AnalysisA
Read-onlyIdempotent

Run RFM (Recency, Frequency, Monetary) analysis on client data.

Scores clients based on purchase behavior, segments them into 11 categories, extracts ICP patterns from top performers, and detects win/loss pattern signals.

Args: source: Data source — "auto" (uses HubSpot if API key is set, otherwise sample data), "hubspot" for live HubSpot data, "sample" for built-in demo data. industry_preset: Scoring preset — "b2b_service", "saas", "manufacturing", or "default".

Returns: JSON with scored clients, segment distribution, ICP patterns, signals, and tier recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoauto
industry_presetNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, which is reinforced by the description's focus on analysis and output generation. The description adds context about data source options (auto, hubspot, sample) and return structure, which further clarifies behavior. 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.

Conciseness4/5

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

The description is structured with a clear summary, output explanation, and parameter details. It is front-loaded with the tool's purpose and avoids redundancy, though the parameter details could be condensed slightly.

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 existence of an output schema (though not detailed here), the description covers inputs, outputs, and key behavioral aspects. It lacks error handling or edge-case guidance but is sufficient for typical usage.

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

Parameters5/5

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

The input schema provides only parameter names with defaults (0% description coverage). The description compensates fully by explaining each parameter's meaning, options (e.g., 'auto', 'hubspot', 'sample' for source), and purpose, which is critical for correct usage.

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 runs RFM analysis on client data, detailing scoring, segmentation, ICP extraction, and win/loss detection. This differentiates it from sibling tools like analyze_engine or qualify, which serve different purposes.

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 explains what the tool does but does not explicitly state when to use it instead of alternatives. Users can infer it is for customer purchase behavior analysis, but no direct guidance on context or exclusions is provided.

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

score_pipeline_healthPipeline Health ScoreA
Read-onlyIdempotent

Analyze pipeline health with velocity metrics, signal detection, and exit criteria testing.

Calculates overall health score (0-100), identifies bottleneck stages, measures stage-to-stage conversion rates, flags stalled deals, detects pipeline signals, and optionally tests deals against exit criteria.

Args: pipeline_id: Optional HubSpot pipeline ID to filter. Default: all pipelines. source: "auto" (uses HubSpot if API key is set, otherwise sample data), "hubspot" for live data, "sample" for built-in demo data. exit_criteria: Optional JSON string with exit criteria to test against. List of objects: [{stage, test_name, required_field, is_blocking}].

Returns: JSON with health score, velocity, conversion rates, at-risk deals, signals, and optional exit criteria test results.

ParametersJSON Schema
NameRequiredDescriptionDefault
pipeline_idNo
sourceNoauto
exit_criteriaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior. Description adds details like using HubSpot or sample data, and returning JSON. No contradictions.

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?

Description is well-structured with clear sections (Args, Returns) and front-loaded purpose. Concise but covers all key aspects without redundancy.

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?

Given the presence of an output schema (not shown but referenced), description covers inputs and outputs sufficiently. Lists return fields: health score, velocity, conversion rates, etc.

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

Parameters5/5

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

With 0% schema coverage, description comprehensively explains all three parameters: pipeline_id (optional, filter), source (hubspot/sample/auto), and exit_criteria (optional JSON). Adds meaning beyond basic types.

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 analyzes pipeline health with velocity metrics, signal detection, and exit criteria testing. It distinguishes from siblings like analyze_engine or qualify by focusing on health scoring.

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?

Description explains what the tool does but does not explicitly state when to use it over siblings or provide exclusions. Usage context is implied through functionality.

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

TDQS

A4.2/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but there is some overlap between detect_signals and score_pipeline_health, as both detect signals. However, they are focused on different aspects (signal-only vs. comprehensive health), so ambiguity is low.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern in snake_case, with only minor deviations like 'qualify' (single verb) and 'run_rfm' (verb+acronym). Overall, the pattern is predictable and clear.

Tool Count5/5

With 7 tools, the server is well-scoped for its domain of GTM analytics and pipeline management. Each tool provides a distinct function without redundancy, earning its place in the set.

Completeness4/5

The tool surface covers core GTM analysis workflows—engine analysis, signal detection, constraint identification, proposal creation, prospect qualification, RFM analysis, and pipeline health. Minor gaps exist, such as no tool for applying changes or performing what-if analysis, but these are not critical for the stated analytical purpose.

Maintenance

ActivityNo data
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    MCP server for Salesforce marketing and revenue ops teams. 47 tools covering leads, contacts, accounts, campaigns, campaign members, tasks, and 17 reporting tools including campaign ROI, lead-source attribution, pipeline-by-campaign, multi-touch campaign influence, MQL trend, forecast summary, and the native SFDC Reports API.
    47
    1
  • F
    license
    Not graded
    quality
    D
    maintenance
    A unified MCP server that connects HubSpot, Clay, Apollo, Slack, and email to enable AI agents to execute multi-step GTM workflows such as prospecting, enrichment, CRM updates, and notifications.
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that provides AI agents with ICP Triangulation Framework™ for scoring prospects across firmographics, behaviors, and growth signals, plus RFM analysis and pipeline health scoring, with optional HubSpot integration.
    3
    Business Source 1.1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/artefactventures/artefact-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server