{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-07T20:10:14.539Z","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp","markdownUrl":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp.md","server":{"slug":"com-fielddraftapp-fielddraft","name":"FieldDraft","registryName":"com.fielddraftapp/fielddraft","description":"Draft contractor quotes priced only from your own price book; find, edit and push them to Jobber.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"fielddraftapp","type":"remote","identifier":"https://fielddraftapp.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp","version":"1.0.0","transport":null,"scoredAt":"2026-11-07T02:08:32.720Z"},"score":{"total":86,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-07","total":86},{"date":"2026-11-06","total":85},{"date":"2026-11-05","total":85},{"date":"2026-11-04","total":84},{"date":"2026-11-03","total":84},{"date":"2026-11-02","total":83},{"date":"2026-11-01","total":83},{"date":"2026-10-31","total":83},{"date":"2026-10-30","total":82},{"date":"2026-10-29","total":82},{"date":"2026-10-28","total":81},{"date":"2026-10-27","total":81},{"date":"2026-10-26","total":80},{"date":"2026-10-25","total":80},{"date":"2026-10-24","total":79},{"date":"2026-10-23","total":79}]},"categories":[{"name":"Endpoint Security","score":97,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.","HTTPS is enforced; there's no plaintext access path.","The HSTS (Strict-Transport-Security) header is present.","DNSSEC check failed: this domain isn't protected by DNSSEC.","The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.rfc9728_invoke","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","args":{}},{"code":"auth.registration_cimd","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":76,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 910 tokens (~113/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"113","items":"8","tools":"8","tokens":"910","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":50,"verdict":"partial","reasons":["Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"15"}}]},{"name":"Tool Coverage","score":79,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","36% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"36"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"8"}},{"code":"toolsafety.manipulation_clean","args":{"units":"9","judged":"9"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"fielddraftapp","type":"remote","identifier":"https://fielddraftapp.com/mcp","withdrawn":false,"score":86,"current":true,"url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp","markdownUrl":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp.md"}],"facts":[{"label":"Endpoint","value":"https://fielddraftapp.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"required"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"draft_quote","title":"Draft a quote","description":"Use this when a contractor describes a job (what they saw on site, what needs doing, quantities) and wants an itemized quote. Builds the draft only from the contractor's own price book; lines with no match are flagged and left unpriced, never guessed. Side effects: saves a new draft quote in the contractor's FieldDraft account each time it is called (calling again creates another draft) and counts toward the account's monthly draft allowance. The description and any photo links are sent to FieldDraft's AI provider to produce the draft. Nothing is sent to the customer or to Jobber. Do not use for general pricing questions or for jobs the user has not described.","inputs":[{"name":"clientName","type":"string","required":false,"description":"Customer name if mentioned"},{"name":"jobDescription","type":"string","required":true,"description":"The contractor's description of the job in their own words, including quantities and site conditions"},{"name":"photoUrls","type":"array","required":false,"description":"Public image URLs of the job site, only if the user shared them; they are fetched for the AI model"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":212},{"name":"open_quotes","title":"FieldDraft quotes","description":"Show the contractor's 10 most recent FieldDraft quotes with title, client, status, total and a link to each. Read-only; changes nothing.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":39},{"name":"get_quote","title":"Get a quote","description":"Fetch one of the contractor's FieldDraft quotes by its id (from draft_quote or list_quotes), with line items, options and totals. Read-only; changes nothing.","inputs":[{"name":"quoteId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":50},{"name":"list_quotes","title":"List quotes","description":"List the contractor's recent FieldDraft quotes, newest first, with title, status, total and id (default 10, up to 50). Read-only; changes nothing.","inputs":[{"name":"limit","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":51},{"name":"update_quote_lines","title":"Update quote line items","description":"Replace ALL line items on a draft quote with the supplied list, after the contractor asks for changes (quantities, prices, adding or removing lines). Overwrites the existing lines, so pass every line that should remain, not just the changed one; discount lines are kept automatically. Prices must come from the contractor or their price book; confirm before changing a price. Only changes the quote in FieldDraft, not in Jobber.","inputs":[{"name":"lineItems","type":"array","required":true,"description":null},{"name":"quoteId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":111},{"name":"push_quote_to_jobber","title":"Push quote to Jobber","description":"Create the quote in the contractor's connected Jobber account, as a draft they review and send from Jobber. Only call after the contractor explicitly confirms the draft. Requires a client name; ask for it (plus email and job site address if known) when missing. Side effects: creates a new quote in Jobber, and a new client and property there when no existing client matches; it never edits or deletes existing Jobber records. Safe to retry: a quote that was already pushed returns the existing Jobber quote. Fails if Jobber is not connected or any line has no price.","inputs":[{"name":"clientEmail","type":"string","required":false,"description":null},{"name":"clientName","type":"string","required":false,"description":"Customer name, if not already on the quote"},{"name":"clientPhone","type":"string","required":false,"description":null},{"name":"quoteId","type":"string","required":true,"description":null},{"name":"siteAddress","type":"string","required":false,"description":"The customer's job site street address for the Jobber property, if not already on the quote"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":198},{"name":"sync_price_book","title":"Sync price book from Jobber","description":"Re-import the contractor's products & services from their connected Jobber account so drafts use current prices. Use when the contractor says they changed prices in Jobber or the price book looks out of date. Side effects: overwrites FieldDraft's stored names, prices and details with Jobber's and deactivates items deleted in Jobber; nothing is changed in Jobber. Fails if Jobber is not connected.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":93},{"name":"search_price_book","title":"Search price book","description":"Find items in the contractor's own price book by name or description, to answer 'what do I charge for X' or to fix an unmatched line. Returns up to 25 items. Read-only; changes nothing.","inputs":[{"name":"limit","type":"integer","required":false,"description":null},{"name":"query","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":67}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-07T02:08:32.000Z","track":"remote","endpoint":"https://fielddraftapp.com/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=fielddraftapp.com","issuer":"CN=YR1,O=Let's Encrypt,C=US","notBefore":"2026-10-09T16:32:23Z","notAfter":"2027-01-07T16:32:22Z","keyType":"RSA","keyBits":2048,"isCa":false},{"subject":"CN=YR1,O=Let's Encrypt,C=US","issuer":"CN=Root YR,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"RSA","keyBits":2048,"isCa":true},{"subject":"CN=Root YR,O=ISRG,C=US","issuer":"CN=ISRG Root X1,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"RSA","keyBits":4096,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"fielddraftapp.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"fielddraftapp.com.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"enforced_validated","label":"Enforced and verified","gate":"invoke","gateLabel":"On tool calls","status":200,"authorizationServers":["https://clerk.fielddraftapp.com"]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":308},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-23","recent":[{"id":"chg_01a1b3c3-bfea-7b96-b2e9-7f67699ce217","kind":"score.total_changed","summary":"Trust score (85 → 86)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-07","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a1b3c3-bfea-7b96-b2e9-7f67699ce217"},{"id":"chg_01a1ae9d-07fd-71dd-bc32-1a6e41674667","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a1ae9d-07fd-71dd-bc32-1a6e41674667"},{"id":"chg_01a1a976-782c-7be6-b80e-e380f8c36240","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a1a976-782c-7be6-b80e-e380f8c36240"},{"id":"chg_01a19f2a-53ec-769c-8f78-664da3601ae0","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a19f2a-53ec-769c-8f78-664da3601ae0"},{"id":"chg_01a18fb6-0ab2-7c30-a920-38609ab5193d","kind":"score.total_changed","summary":"Trust score (82 → 83)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a18fb6-0ab2-7c30-a920-38609ab5193d"},{"id":"chg_01a18568-fbbc-7476-aada-60159f4ce94f","kind":"score.total_changed","summary":"Trust score (81 → 82)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a18568-fbbc-7476-aada-60159f4ce94f"},{"id":"chg_01a17b1c-7428-735c-84f9-7bfb3f7a2b86","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a17b1c-7428-735c-84f9-7bfb3f7a2b86"},{"id":"chg_01a170d0-9903-7d79-85ed-f5ba537ddc86","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a170d0-9903-7d79-85ed-f5ba537ddc86"},{"id":"chg_01a16ba9-c769-7a21-a396-bf5cb2ca6408","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a16ba9-c769-7a21-a396-bf5cb2ca6408"},{"id":"chg_01a1697d-da42-7758-8a29-72cfa38e2cdc","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp#chg-chg_01a1697d-da42-7758-8a29-72cfa38e2cdc"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp","markdown":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp.md","changelogJson":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp/changelog.json","changelogRss":"https://verifymcp.io/servers/com-fielddraftapp-fielddraft/fielddraftapp.xml","external":[{"label":"Remote endpoint","href":"https://fielddraftapp.com/mcp"},{"label":"Website","href":"https://fielddraftapp.com/claude"}]}}