{"$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-07T19:42:15.899Z","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api","markdownUrl":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api.md","server":{"slug":"eu-tenderapi-tenderapi","name":"TenderAPI","registryName":"eu.tenderapi/tenderapi","description":"Search EU public tenders from TED and national portals by CPV code, country, buyer or value.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api","type":"remote","identifier":"https://api.tenderapi.eu/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api","version":"1.0.0","transport":null,"scoredAt":"2026-11-07T09:15:30.961Z"},"score":{"total":85,"tier":"high trust","status":"scored","weekDelta":4,"history":[{"date":"2026-11-07","total":85},{"date":"2026-11-06","total":84},{"date":"2026-11-05","total":84},{"date":"2026-11-04","total":83},{"date":"2026-11-03","total":83},{"date":"2026-11-02","total":82},{"date":"2026-11-01","total":82},{"date":"2026-10-31","total":81},{"date":"2026-10-30","total":81},{"date":"2026-10-29","total":80},{"date":"2026-10-28","total":80},{"date":"2026-10-27","total":79},{"date":"2026-10-26","total":79},{"date":"2026-10-25","total":78},{"date":"2026-10-24","total":78},{"date":"2026-10-23","total":78},{"date":"2026-10-22","total":77},{"date":"2026-10-21","total":77},{"date":"2026-10-20","total":76},{"date":"2026-10-19","total":76},{"date":"2026-10-18","total":75},{"date":"2026-10-17","total":36}]},"categories":[{"name":"Endpoint Security","score":89,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get 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."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.challenge_only_invoke","args":{}},{"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":64,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1057 tokens (~211/item across 5 items; 5 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":"211","items":"5","tools":"5","tokens":"1057","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":67,"verdict":"partial","reasons":["Stability observed for 20 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"20"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"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 5 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 6 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":"5"}},{"code":"toolsafety.manipulation_clean","args":{"units":"6","judged":"6"}}]},{"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":"api","type":"remote","identifier":"https://api.tenderapi.eu/mcp","withdrawn":false,"score":85,"current":true,"url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api","markdownUrl":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api.md"}],"facts":[{"label":"Endpoint","value":"https://api.tenderapi.eu/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"required (not validated)"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"get_organisation_tenders","title":"Organisation tender history","description":"List tenders an organisation published as buyer (purchase history) or won as supplier (award history).","inputs":[{"name":"cursor","type":"string","required":false,"description":"page.nextCursor from the previous call."},{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-50. Default 10."},{"name":"organisationId","type":"string","required":true,"description":"Organisation id (UUID) from search_organisations or a tender's buyer.id."},{"name":"roles","type":"null|array","required":false,"description":"buyer returns what the organisation procured, winner what it was awarded. Default both."},{"name":"sortBy","type":"string","required":false,"description":"Sort field. Default publicationDate."},{"name":"sortOrder","type":"string","required":false,"description":"Sort direction."}],"outputs":[{"name":"page","type":"object","required":true,"description":null},{"name":"tenders","type":"null|array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":137},{"name":"get_tender","title":"Get tender","description":"Fetch one tender by id, including its full abstract and winners.","inputs":[{"name":"id","type":"string","required":true,"description":"Tender id (UUID) as returned by search_tenders."}],"outputs":[{"name":"abstract","type":"null|string","required":true,"description":null},{"name":"buyer","type":"object","required":true,"description":null},{"name":"cpvCodes","type":"null|array","required":true,"description":null},{"name":"deadline","type":"null|string","required":true,"description":null},{"name":"deadlineHasTime","type":"boolean","required":true,"description":null},{"name":"estimatedValue","type":"null|object","required":true,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"link","type":"string","required":true,"description":null},{"name":"publicationDate","type":"string","required":true,"description":null},{"name":"serviceType","type":"string","required":true,"description":null},{"name":"source","type":"string","required":true,"description":null},{"name":"status","type":"string","required":true,"description":null},{"name":"title","type":"string","required":true,"description":null},{"name":"winners","type":"null|array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":40},{"name":"search_cpv_codes","title":"Search CPV codes","description":"Look up Common Procurement Vocabulary codes by English keywords or browse by code prefix. Call this before search_tenders when the user describes a subject rather than giving codes.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum codes to return. Default 20."},{"name":"query","type":"string","required":true,"description":"English keywords describing the subject (for example \"software consultancy\"), or a numeric code prefix such as 4523 to browse a branch."}],"outputs":[{"name":"codes","type":"null|array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":90},{"name":"search_organisations","title":"Search organisations","description":"Find buyers and suppliers by name and country. Use the returned id with get_organisation_tenders.","inputs":[{"name":"countries","type":"null|array","required":false,"description":"ISO 3166-1 alpha-3 country codes."},{"name":"cursor","type":"string","required":false,"description":"page.nextCursor from the previous call."},{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-50. Default 10."},{"name":"name","type":"string","required":false,"description":"Part of the organisation name, any language."}],"outputs":[{"name":"organisations","type":"null|array","required":true,"description":null},{"name":"page","type":"object","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":98},{"name":"search_tenders","title":"Search tenders","description":"Search public procurement notices from TED and national portals by CPV code, buyer country, status, dates, estimated value and title. Returns a page of tenders with links to the official notices.","inputs":[{"name":"buyerCountries","type":"null|array","required":false,"description":"ISO 3166-1 alpha-3 country codes of the buyer, for example AUT, DEU, SVN."},{"name":"buyerName","type":"string","required":false,"description":"Part of the buying organisation's name."},{"name":"cpvCodes","type":"null|array","required":false,"description":"8-digit CPV codes. A parent code such as 72000000 also matches all of its child codes. Use search_cpv_codes to find codes."},{"name":"currency","type":"string","required":false,"description":"Currency of minValue and maxValue. Default EUR."},{"name":"cursor","type":"string","required":false,"description":"page.nextCursor from the previous call. Filters must stay identical."},{"name":"deadlineFrom","type":"string","required":false,"description":"Earliest submission deadline, YYYY-MM-DD or RFC3339. Set to today's date to exclude expired tenders."},{"name":"deadlineUntil","type":"string","required":false,"description":"Latest submission deadline, YYYY-MM-DD or RFC3339. A plain date includes the whole day."},{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-50. Default 10."},{"name":"maxValue","type":"null|number","required":false,"description":"Maximum estimated contract value in currency."},{"name":"minValue","type":"null|number","required":false,"description":"Minimum estimated contract value in currency."},{"name":"publishedFrom","type":"string","required":false,"description":"Earliest publication date, YYYY-MM-DD or RFC3339."},{"name":"publishedUntil","type":"string","required":false,"description":"Latest publication date, YYYY-MM-DD or RFC3339."},{"name":"query","type":"string","required":false,"description":"Substring matched against the tender title. Titles are written in the buyer's national language, so prefer cpvCodes plus buyerCountries for topic searches."},{"name":"serviceTypes","type":"null|array","required":false,"description":"Contract nature."},{"name":"sortBy","type":"string","required":false,"description":"Sort field. Default publicationDate."},{"name":"sortOrder","type":"string","required":false,"description":"Sort direction. Defaults: publicationDate desc, deadline asc, estimatedValue desc."},{"name":"sources","type":"null|array","required":false,"description":"Portals to include. Default is all."},{"name":"statuses","type":"null|array","required":false,"description":"Tender statuses. open means not yet awarded or cancelled; combine with deadlineFrom to find tenders that still accept bids."}],"outputs":[{"name":"page","type":"object","required":true,"description":null},{"name":"tenders","type":"null|array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":456}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-07T09:15:30.000Z","track":"remote","endpoint":"https://api.tenderapi.eu/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=api.tenderapi.eu","issuer":"CN=YE1,O=Let's Encrypt,C=US","notBefore":"2026-09-11T16:36:24Z","notAfter":"2026-12-10T16:36:23Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=YE1,O=Let's Encrypt,C=US","issuer":"CN=Root YE,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=Root YE,O=ISRG,C=US","issuer":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=ISRG Root X2,O=Internet Security Research Group,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":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"api.tenderapi.eu.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"eu.","outcome":"verified","label":"Verified"},{"zone":"tenderapi.eu.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"challenged_unvalidated","label":"Challenged, unverified","gate":"invoke","gateLabel":"On tool calls","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-17","recent":[{"id":"chg_01a1b54a-a721-7db6-b4dc-071d55208e3e","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-07","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a1b54a-a721-7db6-b4dc-071d55208e3e"},{"id":"chg_01a1b021-daab-78e4-9ab7-cefe3744a2ff","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/eu-tenderapi-tenderapi/api#chg-chg_01a1b021-daab-78e4-9ab7-cefe3744a2ff"},{"id":"chg_01a1ab03-c001-7af5-8eb5-4ef7986526a8","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a1ab03-c001-7af5-8eb5-4ef7986526a8"},{"id":"chg_01a1a0ae-f136-7e97-8e7c-1e290dc4d06d","kind":"score.total_changed","summary":"Trust score (82 → 83)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a1a0ae-f136-7e97-8e7c-1e290dc4d06d"},{"id":"chg_01a19661-5078-76b1-8762-f0f6f0f72cee","kind":"score.total_changed","summary":"Trust score (81 → 82)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a19661-5078-76b1-8762-f0f6f0f72cee"},{"id":"chg_01a18c16-40e2-79a6-9ab2-b6dccb57d95c","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a18c16-40e2-79a6-9ab2-b6dccb57d95c"},{"id":"chg_01a181c8-26fa-71a9-8cbf-1de755f5deaa","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a181c8-26fa-71a9-8cbf-1de755f5deaa"},{"id":"chg_01a1777a-ed7d-75e2-b657-7a4824d2d82c","kind":"score.total_changed","summary":"Trust score (78 → 79)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a1777a-ed7d-75e2-b657-7a4824d2d82c"},{"id":"chg_01a16808-3b54-7c9e-8f55-9d5f58b471b0","kind":"score.total_changed","summary":"Trust score (77 → 78)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a16808-3b54-7c9e-8f55-9d5f58b471b0"},{"id":"chg_01a15dba-342e-7114-95cf-efdf16d2e7dc","kind":"score.total_changed","summary":"Trust score (76 → 77)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-21","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a15dba-342e-7114-95cf-efdf16d2e7dc"},{"id":"chg_01a1536c-f14c-7361-a330-7dc328e9ffaf","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a1536c-f14c-7361-a330-7dc328e9ffaf"},{"id":"chg_01a1536c-f14c-7df0-bcf2-2b86b812c627","kind":"score.total_changed","summary":"Trust score (75 → 76)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a1536c-f14c-7df0-bcf2-2b86b812c627"},{"id":"chg_01a14e48-c5ca-7e1a-abeb-e4d664868042","kind":"check.reverified","summary":"Transport (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a14e48-c5ca-7e1a-abeb-e4d664868042"},{"id":"chg_01a14e48-c5cb-7492-a67b-62a166fa9ce0","kind":"check.reverified","summary":"Injection markers (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a14e48-c5cb-7492-a67b-62a166fa9ce0"},{"id":"chg_01a14e48-c5cb-79be-ba79-58cbcb61c3da","kind":"check.reason","summary":"Authorization (Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a14e48-c5cb-79be-ba79-58cbcb61c3da"},{"id":"chg_01a14e48-c5cc-706a-b785-dcd34e0f5204","kind":"check.appeared","summary":"First check of Judged manipulation (pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a14e48-c5cc-706a-b785-dcd34e0f5204"},{"id":"chg_01a14e48-c5cc-759b-b9b9-9f44881d32bb","kind":"check.reverified","summary":"MCP protocol (unverified → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a14e48-c5cc-759b-b9b9-9f44881d32bb"},{"id":"chg_01a14e48-c5cc-7c80-bbd0-a1ee46fabb77","kind":"check.reverified","summary":"Tool coverage (unverified → 100)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a14e48-c5cc-7c80-bbd0-a1ee46fabb77"},{"id":"chg_01a14e48-c613-7dcd-b104-70a7c323af03","kind":"check.appeared","summary":"First check of Schema quality (fail)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a14e48-c613-7dcd-b104-70a7c323af03"},{"id":"chg_01a14e48-c615-757c-91bb-dcaff82edd4e","kind":"check.appeared","summary":"First check of Destructive annotations (pass)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api#chg-chg_01a14e48-c615-757c-91bb-dcaff82edd4e"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api/changelog.json"},"links":{"html":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api","markdown":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api.md","changelogJson":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api/changelog.json","changelogRss":"https://verifymcp.io/servers/eu-tenderapi-tenderapi/api.xml","external":[{"label":"Remote endpoint","href":"https://api.tenderapi.eu/mcp"},{"label":"Authorisation metadata","href":"https://api.tenderapi.eu/.well-known/oauth-protected-resource/mcp"},{"label":"Website","href":"https://tenderapi.eu/en/"}]}}