Spur

com.usespur由 usespur.com 發布官方發布者v1.0.0更新於 Oct 25, 2026

Real estate leads, skip tracing, direct mail, SMS & email outreach, and marketing automations

已驗證Streamable HTTP可網頁執行位置與生活溝通與協作商業與電商

概覽

AI 產生的概覽

Spur 是房地產開發客源平台,讓助理搜尋物件、跳過追蹤找出屋主,並透過簡訊、電子郵件和直郵進行外聯。

可以做什麼
搜尋並預覽 Zillow 即時物件,把自然語言查詢解析成篩選條件,檢視物件詳情、已儲存物件統計和清單。儲存物件、整理成物件清單,並查找或補充屋主的電話、電子郵件和郵寄地址。起草、預覽、建立和編輯電子郵件、簡訊和明信片範本,包括可追蹤 QR 碼和使用者自己的圖片。建立和管理多步驟外聯工作流程、登記屋主、發送簡訊,並檢視簡訊對話和外聯報告。查詢帳單、儲值額度、更換方案並確認 Stripe 付款。
適用情境
適合希望讓助理集中完成物件調查、查找屋主聯絡方式,並設計執行電子郵件、簡訊和直郵外聯活動的房仲或投資人。
執行需求
遠端 MCP 端點 mcp.usespur.com,使用 streamable HTTP,未宣告套件、環境變數或標頭。需有 Spur 帳戶和以額度計費的方案;搜尋、資訊補充、AI 起草、簡訊和發送都會消耗額度,付款透過 Stripe 結帳。
安裝前請注意
許多工具會花錢或聯絡真實的人:資訊補充、簡訊、工作流程啟用與登記、明信片和信件寄送以及儲值。伺服器要求明確核准(confirm=true)和預覽確認權杖,但助理仍應先顯示確切內容、收件人和費用。跳過追蹤會蒐集個人聯絡資料,外聯會把資料傳送給第三方。刪除範本可能導致進行中的工作流程失敗。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Spur,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.usespur%2Fspur/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "spur": {
      "type": "http",
      "url": "https://mcp.usespur.com/mcp"
    }
  }
}

工具

78

spur_search_properties

Search properties

Search live listings (Zillow data) in Spur with plain English and/or structured filters, including event filters. Results show as cards and a map. Uses 1 property-search credit per call from the user's Spur plan, or 2 credits when the search makes more than 3 ZHomes calls (e.g. several event types, tax/sale-history events, or description-based filters). To check how a sentence will be interpreted before spending a credit, call spur_parse_search_query first. Examples: - "3 bed houses under $2,500/mo in Austin owned 10+ years" -> location="Austin, TX", listing_status="forRent", home_type="singleFamily", min_beds=3, max_price=2500, min_ownership_years=10 - "duplexes for sale in 78704 built before 1980 with absentee owners" -> location="78704", listing_status="forSale", home_type="multiFamily", max_year_built=1979, only_absentee=true - "new pre-foreclosures or price drops of 10%+ in Dallas this week" -> location="Dallas, TX", events=["preforeclosure","price_drop"], event_within_days=7, event_min_change_pct=10 - "motivated sellers in Houston: stale, back on market, or fired their agent" -> location="Houston, TX", events=["stale_listing","back_on_market","agent_to_fsbo"] Events (pass in `events`; a listing matches when ANY selected event fired, and is tagged with each): - Listing lifecycle: new_listing, coming_soon, coming_soon_active, price_drop, price_increase, pending, sold, back_on_market, delisted (automations only), open_house, rental_listed, rent_change, move_in_moved_up - Distress & motivation: preforeclosure, foreclosure, auction, bank_owned, distress_escalated, fsbo, agent_to_fsbo, stale_listing, new_construction - Valuation & tax: tax_assessment_posted, assessed_value_jump, tax_paid_dropped (weak), sale_recorded, zestimate_moved, equity_gap, price_below_assessed Direct events (price_drop, pending, sold, preforeclosure, fsbo, new_listing, …) work on the first search. Change events (price_increase, back_on_market, distress_escalated, agent_to_fsbo, ren

輸入參數limitqueryviewseventsmax_agemax_zipmin_agemin_ziphas_poolhas_viewkeywordslocation另有 41 個

spur_parse_search_query

Preview search filters

Show how Spur interprets a plain-English property search (filters and events) without running it. Free: uses no search credit. Use it to confirm intent before spending a credit, or to turn a vague request into explicit filters you can adjust. The returned arguments can be passed straight to spur_search_properties (keep the same location / status unless the user says otherwise). Exclusions ("no condos", "not foreclosures") are honoured by leaving those filters out.

