Dealsurface

com.dealsurfacePublished by dealsurface.comv2.13.0Updated Oct 30, 2026

Insurance go-to-market intelligence: ranked prospects, evidence, buying committees and outreach.

Overview

AI-generated overview

DealSurface gives an assistant insurance go-to-market intelligence: ranked prospects, supporting evidence, buying committees and outreach copy.

What you can do
  • List and inspect products, including keywords, sources, target industries and segment targeting
  • List prospect corporate families for a product and pull full per-company analysis with deal score, rank, premium and complaint series
  • Search and filter quoted evidence from filings, earnings, company pages and news
  • List outreach templates and craft outreach copy from a static message or generation prompt
  • Read, generate and refresh buying-committee DealMaps, override stakeholder roles and set top picks
When to use it
Use it when a sales or go-to-market team working with insurance data wants an assistant to find and rank prospect companies, back up a pitch with quoted evidence, map buying committees, or draft outreach. It is aimed at teams already using DealSurface rather than general research.
Requirements
Runs locally over stdio from the npm package @dealsurface/mcp-server, so Node.js is needed. A DealSurface API key is required in DEALSURFACE_API_KEY, with read scope for read tools and outreach scope for lead and outreach tools. DEALSURFACE_API_URL optionally overrides the API base URL. Desktop only.
Before you install
The API key is a secret and its scope controls what the assistant can do. Some operations consume credits: generation prompts and static AI hooks in craft_outreach cost credits, and generate_dealmap may be charged when it does not resolve to a cached family map. Role overrides and top picks are team-wide changes visible to all team members. Prospect and evidence data is sent to and from the DealSurface API.

Installation

In SourceWeft

  1. Open Dealsurface in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Tools

11

list_products

List active products configured for the authenticated team. Free operation. Returns product names, descriptions, keywords, sources, target industries, and segment targeting (segment_targeting plus target_segments describing which insurance entity types, ownership, premium bands, and licensed footprints each product sells to). Pass include_disabled=true to include disabled product metadata.

Parametersinclude_disabled

get_product

Get detailed information about a specific active product, including its keywords, sources, target industries, and segment targeting (segment_targeting plus target_segments — what the product sells to). Free operation. Pass include_disabled=true to retrieve disabled product metadata.

Parametersproduct_idrequiredinclude_disabled

list_prospects

List prospect companies for a product. Results are CORPORATE FAMILIES (one row per family; subsidiaries roll up — entity_count/matched_entity_count show the entity-level reality, and total_groups vs total_entities in the envelope show market size at both grains). The list is the full candidate universe: unassessed rows are present and labeled via assessment_status (deal_score/buying_signal_score null) and rank LAST under the default relevance ordering — never hidden. Filters are STRICT: a family with no data for an applied insurance filter is excluded and counted in excluded_no_data_groups. lines_of_business matches ANY of the given lines; states_licensed_in matches ALL of the given states (licensed in every one). Premium filters apply per line when lines_of_business is given, else to total all-lines. A 503 means the projection is briefly not ready (reason "rebuilding" — retry soon; legacy products may also return "stale_keywords" — waits on the pipeline); it NEVER means "no prospects". When the response has a publication object, rows come from the latest completed results: if publication.warnings is non-empty, mention it to the user briefly (it describes the whole result set). publication.state "no_successful_generation" means no analysis has completed yet: rows are the company universe without scores, not an empty market. assessment_status "unavailable" means analysis is not available for this company in the current results; such rows carry null scores and rank after scored rows and before unassessed rows. For multi-page reads, echo publication.generation_id back as generation_id on each later page; on 409 generation_unavailable restart from offset 0 without it. Row buying_signal_score is 0.0-1.0: 1.0 means strong buying-signal indicators were found in the company's evidence; hedge proportionally as it decreases, and 0 means none were detected. When presenting to users, use plain-English labels ("Buying Signal Score", "Deal Score") rather than raw field names, and

Parametersqlimitoffsetsort_bysort_dirownershipproduct_idrequiredentity_typemax_premiummin_premiumgeneration_idcomplaint_line+10 more

get_prospect

Get full prospect analysis for a specific company ticker and product. Free operation. Returns assessment status, deal score, rank, company_info (SIC codes, NAIC cocodes, licensed states, entity types, ownership), full per-year premium and complaint series for this entity, corporate hierarchy, findings, and evidence excerpts. ASSESSED subsidiary tickers work: a hierarchy.children[].ticker with has_assessment=true can be passed straight back to this tool to drill into that entity's own book; children without analysis return facts only (assessment_status "unassessed" or "unavailable"); this is not an error. Embedded excerpts are capped at 20 (highest impact first); excerpt_count gives the true total — use search_excerpts for the rest. premium and complaints carry the complete per-year observation series; pass report_year to narrow to one year. For parent/placeholder prospects with no NAIC cocode of their own, complaints is the family rollup per line (scope "family") plus by_entity, the per-carrier breakdown — even when the member carriers are unassessed. Observations with low_sample=true rest on fewer than 10 complaints; hedge accordingly. Each excerpt's text_marked carries <mark>…</mark> tags identifying the most relevant product or event sentence(s) — quote or emphasize those sentences when presenting evidence, converting the tags to bold/emphasis if the rendering surface cannot display HTML. text_marked is HTML-escaped outside the tags; use the plain text field with the highlights offsets when raw text is needed.

Parameterstickerrequiredproduct_idrequiredreport_yearinclude_privateinclude_highlights

search_excerpts

