emgcheckbot.us
emg-moraware exposes 19 public tools on this MCP endpoint.
Opens ChatGPT on the web or desktop and asks it to use the WebMCP tools available here.
Connect straight to this server’s public endpoint.
https://mcp.emgcheckbot.us/mcpWe add this server to your workspace, then open Studio — saved access, one connection to many servers, with a history of what ran.
Last probed Sep 14, 2026 · mcp.emgcheckbot.us
19tools discovered
Find Job By Name
Find Moraware jobs by full job name (fuzzy, punctuation-tolerant). Use this when the user names a customer or job, e.g. "find the Kirby Klotz job". Returns matches newest-first. In the result: NameMatchStrength "strong" means a confident single match; if Ambiguous is true the input was vague, so ask the user to confirm before acting. (CreationDate may show 0001-01-01 when answered from the cache — don't treat that as a real date.)
List Stale Jobs
List "stale" jobs that may need a follow-up: a job with a Template/Measure/Quote milestone in the past (within the last 6 months), no Install or Removal ever, and no future milestone. Results are sorted oldest-first ("most silent first"). limit > 0 does a quick partial scan; limit = 0 does a full scan (slow — can take a few minutes). Use a small limit like 25 for quick questions.
Followup Status
Read ONE activity's current status and notes, live and uncached (so it reflects edits made minutes ago). Use this to check whether a manager acted on a follow-up: StatusId 3 ("Complete") means it's done; changed Notes also count as acted-on.
Invoice By Job
Get the QuickBooks invoice number(s) for a given Moraware job id.
Job By Invoice
Find the Moraware job that carries a given QuickBooks invoice number.
Activity Types
List all Moraware activity type IDs and their names (e.g. 17 = Follow Up, 10 = Quote, 4 = Install). Use this when you need to translate a type id to a name.
Cache Status
Check EMGBridge cache health: record count, last refresh time, and whether the last refresh succeeded. Use this to confirm the backend is up and the data is fresh.
Square Footage
Get the per-area square footage for a job. Use when the user asks specifically about a job's square footage, e.g. "what's the square footage for [job]". Returns each area with its room type and Sq Ft, plus a total. Pass job_id — resolve the job name first with find_job_by_name. (For ALL fields on a job's forms, use job_details instead.) READ-ONLY.
Job Details
Read ALL fields on ALL of a job's forms — the full Job Summary and Details forms (and any others). Use when the user wants the complete picture of a job, e.g. "tell me everything about [job]", "what's the edge/backsplash/material on this job?", or "is the material ordered / is it paid in full?". Returns every field grouped by form (form name + template + name/value pairs), including blank fields and checklist checkboxes (Deposit received, Template Ready, Material Ordered, etc
Job Quotes
Get all quotes for a job, WITH totals and pricing. Use when the user asks about quotes or quote money, e.g. "what did we quote this customer?", "how much is the quote on [job]?", "what's the total price?", "when does the quote expire?", or "how many revisions?". Returns JobId, QuoteCount, and each quote's name, status, price list, salesperson, created date, revision number/date, quote URL, total price, square footage, and expiration date. Set include_totals=False for a faster
Job Timeline
Get the full activity timeline/history for ONE job — every activity in order (templates, measures, quotes, installs, follow-ups, etc.) with date, time, type, status, assignee, and notes. Use when the user wants a job's history or what's happened / what's scheduled on a specific job, e.g. "show me the timeline for [job]" or "what's the history on this job?". Pass job_id — resolve the job name first with find_job_by_name. READ-ONLY.
Assignees
List all Moraware crew/assignees with their IDs and active status. Use to look up who's in the system, or to resolve a person's name to their ID (e.g. "Max" → 32) before scheduling. Returns each person {AssigneeId, AssigneeName, IsInactive}. Some names are inactive (IsInactive: true) — don't assign work to those. READ-ONLY.
Next Open Day
Find the next available day to schedule a FIELD activity (Template, Measure, Install, or Removal). Use when the user wants the soonest open slot, e.g. "find the next open day for a template". A day counts as open if it currently has max_per_day (default 2) or fewer of that activity — so up to a 3rd can still be added. Skips weekends by default. activity_type is the name, e.g. "Template". from_date ("yyyy-MM-dd") defaults to tomorrow. The backend does the counting and returns
List Scheduled Activities
List scheduled activities of a given type across all jobs in a date range (reads the cache schedule index). Use to see what's already booked, e.g. "what templates are scheduled next week?". activity_type is the name, e.g. "Template", "Measure", "Install", "Removal". from_date and to_date are "yyyy-MM-dd". READ-ONLY. Reflects the cache (~30 min), so a very recent direct Moraware booking may not appear yet. (For ONE job's full history, use job_timeline instead.)
Create Activity
Create ONE activity (any type) on a job, dated and timed. DEFAULTS TO PREVIEW (dry_run=True): it returns exactly what it WOULD create and writes nothing. Only call with dry_run=False AFTER the user has seen the preview and explicitly confirms. First resolve the job with find_job_by_name and confirm if Ambiguous — this takes a concrete job_id, never a name. activity_type is the name, e.g. "Template" or "Follow Up". start_date is "yyyy-MM-dd"; start_time is "HH:mm" (default 09:
Material Search
Search all EMG jobs (full history) by countertop MATERIAL NAME, e.g. "Calacatta Premata", "aurora", "taj mahal". Case-insensitive substring match against the Material Name field on each job's Details form. Returns matching jobs with job name, all material names, total sqft, install dates (latest first), status, and Moraware URL. Use from_date/to_date (yyyy-MM-dd) to limit by install date, e.g. this month. Check the Coverage block: if InitialBuildComplete is false the index is
Material List
List every distinct countertop material name across ALL EMG jobs (full history), with job counts and total square footage per material. Use this to discover what materials exist / how names are spelled before searching, or for questions like "what materials do we use most?". Check Coverage: partial until InitialBuildComplete is true.
Jobs By Salesperson
Find jobs by SALESPERSON combined with material and install-date filters — the power query for lists like "Alex's natural-stone jobs due for resealing" or "Diana's quartzite jobs from the last 6 months". salesperson is a case-insensitive name match (e.g. "alex" finds "Alex Sorokin"). Set natural_stone=True to match ALL natural stone — the category words (granite, marble, quartzite, dolomite, soapstone) OR any specific stone name in the shop's natural-stone list (Taj Mahal, Ca
Customer By Phone
Look up EMG customers/jobs by phone number. Use when the user gives a phone number and wants to know which customer or job it belongs to, e.g. "who is 843-555-1234?" or "look up the customer at (843) 555-1234". Accepts the number in any format — parentheses, dashes, and spaces are stripped — and matches on the LAST 4 DIGITS, so partial numbers ending in the right 4 digits work too. Returns the matching customer(s)/job(s) from the bridge; multiple matches are possible sinc
Get your MCP into directories
A working endpoint is step one. Directory coverage is the coordinated launch across ChatGPT, Claude, Cursor, the MCP Registry, and community indexes.
Directory coverage for brandsemg-moraware exposes 19 public tools on this MCP endpoint.
Use the MCP endpoint listed on this page in your MCP client configuration. One-click install pills support Claude, Cursor, VS Code, and other hosts. Copy the remote MCP URL if your client needs a manual entry.
MCPBundles probed 19 tools on the live server. The tool list on this page reflects what was discovered at the last refresh — connect your client to see the full set available to your session.
No provider sign-in was required during MCPBundles' probe. Your client may still need MCPBundles credentials depending on how you connect.
Operate emg-moraware? Verify ownership to take over this directory entry.
This server appears in the MCPBundles directory. Verify you operate it to take over the listing — name, description, logo, contact email, and skill content. We email a 6-digit code to a maintainer address your server publishes in /.well-known/security.txt or /.well-known/mcpbundles.json. Free, takes about a minute.