輸入參數query必填

spur_get_property

Get property

Show one property as a detailed card: a saved Spur property by property_id, or a live listing by zpid. Includes owner links and enrichment status for saved properties.

輸入參數zpidproperty_id

spur_save_properties

Save properties

Save live listings into the user's Spur properties (and optionally a property list). Pass listing objects from spur_search_properties structuredContent.cards[].listing. Already-saved listings are refreshed, not duplicated.

輸入參數list_idlistings必填

spur_list_saved_properties

List saved properties

List properties the user has saved in Spur, optionally filtered by city, state, list, or enrichment status. Shows cards and a map.

輸入參數citylimitstateoffsetlist_idmax_pricemin_priceenrichment_status

spur_get_property_stats

Property stats

Totals for the user's saved properties: counts by status, enrichment progress and similar portfolio-level numbers.

無需輸入參數。

spur_find_owners

Find owners

Find property owners in the user's Spur account by name, phone, email or mailing address text. Use spur_get_owner for full details and portfolio.

輸入參數limitqueryoffsethas_phoneenrichment_status

spur_get_owner

Get owner

Full owner record: contact details, mailing address, enrichment status and their property portfolio in Spur.

輸入參數owner_id必填

spur_enrich

Skip trace / enrich

Run skip tracing to find owners and their phone numbers, emails and mailing addresses. - property_ids: find the owner of saved properties (creates/links owner records) - owner_ids: refresh contact details for existing owners Costs enrichment credits per record (check spur_get_billing_summary). Ask the user to approve the count first, then call with confirm=true.

輸入參數confirm必填owner_idsproperty_ids

spur_list_property_lists

List property lists

All of the user's property lists with ids and sizes. Use the id with spur_list_saved_properties, spur_add_properties_to_list or outreach tools.

無需輸入參數。

spur_create_property_list

Create property list

Create a property list, optionally seeding it with saved property ids.

輸入參數name必填descriptionproperty_ids

spur_add_properties_to_list

Add properties to list

Add saved properties to an existing property list.

輸入參數list_id必填property_ids必填

spur_draft_message

Draft outreach message

Draft an email, SMS or direct-mail message with Spur's AI. Returns text only; nothing is sent. Pass owner_id/property_id to personalize with real owner and property data. Uses 1 AI credit. Use {{merge_fields}} like {{owner_first_name}} and {{property_address}} to keep it reusable (see resource spur://merge-variables).

輸入參數prompt必填channel必填owner_idproperty_id

spur_list_workflows

List outreach workflows

The user's multi-step outreach workflows (email/SMS/mail sequences) with status and enrollment counts.

無需輸入參數。

spur_get_workflow

Get outreach workflow

One outreach workflow's steps in order (including reply/open branches built in the app), with the email, SMS or mail template each send step uses and its step_id.

輸入參數workflow_id必填

spur_create_workflow

Create outreach workflow

Create a multi-step outreach sequence from saved templates. It's saved as an inactive draft: nothing sends until it's activated (spur_set_workflow_active) and owners are enrolled. Send steps take a saved template: email/SMS from spur_list_message_templates (design new ones with spur_create_email_template / spur_create_sms_template), direct mail from the user's saved postcard or letter templates. Wait steps space them out. Reply/open/click branches can be added afterwards in Spur → Outreach. Example: "text, wait 2 days, email, wait 5 days, postcard" -> steps=[{type:"send_sms",template_id:…},{type:"wait",days:2},{type:"send_email",template_id:…},{type:"wait",days:5},{type:"send_direct_mail",template_id:…}]

輸入參數name必填steps必填description

spur_set_workflow_step_template

Use template in workflow step

Set which saved template a workflow's send step uses (send_email ← email template, send_sms ← SMS template, send_direct_mail ← postcard/letter template). Get step_ids from spur_get_workflow. If the workflow is active, enrolled owners get the new template from their next send.

輸入參數step_id必填template_id必填workflow_id必填

spur_set_workflow_active

Activate or pause workflow

Activate a workflow (enrolled owners start receiving its emails, texts and mail on schedule, which uses credits) or pause it. Activating requires every send step to have a template and the user's explicit approval.

輸入參數active必填confirmworkflow_id必填

spur_enroll_owners_in_workflow

Enroll owners in workflow

Enroll owners in an outreach workflow. The workflow will start emailing/texting/mailing them on its schedule, which uses credits. Confirm the workflow name and owner count with the user first.

輸入參數confirm必填owner_ids必填workflow_id必填

spur_send_sms

Send SMS