Search and filter product-relevant evidence from filings, earnings, company pages and web news. Optional company_event metadata denotes a materially current, product-sales-relevant event. Free operation. Excerpts contain direct quotes indicating interest in or need for the product. Each excerpt's text_marked carries <mark>…</mark> tags identifying the most relevant product or event sentence(s) — quote or emphasize those sentences when presenting evidence, converting the tags to bold/emphasis if the rendering surface cannot display HTML. text_marked is HTML-escaped outside the tags; use the plain text field with the highlights offsets when raw text is needed. NOTE: the keyword filter matches against each excerpt's tagged pain points (see the product's keywords from get_product), NOT the raw quote text — a keyword absent from the pain-point tags returns zero results even if it appears verbatim in a quote. Returns 409 analysis_unavailable when analysis is not available for this company in the current results; tell the user briefly and do not retry.

Parameterslimitoffsettickerrequiredkeywordproduct_idrequiredmin_impact_scoreinclude_highlights

list_outreach_templates

List active static messages and generation prompts for a product, plus the DealSurface built-in default. Each entry includes kind and credit_cost. Listing is free and requires "read" and "outreach" scopes. Normal craft_outreach calls should omit template_key and use the effective default; call this tool when the user asks to explore alternatives.

Parameterslimitoffsetproduct_idrequired

craft_outreach

Create outreach copy from a selected static message or generation prompt. Omit template_key to use the product default; list alternatives only when the user asks. Voice, structure, and length come from the template. Pure static messages are free; generation prompts and a static AI hook cost one credit per successful AI generation. A subsidiary ticker resolves upward to the corporate family; when the subsidiary or the lead's work email identifies the lead's own company, that company's evidence is used first (lead_company). The response reports evidence_mode (specific, or general when no company fact fit this person), plain-English warnings to relay to the user (for example a lead whose email belongs to another company), and used_excerpts with the text of each cited excerpt. Optional lead personalization supports selected_lead or lead_selector. When drafting for several prospects or leads, run up to 10 craft_outreach calls in parallel rather than one at a time; limited to 60 requests per minute per API key — on a 429, wait Retry-After seconds and retry only the rejected calls. Requires "read" and "outreach" scopes. Returns 409 analysis_unavailable when analysis is not available for this company in the current results; tell the user briefly and do not retry.

Parameterstickerrequiredplatformrequiredproduct_idrequiredtemplate_keylead_selectorselected_lead

get_dealmap

Get the buying committee DealMap for a prospect company. DealMaps are held at corporate-family grain: a subsidiary ticker resolves upward to the family's DealMap and the response names the family. Shows stakeholders with AI-assigned roles (Economic Buyer, Decision Maker, Champion, Executive Sponsor, Evaluator, Blocker, etc.), org hierarchy edges, and a buying_committee_summary identifying the top pick for each role. Each stakeholder carries placement: "placed" (in the reporting hierarchy) or "unplaced" (listed at the company but not placed in the hierarchy; reporting line unknown, no edges implied — added when the placed chart is sparse). Use this to understand who is involved in the purchase decision. Free operation. Returns status "empty" if no DealMap has been generated yet — call generate_dealmap first.

Parameterstickerrequiredproduct_idrequired

generate_dealmap

Generate or refresh the buying committee DealMap for a prospect. DealMaps are family-grain: a subsidiary ticker resolves upward to the corporate family (a generate that resolves to a cached family map is not charged) and the response names the family. Maps the org structure and assigns stakeholder roles (Economic Buyer, Decision Maker, Champion, etc.) using AI analysis. Conditionally billed: successful results cost 10 credits for generation_source=org_fresh or org_fresh_empty, including a fresh empty org result supplemented with people. Cached results (org_cache or annotated_cache_hit) are free and reused when available. The response contains the full DealMap (no follow-up get_dealmap needed). Each generation takes ~15-45s, so for several companies run up to 10 generate_dealmap calls in parallel rather than one at a time; limited to 20 generation requests per minute per API key — on a 429, wait Retry-After seconds and retry only the rejected calls. After a timeout, check get_dealmap before retrying; completion is not guaranteed. Avoid force_refresh unless the user explicitly requests it. Requires "outreach" scope on the API key.

Parameterstickerrequiredproduct_idrequiredforce_refresh

override_stakeholder_role

Override the AI-assigned stakeholder role for a specific person on the buying committee DealMap. This is a team-wide override visible to all team members. Use when the AI role is clearly wrong. Free operation. Requires "outreach" scope on the API key.

Parameterstickerrequirednode_idrequiredproduct_idrequiredstakeholder_rolerequired

set_top_pick

Mark or unmark a stakeholder as the top pick for their buying-committee role on the DealMap. This is a team-wide annotation visible to all team members. Use get_dealmap first to find the stakeholder's node_id. Free operation.

Parameterstickerrequirednode_idrequiredproduct_idrequiredis_top_pickrequired

Version history

12
  1. v2.13.0LatestOct 30, 2026
  2. v2.12.0Oct 29, 2026
  3. v2.11.0Oct 24, 2026
  4. v2.10.0Oct 24, 2026
  5. v2.9.1Oct 22, 2026
  6. v2.9.0Oct 12, 2026
  7. v2.8.0Oct 10, 2026
  8. v2.7.1Oct 9, 2026
  9. v2.7.0Oct 9, 2026
  10. v2.6.0Sep 29, 2026
  11. v2.5.0Sep 22, 2026
  12. v2.3.0Sep 16, 2026

Score

65% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.