{"$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-05T16:05:21.551Z","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp","markdownUrl":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp.md","server":{"slug":"com-aidenix-aidenix","name":"Aidenix MCP","registryName":"com.aidenix/aidenix","description":"B2B people and company data: search, your own list, team tools, email checks, lead fit and drafts.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"mcp","type":"remote","identifier":"https://mcp.aidenix.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp","version":"1.0.1","transport":null,"scoredAt":"2026-11-05T03:30:38.110Z"},"score":{"total":36,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":36},{"date":"2026-11-04","total":36},{"date":"2026-11-03","total":60}]},"categories":[{"name":"Endpoint Security","score":89,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata.","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.","The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.rfc9728","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}},{"code":"auth.registration_dcr_only","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"unverified","reasons":["Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http."],"codes":[{"code":"transport.auth_gated","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema blocked by authentication: the endpoint requires auth we don't have to read it."],"codes":[{"code":"schema.auth_gated","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 blocked by authentication: the endpoint requires auth we don't have to read its tools."],"codes":[{"code":"toolquality.auth_gated","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools."],"codes":[{"code":"toolsafety.auth_gated","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities blocked by authentication: the endpoint requires auth we don't have to read them."],"codes":[{"code":"cap.auth_gated","args":{}}]}],"inconclusive":["Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http.","Schema blocked by authentication: the endpoint requires auth we don't have to read it.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.","Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.","Capabilities blocked by authentication: the endpoint requires auth we don't have to read them."],"malware":[],"components":[{"slug":"mcp","type":"remote","identifier":"https://mcp.aidenix.com/mcp","withdrawn":false,"score":36,"current":true,"url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp","markdownUrl":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp.md"}],"facts":[{"label":"Endpoint","value":"https://mcp.aidenix.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"required"},{"label":"Version","value":"1.0.1"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"get_account_context","title":null,"description":"Return the authenticated Aidenix account plan, quota, and selected ICP, using the profile website as its human-readable label.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":34},{"name":"list_icp_profiles","title":null,"description":"List ICP profiles by website and product description, including which website is selected.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":25},{"name":"analyze_contact","title":null,"description":"Return a complete user-facing single-contact business-fit analysis and outreach drafts. When presenting a completed result, hide technical metadata and use human-readable headings while preserving every user-facing content field.","inputs":[{"name":"contact","type":"string","required":true,"description":null},{"name":"icp_profile_id","type":null,"required":false,"description":null}],"outputs":[{"name":"code","type":null,"required":false,"description":null},{"name":"email_message","type":null,"required":false,"description":null},{"name":"email_subject","type":null,"required":false,"description":null},{"name":"fit_score_pct","type":null,"required":false,"description":null},{"name":"job_id","type":null,"required":false,"description":null},{"name":"linkedin_message","type":null,"required":false,"description":null},{"name":"logic_explanation","type":null,"required":false,"description":null},{"name":"message","type":null,"required":false,"description":null},{"name":"person_description","type":null,"required":false,"description":null},{"name":"request_id","type":null,"required":false,"description":null},{"name":"retry_after_seconds","type":null,"required":false,"description":null},{"name":"retryable","type":null,"required":false,"description":null},{"name":"status","type":null,"required":false,"description":null},{"name":"strategy","type":null,"required":false,"description":null},{"name":"strategy_do","type":null,"required":false,"description":null},{"name":"strategy_dont","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":59},{"name":"get_analysis","title":null,"description":"Poll one business-fit analysis job and return the complete user-facing result when finished; hide technical metadata and use human-readable headings while preserving every user-facing content field.","inputs":[{"name":"job_id","type":"string","required":true,"description":null}],"outputs":[{"name":"code","type":null,"required":false,"description":null},{"name":"email_message","type":null,"required":false,"description":null},{"name":"email_subject","type":null,"required":false,"description":null},{"name":"fit_score_pct","type":null,"required":false,"description":null},{"name":"job_id","type":null,"required":false,"description":null},{"name":"linkedin_message","type":null,"required":false,"description":null},{"name":"logic_explanation","type":null,"required":false,"description":null},{"name":"message","type":null,"required":false,"description":null},{"name":"person_description","type":null,"required":false,"description":null},{"name":"request_id","type":null,"required":false,"description":null},{"name":"retry_after_seconds","type":null,"required":false,"description":null},{"name":"retryable","type":null,"required":false,"description":null},{"name":"status","type":null,"required":false,"description":null},{"name":"strategy","type":null,"required":false,"description":null},{"name":"strategy_do","type":null,"required":false,"description":null},{"name":"strategy_dont","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":48},{"name":"analyze_contacts","title":null,"description":"Submit up to 500 contacts for a named batch business-fit analysis.","inputs":[{"name":"contacts","type":"array","required":true,"description":null},{"name":"icp_profile_id","type":null,"required":false,"description":null},{"name":"name","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":42},{"name":"list_batches","title":null,"description":"List batch analyses by name with readable status and progress.","inputs":[{"name":"cursor","type":null,"required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":null},{"name":"status","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":36},{"name":"get_batch","title":null,"description":"Get readable batch progress and optionally one page of results.","inputs":[{"name":"cursor","type":null,"required":false,"description":null},{"name":"include_results","type":"boolean","required":false,"description":null},{"name":"job_id","type":"string","required":true,"description":null},{"name":"result_limit","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":48},{"name":"export_batch","title":null,"description":"Create a short-lived CSV or JSON export link for a completed batch.","inputs":[{"name":"file_format","type":"string","required":true,"description":null},{"name":"job_id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"email_intel","title":null,"description":"Decide whether an email address is worth contacting, before drafting anything. Answers two independent questions: does the mailbox accept mail, and is the person still there. Catches what email verifiers miss — someone who left the company, a renamed domain, a historic address — because a live mailbox at a stale address still bounces the deal, not the message. Costs one request of the user's quota, the same as an analysis: run it before analyze_contact when the address might be dead — personalizing for someone who left wastes the analysis — and skip it on a contact you already trust, where it only adds a second request. Present the recommended action and the reason; keep raw verdicts and scores for your own workflow.","inputs":[{"name":"deliverability","type":"boolean","required":false,"description":"Add the SMTP layer (does the mailbox accept mail). Slow. Blind on catch-all domains, where the person layer decides instead."},{"name":"email","type":"string","required":true,"description":"Email address to assess before contacting it."},{"name":"enrich","type":"boolean","required":false,"description":"Add the dossier: address age, breach exposure, domain reputation, digital footprint, and a company card for the domain. Slow."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":232},{"name":"email_intel_bulk","title":null,"description":"Assess a whole list of addresses in one call, before spending analysis on any of them. Same two questions as email_intel — does the mailbox accept mail, is the person still there — answered per address, and returned as a split by recommended action so you can drop the dead ones and keep the rest. Up to 50 addresses per call, or 10 when deliverability or enrich is on, because those layers are slow; split a longer list yourself. Costs one request of the user's quota per address, so it pays for itself on the addresses it lets you drop rather than analyse — worth it on a cold list, not on a handful of contacts you already trust. If the remaining quota covers only part of the list, the rest is reported as skipped, not assessed; say so instead of presenting a short answer as a complete one. Present the counts and name the addresses not to send to; keep the per-address blocks for your workflow.","inputs":[{"name":"deliverability","type":"boolean","required":false,"description":"Add the SMTP layer to every address. Much slower — the list is capped at 10 when this is on."},{"name":"emails","type":"array","required":true,"description":"Email addresses to assess in one call."},{"name":"enrich","type":"boolean","required":false,"description":"Add the dossier to every address. Much slower — the list is capped at 10 when this is on."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":273},{"name":"build_icp_profile","title":null,"description":"Build the seller's ICP profile by reading their own website: what they sell, the value proposition, which roles and industries they sell to, the pain points, proof points and tone of voice. The new profile becomes the active one, so every later score and every generated email is weighted by it — confirm with the user before running it on a website they have not named. Use it to onboard a new account or after a repositioning; use list_icp_profiles to see what is already there. The URL is the seller's own site, never the prospect's. A recent profile for the same site is not rebuilt — the upstream reports it already exists.","inputs":[{"name":"website","type":"string","required":true,"description":"Website of the company you sell FOR — your own product site, not the prospect's. Its copy becomes the ICP every later score is weighted by."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":178},{"name":"company_signals","title":null,"description":"Profile a company and its current moment before working its people. Given a domain or name, returns firmographics + revenue, team makeup, hiring velocity from careers (which catches layoffs a static card misses), activity signals (funding, hiring focus, product, partnerships, attrition), geo footprint, a growth / reorg / stealth / stable verdict with outreach timing, and a teaser of which organizations the team reads. Set relationships=true to expand that teaser into the full attention map — the orgs they follow (competitors / vendors / media), top public accounts influencing the buyer (warm-intro paths), and internal amplifiers by role. team.tools lists what the team uses inside (Snowflake, Kafka, Salesforce…) from current employees' skills, with how many people use each; add enrich=true for an LLM read of the opinion-leaders, what the pattern means, and org categorization (~20s, hot accounts only). Employee names are never exposed. Costs one request of the user's quota per call — priced per account, not per person, so one call carries every lead from that company; do not repeat it per contact. Call once per account for research and timing; then analyze_contact for the individuals. Present the verdict and timing; keep the raw blocks for your workflow.","inputs":[{"name":"company","type":"string","required":true,"description":"Company domain (e.g. 'stripe.com') or name. Returns an account-level signal profile: firmographics + revenue, team makeup, hiring velocity from careers (catches layoffs), activity signals (funding/hi…"},{"name":"enrich","type":"boolean","required":false,"description":"Only meaningful together with relationships. Adds an LLM judgment layer over the map: the real opinion-leaders influencing the buyer, what the attention pattern reveals about priorities, concrete war…"},{"name":"relationships","type":"boolean","required":false,"description":"When true, expands the attention teaser into the full map of who the team collectively follows from public employee activity (likes/comments/shares): organizations they follow most (competitors / ven…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":513},{"name":"company_people","title":null,"description":"Admin-only: the upstream refuses this tool for customer accounts, so do not offer it as an option — company_signals covers the account and analyze_contact covers the person. Get the people of a company and the addresses to reach them. Given a domain, LinkedIn slug or name, returns the team by name — role, grade, seniority, country, LinkedIn — and the work addresses the sources actually hold, ranked by who decides and who is reachable. Every address carries what it is worth: on the company domain, a shared company inbox (info@ / support@), a short address two namesakes share, one a source flagged as a previous job, or a private mailbox — often the only way to reach the founder of a small company. Addresses are never invented from a name@domain template and are not SMTP-probed — these domains are mostly catch-all, so a probe would prove nothing; use email_intel when one specific address has to be trusted. Phone numbers are not returned, and people who opted out are excluded entirely. This is the roster layer: company_signals profiles the ACCOUNT, person_signals explains ONE human, analyze_contact scores the deal and drafts the outreach. Use roles=founder,ceo to keep only the people who answer cold email. Present who to write to and what their address is worth; keep the raw rows for your workflow.","inputs":[{"name":"company","type":"string","required":true,"description":"Company domain (e.g. 'lemlist.com'), LinkedIn company URL/slug, or name. Returns the team by name with every address the sources actually hold — work, shared inbox and private — each labelled with wh…"},{"name":"contacts","type":"boolean","required":false,"description":"Set to false to skip the contact directories — faster, when you mostly need who works there and in what roles. Addresses carried by the profile snapshots themselves still come back."},{"name":"roles","type":null,"required":false,"description":"Comma-separated role filter — the people who answer cold email: founder, ceo, cto, cpo, cxo, product, growth, sales. Omit to get the whole team ranked."},{"name":"top","type":"integer","required":false,"description":"How many people to return by name (default 25). The metrics always describe the whole team behind those rows, so a small top is not a small answer."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":499},{"name":"company_search","title":null,"description":"Find companies that fit — by industry, size, country, revenue, website tech, the tools their team uses inside, hiring, funding and what they are researching now — without people. Returns one row per company: name, domain, LinkedIn page, industry, size, country, revenue range, funding, website tech stack, intent topics, the company's own public emails, and why it matched. team_uses sees internal tools a website scan never does (Snowflake, dbt, Kafka, Gong), counted from current employees' skills, with how many people use each; the tool's own maker is left out. researching is buyer intent: topics the company's people read about lately. Each company returned costs one request of the user's quota; start with a small limit, then page with next_cursor. This is the first step of account-based work: pick the accounts here, then person_search with the same filters or with domains finds the people, and company_signals profiles one account in depth. Present the total and the companies with the reason they matched.","inputs":[{"name":"cursor","type":null,"required":false,"description":"next_cursor from the previous page, to continue the same search."},{"name":"filters","type":"object","required":true,"description":"Filters, combined with AND; values inside one list combine with OR. At least one is required. industries ['Software Development'], company_size_min / company_size_max (employees), company_countries […"},{"name":"limit","type":"integer","required":false,"description":"Companies per page, 1-100. Each company returned costs one request."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":396},{"name":"person_search","title":null,"description":"Find people who fit — by role, company and timing — with their contacts. Returns one row per person: name, title, seniority, department, company and its website, LinkedIn, location, the work email at the CURRENT employer, all known work emails, personal emails and phones from professional sources, months in role against their usual tenure, and why they matched. Beyond title and firmographics it filters on timing: started the role in the last N days, alumni of a company who left, in the seat longer than usual, engaged with a company's LinkedIn posts, talks about a topic, writes code in a language, company website runs a technology, fresh funding. Opted-out people are excluded. Each person returned costs one request of the user's quota; an empty page costs nothing — start with a small limit to see the total, then page with next_cursor. This is the way IN from an account or a segment: company_people lists one company's team (admin only), person_signals explains one human, email_intel checks an address you already hold. Emails here are not SMTP-checked — run them through email_intel_bulk before a send. Present the total, then the people with the reason they matched; keep cursors and raw fields for your workflow.","inputs":[{"name":"cursor","type":null,"required":false,"description":"next_cursor from the previous page, to continue the same search."},{"name":"filters","type":"object","required":true,"description":"Filters, combined with AND; values inside one list combine with OR. At least one is required. Who: titles ['vp sales'], levels ['c-level','vp','director','head','manager'], departments ['Sales','Mark…"},{"name":"limit","type":"integer","required":false,"description":"People per page, 1-100. Each person returned costs one request."},{"name":"only_with_contacts","type":"boolean","required":false,"description":"Skip people without any email or phone."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":590},{"name":"person_signals","title":null,"description":"Who a person is and what is going on with them. Given an email, LinkedIn URL, or slug, returns their role, grade and current company; the career trajectory from dates (months in the seat, whether they grew inside, their usual tenure); what they publish themselves and the subjects they raise; whose content they read; what they said about themselves (looking for work / hiring / milestone); and a verdict with the career moment and how to approach. Works even when the address is dead — the person is resolved to their current employer, which is often the point. Costs one request of the user's quota per contact, the same as an analysis — reach for it when you need the human behind the address, not as a warm-up before analyze_contact. This is the person layer: email_intel answers whether the ADDRESS is usable, analyze_contact scores the DEAL and drafts outreach, this one says who the human is. Asked by email, the answer carries no name and no profile slug — turning a mailbox into an identity is exactly what email_intel refuses to do, and this layer follows the same rule; ask by profile URL or slug and the name comes back, since the caller already holds it. Present the career moment, their own subjects, and the timing; keep raw blocks for your workflow. When match_confidence is low, say why: either the address did not match the profile name, or linked_profiles shows several people behind one address and the most corroborated was taken.","inputs":[{"name":"person","type":"string","required":true,"description":"Email, LinkedIn profile URL or slug. Returns who the person is and what is going on with them: role, grade and company; career trajectory from dates (how long in the seat, whether they grew inside);…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":448},{"name":"add_opt_out","title":null,"description":"Record a person in this account's opt-out list when they ask not to be contacted. Takes an email, phone or LinkedIn profile and detects which it is. Repeating a contact is safe — the second call reports it was already there instead of adding it twice. The list is enforced: contact analysis refuses an excluded contact, and people lists leave them out. Costs no quota — recording a request not to be written to must work on an exhausted plan — but new records are capped at 10 per account per day, so this is for people who asked, one at a time, not for bulk-marking a list. Use remove_opt_out to lift a record this account made.","inputs":[{"name":"contact","type":"string","required":true,"description":"Email, phone or LinkedIn profile of the person to record in the opt-out list. The kind is detected from the value itself."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":180},{"name":"remove_opt_out","title":null,"description":"Take a contact off this account's opt-out list — for a record added by mistake, or a person who asked to be contacted again. Only a record this account created can be lifted: the list is shared, so one account must not undo an exclusion another was asked for. Reports whether the record was lifted, was never there, or belongs to another account.","inputs":[{"name":"contact","type":"string","required":true,"description":"Email, phone or LinkedIn profile to take off this account's opt-out list. Only a record this account created can be lifted."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":115}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T03:30:38.000Z","track":"remote","endpoint":"https://mcp.aidenix.com/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=aidenix.com","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-11-01T20:08:27Z","notAfter":"2027-01-30T21:08: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":"mcp.aidenix.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"aidenix.com.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"enforced_validated","label":"Enforced and verified","gate":"connect","gateLabel":"On connection","status":401,"authorizationServers":["https://mcp.aidenix.com/"]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":301},"transports":[{"transport":"streamable-http","outcome":"auth_gated","label":"Auth required","status":401,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-11-03","recent":[{"id":"chg_01a1a7b8-0038-7cd1-9174-21d8b2e1b9ff","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a7b8-0038-7cd1-9174-21d8b2e1b9ff"},{"id":"chg_01a1a7b8-0040-7187-98b1-4e1e79dc00cf","kind":"check.unverifiable","summary":"Transport (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a7b8-0040-7187-98b1-4e1e79dc00cf"},{"id":"chg_01a1a7b8-0041-7c43-b3cf-3607037a7068","kind":"check.verdict","summary":"Authorization (fail → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a7b8-0041-7c43-b3cf-3607037a7068"},{"id":"chg_01a1a7b8-0045-7df1-9391-c159485fa456","kind":"check.appeared","summary":"First check of Authorization (partial)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a7b8-0045-7df1-9391-c159485fa456"},{"id":"chg_01a1a7b8-0048-72ab-87aa-5bb955587e20","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a7b8-0048-72ab-87aa-5bb955587e20"},{"id":"chg_01a1a7b8-004a-754e-af2c-a19a90b8b5ec","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a7b8-004a-754e-af2c-a19a90b8b5ec"},{"id":"chg_01a1a7b8-004e-738a-876c-5a4428693415","kind":"check.appeared","summary":"First check of Schema quality (unverified)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a7b8-004e-738a-876c-5a4428693415"},{"id":"chg_01a1a7b8-004e-7bac-93f0-2747c1744447","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → behind authorisation)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a7b8-004e-7bac-93f0-2747c1744447"},{"id":"chg_01a1a7b8-0050-7f06-a9b2-946efb41f50f","kind":"score.total_changed","summary":"Trust score (60 → 36)","materiality":"functional","direction":"regression","scoreDelta":-24,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a7b8-0050-7f06-a9b2-946efb41f50f"},{"id":"chg_01a1a49a-9eed-7080-b493-3755580f9c3d","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a49a-9eed-7080-b493-3755580f9c3d"},{"id":"chg_01a1a36d-c99d-7b51-ac8b-8226b7f3c34a","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp#chg-chg_01a1a36d-c99d-7b51-ac8b-8226b7f3c34a"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp","markdown":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp.md","changelogJson":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/com-aidenix-aidenix/mcp.xml","external":[{"label":"Remote endpoint","href":"https://mcp.aidenix.com/mcp"},{"label":"Website","href":"https://aidenix.com/mcp"}]}}