Text an owner from the user's Spur number. Show the user the exact message and recipient and get approval before calling with confirm=true. Costs 1 SMS credit.

輸入參數confirm必填message必填owner_id必填

spur_list_sms_conversations

SMS inbox

SMS conversations with owners, newest first, with unread counts and the last message. Good for triaging replies (hot leads, not interested, wrong number).

輸入參數limitunread_only

spur_get_sms_conversation

SMS thread

The full SMS thread with one owner, oldest first.

輸入參數owner_id必填

spur_get_outreach_report

Outreach report

Outreach performance (sent, delivered, opened, replied, by channel) for all workflows or one, over an optional date range.

輸入參數date_todate_fromworkflow_id

spur_list_message_templates

List email and SMS templates

The user's saved email and SMS templates. These are what outreach workflow send_email / send_sms steps use.

輸入參數channel

spur_get_message_template

Get email or SMS template

Fetch an email template's subject, HTML and plain text, or an SMS template's text, for reading or editing. For small changes prefer the update tool's replacements over resending everything.

輸入參數template_id必填

spur_preview_message_template

Preview email or SMS template

Show a saved email (inbox view, desktop and mobile) or SMS (phone view, segment count) rendered with sample data or a real owner's data, plus design checks. Changes nothing.

輸入參數owner_idtemplate_id必填

spur_preview_message_draft

Preview unsaved email or SMS

