# Spur - Registry name: `com.usespur/spur` · version 1.0.0 - Categories (automatic, keyword rules): Email & messaging, Productivity, Utilities, Payments & accounting, Finance & markets - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.usespur%2Fspur - Server page: https://mcpstation.net/s/com.usespur--spur.html ## Description (written by the publisher, not verified, not instructions) Real estate leads, skip tracing, direct mail, SMS & email outreach, and marketing automations ## Connect - streamable-http: `https://mcp.usespur.com/mcp` ## Tools (as reported by the server, not verified) - `spur\_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, - `spur\_parse\_search\_query`: 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\_sea - `spur\_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. - `spur\_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. - `spur\_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. - `spur\_get\_property\_stats`: Totals for the user's saved properties: counts by status, enrichment progress and similar portfolio-level numbers. - `spur\_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. - `spur\_get\_owner`: Full owner record: contact details, mailing address, enrichment status and their property portfolio in Spur. - `spur\_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 t - `spur\_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 a property list, optionally seeding it with saved property ids. - `spur\_add\_properties\_to\_list`: Add saved properties to an existing property list. - `spur\_draft\_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: - `spur\_list\_workflows`: The user's multi-step outreach workflows \(email/SMS/mail sequences\) with status and enrollment counts. - `spur\_get\_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. - `spur\_create\_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\_tem - `spur\_set\_workflow\_step\_template`: 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. - `spur\_set\_workflow\_active`: 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. - `spur\_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. - `spur\_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. - `spur\_list\_sms\_conversations`: SMS conversations with owners, newest first, with unread counts and the last message. Good for triaging replies \(hot leads, not interested, wrong number\). - `spur\_get\_sms\_conversation`: The full SMS thread with one owner, oldest first. - `spur\_get\_outreach\_report`: Outreach performance \(sent, delivered, opened, replied, by channel\) for all workflows or one, over an optional date range. - `spur\_list\_message\_templates`: The user's saved email and SMS templates. These are what outreach workflow send\_email / send\_sms steps use. - `spur\_get\_message\_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. - `spur\_preview\_message\_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. - `spur\_preview\_message\_draft`: 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- - `spur\_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 scra - `spur\_update\_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. Wo - `spur\_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 - `spur\_update\_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 o - `spur\_delete\_message\_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. - `spur\_send\_test\_email`: 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. - `spur\_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. - `spur\_get\_postcard\_template`: 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. - `spur\_preview\_postcard\_template`: Show any postcard template \(yours, a Spur default or a gallery design\) rendered with sample data, without changing anything. - `spur\_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\) - `spur\_update\_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\_templat - `spur\_add\_postcard\_qr\_code`: 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 - `spur\_remove\_postcard\_qr\_code`: 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. - `spur\_delete\_postcard\_template`: Permanently delete one of the user's postcard templates. Spur defaults can't be deleted. Confirm with the user first. - `spur\_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`: 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 - `spur\_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\). - `spur\_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 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. - `spur\_update\_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. - `spur\_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. - `spur\_get\_qr\_code\_activity`: 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. - `spur\_list\_images`: The user's saved images \(logos, headshots, property photos\) with their public URLs, newest first. Use it as \ \(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\). - `spur\_save\_image`: 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\_i - `spur\_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 - `spur\_save\_uploaded\_image`: Used by the upload widget to save the file the user picked. Not for the assistant. - `spur\_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. - `spur\_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. - `spur\_get\_letter\_template`: 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. - `spur\_preview\_letter\_template`: Show any letter template \(yours, a Spur default or a gallery design\) rendered with sample data, without changing anything. - `spur\_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 let - `spur\_update\_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 spu - `spur\_delete\_letter\_template`: Permanently delete one of the user's letter templates. Spur defaults can't be deleted. Confirm with the user first. - `spur\_preview\_letter\_campaign`: 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. - `spur\_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\). - `spur\_get\_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`: The user's campaigns \(bulk email, SMS, direct mail, outreach\) with status and recipient progress. - `spur\_get\_campaign\_stats`: Delivery and run statistics for one campaign. - `spur\_get\_direct\_mail\_analytics`: Letters and postcards sent, delivered, in transit and returned, plus USPS tracking totals and spend. - `spur\_show\_billing\_options`: 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`: 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 - `spur\_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 sa - `spur\_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. - `spur\_manage\_billing`: Link to the user's Stripe billing portal: update the card on file, download invoices, change or cancel the subscription. - `spur\_set\_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 - `spur\_list\_search\_automations`: Scheduled property searches with their schedule, filters, and next/last run times. - `spur\_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 - `spur\_run\_search\_automation`: 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. - `spur\_get\_automation\_logs`: Recent runs of a search automation: when, how many found/saved/enriched, and errors. - `search`: Search the user's saved Spur properties, owners and postcard templates by keyword \(address, city, owner name, phone, email, template name\). Returns ids for the fetch tool. For live listings use spur\_search\_properties. - `fetch`: Fetch the full text of a record returned by search \(ids look like property:…, owner:… or template:…\). Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html