{"$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-05T15:52:59.165Z","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp","markdownUrl":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp.md","server":{"slug":"maggat-homeoffice-gifts","name":"Home Office Builder – hand-picked gift ideas","registryName":"io.github.maggat/homeoffice-gifts","description":"Hand-picked gift ideas for home offices that assistants turn into shareable wishlists fast. SE + US.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api-mcp","type":"remote","identifier":"https://home-office-builder.vercel.app/api/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp","version":"1.2.0","transport":null,"scoredAt":"2026-11-05T01:10:27.820Z"},"score":{"total":68,"tier":"medium","status":"scored","weekDelta":4,"history":[{"date":"2026-11-05","total":68},{"date":"2026-11-04","total":67},{"date":"2026-11-03","total":67},{"date":"2026-11-02","total":66},{"date":"2026-11-01","total":66},{"date":"2026-10-31","total":25},{"date":"2026-10-30","total":65},{"date":"2026-10-29","total":64},{"date":"2026-10-28","total":64},{"date":"2026-10-27","total":63},{"date":"2026-10-26","total":63},{"date":"2026-10-25","total":62}]},"categories":[{"name":"Endpoint Security","score":63,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not fully verified: no authorisation is required to call this server, and 3 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.","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."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_undeclared","args":{"undeclared_tools":"3"}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","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":59,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1306 tokens (~163/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":"163","items":"8","tools":"8","tokens":"1306","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":37,"verdict":"partial","reasons":["Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"11"}}]},{"name":"Tool Coverage","score":82,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","45% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"45"}}]},{"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":["Authorisation not fully verified: no authorisation is required to call this server, and 3 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe."],"malware":[],"components":[{"slug":"api-mcp","type":"remote","identifier":"https://home-office-builder.vercel.app/api/mcp","withdrawn":false,"score":68,"current":true,"url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp","markdownUrl":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp.md"}],"facts":[{"label":"Endpoint","value":"https://home-office-builder.vercel.app/api/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.2.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"get_health","title":"Health & tag status","description":"Health check for Home Office Builder. Returns ok, storage, paapi, trackingTag, tagConfigured, domain, catalogCount. tagConfigured is false until real Associates IDs are set (links omit tag=). OpenAPI: getHealth.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":56},{"name":"search_desk_gear","title":"Search desk gear","description":"Search Amazon for home-office desk gear on the user's marketplace. Filter by role + budgetBand. Returns PA-API products when configured, otherwise desk-setup search deep-link cards + catalogMatches. ALWAYS pass marketplace + locale. Amazon URLs omit tag= until tagConfigured is true. OpenAPI: searchAmazon.","inputs":[{"name":"budgetBand","type":"string","required":false,"description":"under-500 | 500-1500 | 1500-4000 | 4000-plus"},{"name":"limit","type":"integer","required":false,"description":null},{"name":"locale","type":"string","required":true,"description":"User locale, e.g. en, sv, de, fr, es, en-US"},{"name":"marketplace","type":"string","required":true,"description":"Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED — pass the user's storefront; curated ASINs only produce /dp links when trusted for that marketplace."},{"name":"q","type":"string","required":true,"description":"Search query, e.g. monitor arm"},{"name":"role","type":"string","required":false,"description":"developer | designer | student | general"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":214},{"name":"get_catalog","title":"Curated desk catalog","description":"Paginated curated desk starters (~51). Prefer search_desk_gear for discovery. ALWAYS pass marketplace + locale. Filter by role + budgetBand. OpenAPI: getCatalog.","inputs":[{"name":"budgetBand","type":"string","required":false,"description":null},{"name":"category","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":null},{"name":"locale","type":"string","required":true,"description":"User locale, e.g. en, sv, de, fr, es, en-US"},{"name":"marketplace","type":"string","required":true,"description":"Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED — pass the user's storefront; curated ASINs only produce /dp links when trusted for that marketplace."},{"name":"offset","type":"integer","required":false,"description":null},{"name":"q","type":"string","required":false,"description":"Full-text filter"},{"name":"role","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":166},{"name":"resolve_product","title":"Resolve buy / product link","description":"Resolve an ASIN, pasted Amazon /dp/ URL, or keywords to an buyUrl (product /dp or desk search). ALWAYS pass marketplace + locale. Does not invent tracking tags — when unset, URLs omit tag= and tagConfigured is false. OpenAPI: resolveProduct.","inputs":[{"name":"asin","type":"string","required":false,"description":"10-char Amazon ASIN"},{"name":"budgetBand","type":"string","required":false,"description":null},{"name":"keywords","type":"string","required":false,"description":"Search keywords if no ASIN"},{"name":"locale","type":"string","required":true,"description":"User locale, e.g. en, sv, de, fr, es, en-US"},{"name":"marketplace","type":"string","required":true,"description":"Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED — pass the user's storefront; curated ASINs only produce /dp links when trusted for that marketplace."},{"name":"role","type":"string","required":false,"description":null},{"name":"url","type":"string","required":false,"description":"Pasted Amazon product URL"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":194},{"name":"create_desk_board","title":"Create desk board","description":"Create a home-office desk board (wishlist). Returns id, editToken, ownerUrl, shopUrl, wishlist, storage. Save editToken for add_desk_item. Prefer create_and_fill for one-shot. OpenAPI: createWishlist.","inputs":[{"name":"budgetBand","type":"string","required":false,"description":null},{"name":"deskName","type":"string","required":false,"description":null},{"name":"items","type":"array","required":false,"description":null},{"name":"locale","type":"string","required":false,"description":"User locale, e.g. en, sv, de, fr, es, en-US"},{"name":"marketplace","type":"string","required":false,"description":"Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED — pass the user's storefront; curated ASINs only produce /dp links when trusted for that marketplace."},{"name":"personName","type":"string","required":false,"description":null},{"name":"role","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":172},{"name":"create_and_fill","title":"One-shot create and fill","description":"One call: create a curated home office setup gift wishlist and return shopUrl (share link) + ownerUrl. Preferred agent path: create a desk board and add ASINs / keywords / search queries in one call. Pass marketplace + locale + role + budgetBand. Returns id, editToken, ownerUrl, shopUrl. OpenAPI: agentCreateAndFill.","inputs":[{"name":"budgetBand","type":"string","required":false,"description":null},{"name":"deskName","type":"string","required":false,"description":null},{"name":"itemAsins","type":"array","required":false,"description":null},{"name":"itemKeywords","type":"array","required":false,"description":null},{"name":"itemQueries","type":"array","required":false,"description":"Each query is searched and added as a desk item"},{"name":"locale","type":"string","required":false,"description":"User locale, e.g. en, sv, de, fr, es, en-US"},{"name":"marketplace","type":"string","required":false,"description":"Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED — pass the user's storefront; curated ASINs only produce /dp links when trusted for that marketplace."},{"name":"personName","type":"string","required":false,"description":null},{"name":"role","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":226},{"name":"get_desk_board","title":"Get desk board","description":"Fetch a desk board by id. Returns items with buy links when available, plus ownerUrl and shopUrl. OpenAPI: getWishlist.","inputs":[{"name":"id","type":"string","required":true,"description":"Board id (short Redis id or t.* token)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":55},{"name":"add_desk_item","title":"Add desk item","description":"Add an item to a desk board. Requires editToken from create. Body: name/title plus asin, url (pasted /dp), searchKeywords, or catalogId. Token storage may return a new id — update bookmarks. OpenAPI: addWishlistItem.","inputs":[{"name":"asin","type":"string","required":false,"description":null},{"name":"catalogId","type":"string","required":false,"description":null},{"name":"editToken","type":"string","required":true,"description":"X-Edit-Token from create/mutate response"},{"name":"emoji","type":"string","required":false,"description":null},{"name":"id","type":"string","required":true,"description":"Desk board id"},{"name":"name","type":"string","required":false,"description":null},{"name":"searchKeywords","type":"string","required":false,"description":null},{"name":"title","type":"string","required":false,"description":null},{"name":"url","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":142}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T01:10:27.000Z","track":"remote","endpoint":"https://home-office-builder.vercel.app/api/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=*.vercel.app","issuer":"CN=WR1,O=Google Trust Services,C=US","notBefore":"2026-10-31T11:46:10Z","notAfter":"2027-01-29T11:46:09Z","keyType":"RSA","keyBits":2048,"isCa":false},{"subject":"CN=WR1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R1,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"RSA","keyBits":2048,"isCa":true},{"subject":"CN=GTS Root R1,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2020-06-19T00:00:42Z","notAfter":"2028-01-28T00:00:42Z","keyType":"RSA","keyBits":4096,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"home-office-builder.vercel.app.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"app.","outcome":"verified","label":"Verified"},{"zone":"vercel.app.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"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-25","recent":[{"id":"chg_01a1a941-dafc-7b69-96ee-757dc234c57d","kind":"score.total_changed","summary":"Trust score (67 → 68)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a1a941-dafc-7b69-96ee-757dc234c57d"},{"id":"chg_01a19ef4-4a86-7af7-9e2f-32b8e77a5573","kind":"score.total_changed","summary":"Trust score (66 → 67)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a19ef4-4a86-7af7-9e2f-32b8e77a5573"},{"id":"chg_01a194a7-4e3c-73a9-94ae-15c175efad64","kind":"check.verdict","summary":"Transport (fail → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a194a7-4e3c-73a9-94ae-15c175efad64"},{"id":"chg_01a194a7-4e3d-7b43-a001-2bccfa3f59e2","kind":"check.reverified","summary":"Injection markers (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a194a7-4e3d-7b43-a001-2bccfa3f59e2"},{"id":"chg_01a194a7-4e3e-73b2-aa3b-a1d4458bbaa2","kind":"check.reason","summary":"Authorization (Authorisation not fully verified: no authorisation is required to call this server, and 3 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a194a7-4e3e-73b2-aa3b-a1d4458bbaa2"},{"id":"chg_01a194a7-4e3e-7a3e-9442-02e52ced99d7","kind":"check.reverified","summary":"Tool coverage (unverified → 100)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a194a7-4e3e-7a3e-9442-02e52ced99d7"},{"id":"chg_01a194a7-4e3f-7182-bd77-e224b6a33f30","kind":"check.reverified","summary":"Stability (unverified → 0.23)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a194a7-4e3f-7182-bd77-e224b6a33f30"},{"id":"chg_01a194a7-4e3f-774d-9fbc-38fcf80962b9","kind":"check.reverified","summary":"MCP protocol (unverified → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a194a7-4e3f-774d-9fbc-38fcf80962b9"},{"id":"chg_01a194a7-4e3f-7e4b-8e13-7a9c4706251d","kind":"capture.status_changed","summary":"Endpoint reachability (not serving MCP → reachable)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a194a7-4e3f-7e4b-8e13-7a9c4706251d"},{"id":"chg_01a194a7-4e40-74db-bf1b-5609643bd5c8","kind":"score.total_changed","summary":"Trust score (25 → 66)","materiality":"functional","direction":"improvement","scoreDelta":41,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a194a7-4e40-74db-bf1b-5609643bd5c8"},{"id":"chg_01a18f81-70e9-74bb-95dd-821228d17677","kind":"check.verdict","summary":"Transport (pass → fail)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18f81-70e9-74bb-95dd-821228d17677"},{"id":"chg_01a18f81-70ea-7a76-becc-1facfdcb76d1","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18f81-70ea-7a76-becc-1facfdcb76d1"},{"id":"chg_01a18f81-70eb-70db-98a1-22802cf45d51","kind":"check.unverifiable","summary":"Stability (0.17 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18f81-70eb-70db-98a1-22802cf45d51"},{"id":"chg_01a18f81-70eb-759b-8a1d-ea32bf02b0de","kind":"check.reason","summary":"Authorization (Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18f81-70eb-759b-8a1d-ea32bf02b0de"},{"id":"chg_01a18f81-70eb-7a7d-8ac6-770246327056","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18f81-70eb-7a7d-8ac6-770246327056"},{"id":"chg_01a18f81-70eb-7f42-a659-e176967136e8","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18f81-70eb-7f42-a659-e176967136e8"},{"id":"chg_01a18f81-70ec-7481-bca6-1e3c8d400f53","kind":"check.appeared","summary":"First check of Schema quality (unverified)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18f81-70ec-7481-bca6-1e3c8d400f53"},{"id":"chg_01a18f81-70ec-7a43-88dd-ffbce4bd72bf","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18f81-70ec-7a43-88dd-ffbce4bd72bf"},{"id":"chg_01a18f81-70ec-7f22-a0ff-042bff3c27b8","kind":"score.total_changed","summary":"Trust score (65 → 25)","materiality":"functional","direction":"regression","scoreDelta":-40,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18f81-70ec-7f22-a0ff-042bff3c27b8"},{"id":"chg_01a18a5a-aada-7bf8-8961-c9f07e53b384","kind":"score.total_changed","summary":"Trust score (64 → 65)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp#chg-chg_01a18a5a-aada-7bf8-8961-c9f07e53b384"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp","markdown":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp.md","changelogJson":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/maggat-homeoffice-gifts/api-mcp.xml","external":[{"label":"Remote endpoint","href":"https://home-office-builder.vercel.app/api/mcp"},{"label":"Website","href":"https://home-office-builder.vercel.app/"}]}}