Preview email HTML or SMS text before saving it: renders it with sample or real owner data and runs the design checks. Nothing is saved; iterate here, then save with spur_create_email_template / spur_create_sms_template. Email HTML guidance (see spur://email-design-guide): full HTML document, table-based layout 600px wide, inline styles on elements (a small <style> block in <head> is fine for resets/media queries), web-safe font stacks, no JavaScript, no forms, no external CSS. Images as absolute https URLs with alt text and width attributes. The user's own images (logo, headshot, property photos): spur_list_images gives their URLs; if they want to use an image they have, call spur_upload_image (or spur_save_image for a link) and use the saved URL. Use PNG or JPG in emails, not SVG. A hidden preheader <div style="display:none"> right after <body> sets the inbox snippet. Include an opt-out line ("Reply STOP" or an unsubscribe link) and the sender's postal address in the footer. Keep it under 50,000 characters. Use merge fields like {{owner_first_name}}, {{property_address}}, {{your_name}}, {{your_phone}}, {{company_name}} (see spur://merge-variables). The plain-text version is generated from the HTML unless you pass text_body. SMS guidance: plain text, ideally one segment (160 GSM characters, or 70 if it uses emoji or other non-GSM characters; longer messages are billed per segment). Identify yourself, keep it conversational, and include opt-out wording ("Reply STOP to opt out") on first-touch messages. Links in texts from unverified numbers can be blocked, so give link-free fallback_body text when the body has a URL. Use merge fields like {{owner_first_name}}, {{property_address}}, {{your_name}} (see spur://merge-variables).

輸入參數htmltextchannel必填subjectowner_idfallback_body

spur_create_email_template

Create email template

Save a new email template and show its inbox preview. Ways to start: - From blank: start_from_blank=true gives a tested 600px responsive layout with greeting, signature and a compliant footer; pass html to replace it. - Redesign: base_template_id copies one of the user's email templates. - From scratch: pass html (or only text_body for a plain-text email). The saved template can then be used by outreach workflows (spur_create_workflow / spur_set_workflow_step_template). Email HTML guidance (see spur://email-design-guide): full HTML document, table-based layout 600px wide, inline styles on elements (a small <style> block in <head> is fine for resets/media queries), web-safe font stacks, no JavaScript, no forms, no external CSS. Images as absolute https URLs with alt text and width attributes. The user's own images (logo, headshot, property photos): spur_list_images gives their URLs; if they want to use an image they have, call spur_upload_image (or spur_save_image for a link) and use the saved URL. Use PNG or JPG in emails, not SVG. A hidden preheader <div style="display:none"> right after <body> sets the inbox snippet. Include an opt-out line ("Reply STOP" or an unsubscribe link) and the sender's postal address in the footer. Keep it under 50,000 characters. Use merge fields like {{owner_first_name}}, {{property_address}}, {{your_name}}, {{your_phone}}, {{company_name}} (see spur://merge-variables). The plain-text version is generated from the HTML unless you pass text_body.

輸入參數htmlname必填subjecttext_bodyis_defaultdescriptionbase_template_idstart_from_blank

spur_update_email_template

Edit email template

Edit one of the user's email templates and show the updated inbox preview. For tweaks pass replacements (exact find → replace in "html", "subject" or "text"); to redesign pass full html. When the HTML changes, the plain-text version is regenerated unless it was hand-written or you pass text_body. Workflows using this template send the new version from their next step. Example: replacements=[{target:"html", find:"<p style=\"margin:0 0 16px;\"></p>", replace:"<p style=\"margin:0 0 16px;\">I'd like to make a cash offer on {{property_address}}.</p>"}] Email HTML guidance (see spur://email-design-guide): full HTML document, table-based layout 600px wide, inline styles on elements (a small <style> block in <head> is fine for resets/media queries), web-safe font stacks, no JavaScript, no forms, no external CSS. Images as absolute https URLs with alt text and width attributes. The user's own images (logo, headshot, property photos): spur_list_images gives their URLs; if they want to use an image they have, call spur_upload_image (or spur_save_image for a link) and use the saved URL. Use PNG or JPG in emails, not SVG. A hidden preheader <div style="display:none"> right after <body> sets the inbox snippet. Include an opt-out line ("Reply STOP" or an unsubscribe link) and the sender's postal address in the footer. Keep it under 50,000 characters. Use merge fields like {{owner_first_name}}, {{property_address}}, {{your_name}}, {{your_phone}}, {{company_name}} (see spur://merge-variables). The plain-text version is generated from the HTML unless you pass text_body.

輸入參數htmlnamesubjecttext_bodyis_defaultdescriptiontemplate_id必填replacements

spur_create_sms_template

Create SMS template

Save a new SMS template and show its phone preview with segment count and checks. The saved template can then be used by outreach workflows (spur_create_workflow / spur_set_workflow_step_template). SMS guidance: plain text, ideally one segment (160 GSM characters, or 70 if it uses emoji or other non-GSM characters; longer messages are billed per segment). Identify yourself, keep it conversational, and include opt-out wording ("Reply STOP to opt out") on first-touch messages. Links in texts from unverified numbers can be blocked, so give link-free fallback_body text when the body has a URL. Use merge fields like {{owner_first_name}}, {{property_address}}, {{your_name}} (see spur://merge-variables).

輸入參數name必填text必填is_defaultdescriptionfallback_body

spur_update_sms_template

Edit SMS template

Edit one of the user's SMS templates and show the updated preview. Pass full text / fallback_body, or replacements (exact find → replace in "text" or "fallback"). Pass fallback_body="" to remove the fallback. SMS guidance: plain text, ideally one segment (160 GSM characters, or 70 if it uses emoji or other non-GSM characters; longer messages are billed per segment). Identify yourself, keep it conversational, and include opt-out wording ("Reply STOP to opt out") on first-touch messages. Links in texts from unverified numbers can be blocked, so give link-free fallback_body text when the body has a URL. Use merge fields like {{owner_first_name}}, {{property_address}}, {{your_name}} (see spur://merge-variables).

輸入參數nametextis_defaultdescriptiontemplate_id必填replacementsfallback_body

spur_delete_message_template

Delete email or SMS template

Delete one of the user's email or SMS templates. Workflow steps that use it will fail until they get another template, so check spur_list_workflows and confirm with the user first.

輸入參數confirm必填template_id必填

spur_send_test_email

Send test email to yourself

Send an email template, filled with sample data (or one owner's data), to the user's own Spur account email from their email sender, to check it in a real inbox. Never goes to owners. Confirm with the user first.

輸入參數confirm必填owner_idsender_idtemplate_id必填

spur_list_postcard_templates

List postcard templates

Postcard templates available to the user: their own (editable), Spur defaults, and Spur's built-in gallery. Copy a default or gallery design with spur_create_postcard_template base_template_id to redesign it, or start from blank with start_from_blank.

輸入參數sizecategoryinclude_gallery

spur_get_postcard_template

Get postcard template HTML

Fetch a postcard template's HTML for reading or editing. For small text changes prefer spur_update_postcard_template with replacements instead of resending whole HTML.

輸入參數sidetemplate_id必填

spur_preview_postcard_template

Preview postcard template

Show any postcard template (yours, a Spur default or a gallery design) rendered with sample data, without changing anything.

輸入參數template_id必填

spur_create_postcard_template

Create postcard template

Create a postcard template and show a preview. Three ways to start: - From blank: start_from_blank=true gives an empty, correctly sized canvas for the size (any side you pass HTML for replaces the blank side). - Redesign an existing template: base_template_id (yours, a Spur default or a gallery id) copies its HTML; override front_html/back_html/size as needed. - From scratch: pass both front_html and back_html. HTML guidance (see spur://postcard-design-guide): full HTML documents, inline <style>, no scripts. Fixed pixel sizing on html, body and a root .postcard at 300 px/in including 0.125" bleed: 6x4 → 1875×1275, 6x9 → 2775×1875, 6x11 → 3375×1875. Keep text 0.25" inside the edge. USPS clear zone on the back, measured from the bleed edges (Spur prints over it and covers anything there): postage 1.25"×1.25" in the top-right corner; address block 3.5"×2", 0.5" from the right edge and 1.35" from the top; USPS barcode strip 4.75"×0.625" along the bottom-right edge. Keep all text, logos, photos and QR codes out of it; a background color or texture under it is fine. The safe message area is left of the address block and above the barcode strip. Images as absolute https URLs. The user's own images (logo, headshot, property photos): spur_list_images gives their URLs; if they want to use an image they have, call spur_upload_image (or spur_save_image for a link) and use the saved URL. Use merge fields such as {{owner_first_name}}, {{property_address}}, {{your_name}}, {{your_phone}}, {{company_name}} (see spur://merge-variables). QR code box by default: unless the user says they don't want a QR code, every back you design includes an empty square <div class="qr-box"> in the message area (≥ 0.75in, e.g. 225×225 px at 300 px/in) with a short call to action beside it ("Scan to see your home's value"). Never write QR markup or {{qrUrl}} yourself: after saving, call spur_add_postcard_qr_code and the tracked QR fills the box (pick the code with spur_list_qr_codes, or ask the user w

輸入參數name必填sizecategoryback_htmlfront_htmldescriptionbase_template_idstart_from_blank

spur_update_postcard_template

Edit postcard template

Edit one of the user's postcard templates and show the updated preview. For text tweaks pass replacements (exact find → replace on a side); to redesign, pass full front_html/back_html. Spur default and gallery templates can't be edited: copy them first with spur_create_postcard_template base_template_id. Example: change the headline -> replacements=[{side:"front", find:"Just Sold!", replace:"Just Listed!"}] HTML guidance (see spur://postcard-design-guide): full HTML documents, inline <style>, no scripts. Fixed pixel sizing on html, body and a root .postcard at 300 px/in including 0.125" bleed: 6x4 → 1875×1275, 6x9 → 2775×1875, 6x11 → 3375×1875. Keep text 0.25" inside the edge. USPS clear zone on the back, measured from the bleed edges (Spur prints over it and covers anything there): postage 1.25"×1.25" in the top-right corner; address block 3.5"×2", 0.5" from the right edge and 1.35" from the top; USPS barcode strip 4.75"×0.625" along the bottom-right edge. Keep all text, logos, photos and QR codes out of it; a background color or texture under it is fine. The safe message area is left of the address block and above the barcode strip. Images as absolute https URLs. The user's own images (logo, headshot, property photos): spur_list_images gives their URLs; if they want to use an image they have, call spur_upload_image (or spur_save_image for a link) and use the saved URL. Use merge fields such as {{owner_first_name}}, {{property_address}}, {{your_name}}, {{your_phone}}, {{company_name}} (see spur://merge-variables). QR code box by default: unless the user says they don't want a QR code, every back you design includes an empty square <div class="qr-box"> in the message area (≥ 0.75in, e.g. 225×225 px at 300 px/in) with a short call to action beside it ("Scan to see your home's value"). Never write QR markup or {{qrUrl}} yourself: after saving, call spur_add_postcard_qr_code and the tracked QR fills the box (pick the code with spur_list_qr_codes, or ask the user wher

輸入參數namesizecategoryback_htmlfront_htmldescriptiontemplate_id必填replacements

spur_add_postcard_qr_code

Add QR code to postcard

Put a tracked QR code on the back of one of the user's postcard templates and show the preview. Each mailed postcard gets its own code under the chosen QR code, so scans are tracked per recipient (spur_get_qr_code_activity). Placement: position="auto" fills the back's QR slot (an element with class qr-box, qr-code-box, qr-placeholder or qr-callout-box, as Spur's gallery designs have) and otherwise goes in the bottom-right of the message area, left of the address block and above the USPS barcode. Corners (top_left, top_right, bottom_left, bottom_right) and x_inches/y_inches place it in the message area; spots in the USPS clear zone are refused. Replaces any QR already on the card. If it lands on the message text, call again with another corner or move the text. Create a QR code first with spur_create_qr_code if spur_list_qr_codes has none that fits.

輸入參數positionx_inchesy_inchesqr_code_id必填size_inchestemplate_id必填

spur_remove_postcard_qr_code

Remove QR code from postcard

Remove the tracked QR code from one of the user's postcard templates (both sides) and show the preview. A QR slot from the design stays, empty.

輸入參數template_id必填

spur_delete_postcard_template

Delete postcard template

Permanently delete one of the user's postcard templates. Spur defaults can't be deleted. Confirm with the user first.

輸入參數confirm必填template_id必填

spur_list_return_addresses

List return addresses

Return addresses saved for direct mail. The default one is used when a campaign doesn't specify one.

無需輸入參數。

spur_preview_postcard_campaign

Preview postcard mailing

Required step before mailing postcards. Renders the postcard with the first recipient's real data, checks which owners have mailing addresses, estimates the cost from the user's plan, and returns a confirmation_token. Show the preview, then ask the user to approve. Only after they approve, call spur_send_postcards with the token (the widget's Send button does the same). The token expires in 30 minutes and only covers this exact template, recipient set, return address and size.

輸入參數sizeowner_ids必填template_id必填return_address_id

spur_send_postcards

Send postcards

Mail the postcards approved in spur_preview_postcard_campaign. Irreversible and charges the user's account. Requires the preview's confirmation_token and the user's explicit approval (confirm=true).

輸入參數confirm必填confirmation_token必填

spur_list_qr_codes

List QR codes

The user's tracked QR codes: destination URL, colors, and which of their postcard templates print each one. Put one on a postcard with spur_add_postcard_qr_code; see scans with spur_get_qr_code_activity.

無需輸入參數。

spur_create_qr_code

Create QR code

Create a tracked QR code that sends scans to destination_url. Then add it to a postcard back with spur_add_postcard_qr_code; each mailed postcard gets its own code under it so scans are tracked per recipient.

輸入參數name必填destination_url必填background_colorforeground_color

spur_update_qr_code

Edit QR code

Rename a QR code, change where scans go, or change its colors. A new destination also applies to postcards already mailed with this code. Templates pick up new colors at send time.

輸入參數nameqr_code_id必填destination_urlbackground_colorforeground_color

spur_delete_qr_code

Delete QR code

Permanently delete a QR code. Refused while one of the user's postcard templates still prints it: remove it from those first with spur_remove_postcard_qr_code. Postcards already mailed keep redirecting. Confirm with the user first.

輸入參數confirm必填qr_code_id必填

spur_get_qr_code_activity

QR code scans

Scan activity for a QR code: totals, which mailed recipients (owners) scanned their postcard, and recent scans of the code itself. Use it to find warm leads from a postcard campaign.

輸入參數limitqr_code_id必填

spur_list_images

List images

The user's saved images (logos, headshots, property photos) with their public URLs, newest first. Use it as <img src="…"> (or a CSS background-image) in postcard, letter or email HTML. To add one, use spur_upload_image (from the user's device) or spur_save_image (from a URL).

輸入參數limit

spur_save_image

Save image from URL

Download an image from a public https URL (the user's website, a shared photo link) and save it to the user's Spur image library, so it stays available for printing and sending. Returns the saved image's URL. JPG, PNG, WebP, GIF or SVG, up to 20 MB. For a file on the user's device, use spur_upload_image instead. Only save images the user provided or asked for.

輸入參數url必填filename

spur_upload_image

Upload image

Show an upload box where the user picks or drops an image from their device (logo, headshot, property photo); it's saved to their Spur image library. Use this whenever the user wants to use their own image, including one they attached to the chat: attachments don't reach Spur, so ask them to drop it into the box. After uploading, the user can click "Use this image", or call spur_list_images to get the URL.

輸入參數purpose

spur_save_uploaded_image

Save uploaded image

Used by the upload widget to save the file the user picked. Not for the assistant.

輸入參數filename必填data_base64必填

spur_delete_image

Delete image

Permanently delete one of the user's saved images. Refused while one of their postcard, letter or email templates still uses it, since those would show a broken image. Confirm with the user first.

輸入參數confirm必填image_id必填

spur_list_letter_templates

List letter templates

Letter templates available to the user, with their letter type (Top First Page or Insert Blank Page): their own (editable), Spur defaults, and Spur's built-in gallery. Copy one with spur_create_letter_template base_template_id to redesign it, or start from blank with start_from_blank.

輸入參數categoryletter_typeinclude_gallery

spur_get_letter_template

Get letter template HTML

Fetch a letter template's HTML for reading or editing. For small text changes prefer spur_update_letter_template with replacements instead of resending the whole HTML.

輸入參數template_id必填

spur_preview_letter_template

Preview letter template

Show any letter template (yours, a Spur default or a gallery design) rendered with sample data, without changing anything.

輸入參數template_id必填

spur_create_letter_template

Create letter template

Create a letter template and show a preview. Pick the letter type first (top_first_page or insert_blank_page); it decides where the address prints and how much of the page the design can use. Three ways to start: - From blank: start_from_blank=true gives an empty one-page letter laid out for the letter type. - Redesign an existing template: base_template_id (yours, a Spur default or a gallery id) copies its HTML and letter type; override html or letter_type as needed. - From scratch: pass html. HTML guidance (see spur://letter-design-guide): one US Letter page (8.5"×11"), full HTML document with inline <style>, "@page { size: 8.5in 11in; margin: 0; }", no scripts. One root <div class="letter"> 8.5in wide; px/in units only (no vh/vw); no box-shadow, transforms or manual page breaks. top_first_page: leave the first 3.15in blank (an empty <div class="address-zone" style="height:3.15in">), body ≈ 3–4 short paragraphs. insert_blank_page: no address zone; letterhead up to 1.8in, body up to ~400 words. Images as absolute https URLs. The user's own images (logo, headshot, property photos): spur_list_images gives their URLs; if they want to use an image they have, call spur_upload_image (or spur_save_image for a link) and use the saved URL. Use merge fields such as {{owner_first_name}}, {{property_address}}, {{your_name}}, {{your_phone}}, {{company_name}} (see spur://merge-variables).

輸入參數htmlname必填categorydescriptionletter_typebase_template_idstart_from_blank

spur_update_letter_template

Edit letter template

Edit one of the user's letter templates and show the updated preview. For text tweaks pass replacements (exact find → replace); to redesign, pass full html. letter_type switches between top_first_page and insert_blank_page. Spur default and gallery templates can't be edited: copy them first with spur_create_letter_template base_template_id. HTML guidance (see spur://letter-design-guide): one US Letter page (8.5"×11"), full HTML document with inline <style>, "@page { size: 8.5in 11in; margin: 0; }", no scripts. One root <div class="letter"> 8.5in wide; px/in units only (no vh/vw); no box-shadow, transforms or manual page breaks. top_first_page: leave the first 3.15in blank (an empty <div class="address-zone" style="height:3.15in">), body ≈ 3–4 short paragraphs. insert_blank_page: no address zone; letterhead up to 1.8in, body up to ~400 words. Images as absolute https URLs. The user's own images (logo, headshot, property photos): spur_list_images gives their URLs; if they want to use an image they have, call spur_upload_image (or spur_save_image for a link) and use the saved URL. Use merge fields such as {{owner_first_name}}, {{property_address}}, {{your_name}}, {{your_phone}}, {{company_name}} (see spur://merge-variables).

輸入參數htmlnamecategorydescriptionletter_typetemplate_id必填replacements

spur_delete_letter_template

Delete letter template

Permanently delete one of the user's letter templates. Spur defaults can't be deleted. Confirm with the user first.

輸入參數confirm必填template_id必填

spur_preview_letter_campaign

Preview letter mailing

Required step before mailing letters. Renders the letter with the first recipient's real data in its letter type's layout, checks which owners have mailing addresses, estimates the cost from the user's plan (Insert Blank Page letters include the extra address page), and returns a confirmation_token. Show the preview, then ask the user to approve. Only after they approve, call spur_send_letters with the token (the widget's Send button does the same). The token expires in 30 minutes and only covers this exact template, letter type, print options, recipient set and return address.

輸入參數colorowner_ids必填template_id必填double_sidedreturn_address_id

spur_send_letters

Send letters

Mail the letters approved in spur_preview_letter_campaign. Irreversible and charges the user's account. Requires the preview's confirmation_token and the user's explicit approval (confirm=true).

輸入參數confirm必填confirmation_token必填

spur_get_billing_summary

Billing summary

Plan, wallet balance, and this period's usage and remaining allowance per feature (searches, enrichment, SMS, postcards, letters, AI). Check this before large sends.

無需輸入參數。

spur_list_campaigns

List campaigns

The user's campaigns (bulk email, SMS, direct mail, outreach) with status and recipient progress.

輸入參數limitoffsetstatus

spur_get_campaign_stats

Campaign stats

Delivery and run statistics for one campaign.

輸入參數campaign_id必填

spur_get_direct_mail_analytics

Direct mail analytics

Letters and postcards sent, delivered, in transit and returned, plus USPS tracking totals and spend.

無需輸入參數。

spur_show_billing_options

Top up or upgrade

Shows the user's wallet balance, one-click top-up amounts, auto-recharge status and every Spur plan with prices, in a widget with Pay/Upgrade buttons. Use whenever the user wants to add funds, buy credits, upgrade, change or compare plans, or a send failed for billing reasons.

無需輸入參數。

spur_top_up_wallet

Top up wallet

Creates a Stripe checkout link to add funds to the user's Spur wallet (pays for postcards, letters, SMS, enrichment and other usage beyond the plan). No money moves until the user pays on Stripe, so no confirmation is needed. If the user didn't name an amount, suggest $25, $50 or $100, or enough to cover the send they're planning.

輸入參數amount_usd必填

spur_change_plan

Upgrade or change plan

Moves the user to another Spur plan (ids from spur_show_billing_options; usually agent, team or brokerage). - No paid subscription yet: returns a Stripe checkout link. No confirmation needed. - Already subscribed: switches the plan immediately and charges or credits the prorated difference to the saved card. Call once without confirm to get the exact change, ask the user to approve it, then call again with confirm=true. - Moving to the free Solo plan returns a billing-portal link where the user cancels the paid subscription.

輸入參數confirmplan_id必填billing_interval

spur_check_payment

Check payment

After the user pays a Stripe checkout link from spur_top_up_wallet or spur_change_plan, confirms the payment went through and returns the new wallet balance and plan. Safe to call repeatedly.

輸入參數session_id必填

spur_manage_billing

Billing portal

Link to the user's Stripe billing portal: update the card on file, download invoices, change or cancel the subscription.

無需輸入參數。

spur_set_auto_recharge

Auto-recharge

Turns wallet auto-recharge on or off. When on, Spur charges the saved card amount_usd whenever the balance drops below threshold_usd, so sends never fail for lack of funds. Needs a saved card (the first spur_top_up_wallet payment saves one). Turning it on needs the user's approval of the amount and threshold (confirm=true); turning it off doesn't.

輸入參數confirmenabled必填amount_usdthreshold_usd

spur_list_search_automations

List search automations

Scheduled property searches with their schedule, filters, and next/last run times.

無需輸入參數。

spur_create_search_automation

Create search automation

Schedule a recurring property search. Every run uses 1 search credit, or 2 when it makes more than 3 ZHomes calls (several event types, tax/sale-history events, furnished-only or description-based filters). New matches can be saved to a list and enriched automatically (auto_enrich spends skip-trace credits on every run, so confirm with the user). Examples: - "every Monday 8am Central, Dallas rentals under $2k" -> frequency="weekly", day_of_week=1, run_time="08:00", timezone="America/Chicago", location="Dallas, TX", max_amount=2000 - "last Friday of each month" -> frequency="monthly", day_of_week=5, week_of_month=-1 - "every morning, new pre-foreclosures and price drops in Houston, save to my Distress list" -> frequency="daily", run_time="07:00", location="Houston, TX", events=["preforeclosure","price_drop"], list_id=… Accepts the same advanced and event filters as spur_search_properties (min_amount / max_amount instead of min_price / max_price). Run the search once with spur_search_properties first so the user can check the results before scheduling. In automations each event fires once, on the run that first sees it, so the same property isn't saved twice; change events start reporting from the second run. "delisted" is only available here. Events (pass in `events`; a listing matches when ANY selected event fired, and is tagged with each): - Listing lifecycle: new_listing, coming_soon, coming_soon_active, price_drop, price_increase, pending, sold, back_on_market, delisted (automations only), open_house, rental_listed, rent_change, move_in_moved_up - Distress & motivation: preforeclosure, foreclosure, auction, bank_owned, distress_escalated, fsbo, agent_to_fsbo, stale_listing, new_construction - Valuation & tax: tax_assessment_posted, assessed_value_jump, tax_paid_dropped (weak), sale_recorded, zestimate_moved, equity_gap, price_below_assessed Direct events (price_drop, pending, sold, preforeclosure, fsbo, new_listing, …) work on the first search. Change e

輸入參數name必填eventsenabledlist_idmax_agemax_zipmin_agemin_zipai_queryhas_poolhas_viewkeywords另有 45 個

spur_run_search_automation

Run search automation now

Run a search automation immediately instead of waiting for its schedule. Uses 1 search credit (2 if the run makes more than 3 ZHomes calls), and enrichment credits if auto_enrich is on.

輸入參數automation_id必填

spur_get_automation_logs

Automation run history

Recent runs of a search automation: when, how many found/saved/enriched, and errors.

輸入參數limitautomation_id必填

fetch

Fetch Spur record

Fetch the full text of a record returned by search (ids look like property:…, owner:… or template:…).

輸入參數id必填

版本歷史

1
  1. v1.0.0最新Oct 25, 2026

評分

已滿足適用檢查項的 83%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。