catchintent
The intent layer for B2B outbound. Find, triage, and act on warmth-scored leads.
使うべきか
品質と安全性
検出事項(4)
- HIGH
- MEDIUMproduct_get 内
- LOWlead_update_sequence 内
- LOWlead_enrich 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"catchintent": {
"url": "https://engine.catchintent.com/mcp"
}
}
}リモートエンドポイント
https://engine.catchintent.com/mcpstreamable-httpできること
ツール一覧
ツール(14)
🟢lead_search(productId, status, warmth, workflowTag, search, ...)
Search leads in the workspace. A lead is always a person discovered on LinkedIn. Filter by warmth, status, or text.
入力スキーマ
{
"type": "object",
"properties": {
"productId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"status": {
"type": "array",
"items": {
"type": "string",
"enum": [
"new",
"seen",
"saved",
"pushed",
"archived"
]
}
},
"warmth": {
"type": "array",
"items": {
"type": "string",
"enum": [
"hot",
"warm",
"cool"
]
}
},
"workflowTag": {
"type": "array",
"items": {
"type": "string"
}
},
"search": {
"type": "string",
"maxLength": 200
},
"page": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"default": 20,
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢lead_get(leadId)
Get full details of one lead: profile, discovery context (fit reason, pain hypothesis, role signals, disqualifiers), the AI-drafted outreach sequence (lead.outreach), warmth score, and status.
入力スキーマ
{
"type": "object",
"properties": {
"leadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"leadId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡lead_update_status(leadId, status)
Move a lead through the triage funnel. Valid transitions: NEW → SEEN/SAVED/PUSHED/ARCHIVED, SEEN ↔ SAVED, SAVED → PUSHED/ARCHIVED, PUSHED → ARCHIVED, ARCHIVED → SEEN. PUSHED is irreversible — it marks handoff to an outreach tool / CRM.
入力スキーマ
{
"type": "object",
"properties": {
"leadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"status": {
"type": "string",
"enum": [
"new",
"seen",
"saved",
"pushed",
"archived"
]
}
},
"required": [
"leadId",
"status"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡lead_regenerate_sequence(leadId, instructions)
Re-draft the lead's AI outreach sequence (LinkedIn/X steps). Optional instructions steer the rewrite. Capped per lead — edit directly once the cap is hit.
入力スキーマ
{
"type": "object",
"properties": {
"leadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"instructions": {
"type": "string",
"maxLength": 2000
}
},
"required": [
"leadId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡lead_update_sequence(leadId, steps)
Replace the lead's outreach sequence steps with edited versions (marks the sequence as edited).
入力スキーマ
{
"type": "object",
"properties": {
"leadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"steps": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"order": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"channel": {
"type": "string"
},
"purpose": {
"type": "string"
},
"delayDays": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"body": {
"type": "string"
}
},
"required": [
"order",
"channel",
"purpose",
"delayDays",
"body"
]
}
}
},
"required": [
"leadId",
"steps"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪lead_enrich(leadId)
Trigger full LinkedIn profile enrichment via Apify (~$0.002, idempotent).
入力スキーマ
{
"type": "object",
"properties": {
"leadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"leadId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡lead_push_to_crm(leadIds, provider)
Push leads to your connected CRM (HubSpot, Close, Pipedrive, Zoho). Each lead becomes a contact / deal in the destination. Lead status does not change automatically — call lead_update_status to mark as `pushed` once CRM confirms.
入力スキーマ
{
"type": "object",
"properties": {
"leadIds": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"provider": {
"type": "string",
"enum": [
"hubspot",
"close",
"pipedrive",
"zoho"
]
}
},
"required": [
"leadIds"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢workspace_usage
Current workspace usage vs plan limits: leads delivered this billing period, team members, products, AI compute budget, daily/monthly caps.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡workspace_icp_options(field)
Get the valid Seniority Level and Job Function labels for product targeting (the reach dimensions MCP can set; roles are free text). Call this before product_update — unknown labels are rejected, never silently dropped.
入力スキーマ
{
"type": "object",
"properties": {
"field": {
"type": "string",
"enum": [
"seniorityLevels",
"jobFunctions"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢product_list
List every product/brand tracked by this workspace. Each product has its own brand profile, audience, and leads. Returns id, name, and timestamps.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢product_get(productId)
Resolved brand profile for a product, returned as nested sections with human-readable labels: sell (name/description/keywords/competitors/offer), fit (company firmographics), reach (roles/seniority/functions), plus offer, voice, and domain. Drives all AI scoring + outreach drafting for that product.
入力スキーマ
{
"type": "object",
"properties": {
"productId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"productId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡product_create(name, description, domain, keywords, competitors, ...)
Create a new product. You can set sell (name/description/keywords/competitors), the structured offer, voice, and reach (roles/seniority/functions). Company firmographics (industries/size/country) are set in the dashboard, not here. Brand fields are optional and can be filled later via product_update.
入力スキーマ
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 1000
},
"domain": {
"type": "string",
"maxLength": 255
},
"keywords": {
"type": "array",
"items": {
"type": "string"
}
},
"competitors": {
"type": "array",
"items": {
"type": "string"
}
},
"icp": {
"type": "object",
"properties": {
"targetRoles": {
"type": "array",
"items": {
"type": "string"
}
},
"seniorityLevels": {
"type": "array",
"items": {
"type": "string"
}
},
"jobFunctions": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"offer": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"targetPainPoint": {
"type": "string"
},
"uniqueMechanism": {
"type": "string"
},
"proofPoints": {
"type": "array",
"items": {
"type": "string"
}
},
"callToAction": {
"type": "string"
},
"riskReversal": {
"type": "string"
},
"pricingContext": {
"type": "string"
}
},
"required": [
"headline",
"targetPainPoint",
"uniqueMechanism",
"proofPoints",
"callToAction"
]
},
"voice": {
"type": "object",
"properties": {
"tone": {
"type": "string",
"enum": [
"professional",
"friendly",
"casual",
"authoritative"
]
},
"personality": {
"type": "array",
"items": {
"type": "string"
}
},
"doNots": {
"type": "array",
"items": {
"type": "string"
}
},
"customInstructions": {
"type": "string"
}
},
"required": [
"tone",
"personality"
]
}
},
"required": [
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡product_update(productId, name, description, domain, keywords, ...)
Update a product. Partial — only provided fields change. You can set sell (name/description/keywords/competitors), the structured offer, voice, and reach (roles/seniority/functions). Company firmographics (industries/size/country) are set in the dashboard, not here. Reach labels are resolved strictly to canonical IDs; unknown values rejected.
入力スキーマ
{
"type": "object",
"properties": {
"productId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"name": {
"type": "string",
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 1000
},
"domain": {
"type": "string",
"maxLength": 255
},
"keywords": {
"type": "array",
"items": {
"type": "string"
}
},
"competitors": {
"type": "array",
"items": {
"type": "string"
}
},
"icp": {
"type": "object",
"properties": {
"targetRoles": {
"type": "array",
"items": {
"type": "string"
}
},
"seniorityLevels": {
"type": "array",
"items": {
"type": "string"
}
},
"jobFunctions": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"offer": {
"type": "object",
"properties": {
"headline": {
"type": "string"
},
"targetPainPoint": {
"type": "string"
},
"uniqueMechanism": {
"type": "string"
},
"proofPoints": {
"type": "array",
"items": {
"type": "string"
}
},
"callToAction": {
"type": "string"
},
"riskReversal": {
"type": "string"
},
"pricingContext": {
"type": "string"
}
},
"required": [
"headline",
"targetPainPoint",
"uniqueMechanism",
"proofPoints",
"callToAction"
]
},
"voice": {
"type": "object",
"properties": {
"tone": {
"type": "string",
"enum": [
"professional",
"friendly",
"casual",
"authoritative"
]
},
"personality": {
"type": "array",
"items": {
"type": "string"
}
},
"doNots": {
"type": "array",
"items": {
"type": "string"
}
},
"customInstructions": {
"type": "string"
}
},
"required": [
"tone",
"personality"
]
}
},
"required": [
"productId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴product_delete(productId)
Delete a product. Fails only if it's the workspace's only product. Its audience and leads cascade-delete.
入力スキーマ
{
"type": "object",
"properties": {
"productId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"productId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}コミュニティ
エビデンス