{"$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-06T12:35:27.137Z","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment.md","server":{"slug":"io-usefulapi-zenfulfillment","name":"Zenfulfillment MCP by usefulapi","registryName":"io.usefulapi/zenfulfillment","description":"Read Zenfulfillment orders and stock; import or cancel orders and mark returns done.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"zenfulfillment","type":"remote","identifier":"https://zenfulfillment.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment","version":"1.6.3","transport":null,"scoredAt":"2026-11-06T00:20:39.136Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":-44,"history":[{"date":"2026-11-06","total":18},{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":66},{"date":"2026-10-31","total":65},{"date":"2026-10-30","total":62}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"zenfulfillment","type":"remote","identifier":"https://zenfulfillment.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment.md"}],"facts":[{"label":"Endpoint","value":"https://zenfulfillment.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.6.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"zenfulfillment_list_orders","title":"List orders","description":"List or search the fulfillment orders of this Zenfulfillment account (warehouse pick/pack/ship), with status, order reference, shop order number, totals, shipping and billing address, the products ordered/shipped and shipments (tracking number, carrier). Filter by ONE status, created/updated time or free text. The export has one row per product line; rows are grouped into orders. Paging: pass next_page back as page; an empty page is the end. GET /orders/export.","inputs":[{"name":"created_after","type":"string","required":false,"description":"Only orders created at or after this time."},{"name":"created_before","type":"string","required":false,"description":"Only orders created at or before this time."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Use the previous reply's next_page."},{"name":"per_page","type":"integer","required":false,"description":"Results per page, 10-50 (default 25)."},{"name":"query","type":"string","required":false,"description":"Free-text search: shipping street, city, country, zip, customer name, order number or ZF number."},{"name":"status","type":"string","required":false,"description":"Only orders in this status (one at a time)."},{"name":"updated_after","type":"string","required":false,"description":"Lower bound on the last update time (updatedAtMin)."},{"name":"updated_before","type":"string","required":false,"description":"Upper bound on the last update time (updatedAtMax)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":271},{"name":"zenfulfillment_get_order","title":"Get order","description":"One order by its EXTERNAL reference, i.e. the order number from the connected shop or from your own import (for example 332-11-5599), with addresses, products with quantities (ordered, shipped, returned, refunded) and shipments with tracking numbers. Not the ZF reference: use zenfulfillment_list_orders with query for that. GET /orders/external/{reference}.","inputs":[{"name":"reference","type":"string","required":true,"description":"External order reference (the shop's order number)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":107},{"name":"zenfulfillment_list_stock","title":"List stock levels","description":"Stock on hand in the Zenfulfillment warehouse per SKU (sku, quantity_on_stock). Filter by SKU text and/or a maximum quantity to find low stock (then sorted lowest first). GET /products/export.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Most SKUs to return (default 200)."},{"name":"max_quantity","type":"integer","required":false,"description":"Only SKUs with at most this many units on stock (use for low-stock checks)."},{"name":"sku_contains","type":"string","required":false,"description":"Only SKUs containing this text (case-insensitive)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":112},{"name":"zenfulfillment_list_inventory_shipments","title":"List inbound shipments","description":"List inbound inventory shipments (goods you sent to the warehouse) with reference, SKU lines, announced quantity, quantity arrived and note. Filter by ONE status, created/updated time or free text (ZF number, tracking code, type). Rows are grouped per shipment. Paging as in list_orders. GET /inventory_shipments/export.","inputs":[{"name":"created_after","type":"string","required":false,"description":"Only shipments created at or after this time."},{"name":"created_before","type":"string","required":false,"description":"Only shipments created at or before this time."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Use the previous reply's next_page."},{"name":"per_page","type":"integer","required":false,"description":"Results per page, 10-50 (default 25)."},{"name":"query","type":"string","required":false,"description":"Free-text search: ZF number, tracking code, type."},{"name":"status","type":"string","required":false,"description":"Only shipments in this status (one at a time)."},{"name":"updated_after","type":"string","required":false,"description":"Lower bound on the last update time (updatedAtMin)."},{"name":"updated_before","type":"string","required":false,"description":"Upper bound on the last update time (updatedAtMax)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":230},{"name":"zenfulfillment_get_inventory_shipment","title":"Get inbound shipment","description":"One inbound inventory shipment by its ZF reference (for example ZF01123700): SKU lines with announced and arrived quantities and the note. GET /inventory_shipments/export/{reference}/reference.","inputs":[{"name":"reference","type":"string","required":true,"description":"Inventory shipment ZF reference, e.g. ZF01123700."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":74},{"name":"zenfulfillment_list_returns","title":"List returns","description":"List returns processed by the warehouse (PROCESSED = received, DONE = marked refunded), with the return's `_id` (needed by zenfulfillment_mark_return_done), ZF reference, note, products with quantity, reason, condition and whether they were actually returned, and the original order. Filter by ONE status, time or free text. Paging as in list_orders. GET /returns/export.","inputs":[{"name":"created_after","type":"string","required":false,"description":"Only returns created at or after this time."},{"name":"created_before","type":"string","required":false,"description":"Only returns created at or before this time."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Use the previous reply's next_page."},{"name":"per_page","type":"integer","required":false,"description":"Results per page, 10-50 (default 25)."},{"name":"query","type":"string","required":false,"description":"Free-text search: street, city, country, zip, customer name, order number or ZF number."},{"name":"status","type":"string","required":false,"description":"Only returns in this status."},{"name":"updated_after","type":"string","required":false,"description":"Lower bound on the last update time (updatedAtMin)."},{"name":"updated_before","type":"string","required":false,"description":"Upper bound on the last update time (updatedAtMax)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":247},{"name":"zenfulfillment_import_order","title":"Create or update an order","description":"WRITE: send ONE order to the Zenfulfillment warehouse for picking, packing and shipping to the given address (fulfillment and shipping fees apply per the contract). The reference is your own order number: a reference that already exists UPDATES that order instead of creating a new one. Each item becomes one CSV row (Reference;Date;Name;Company;Street1;Street2;Zip Code;City;Region;Country;Email;Phone;SKU;Quantity). Use SKUs from zenfulfillment_list_stock. Check the address with the user first. In test mode nothing ships. POST /orders/import.","inputs":[{"name":"city","type":"string","required":true,"description":"City."},{"name":"company","type":"string","required":false,"description":"Recipient company."},{"name":"country","type":"string","required":true,"description":"2-letter ISO country code, e.g. DE."},{"name":"email","type":"string","required":false,"description":"Recipient email (carriers use it for tracking notices)."},{"name":"items","type":"array","required":true,"description":"The products to ship."},{"name":"name","type":"string","required":true,"description":"Recipient name."},{"name":"order_date","type":"string","required":false,"description":"Order date, yyyy-mm-dd (default today, UTC)."},{"name":"phone","type":"string","required":false,"description":"Recipient phone number. A leading + is sent as 00 (international prefix) so spreadsheets never read it as a formula."},{"name":"reference","type":"string","required":true,"description":"Your own order reference/number (for example Bestellung1). An existing reference updates that order."},{"name":"region","type":"string","required":false,"description":"Region/state."},{"name":"street","type":"string","required":true,"description":"Street and house number."},{"name":"street2","type":"string","required":false,"description":"Address line 2 (c/o, floor...)."},{"name":"zip","type":"string","required":true,"description":"Postal code."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":328},{"name":"zenfulfillment_cancel_orders","title":"Cancel orders","description":"WRITE, cannot be undone: cancel orders by reference (up to 50). Only orders that can still be cancelled (before the warehouse has packed or shipped them) are cancelled; the others come back in `errors`. Confirm the references with the user first. POST /orders/cancel.","inputs":[{"name":"references","type":"array","required":true,"description":"Order references to cancel (as in the Reference column, e.g. the ZF reference or your own order number)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":99},{"name":"zenfulfillment_mark_return_done","title":"Mark return as refunded","description":"WRITE: set a return's status to DONE (refunded) in Zenfulfillment. Zenfulfillment only records the status; refund the customer in your shop yourself. Use the `_id` from zenfulfillment_list_returns (not the ZF reference). Cannot be set back through the API. POST /returns/{returnId}/done.","inputs":[{"name":"return_id","type":"string","required":true,"description":"The return's `_id` from zenfulfillment_list_returns."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":101}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T00:20:39.000Z","track":"remote","endpoint":"https://zenfulfillment.usefulapi.io/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=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"zenfulfillment.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-30","recent":[{"id":"chg_01a1ae3a-9c72-71cb-bcfb-05fd90fd9aac","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/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a1ae3a-9c72-71cb-bcfb-05fd90fd9aac"},{"id":"chg_01a199a1-489b-7b6e-828d-b6f3343103d1","kind":"check.unverifiable","summary":"Stability (0.07 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a199a1-489b-7b6e-828d-b6f3343103d1"},{"id":"chg_01a199a1-489c-76ae-8928-42e04b75e799","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a199a1-489c-76ae-8928-42e04b75e799"},{"id":"chg_01a199a1-489c-7d23-91c6-59d7dbc68a08","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a199a1-489c-7d23-91c6-59d7dbc68a08"},{"id":"chg_01a199a1-489d-73dc-8b1e-50a7840c20e3","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a199a1-489d-73dc-8b1e-50a7840c20e3"},{"id":"chg_01a199a1-489d-799c-8e63-1581aa9d96e3","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a199a1-489d-799c-8e63-1581aa9d96e3"},{"id":"chg_01a199a1-489e-7022-ac3e-03480fe28505","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a199a1-489e-7022-ac3e-03480fe28505"},{"id":"chg_01a199a1-489e-7595-8e0d-af0f8041a3a4","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a199a1-489e-7595-8e0d-af0f8041a3a4"},{"id":"chg_01a199a1-489e-7acb-b648-777c7d00768e","kind":"score.total_changed","summary":"Trust score (66 → 18)","materiality":"functional","direction":"regression","scoreDelta":-48,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a199a1-489e-7acb-b648-777c7d00768e"},{"id":"chg_01a1947e-43bc-7a02-af82-439a66701716","kind":"score.total_changed","summary":"Trust score (65 → 66)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a1947e-43bc-7a02-af82-439a66701716"},{"id":"chg_01a193ff-2a5f-7307-a6ec-4354b6b0177e","kind":"check.verdict","summary":"Authorization (partial → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a5f-7307-a6ec-4354b6b0177e"},{"id":"chg_01a193ff-2a5f-7e6e-8e77-33e5fb686bd4","kind":"check.verdict","summary":"MCP protocol (fail → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a5f-7e6e-8e77-33e5fb686bd4"},{"id":"chg_01a193ff-2a60-7448-a95d-9daf87b0cabd","kind":"prompt.added","summary":"New prompt “check_inbound_deliveries”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a60-7448-a95d-9daf87b0cabd"},{"id":"chg_01a193ff-2a60-7bac-a8e9-9c2f8c76a0d3","kind":"prompt.added","summary":"New prompt “find_low_stock_skus”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a60-7bac-a8e9-9c2f8c76a0d3"},{"id":"chg_01a193ff-2a61-7148-930d-74a718446d5f","kind":"prompt.added","summary":"New prompt “mark_a_processed_return_done”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a61-7148-930d-74a718446d5f"},{"id":"chg_01a193ff-2a61-7658-8e6f-01c75291271d","kind":"prompt.added","summary":"New prompt “send_an_order_for_fulfillment”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a61-7658-8e6f-01c75291271d"},{"id":"chg_01a193ff-2a61-7d09-8ca9-a46c22499914","kind":"prompt.added","summary":"New prompt “track_orders_and_shipments”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a61-7d09-8ca9-a46c22499914"},{"id":"chg_01a193ff-2a62-7208-b0c9-19502bd77539","kind":"server.version_changed","summary":"Server version (1.2.0 → 1.4.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a62-7208-b0c9-19502bd77539"},{"id":"chg_01a193ff-2a62-761c-8456-9885a8d3727d","kind":"protocol.version_changed","summary":"MCP protocol version (2025-06-18 → 2025-11-25)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a62-761c-8456-9885a8d3727d"},{"id":"chg_01a193ff-2a62-7b7c-b585-9e5fad5bd99d","kind":"score.total_changed","summary":"Trust score (62 → 65)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment#chg-chg_01a193ff-2a62-7b7c-b585-9e5fad5bd99d"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment","markdown":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-zenfulfillment/zenfulfillment.xml","external":[{"label":"Remote endpoint","href":"https://zenfulfillment.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/zenfulfillment/"}]}}