SMB Sandbox
Mock small-business CRM, inbox, calendar, invoicing and phone tools for testing AI agents safely.
Connector by teamshift-io · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/teamshift-io-sandbox-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 21 read · 21 write · 4 delete
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 46
Read from the source code; the running server may list different tools.
Read 21 · Look things up without changing anything.
admin_get_audit_logadmin_get_companyadmin_get_company_policiescalendar_get_jobcalendar_list_jobscrm_get_contactcrm_get_customercrm_get_dealcrm_list_customerscrm_list_dealscrm_list_employeescrm_list_leads
Show 9 more tools
crm_list_quotescrm_list_taskscrm_search_contactsinbox_get_threadinbox_list_threadsinvoicing_get_invoiceinvoicing_list_invoicesinvoicing_list_paymentsphone_list_calls
Write 21 · Create, change, send or run things.
admin_advance_clockadmin_save_statecalendar_complete_jobcalendar_reschedule_jobcalendar_schedule_jobcrm_complete_taskcrm_create_contactcrm_create_taskcrm_follow_up_quotecrm_send_quotecrm_update_contactcrm_update_deal
Show 9 more tools
crm_update_leadinbox_mark_thread_readinbox_send_emailinbox_send_smsinvoicing_create_invoiceinvoicing_match_paymentinvoicing_record_paymentinvoicing_send_reminderphone_log_call
Delete 4 · Delete, drop, revoke or wipe things.
admin_resetcalendar_cancel_jobcrm_merge_contactsinvoicing_void_invoice
Tools (46)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
admin_advance_clockAdvance clockMove simulated time forward by N minutes (e.g. to simulate waiting for a reply).
admin_get_audit_logGet audit logread-onlyEvery mutation attempted so far (tool, input, ok/error, changed ids), in order. Use sinceSeq to fetch only newer entries.
admin_get_companyGet company profileread-onlyCompany profile plus the simulated current time and today's date in company time.
admin_get_company_policiesGet company policiesread-onlyThe company's plain-language operating rules (response times, follow-up cadence, payment terms...). Read before acting.
admin_resetReset sandboxcan change or delete dataRestore the original dataset and clock, discarding every change. The audit log is kept and records the reset.
admin_save_stateSave stateWrite the current dataset, audit log and outbox to the --state-out file for grading.
calendar_cancel_jobCancel jobcan change or delete dataCancel a scheduled or in-progress job. Requires a reason. Cannot be undone.
calendar_complete_jobComplete jobMark a scheduled or in-progress job completed now, with optional notes.
calendar_get_jobGet jobread-onlyOne job with its customer and invoices.
calendar_list_jobsList jobsread-onlyScheduled work (appointments / work orders / projects), latest start first. Filter by status, customer, assignee, or a start-time window [from, to).
calendar_reschedule_jobReschedule jobMove a scheduled or no-show job to a new time window (optionally new assignees). Does NOT notify the customer; send them a message separately if policy requires.
calendar_schedule_jobSchedule jobBook new work for a customer. Assignees must be active employees and not double-booked (pass allowOverlap to override).
crm_complete_taskComplete taskMark an open task done.
crm_create_contactCreate contactAdd a new person, optionally linked to a customer account. Search first to avoid creating duplicates.
crm_create_taskCreate taskCreate a to-do for a staff member, linked to the records it is about (relatedIds). Use when a human must do something you cannot.
Show 31 more tools
crm_follow_up_quoteFollow up on quoteMessage the deal's contact about a sent/viewed quote and record the follow-up on the quote. Write the full message body. Goes to the outbox; nothing is really delivered.
crm_get_contactGet contactread-onlyFull profile of one contact plus their customer account, leads, deals and recent calls. Use when you need context before replying to or changing a contact.
crm_get_customerGet customerread-onlyOne customer account with its contacts, deals, jobs and invoices. Use for a full account picture.
crm_get_dealGet dealread-onlyOne deal with its quotes and contact.
crm_list_customersList customersread-onlyList customer accounts (households or businesses), newest first. Filter by text, status or owner.
crm_list_dealsList dealsread-onlySales pipeline deals, most recently updated first. Use staleDays to find open deals with no activity for N days, openOnly to skip won/lost.
crm_list_employeesList employeesread-onlyActive staff with ids and roles. Use to pick an owner for a deal/lead or an assignee for a job or task.
crm_list_leadsList leadsread-onlyInbound leads, newest first. Set uncontacted: true to find leads nobody has responded to yet.
crm_list_quotesList quotesread-onlyQuotes/estimates. Set notFollowedUp: true to find sent quotes that never got a follow-up.
crm_list_tasksList tasksread-onlyTo-dos for staff. Filter by status, assignee or a related record id.
crm_merge_contactsMerge duplicate contactscan change or delete dataFold a duplicate contact (mergeId) into the one to keep (keepId): empty fields are filled from the duplicate, all leads/deals/messages/calls are re-pointed, and the duplicate is deleted. Irreversible; confirm they are the same person first.
crm_search_contactsSearch contactsread-onlyFind people by name, email, phone digits or title. Use before any contact-specific action to get the contact id. Set missingInfo to find contacts lacking a valid email or phone.
crm_send_quoteSend quoteSend a draft quote to the customer (status becomes sent). Only works on drafts.
crm_update_contactUpdate contactChange a contact's name, email, phone, title or customer link. Omitted fields stay as they are; null clears a field. Use to fix missing or malformed contact info.
crm_update_dealUpdate dealMove a deal to a new stage and/or set its next action, amount or owner. Stage moves must follow the pipeline (new→qualified→quote-sent→negotiation→won/lost; won is final; lost can reopen). Moving to lost requires lostReason. Set nextAction to {summary, dueOn} so every open deal has a next step.
crm_update_leadUpdate leadChange a lead's status or owner. Note: sending an email/SMS or logging an outbound call to the lead's contact marks it contacted automatically.
inbox_get_threadGet threadread-onlyAll messages in one thread, oldest first. Read before replying.
inbox_list_threadsList inbox threadsread-onlyEmail and SMS conversations, newest activity first, with unread counts and the last message snippet. Use unreadOnly to triage.
inbox_mark_thread_readMark thread readMark every message in a thread as read after handling it.
inbox_send_emailSend emailSend an email to a contact, raw address, or as a reply in an existing thread (threadId). Subject is required for new threads. Written to the outbox only; nothing leaves the sandbox.
inbox_send_smsSend SMSSend a text message to a contact, raw number, or within an SMS thread. Outbox only.
invoicing_create_invoiceCreate invoiceIssue an invoice to a customer (optionally for a job of that customer). Total is computed from line items; due date defaults to company payment terms.
invoicing_get_invoiceGet invoiceread-onlyOne invoice with its payments and balance due.
invoicing_list_invoicesList invoicesread-onlyInvoices, newest first. Set overdue: true for unpaid invoices past their due date.
invoicing_list_paymentsList paymentsread-onlyPayments received, newest first. Set unmatched: true for payments not yet applied to any invoice.
invoicing_match_paymentMatch payment to invoiceApply an unmatched payment to the invoice it pays. Customer must match and amount must not exceed the balance.
invoicing_record_paymentRecord paymentRecord money received against an invoice. Cannot exceed the balance; void, draft and paid invoices are rejected.
invoicing_send_reminderSend invoice reminderSend a payment reminder for an open or partially-paid invoice to the customer's contact (outbox only). A default polite body is used if none is given.
invoicing_void_invoiceVoid invoicecan change or delete dataVoid an invoice that has no payments applied (e.g. issued against the wrong job). Irreversible; requires a reason.
phone_list_callsList callsread-onlyPhone call log, newest first. Use outcome: missed and direction: inbound to find calls that may need a callback.
phone_log_callLog callRecord a call you made or took (e.g. a callback), with outcome and a short summary. No real call is placed.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 8, 2026 (22 days ago)
- Last release
- Oct 8, 2026 (22 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.teamshift-io/sandbox-mcp- Version
- 0.1.0
- Auth
- No auth
- Packages
- npm @teamshift/sandbox-mcp
- License
- Apache-2.0
- Repository
- github.com/teamshift-io/smb-sandbox
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
SMB Sandbox MCP server. Agent Mart. https://agentmart.dev/connectors/teamshift-io-sandbox-mcp (last updated 2026-10-24)