{"$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-05T19:29:48.719Z","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020","markdownUrl":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020.md","server":{"slug":"covenant-common-covenant-aap","name":"Covenant AAP - hosted developer pilot","registryName":"io.github.covenant-common/covenant-aap","description":"Find services, draft exact terms and review agreements. Public tools; private account trials.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"jupie202020","type":"remote","identifier":"https://jupie202020.pythonanywhere.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020","version":"0.46.0-pilot.20261031.2","transport":null,"scoredAt":"2026-11-05T04:03:44.182Z"},"score":{"total":71,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":71},{"date":"2026-11-04","total":71},{"date":"2026-11-03","total":70},{"date":"2026-11-02","total":67},{"date":"2026-11-01","total":66},{"date":"2026-10-31","total":66}]},"categories":[{"name":"Endpoint Security","score":74,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.","HTTPS is enforced; there's no plaintext access path.","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.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_absent","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":63,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1668 tokens (~185/item across 9 items; 9 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":"185","items":"9","tools":"9","tokens":"1668","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":17,"verdict":"partial","reasons":["Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"5"}}]},{"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."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","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 9 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 10 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":"9"}},{"code":"toolsafety.manipulation_clean","args":{"units":"10","judged":"10"}}]},{"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":"jupie202020","type":"remote","identifier":"https://jupie202020.pythonanywhere.com/mcp","withdrawn":false,"score":71,"current":true,"url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020","markdownUrl":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020.md"}],"facts":[{"label":"Endpoint","value":"https://jupie202020.pythonanywhere.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"0.46.0-pilot.20261031.2"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"covenant_marketplace__quick_trade","title":"Prepare a service offer","description":"Prepare an unsigned service offer with a buyer, seller, price and optional deal structure. Create a general market, listing or reusable transaction archetype. quick_trade prepares the complete simple agreement in one call. Every record carries seven question dimensions. Credit/escrow/custom terms require adopted execution; no funds or inventory are inferred. Selected action: quick_trade.","inputs":[{"name":"amount","type":"integer","required":true,"description":"Integer price in the payment asset's exact stated unit. For USD cents, 25 dollars is 2500 cents; never infer a currency conversion."},{"name":"archetype","type":"object","required":false,"description":"Optional exact reusable deal structure supplied by the caller; preparation does not execute it."},{"name":"buyer","type":"string","required":true,"description":"The proposed buyer role and identifier; a role label does not prove authority."},{"name":"compact","type":"boolean","required":false,"description":"Return the supported compact view; retain the complete exact packet when approving."},{"name":"context","type":"string","required":true,"description":"Caller-chosen exact context for this unsigned proposal."},{"name":"description","type":"string","required":true,"description":"The work or resource being offered, including the intended deliverable."},{"name":"payment_asset","type":"object","required":true,"description":"The exact namespace, identifier and unit of the proposed payment asset. Named resource; adapter and transfer_terms default to null and {}. Naming never proves title, custody or transfer."},{"name":"seller","type":"string","required":true,"description":"The proposed seller role and identifier; a label does not verify the supplier."},{"name":"settlement","type":"object","required":false,"description":"Optional proposed settlement terms; no rail is connected or payment sent. Optional explicit settlement terms. A pinned archetype settlement may be repeated exactly, but cannot be silently replaced."},{"name":"terms","type":"object","required":false,"description":"Optional exact additional terms to preserve in this unsigned offer. Optional exact inspection, correction, return or other terms adopted in this first offer."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":353},{"name":"covenant_contract__draft","title":"Draft work terms","description":"Draft an agreement from the exact parties, clauses, conditions and dispute terms you supply. Draft arbitrary clauses, preserve amendment ancestry, compare exact changes, and render an escaped HTML draft. Never supplies assent. Selected action: draft.","inputs":[{"name":"clauses","type":"array","required":true,"description":"The exact obligations and terms to include in the unsigned draft."},{"name":"conditions","type":"array","required":false,"description":"Optional exact conditions governing the proposed obligations."},{"name":"dispute","type":"object","required":false,"description":"Optional proposed review or dispute procedure; no arbitrator is appointed."},{"name":"extensions","type":"object","required":false,"description":"Optional exact additional terms or adopted profile references supplied by the caller."},{"name":"parties","type":"array","required":true,"description":"The declared parties and roles for this draft; no assent is inferred."},{"name":"settlement","type":"object","required":false,"description":"Optional proposed payment or settlement terms; no payment occurs."},{"name":"title","type":"string","required":true,"description":"A short name for the proposed agreement."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":176},{"name":"covenant_contract__inspect","title":"Inspect contract terms","description":"Inspect one exact contract body and return its identifier and structure. Covenant public API and MCP reference: https://covenant-common.github.io/covenant-docs/docs/API_MCP.html. Draft arbitrary clauses, preserve amendment ancestry, compare exact changes, and render an escaped HTML draft. Never supplies assent. Selected action: inspect.","inputs":[{"name":"body","type":"object","required":true,"description":"The raw contract body from the draft response; supply the contract body rather than the complete response wrapper."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":102},{"name":"covenant_contract__compare","title":"Compare changed terms","description":"Compare two contract bodies and show the changes that need fresh approval. Draft arbitrary clauses, preserve amendment ancestry, compare exact changes, and render an escaped HTML draft. Never supplies assent. Selected action: compare.","inputs":[{"name":"after","type":"object","required":true,"description":"The complete proposed replacement raw contract body; changed terms need fresh assent."},{"name":"before","type":"object","required":true,"description":"The complete original raw contract body; keep its exact bytes and identifier."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":91},{"name":"covenant_contract__render","title":"Read contract terms","description":"Render one exact contract body as readable HTML without changing its terms. Covenant public API and MCP reference: https://covenant-common.github.io/covenant-docs/docs/API_MCP.html. Draft arbitrary clauses, preserve amendment ancestry, compare exact changes, and render an escaped HTML draft. Never supplies assent. Selected action: render.","inputs":[{"name":"body","type":"object","required":true,"description":"The raw contract body to display; a readable copy does not create assent."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":98},{"name":"covenant_review__review","title":"Review a work record","description":"Review a raw coordination case, its supplied agreements, approvals and remaining duties. Review an exact coordination case, its supplied approvals and remaining obligations. Read https://jupie202020.pythonanywhere.com/review-reference.json for the case format and a complete empty example. A contract draft is not a verified agreement. Case builders such as start/case/spec are installed SDK helpers, not tools on this public endpoint. No signing or execution.","inputs":[{"name":"case","type":"object","required":true,"description":"A raw coordination case with version, title and agreements. A contract draft or prior review report is not a case. See the service review-reference.json. Exact coordination case. Use start or case to…"},{"name":"expected_id","type":"string","required":false,"description":"Optional retained exact case SHA256 identifier. A mismatch refuses; never replace a trusted pin merely to pass."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":261},{"name":"covenant_review__authority","title":"Check declared authority","description":"Inspect supplied role summaries and any supported owner-local authority evidence. Inspect caller-supplied role summaries and any supported local authority evidence. Each agreements row has exactly id, kind and parties (role to direct Ed25519 public key). Do not pass a contract-draft wrapper. Read https://jupie202020.pythonanywhere.com/review-reference.json for examples. A declared role is not verified permission; this does not authorize signing, payment or execution.","inputs":[{"name":"agreements","type":"array","required":true,"description":"Caller-declared role summaries. Each row has exactly id, kind and parties; parties maps role names to supported public verification keys. These are not signed contract wrappers."},{"name":"expected_heads","type":"array","required":false,"description":"Optional retained sorted causal heads for the group review."},{"name":"grants","type":"array","required":false,"description":"Optional exact grant records for owner-local access review; do not provide private keys or credentials."},{"name":"group","type":"string","required":false,"description":"Optional exact group reference; it does not appoint a controller or grant authority."},{"name":"policies","type":"array","required":false,"description":"Optional exact policy records; declarations are separate from installed authority."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":221},{"name":"covenant_review__evidence","title":"Check supplied proofs","description":"Check supplied proof envelopes against the supported installed verifiers and exact expectations. Check supplied proof envelopes with the supported installed verifiers. Read https://jupie202020.pythonanywhere.com/review-reference.json for item fields. Empty input reports no proofs supplied. A verified proof covers its exact statement and assumptions, not outside truth or execution permission.","inputs":[{"name":"agreement_ids","type":"array","required":true,"description":"Exact agreement identifiers already verified separately; a supplied identifier alone does not prove assent."},{"name":"items","type":"array","required":true,"description":"Supplied proof envelopes and exact verifier/context/statement expectations. Empty input means no proofs were supplied."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":129},{"name":"aap_public_listing_search","title":"Find public services","description":"Find currently searchable service listings in this shared marketplace. Search this shared marketplace for current active INDEXED public listings. Only explicitly published fields are returned; PRIVATE and UNLISTED records are excluded, including from totals. Ranking matches the existing public listing API. Price, inventory, identity, performance and payment are not verified. No account, signing, publication or provider call.","inputs":[{"name":"category","type":"string","required":false,"description":"Optional category filter; it does not broaden access to unlisted or private records."},{"name":"limit","type":"integer","required":false,"description":"Maximum public results to return in this page; use the advertised bound."},{"name":"offset","type":"integer","required":false,"description":"Zero-based offset into the current public result page."},{"name":"query","type":"string","required":false,"description":"Optional words describing the service needed; searches only current public listings."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":161}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T04:03:44.000Z","track":"remote","endpoint":"https://jupie202020.pythonanywhere.com/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_256_GCM_SHA384","chainError":null,"certificates":[{"subject":"CN=*.pythonanywhere.com","issuer":"CN=YE2,O=Let's Encrypt,C=US","notBefore":"2026-09-21T14:55:43Z","notAfter":"2026-12-20T14:55:42Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=YE2,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":"jupie202020.pythonanywhere.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"pythonanywhere.com.","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":302},"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-31","recent":[{"id":"chg_01a1a4b8-c351-7e33-bc3c-2266504a11d8","kind":"score.total_changed","summary":"Trust score (70 → 71)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a1a4b8-c351-7e33-bc3c-2266504a11d8"},{"id":"chg_01a19f92-b99d-75e6-b86f-67cdece9f943","kind":"check.measure","summary":"Schema quality (111 → 185)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b99d-75e6-b86f-67cdece9f943"},{"id":"chg_01a19f92-b99e-7533-9125-22f0014bcc79","kind":"check.measure","summary":"Tool coverage (12% → 100%)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b99e-7533-9125-22f0014bcc79"},{"id":"chg_01a19f92-b99e-7a8d-b2f4-d0399a4c3aa0","kind":"check.measure","summary":"Schema quality (fair → good)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b99e-7a8d-b2f4-d0399a4c3aa0"},{"id":"chg_01a19f92-b99f-709e-9c0d-963308cd597f","kind":"tool.description_changed","summary":"Tool “aap_public_listing_search” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b99f-709e-9c0d-963308cd597f"},{"id":"chg_01a19f92-b99f-75e0-9657-c6467a09b0b4","kind":"tool.title_changed","summary":"Tool “aap_public_listing_search” changed its title (Find public services)","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b99f-75e0-9657-c6467a09b0b4"},{"id":"chg_01a19f92-b99f-7a60-bf35-9cf7b535797a","kind":"param.description_changed","summary":"“aap_public_listing_search” reworded the description of “category”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b99f-7a60-bf35-9cf7b535797a"},{"id":"chg_01a19f92-b99f-7e9e-98cf-6db156da0f91","kind":"param.description_changed","summary":"“aap_public_listing_search” reworded the description of “limit”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b99f-7e9e-98cf-6db156da0f91"},{"id":"chg_01a19f92-b9a0-72f8-b1df-0b7c533bc9a3","kind":"param.description_changed","summary":"“aap_public_listing_search” reworded the description of “offset”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a0-72f8-b1df-0b7c533bc9a3"},{"id":"chg_01a19f92-b9a0-7690-993c-642f16c92b9f","kind":"param.description_changed","summary":"“aap_public_listing_search” reworded the description of “query”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a0-7690-993c-642f16c92b9f"},{"id":"chg_01a19f92-b9a0-7b02-8168-e9dea9c17680","kind":"tool.description_changed","summary":"Tool “covenant_contract__compare” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a0-7b02-8168-e9dea9c17680"},{"id":"chg_01a19f92-b9a1-7043-a8a3-7d40ffc26503","kind":"tool.title_changed","summary":"Tool “covenant_contract__compare” changed its title (Compare changed terms)","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a1-7043-a8a3-7d40ffc26503"},{"id":"chg_01a19f92-b9a1-741d-8f21-504e0069da3b","kind":"param.description_changed","summary":"“covenant_contract__compare” reworded the description of “after”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a1-741d-8f21-504e0069da3b"},{"id":"chg_01a19f92-b9a1-79fa-9a7a-5212e6f920fd","kind":"param.description_changed","summary":"“covenant_contract__compare” reworded the description of “before”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a1-79fa-9a7a-5212e6f920fd"},{"id":"chg_01a19f92-b9a2-704a-be7c-7cfaf34681a4","kind":"tool.description_changed","summary":"Tool “covenant_contract__draft” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a2-704a-be7c-7cfaf34681a4"},{"id":"chg_01a19f92-b9a2-73ec-adee-cbfc7618a75e","kind":"tool.title_changed","summary":"Tool “covenant_contract__draft” changed its title (Draft work terms)","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a2-73ec-adee-cbfc7618a75e"},{"id":"chg_01a19f92-b9a2-773a-9d92-8c207fdb36d7","kind":"param.description_changed","summary":"“covenant_contract__draft” reworded the description of “clauses”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a2-773a-9d92-8c207fdb36d7"},{"id":"chg_01a19f92-b9a3-7449-87e0-0b6fedc3c83a","kind":"param.description_changed","summary":"“covenant_contract__draft” reworded the description of “conditions”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a3-7449-87e0-0b6fedc3c83a"},{"id":"chg_01a19f92-b9a3-7969-9d85-fb04d44bbb22","kind":"param.description_changed","summary":"“covenant_contract__draft” reworded the description of “dispute”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a3-7969-9d85-fb04d44bbb22"},{"id":"chg_01a19f92-b9a4-73fb-9f11-bf28a86f5223","kind":"param.description_changed","summary":"“covenant_contract__draft” reworded the description of “extensions”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020#chg-chg_01a19f92-b9a4-73fb-9f11-bf28a86f5223"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020/changelog.json"},"links":{"html":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020","markdown":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020.md","changelogJson":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020/changelog.json","changelogRss":"https://verifymcp.io/servers/covenant-common-covenant-aap/jupie202020.xml","external":[{"label":"Remote endpoint","href":"https://jupie202020.pythonanywhere.com/mcp"},{"label":"Website","href":"https://covenant-common.github.io/covenant-docs/docs/START.html?source=mcp-registry"}]}}