{"name":"com.fieldrobin/fieldrobin","slug":"fieldrobin","title":"FieldRobin","description":"Authenticated FieldRobin workspace tools, including scope-authorized customer and job creation.","url":"https://mcp.market/server/fieldrobin","rating":null,"grade":"C","score":57,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":5,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":3,"ok":3,"last_checked_at":"2026-09-20T03:05:52.547Z","last_ok_at":"2026-09-20T03:05:52.547Z","latency_ms":322},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":null,"version":"1.2.1","remotes":[{"type":"streamable-http","url":"https://fieldrobin.com/api/v1/mcp"}],"packages":[],"tools":[{"name":"complaint-recall-risk","description":"Lists complaint and recall risk records for the authenticated workspace without exposing private operational notes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Job title, customer name, or technician name.","maxLength":255,"type":["string","null"]},"status":{"description":"Risk state; defaults to open.","enum":["open","resolved","all"],"type":["string","null"]},"limit":{"description":"Maximum records to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"create-customer","description":"Creates one customer directly in the selected FieldRobin business when the connection has customer-write permission. Search first to avoid creating a duplicate; reuse the idempotency key only when retrying the same request.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"description":"Customer full name.","minLength":1,"maxLength":255,"type":"string"},"phone":{"description":"Customer phone number, if known.","maxLength":30,"type":["string","null"]},"email":{"description":"Customer email address, if known.","maxLength":255,"format":"email","type":["string","null"]},"address":{"description":"Customer address, if known.","maxLength":500,"type":["string","null"]},"business_name":{"description":"Customer business name, if known.","maxLength":255,"type":["string","null"]},"trade_type":{"description":"Customer trade or service type.","maxLength":100,"type":["string","null"]},"lifecycle_tag":{"description":"Lifecycle tag.","enum":["active","inactive","vip"],"type":["string","null"]},"acquisition_source":{"description":"How the customer was acquired.","maxLength":100,"type":["string","null"]},"notes":{"description":"Internal customer notes.","type":["string","null"]},"location_id":{"description":"Business location for the customer.","minimum":1,"type":["integer","null"]},"idempotency_key":{"description":"Opaque retry key. Reuse it only for the same request to receive the verified result without creating a duplicate.","minLength":1,"maxLength":128,"type":"string"}},"required":["name","idempotency_key"]}},{"name":"create-job","description":"Creates one job directly in the selected FieldRobin business when the connection has job-write permission. Resolve the customer first and pass the verified customer ID when one is named.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"customer_id":{"description":"Verified customer ID, if the job belongs to an existing customer.","minimum":1,"type":["integer","null"]},"title":{"description":"Short job title.","minLength":1,"maxLength":255,"type":"string"},"description":{"description":"Readable issue and service description.","type":["string","null"]},"service_address":{"description":"Service address, if known.","maxLength":2000,"type":["string","null"]},"total_amount":{"description":"Optional quoted amount.","minimum":0,"type":["number","null"]},"status":{"description":"Initial job status.","enum":["lead","pending","quoted","approved","scheduled"],"type":["string","null"]},"technician_user_id":{"description":"Verified technician user ID, if assigned.","minimum":1,"type":["integer","null"]},"scheduled_at":{"description":"Optional local wall-clock appointment date/time or ISO timestamp with offset.","type":["string","null"]},"appointment_count":{"description":"Optional appointment count.","minimum":1,"maximum":99,"type":["integer","null"]},"voice_notes":{"description":"Optional internal voice-note text.","type":["string","null"]},"location_id":{"description":"Business location for the job.","minimum":1,"type":["integer","null"]},"idempotency_key":{"description":"Opaque retry key. Reuse it only for the same request to receive the verified result without creating a duplicate.","minLength":1,"maxLength":128,"type":"string"}},"required":["title","idempotency_key"]}},{"name":"customer-service-requests","description":"Lists recent active service requests associated with one authorized customer using bounded status, source, urgency, and scheduling fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"customer_id":{"description":"Customer ID returned by search-customers.","minimum":1,"type":"integer"},"limit":{"description":"Maximum number of service requests to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"draft-review-reply","description":"Drafts a policy-aware reply for one authorized review without posting or changing the review.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"review_id":{"description":"Review ID returned by search-reviews.","minimum":1,"type":"integer"},"tone":{"description":"Draft tone.","enum":["professional","warm","concise"],"type":["string","null"]}}}},{"name":"get-customer","description":"Returns one authorized customer using bounded contact and lifecycle fields; addresses and notes are excluded.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"customer_id":{"description":"Customer ID returned by search-customers.","minimum":1,"type":"integer"}}}},{"name":"get-invoice","description":"Returns one authorized invoice with bounded customer, job, payment-state, due-date, and line-item fields; payment links, addresses, and internal notes are excluded.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"invoice_id":{"description":"Invoice ID returned by search-invoices.","minimum":1,"type":"integer"}}}},{"name":"get-invoice-payment-status","description":"Returns the authoritative payment state for one authorized invoice without exposing payment links or provider identifiers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"invoice_id":{"description":"Invoice ID returned by search-invoices.","minimum":1,"type":"integer"}}}},{"name":"get-job","description":"Returns one authorized job using bounded customer, schedule, status, and technician fields; service addresses, notes, and amounts are excluded.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"description":"Job ID returned by search-jobs or jobs-today.","minimum":1,"type":"integer"}}}},{"name":"get-lead","description":"Returns one authorized lead using bounded contact, source, status, and service-interest fields; notes, budget, and internal summaries are excluded.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"lead_id":{"description":"Lead ID returned by search-leads.","minimum":1,"type":"integer"}}}},{"name":"get-location","description":"Returns one location and its public Google listing status. A confirmed place is not a Google Business Profile connection.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"location_id":{"description":"Location ID.","minimum":1,"type":"integer"}}}},{"name":"get-quote","description":"Returns one authorized estimate with bounded customer, status, pricing, revision, and line-item fields; addresses, notes, and terms are excluded.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"quote_id":{"description":"Estimate ID returned by search-quotes.","minimum":1,"type":"integer"}}}},{"name":"get-referral-campaign-attribution","description":"Shows verified referral campaign totals and conversion activity without returning referral tokens or bearer-like links.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"campaign_id":{"description":"Referral campaign ID returned by search-referral-campaigns.","minimum":1,"type":"integer"},"days":{"description":"Lookback window in days.","default":30,"minimum":1,"maximum":180,"type":["integer","null"]}}}},{"name":"get-service-request","description":"Returns one authorized service-request inbox record using bounded status, source, urgency, and scheduling fields without exposing request descriptions, addresses, contact channels, metadata, files, or outreach controls.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"service_request_id":{"description":"Service-request ID returned by search-service-requests.","minimum":1,"type":"integer"}}}},{"name":"get-workspace-summary","description":"Returns a limited, read-only summary of the authenticated FieldRobin workspace.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"jobs-today","description":"Lists authorized jobs scheduled for a business day, with bounded customer, schedule, status, and technician fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"description":"Local business date, YYYY-MM-DD; defaults to today.","format":"date","type":["string","null"]},"technician_id":{"description":"Optional technician ID.","minimum":1,"type":["integer","null"]},"status":{"description":"Optional job status filter.","maxLength":40,"type":["string","null"]},"limit":{"description":"Maximum number of jobs to return.","default":25,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"list-job-photos","description":"Lists authorized private photos attached to one job with protected download URLs, filenames, captions, and media types.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"description":"Job ID returned by search-jobs.","minimum":1,"type":"integer"}}}},{"name":"operations-parts","description":"Reads bounded parts stock, technician exposure, and transaction metadata for the authenticated workspace without exposing amounts, item pricing, or private notes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"technician_id":{"description":"Optional same-business technician ID.","minimum":1,"type":["integer","null"]},"limit":{"description":"Maximum inventory, transactions, and technician balances to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"operations-scorecards","description":"Reads bounded technician performance and coaching signals for the authenticated workspace without exposing coaching notes or private contact fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"technician_id":{"description":"Optional same-business technician ID.","minimum":1,"type":["integer","null"]},"limit":{"description":"Maximum jobs sampled per technician.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"pipeline-next-actions","description":"Lists persisted pipeline attention items for the authenticated business without changing, dismissing, or executing them.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action_state":{"description":"Pipeline state; defaults to open.","enum":["open","in_progress","snoozed","blocked","dismissed","done"],"type":["string","null"]},"priority":{"description":"Optional priority filter.","enum":["urgent","high","normal","low"],"type":["string","null"]},"action_type":{"description":"Optional exact action type.","maxLength":80,"type":["string","null"]},"due_before":{"description":"Only actions due on or before this local date.","format":"date","type":["string","null"]},"limit":{"description":"Maximum number of actions to return.","default":10,"minimum":1,"maximum":20,"type":["integer","null"]}}}},{"name":"pipeline-recommendations","description":"Lists persisted pipeline recommendations for the authenticated business without generating, editing, approving, rejecting, or executing them.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"recommendation_id":{"description":"Optional exact recommendation ID.","minimum":1,"type":["integer","null"]},"status":{"description":"Recommendation state; defaults to pending.","enum":["pending","approved","rejected","expired"],"type":["string","null"]},"action_type":{"description":"Optional exact pipeline recommendation action type.","maxLength":80,"type":["string","null"]},"limit":{"description":"Maximum recommendations to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]},"include_draft_history":{"description":"When true, recommendation_id is required and bounded draft edit history is returned.","default":false,"type":["boolean","null"]}}}},{"name":"preview-broadcast-campaign","description":"Previews one approved broadcast audience, including suppression and policy skips, without sending or changing records.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"campaign_id":{"description":"Broadcast campaign ID returned by search-broadcast-campaigns.","minimum":1,"type":"integer"},"limit":{"description":"Maximum audience items to evaluate.","default":25,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"preview-invoice","description":"Calculates a deterministic invoice preview without saving, charging, sending, or creating an invoice.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"customer_id":{"description":"Resolved customer ID; required for an invoice preview.","minimum":1,"type":"integer"},"items":{"description":"Invoice line items.","minItems":1,"maxItems":50,"items":{"properties":{"description":{"maxLength":500,"type":"string"},"quantity":{"minimum":0,"type":"number"},"unit_price":{"minimum":0,"type":"number"},"item_type":{"enum":["material","labour","service","equipment","fee"],"type":["string","null"]},"discount_type":{"enum":["none","percentage","fixed"],"type":["string","null"]},"discount_value":{"minimum":0,"type":["number","null"]},"tax_behavior":{"enum":["inherit","taxable","non_taxable","automatic"],"type":["string","null"]}},"type":"object"},"type":"array"},"document_discount_type":{"enum":["none","percentage","fixed"],"type":["string","null"]},"document_discount_value":{"minimum":0,"type":["number","null"]},"coupon_code":{"maxLength":100,"type":["string","null"]},"tax_mode":{"enum":["none","manual"],"type":["string","null"]},"tax_rate_id":{"minimum":1,"type":["integer","null"]}}}},{"name":"preview-quote","description":"Calculates a deterministic estimate preview without saving, sending, or creating a quote.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"customer_id":{"description":"Optional resolved customer ID.","minimum":1,"type":["integer","null"]},"items":{"description":"Estimate line item.","minItems":1,"maxItems":50,"items":{"properties":{"description":{"maxLength":500,"type":"string"},"quantity":{"minimum":0,"type":"number"},"unit_price":{"minimum":0,"type":"number"},"item_type":{"enum":["material","labour","service","equipment","fee"],"type":["string","null"]},"discount_type":{"enum":["none","percentage","fixed"],"type":["string","null"]},"discount_value":{"minimum":0,"type":["number","null"]},"tax_behavior":{"enum":["inherit","taxable","non_taxable","automatic"],"type":["string","null"]}},"type":"object"},"type":"array"},"document_discount_type":{"enum":["none","percentage","fixed"],"type":["string","null"]},"document_discount_value":{"minimum":0,"type":["number","null"]},"coupon_code":{"maxLength":100,"type":["string","null"]},"tax_mode":{"enum":["none","manual"],"type":["string","null"]},"tax_rate_id":{"minimum":1,"type":["integer","null"]}}}},{"name":"preview-reactivation-campaign","description":"Previews dormant customers eligible for one authorized reactivation campaign without sending or changing records.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"campaign_id":{"description":"Reactivation campaign ID returned by search-reactivation-campaigns.","minimum":1,"type":"integer"},"limit":{"description":"Maximum audience items to evaluate.","default":25,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"preview-referral-campaign","description":"Previews eligible completed jobs for one authorized referral campaign without sending or changing records.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"campaign_id":{"description":"Referral campaign ID returned by search-referral-campaigns.","minimum":1,"type":"integer"},"limit":{"description":"Maximum audience items to evaluate.","default":25,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"preview-review-requests","description":"Previews explicit completed jobs for review requests, including eligibility and skip reasons, without sending anything.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_ids":{"description":"Explicit job IDs to evaluate.","minItems":1,"maxItems":50,"items":{"minimum":1,"type":"integer"},"type":"array"},"channel":{"description":"Optional review-request channel preference.","enum":["sms","email"],"type":["string","null"]}}}},{"name":"preview-social-draft","description":"Validates social post copy for an authorized source review without saving or publishing it.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"content":{"description":"Proposed social post content.","minLength":3,"maxLength":1200,"type":"string"},"platform":{"description":"Social platform.","enum":["facebook","instagram","google_business"],"type":["string","null"]},"review_id":{"description":"Optional authorized source review ID.","minimum":1,"type":["integer","null"]}}}},{"name":"reports-by-location","description":"Compares revenue, activation, retention, and review-request outcomes by physical location. Does not expose customer names, invoice rows, or mutation access. Location writes stay on the in-product assistant, not MCP.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"period":{"description":"Number of days for location comparison metrics; defaults to 30.","default":30,"enum":[7,30,90,365],"type":["integer","null"]}}}},{"name":"reports-customer-revenue-rank","description":"Ranks named customers by paid invoice revenue for the authenticated workspace. Uses all paid, non-sample invoices and returns aggregate customer totals without invoice rows.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"period":{"description":"Ranking window. Use all_time for to-date questions.","default":"all_time","enum":["all_time","7","30","90","365","custom"],"type":["string","null"]},"from":{"description":"Inclusive start date when period is custom.","type":["string","null"]},"to":{"description":"Inclusive end date when period is custom.","type":["string","null"]},"limit":{"description":"Maximum number of ranked customers to return.","default":20,"minimum":1,"maximum":100,"type":["integer","null"]}}}},{"name":"reports-overview","description":"Reads aggregate revenue, receivables, job, lead, and estimate performance for the authenticated workspace without exposing customer names, addresses, invoice rows, or mutation access.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"period":{"description":"Number of days for the bounded trend metrics; defaults to 30.","default":30,"enum":[7,30,90,365],"type":["integer","null"]}}}},{"name":"routing-driving-risk","description":"Reads a local business day route and high driving-risk stops for the authenticated workspace without exposing addresses or private route notes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"description":"Local business date, YYYY-MM-DD; defaults to today.","format":"date","type":["string","null"]},"technician_id":{"description":"Optional technician filter.","minimum":1,"type":["integer","null"]},"limit":{"description":"Maximum route stops to return.","default":50,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"schedule-availability","description":"Calculates verified busy jobs and open planning windows for a local business day without scheduling or changing a job.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"description":"Local business date, YYYY-MM-DD; defaults to today.","format":"date","type":["string","null"]},"technician_id":{"description":"Optional same-business technician ID.","minimum":1,"type":["integer","null"]},"duration_minutes":{"description":"Requested appointment length.","default":60,"minimum":15,"maximum":480,"type":["integer","null"]},"job_duration_minutes":{"description":"Planning duration for existing jobs.","default":60,"minimum":15,"maximum":480,"type":["integer","null"]},"workday_start":{"description":"Planning window start hour.","default":10,"minimum":0,"maximum":23,"type":["integer","null"]},"workday_end":{"description":"Planning window end hour.","default":20,"minimum":1,"maximum":24,"type":["integer","null"]}}}},{"name":"search-broadcast-campaigns","description":"Searches authorized broadcast campaigns by name, status, message channel, and bounded delivery fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Campaign name, message, or channel.","maxLength":255,"type":["string","null"]},"status":{"description":"Campaign status.","enum":["draft","pending_approval","approved","rejected","sent","archived"],"type":["string","null"]},"limit":{"description":"Maximum number of campaigns to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-customers","description":"Searches the authenticated workspace customers without exposing addresses, notes, or other private fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Name, email, phone, or business name to search for.","maxLength":80,"type":["string","null"]},"limit":{"description":"Maximum number of customers to return.","default":10,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-inventory","description":"Searches active inventory in the authenticated workspace and can identify low-stock items without exposing internal cost or margin fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Inventory name, SKU, or description.","maxLength":255,"type":["string","null"]},"low_stock":{"description":"Only items at or below minimum quantity.","type":["boolean","null"]},"active":{"description":"Filter by active state; defaults to true.","type":["boolean","null"]},"limit":{"description":"Maximum items to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-invoices","description":"Searches authorized invoices using bounded customer, job, status, payment, due-date, and total fields; payment links and addresses are excluded.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Invoice number, customer name, email, phone, job title, or description.","maxLength":80,"type":["string","null"]},"status":{"description":"Invoice lifecycle status.","enum":["draft","sent","overdue","paid","cancelled"],"type":["string","null"]},"payment_status":{"description":"Authoritative payment state, such as unpaid, pending, paid, or refunded.","maxLength":40,"type":["string","null"]},"customer_id":{"description":"Restrict results to one customer ID.","minimum":1,"type":["integer","null"]},"job_id":{"description":"Restrict results to one job ID.","minimum":1,"type":["integer","null"]},"limit":{"description":"Maximum number of invoices to return.","default":10,"minimum":1,"maximum":20,"type":["integer","null"]}}}},{"name":"search-jobs","description":"Searches the authenticated workspace jobs using safe summary fields only; it does not return service addresses, notes, or amounts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Customer name, email, phone, or job title.","maxLength":80,"type":["string","null"]},"customer_id":{"description":"Restrict results to one customer ID.","minimum":1,"type":["integer","null"]},"scheduled_from":{"description":"Inclusive scheduled date, YYYY-MM-DD.","format":"date","type":["string","null"]},"scheduled_to":{"description":"Inclusive scheduled date, YYYY-MM-DD.","format":"date","type":["string","null"]},"status":{"description":"Optional job status filter.","maxLength":40,"type":["string","null"]},"location_id":{"description":"Restrict results to one business location ID.","minimum":1,"type":["integer","null"]},"limit":{"description":"Maximum number of jobs to return.","default":10,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-leads","description":"Searches authorized workspace leads with bounded contact, source, status, and service-interest fields; notes and estimated values are excluded.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Name, email, phone, source, or service interest.","maxLength":80,"type":["string","null"]},"status":{"description":"Optional lead status.","maxLength":40,"type":["string","null"]},"urgency":{"description":"Optional urgency: low, medium, or high.","maxLength":20,"type":["string","null"]},"source":{"description":"Optional exact lead source.","maxLength":100,"type":["string","null"]},"customer_id":{"description":"Restrict results to a customer ID.","minimum":1,"type":["integer","null"]},"limit":{"description":"Maximum number of leads to return.","default":10,"minimum":1,"maximum":20,"type":["integer","null"]}}}},{"name":"search-locations","description":"Lists physical locations in the authenticated workspace.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Location name to search for.","maxLength":80,"type":["string","null"]},"status":{"description":"active, archived, or all.","type":["string","null"]},"limit":{"default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-pricebook","description":"Searches active customer-facing services and materials in the authenticated workspace without exposing internal cost or markup fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Pricebook item name or description.","maxLength":255,"type":["string","null"]},"type":{"description":"Service or material.","enum":["service","material"],"type":["string","null"]},"active":{"description":"Filter by active state; defaults to true.","type":["boolean","null"]},"limit":{"description":"Maximum items to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-quotes","description":"Searches authorized estimates using bounded customer, status, title, and total fields; notes, terms, and addresses are excluded.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Estimate title, customer name, email, or phone.","maxLength":80,"type":["string","null"]},"status":{"description":"Optional estimate status.","enum":["draft","sent","changes_requested","approved","rejected","expired","converted"],"type":["string","null"]},"customer_id":{"description":"Restrict results to one customer ID.","minimum":1,"type":["integer","null"]},"limit":{"description":"Maximum number of estimates to return.","default":10,"minimum":1,"maximum":20,"type":["integer","null"]}}}},{"name":"search-reactivation-campaigns","description":"Searches authorized reactivation campaigns by name, status, channel, and job-type filter.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Campaign name, message, channel, or job type.","maxLength":255,"type":["string","null"]},"status":{"description":"Campaign status.","enum":["active","paused","archived"],"type":["string","null"]},"limit":{"description":"Maximum number of campaigns to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-referral-campaigns","description":"Searches authorized referral campaigns by name, status, message channel, and bounded performance fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Campaign name, message, or channel.","maxLength":255,"type":["string","null"]},"status":{"description":"Campaign status.","enum":["active","paused","archived"],"type":["string","null"]},"limit":{"description":"Maximum number of campaigns to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-reviews","description":"Searches authorized reviews by reviewer, customer, job, rating, platform, or reply status using bounded fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Reviewer, customer, job title, review body, or platform.","maxLength":255,"type":["string","null"]},"platform":{"description":"Review platform.","enum":["google","facebook","yelp","industry","bbb","angi","thumbtack","custom"],"type":["string","null"]},"rating_min":{"description":"Minimum rating.","minimum":1,"maximum":5,"type":["integer","null"]},"rating_max":{"description":"Maximum rating.","minimum":1,"maximum":5,"type":["integer","null"]},"has_reply":{"description":"Filter by whether an owner reply exists.","type":["boolean","null"]},"reply_status":{"description":"Reply delivery state.","enum":["none","pending","sent","failed"],"type":["string","null"]},"limit":{"description":"Maximum number of reviews to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-service-requests","description":"Finds bounded active service-request inbox records for the authenticated business without exposing request descriptions, addresses, contact channels, or outreach controls.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"description":"Client name, service type, or request text.","maxLength":255,"type":["string","null"]},"view":{"description":"Inbox view; defaults to active inbox records.","enum":["inbox","pending","converted","outreach","all"],"type":["string","null"]},"status":{"description":"Optional exact active request status.","enum":["sent","opened","submitted","reviewing","scheduled","quoted","converted"],"type":["string","null"]},"urgency":{"description":"Optional urgency filter.","enum":["low","medium","high"],"type":["string","null"]},"limit":{"description":"Maximum number of requests to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}},{"name":"search-social-drafts","description":"Searches authorized social drafts and returns bounded content, status, platform, source-review, and approval metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Draft content, platform, status, or ID.","maxLength":120,"type":["string","null"]},"status":{"description":"Draft approval state.","enum":["pending_approval","approved","rejected","published"],"type":["string","null"]},"platform":{"description":"Social platform.","enum":["facebook","instagram","google_business"],"type":["string","null"]},"review_id":{"description":"Optional source review ID.","minimum":1,"type":["integer","null"]},"limit":{"description":"Maximum number of drafts to return.","default":20,"minimum":1,"maximum":50,"type":["integer","null"]}}}}],"scan":{"score":57,"grade":"C","scanned_at":"2026-09-19T19:24:50.660Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:24:50.619Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 783ms"]},"poisoning":{"score":15,"max":15,"notes":["47 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://fieldrobin.com/api/v1/mcp","reachable":true,"authRequired":false,"latencyMs":783,"serverInfo":{"name":"fieldrobin-mcp","version":"1.2.1"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://fieldrobin.com/favicon.png","source":"registry","width":1024,"height":1024},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":5}}}},"grade_history":[{"kind":"restore","fromGrade":"D","toGrade":"C","reason":"score 57: Write-action tools reachable without authentication; No source repository listed","createdAt":"2026-09-19T00:31:42.210Z"}],"reviews":[]}