{"$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:36.706Z","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp","markdownUrl":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp.md","server":{"slug":"cloud1map-agent-relay","name":"io.github.cloud1map/agent-relay","registryName":"io.github.cloud1map/agent-relay","description":"Agent Relay MCP: invite-based channels, agent contracts and per-side human approvals.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"cloud1map-agent-relay-mcp","type":"npm","identifier":"@cloud1map/agent-relay-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp","version":"0.1.3","transport":"stdio","scoredAt":"2026-11-05T00:14:56.368Z"},"score":{"total":73,"tier":"medium","status":"scored","weekDelta":0,"history":[{"date":"2026-11-05","total":73},{"date":"2026-11-04","total":73},{"date":"2026-11-03","total":72},{"date":"2026-11-02","total":73},{"date":"2026-11-01","total":73},{"date":"2026-10-31","total":73},{"date":"2026-10-30","total":73},{"date":"2026-10-29","total":73},{"date":"2026-10-28","total":73},{"date":"2026-10-27","total":73},{"date":"2026-10-26","total":73},{"date":"2026-10-25","total":73},{"date":"2026-10-24","total":73},{"date":"2026-10-23","total":73},{"date":"2026-10-22","total":73},{"date":"2026-10-21","total":73},{"date":"2026-10-20","total":73},{"date":"2026-10-19","total":73},{"date":"2026-10-18","total":73},{"date":"2026-10-17","total":73},{"date":"2026-10-16","total":70},{"date":"2026-10-15","total":73},{"date":"2026-10-14","total":73},{"date":"2026-10-13","total":72},{"date":"2026-10-12","total":72},{"date":"2026-10-11","total":71},{"date":"2026-10-06","total":72},{"date":"2026-10-04","total":71},{"date":"2026-10-03","total":71},{"date":"2026-10-02","total":70}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","No production dependencies, so there is no dependency health to assess."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.no_dependencies","args":{"deps":"0","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":45,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 92 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"92"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":53,"verdict":"fail","reasons":["AI-judged instruction clarity (fair).","Tool/resource definitions use about 882 tokens (~67/item across 13 items; 13 tools + 0 resources), lean.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"fair"}},{"code":"schema.footprint_lean","args":{"avg":"67","items":"13","tools":"13","tokens":"882","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":100,"verdict":"pass","reasons":["No destabilizing schema changes in the last 30 days."],"codes":[{"code":"stability.stable","args":{}}]},{"name":"Tool Coverage","score":68,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","5% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"5"}}]},{"name":"Tool Safety","score":75,"verdict":"fail","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; \"relay_send_message\" implies \"send\" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.","An AI judge read all 13 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_undeclared","args":{"pct":"0","tool":"relay_send_message","verb":"send","declared":"none","annotated":"0","destructive":"2"}},{"code":"toolsafety.manipulation_clean","args":{"units":"13","judged":"13"}}]},{"name":"Capabilities","score":20,"verdict":"fail","reasons":["Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28."],"codes":[{"code":"protocol.outdated","args":{"latest":"2026-07-28","version":"2024-11-05"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"cloud1map-agent-relay-mcp","type":"npm","identifier":"@cloud1map/agent-relay-mcp","withdrawn":false,"score":73,"current":true,"url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp","markdownUrl":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@cloud1map/agent-relay-mcp"},{"label":"Version","value":"0.1.3"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"relay_register_agent","title":null,"description":"Register this agent on the relay and receive an agentId + secret. Bind a human notification channel (telegram/discord/feishu/wecom/qq) for approval requests.","inputs":[{"name":"capabilities","type":"array","required":false,"description":null},{"name":"name","type":"string","required":true,"description":null},{"name":"notificationChannel","type":"string","required":false,"description":null},{"name":"notificationConfig","type":"object","required":false,"description":"e.g. telegram: {botToken, chatId}; webhook channels: {webhookUrl}"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":93},{"name":"relay_create_channel","title":null,"description":"Create a channel and get an inviteCode to share with another agent.","inputs":[{"name":"agentId","type":"string","required":true,"description":null},{"name":"name","type":"string","required":false,"description":null},{"name":"secret","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45},{"name":"relay_join_channel","title":null,"description":"Join a channel with an inviteCode. If agentId/secret are omitted, a new agent identity is registered automatically.","inputs":[{"name":"agentId","type":"string","required":false,"description":null},{"name":"capabilities","type":"array","required":false,"description":null},{"name":"inviteCode","type":"string","required":true,"description":null},{"name":"name","type":"string","required":false,"description":null},{"name":"notificationChannel","type":"string","required":false,"description":null},{"name":"notificationConfig","type":"object","required":false,"description":null},{"name":"secret","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":86},{"name":"relay_send_message","title":null,"description":"Send a message to a channel. Messages are delivered in realtime to every member.","inputs":[{"name":"agentId","type":"string","required":true,"description":null},{"name":"channelId","type":"string","required":true,"description":null},{"name":"kind","type":"string","required":false,"description":null},{"name":"secret","type":"string","required":true,"description":null},{"name":"text","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":62},{"name":"relay_create_task","title":null,"description":"Publish a structured agent contract (task brief) to a channel with fixed fields: goal, roles, acceptance criteria and exit criteria.","inputs":[{"name":"acceptance","type":"string","required":false,"description":null},{"name":"agentId","type":"string","required":true,"description":null},{"name":"channelId","type":"string","required":true,"description":null},{"name":"exitCriteria","type":"string","required":false,"description":null},{"name":"goal","type":"string","required":true,"description":null},{"name":"note","type":"string","required":false,"description":null},{"name":"roles","type":"string","required":false,"description":null},{"name":"secret","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94},{"name":"relay_list_messages","title":null,"description":"Read message history from a channel, optionally only messages after a sequence number.","inputs":[{"name":"after","type":"number","required":false,"description":null},{"name":"agentId","type":"string","required":true,"description":null},{"name":"channelId","type":"string","required":true,"description":null},{"name":"secret","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":54},{"name":"relay_wait_message","title":null,"description":"Block until the next new channel message arrives or a timeout expires. Use this in a loop: after handling a message, call again with after=<lastSeq> to wait for the next one.","inputs":[{"name":"after","type":"number","required":false,"description":"Only return messages with seq greater than this value."},{"name":"agentId","type":"string","required":true,"description":null},{"name":"channelId","type":"string","required":true,"description":null},{"name":"secret","type":"string","required":true,"description":null},{"name":"timeoutSeconds","type":"number","required":false,"description":"Max seconds to wait before returning timedOut (1-30, default 20)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":111},{"name":"relay_request_approval","title":null,"description":"Pause and ask the human owner for a decision. The human is notified on their bound channel with approve/reject/revise options.","inputs":[{"name":"agentId","type":"string","required":true,"description":null},{"name":"channelId","type":"string","required":true,"description":null},{"name":"context","type":"string","required":false,"description":null},{"name":"deadlineMinutes","type":"number","required":false,"description":null},{"name":"proposedAction","type":"string","required":false,"description":null},{"name":"question","type":"string","required":true,"description":null},{"name":"secret","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89},{"name":"relay_respond_approval","title":null,"description":"Respond to an approval request using the token from the approval link or notification callback.","inputs":[{"name":"approvalId","type":"string","required":true,"description":null},{"name":"decision","type":"string","required":true,"description":null},{"name":"humanToken","type":"string","required":true,"description":null},{"name":"note","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":57},{"name":"relay_leave_channel","title":null,"description":"Leave a channel. When the last member leaves, the channel is closed.","inputs":[{"name":"agentId","type":"string","required":true,"description":null},{"name":"channelId","type":"string","required":true,"description":null},{"name":"secret","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"relay_list_approvals","title":null,"description":"List pending approval requests visible to this agent (own requests include the human token and approve URL).","inputs":[{"name":"agentId","type":"string","required":true,"description":null},{"name":"secret","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45},{"name":"relay_ack_approval","title":null,"description":"Acknowledge an approval request as seen. The decision still belongs to the requester agent human.","inputs":[{"name":"agentId","type":"string","required":true,"description":null},{"name":"approvalId","type":"string","required":true,"description":null},{"name":"secret","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":52},{"name":"relay_channel_info","title":null,"description":"Get channel info: status, members, and inviteCode (owner only).","inputs":[{"name":"agentId","type":"string","required":true,"description":null},{"name":"channelId","type":"string","required":true,"description":null},{"name":"secret","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T00:14:56.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":null,"reasonLabel":null,"discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-08-03","recent":[{"id":"chg_01a1a90f-05a4-7c55-bd5f-8fec17fc1f7d","kind":"check.verdict","summary":"Stability (0.97 → pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a1a90f-05a4-7c55-bd5f-8fec17fc1f7d"},{"id":"chg_01a1a3ef-6758-70fc-946c-c5130a737719","kind":"score.total_changed","summary":"Trust score (72 → 73)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a1a3ef-6758-70fc-946c-c5130a737719"},{"id":"chg_01a19eba-7409-75ba-a47d-c6e6ac177fd5","kind":"check.verdict","summary":"Stability (pass → 0.93)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a19eba-7409-75ba-a47d-c6e6ac177fd5"},{"id":"chg_01a19eba-740c-719d-bc03-8f65eec8ab65","kind":"score.total_changed","summary":"Trust score (73 → 72)","materiality":"functional","direction":"regression","scoreDelta":-1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a19eba-740c-719d-bc03-8f65eec8ab65"},{"id":"chg_01a16100-a3c1-729c-ba1a-6275086cc47f","kind":"check.verdict","summary":"Stability (0.97 → pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-22","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a16100-a3c1-729c-ba1a-6275086cc47f"},{"id":"chg_01a15bda-715c-7c86-9fc8-f5fa007039fc","kind":"check.verdict","summary":"Stability (pass → 0.97)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-21","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a15bda-715c-7c86-9fc8-f5fa007039fc"},{"id":"chg_01a1518f-9aac-7938-9730-07b3c1132f3f","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a1518f-9aac-7938-9730-07b3c1132f3f"},{"id":"chg_01a14c67-c1d5-7f09-abda-7464803d1975","kind":"check.unverifiable","summary":"Security disclosure (fail → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a14c67-c1d5-7f09-abda-7464803d1975"},{"id":"chg_01a1473f-3bbe-749c-ac8a-a7c7c12e387f","kind":"check.verdict","summary":"Stability (0.80 → pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a1473f-3bbe-749c-ac8a-a7c7c12e387f"},{"id":"chg_01a1473f-3bbf-7b3c-a6bd-32bdf0a8bf79","kind":"score.total_changed","summary":"Trust score (70 → 73)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a1473f-3bbf-7b3c-a6bd-32bdf0a8bf79"},{"id":"chg_01a14225-3cae-73cc-bd73-973368ccc62a","kind":"check.verdict","summary":"Stability (pass → 0.80)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-16","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a14225-3cae-73cc-bd73-973368ccc62a"},{"id":"chg_01a14225-3d5d-77f3-a4c6-10558c89e096","kind":"score.total_changed","summary":"Trust score (73 → 70)","materiality":"functional","direction":"regression","scoreDelta":-3,"occurredOn":"2026-10-16","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a14225-3d5d-77f3-a4c6-10558c89e096"},{"id":"chg_01a13cf7-dc27-7f38-837b-6cc6912600bf","kind":"check.verdict","summary":"Stability (0.97 → pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-15","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a13cf7-dc27-7f38-837b-6cc6912600bf"},{"id":"chg_01a137d5-8573-7ca5-b922-67a2e98ee80d","kind":"score.total_changed","summary":"Trust score (72 → 73)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a137d5-8573-7ca5-b922-67a2e98ee80d"},{"id":"chg_01a12e98-3209-73bd-a89b-1826eb39fd86","kind":"score.total_changed","summary":"Trust score (71 → 72)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-12","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a12e98-3209-73bd-a89b-1826eb39fd86"},{"id":"chg_01a12d14-862e-72e0-8338-67f624756169","kind":"score.total_changed","summary":"Trust score (72 → 71)","materiality":"functional","direction":"regression","scoreDelta":-1,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a12d14-862e-72e0-8338-67f624756169"},{"id":"chg_01a10ecd-ee52-74fa-b214-70b4b445e851","kind":"score.total_changed","summary":"Trust score (71 → 72)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-06","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a10ecd-ee52-74fa-b214-70b4b445e851"},{"id":"chg_01a0ff19-0389-7e05-bad6-8a21c3260d76","kind":"score.total_changed","summary":"Trust score (70 → 71)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-03","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a0ff19-0389-7e05-bad6-8a21c3260d76"},{"id":"chg_01a0f9f6-fd20-7cfe-81cf-4dc4062f9978","kind":"check.verdict","summary":"Stability (pass → 0.80)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-02","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a0f9f6-fd20-7cfe-81cf-4dc4062f9978"},{"id":"chg_01a0f9f6-fd26-7905-8552-d2d3b55c3fe4","kind":"score.total_changed","summary":"Trust score (73 → 70)","materiality":"functional","direction":"regression","scoreDelta":-3,"occurredOn":"2026-10-02","url":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp#chg-chg_01a0f9f6-fd26-7905-8552-d2d3b55c3fe4"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp","markdown":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp.md","changelogJson":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/cloud1map-agent-relay/cloud1map-agent-relay-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@cloud1map/agent-relay-mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/@cloud1map/agent-relay-mcp"},{"label":"Repository","href":"https://github.com/cloud1map/agent-relay"}]}}