{"$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-05T17:55:35.656Z","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone.md","server":{"slug":"io-usefulapi-spoke-phone","name":"Spoke Phone MCP by usefulapi","registryName":"io.usefulapi/spoke-phone","description":"Read Spoke calls, transcripts, directory and users; manage phonebook contacts and send SMS.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"spoke-phone","type":"remote","identifier":"https://spoke-phone.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone","version":"1.11.3","transport":null,"scoredAt":"2026-11-05T15:01:43.607Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":-44,"history":[{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":18},{"date":"2026-10-31","total":66},{"date":"2026-10-30","total":63},{"date":"2026-10-29","total":62},{"date":"2026-10-28","total":62},{"date":"2026-10-27","total":61},{"date":"2026-10-26","total":61}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"spoke-phone","type":"remote","identifier":"https://spoke-phone.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone.md"}],"facts":[{"label":"Endpoint","value":"https://spoke-phone.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.11.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"spokephone_list_calls","title":"List calls","description":"List call records (oldest first by default; pass sortOrder descending for the latest calls), with caller, direction, duration, assigned user/team and recording URLs. Filter by time window or the external party's number. Returns { meta: { next }, calls }.","inputs":[{"name":"before","type":"integer","required":false,"description":"Only calls created before this time (unix timestamp in milliseconds)."},{"name":"contactNumber","type":"string","required":false,"description":"Only calls with this external party number (+E.164)."},{"name":"includeActive","type":"boolean","required":false,"description":"Also return calls still in progress (default false)."},{"name":"includeRecordingUrl","type":"boolean","required":false,"description":"Include recording/voicemail URLs (default true)."},{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"modified","type":"integer","required":false,"description":"Only calls created or modified since this time (calls gain notes/recordings after they end) (unix timestamp in milliseconds)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."},{"name":"since","type":"integer","required":false,"description":"Only calls created at or after this time (unix timestamp in milliseconds)."},{"name":"sortOrder","type":"string","required":false,"description":"ascending = oldest first (the API default); descending = latest first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":247},{"name":"spokephone_get_call","title":"Get a call","description":"Get one call record by call id.","inputs":[{"name":"id","type":"string","required":true,"description":"Call id."},{"name":"includeRecordingUrl","type":"boolean","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":36},{"name":"spokephone_get_call_recording","title":"Get a call recording","description":"Get the details and download URL of one recording of a call.","inputs":[{"name":"id","type":"string","required":true,"description":"Call id."},{"name":"recordingId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":42},{"name":"spokephone_list_call_content_analysis","title":"List a call's AI analysis","description":"List the Enlighten AI content-analysis results (summaries etc.) stored for one call.","inputs":[{"name":"artifact","type":"string","required":false,"description":"Artifact schema name, e.g. \"generalSummary\"."},{"name":"id","type":"string","required":true,"description":"Call id."},{"name":"limit","type":"integer","required":false,"description":"Page size (default 5, max 10)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94},{"name":"spokephone_list_directory","title":"List the directory","description":"List or search the unified Spoke directory (users, teams, devices) with extensions and live availability. Exactly one of extension, phoneNumber or ivrKey may be used to look up an entry. Returns { meta: { next }, entries }.","inputs":[{"name":"extension","type":"string","required":false,"description":"Exact extension number."},{"name":"includeHiddenCallGroups","type":"boolean","required":false,"description":null},{"name":"includeSuspendedUsers","type":"boolean","required":false,"description":null},{"name":"ivrKey","type":"string","required":false,"description":"Exact IVR key."},{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."},{"name":"phoneNumber","type":"string","required":false,"description":"Exact phone number assigned to an entry."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":158},{"name":"spokephone_get_directory_entry","title":"Get a directory entry","description":"Get one directory entry (user, team or device) by entry id.","inputs":[{"name":"entryId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":34},{"name":"spokephone_list_users","title":"List users","description":"List active Spoke users with real-time availability. Optionally filter by email address.","inputs":[{"name":"email","type":"string","required":false,"description":"Return only the user with this email address."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":42},{"name":"spokephone_get_user","title":"Get a user","description":"Get one Spoke user with availability, by user id.","inputs":[{"name":"id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":29},{"name":"spokephone_list_teams","title":"List teams","description":"List Spoke teams (call groups) with their members and availability.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":64},{"name":"spokephone_list_locations","title":"List locations","description":"List the locations of the organisation.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":56},{"name":"spokephone_get_location","title":"Get a location","description":"Get one location by id.","inputs":[{"name":"locationId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":24},{"name":"spokephone_list_location_users","title":"List a location's users","description":"List the users assigned to one location.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"locationId","type":"string","required":true,"description":null},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":66},{"name":"spokephone_list_phonebooks","title":"List phonebooks","description":"List shared phonebooks (the CRM contact containers used for caller ID), each with its contacts. Use limit 0 to list phonebooks without contacts.","inputs":[{"name":"excludeEmpty","type":"boolean","required":false,"description":"Skip phonebooks that have no matching contacts."},{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"search","type":"string","required":false,"description":"Filter contacts (at least 3 characters)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":90},{"name":"spokephone_get_phonebook","title":"Get a phonebook","description":"Get one phonebook and a page of its contacts. The id may also be a user's email address for that user's personal phonebook.","inputs":[{"name":"id","type":"string","required":true,"description":null},{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."},{"name":"search","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":91},{"name":"spokephone_get_phonebook_contact","title":"Get a phonebook contact","description":"Get one contact of a phonebook.","inputs":[{"name":"contactId","type":"string","required":true,"description":null},{"name":"id","type":"string","required":true,"description":"Phonebook id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"spokephone_list_transcripts","title":"List transcripts","description":"List call and voicemail transcripts. Filter by time window or source.","inputs":[{"name":"before","type":"integer","required":false,"description":"Created before (unix timestamp in milliseconds)."},{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."},{"name":"since","type":"integer","required":false,"description":"Created at or after (unix timestamp in milliseconds)."},{"name":"sourceContextId","type":"string","required":false,"description":null},{"name":"sourceId","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":110},{"name":"spokephone_get_transcript","title":"Get a transcript","description":"Get one transcript by id.","inputs":[{"name":"id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":24},{"name":"spokephone_get_transcript_segments","title":"Get transcript segments","description":"Get the per-speaker segments of one transcript.","inputs":[{"name":"id","type":"string","required":true,"description":"Transcript id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":31},{"name":"spokephone_list_content_analysis","title":"List AI content analysis","description":"List AI content-analysis results (needs the Enlighten entitlement). Filter by time, source, participant or artifact name.","inputs":[{"name":"artifact","type":"string","required":false,"description":"Artifact schema name, e.g. \"generalSummary\"."},{"name":"before","type":"integer","required":false,"description":"First recording/transcript started before (unix timestamp in milliseconds)."},{"name":"contactNumber","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"Page size (default 5, max 10)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."},{"name":"participantId","type":"string","required":false,"description":null},{"name":"since","type":"integer","required":false,"description":"First recording/transcript started at or after (unix timestamp in milliseconds)."},{"name":"sourceId","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":151},{"name":"spokephone_get_content_analysis","title":"Get an AI content analysis","description":"Get one content-analysis result by id.","inputs":[{"name":"id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":26},{"name":"spokephone_list_webhooks","title":"List webhooks","description":"List the webhook subscriptions of the account.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":58},{"name":"spokephone_get_webhook","title":"Get a webhook","description":"Get one webhook subscription by id.","inputs":[{"name":"id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":25},{"name":"spokephone_list_trunks","title":"List SIP trunks","description":"List the SIP trunks that overlay a legacy PBX onto Spoke.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Page size (default 100, max 1000)."},{"name":"next","type":"string","required":false,"description":"Cursor from the previous reply's meta.next; omit for the first page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":64},{"name":"spokephone_get_trunk","title":"Get a SIP trunk","description":"Get one SIP trunk by id.","inputs":[{"name":"trunkId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":26},{"name":"spokephone_send_sms","title":"Send an SMS","description":"WRITE: send a real SMS to a phone number (or a group MMS to several) from a company number or from a Spoke user's conversation number. The message appears in the Spoke conversation. Confirm the recipient and text with the user first. Needs an SMS-enabled number. POST /conversationMessages.","inputs":[{"name":"assignUsers","type":"array","required":false,"description":"User emails to assign (required with routingAction assign_users)."},{"name":"body","type":"string","required":true,"description":"Message text, up to 1600 characters."},{"name":"confirm","type":"boolean","required":true,"description":"Must be true: the user approved sending this exact text to these recipients."},{"name":"conversationName","type":"string","required":false,"description":null},{"name":"fromNumber","type":"string","required":false,"description":"Company number to send from (+E.164). Give this OR fromUserEmail."},{"name":"fromUserEmail","type":"string","required":false,"description":"Email of the Spoke user whose conversation number sends the message. Give this OR fromNumber."},{"name":"notificationMode","type":"string","required":false,"description":null},{"name":"routingAction","type":"string","required":false,"description":"Who handles replies in a new conversation."},{"name":"to","type":"array","required":true,"description":"Recipient number(s) in +E.164 form. More than one sends a group MMS."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":234},{"name":"spokephone_save_phonebook_contact","title":"Add or replace a phonebook contact","description":"WRITE: add a contact to a phonebook, REPLACING any contact there with the same contactId (other contacts are untouched). The phonebook id may be a user's email for a personal phonebook. Contacts feed caller ID. PUT /phonebooks/{id}/contacts.","inputs":[{"name":"companyName","type":"string","required":false,"description":null},{"name":"contactId","type":"string","required":false,"description":"Your own stable id for the contact; reuse it to replace that contact."},{"name":"countryIso","type":"string","required":false,"description":"ISO country code for formatting local numbers, e.g. GB."},{"name":"emails","type":"array","required":false,"description":null},{"name":"firstName","type":"string","required":false,"description":null},{"name":"jobTitle","type":"string","required":false,"description":null},{"name":"lastName","type":"string","required":false,"description":null},{"name":"phoneNumbers","type":"array","required":true,"description":"At least one number, e.g. { label: 'work', value: '+442071234567' }."},{"name":"phonebookId","type":"string","required":true,"description":"Phonebook id (from spokephone_list_phonebooks) or a user's email address."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":205},{"name":"spokephone_delete_phonebook_contact","title":"Delete a phonebook contact","description":"WRITE, destructive: delete one contact from a phonebook (it stops showing in caller ID). DELETE /phonebooks/{id}/contacts/{contactId}.","inputs":[{"name":"confirm","type":"boolean","required":true,"description":"Must be true: the user approved deleting this contact."},{"name":"contactId","type":"string","required":true,"description":null},{"name":"phonebookId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":77}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T15:01:43.000Z","track":"remote","endpoint":"https://spoke-phone.usefulapi.io/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"spoke-phone.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-26","recent":[{"id":"chg_01a19671-5d04-756e-9114-4770c5bdffa9","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a19671-5d04-756e-9114-4770c5bdffa9"},{"id":"chg_01a19671-5d05-7591-80af-f1d4ec0b610a","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a19671-5d05-7591-80af-f1d4ec0b610a"},{"id":"chg_01a19671-5d05-7c88-8044-32ac675332aa","kind":"check.unverifiable","summary":"Stability (0.17 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a19671-5d05-7c88-8044-32ac675332aa"},{"id":"chg_01a19671-5d06-729b-aa8c-2c17bce56127","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a19671-5d06-729b-aa8c-2c17bce56127"},{"id":"chg_01a19671-5d06-79b0-919e-95629c1645bf","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a19671-5d06-79b0-919e-95629c1645bf"},{"id":"chg_01a19671-5d07-709a-97b3-6bae4bb0235f","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a19671-5d07-709a-97b3-6bae4bb0235f"},{"id":"chg_01a19671-5d07-7729-8473-fd4dc878254d","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a19671-5d07-7729-8473-fd4dc878254d"},{"id":"chg_01a19671-5d07-7dd2-b663-9a905527ff19","kind":"score.total_changed","summary":"Trust score (66 → 18)","materiality":"functional","direction":"regression","scoreDelta":-48,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a19671-5d07-7dd2-b663-9a905527ff19"},{"id":"chg_01a193fd-c93b-7cc1-8ddd-e5ca19c81053","kind":"check.verdict","summary":"Authorization (partial → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93b-7cc1-8ddd-e5ca19c81053"},{"id":"chg_01a193fd-c93c-7676-ad77-80510d829fc4","kind":"check.verdict","summary":"MCP protocol (fail → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93c-7676-ad77-80510d829fc4"},{"id":"chg_01a193fd-c93c-7dc9-865c-bde196828c86","kind":"prompt.added","summary":"New prompt “check_who_is_available_right_now”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93c-7dc9-865c-bde196828c86"},{"id":"chg_01a193fd-c93d-7370-a5f0-8d3423952900","kind":"prompt.added","summary":"New prompt “keep_caller_id_contacts_up_to_date”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93d-7370-a5f0-8d3423952900"},{"id":"chg_01a193fd-c93d-7a63-991e-3305e2871408","kind":"prompt.added","summary":"New prompt “read_a_call_s_transcript_and_ai_summary”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93d-7a63-991e-3305e2871408"},{"id":"chg_01a193fd-c93e-71d5-b8ae-bec42333339a","kind":"prompt.added","summary":"New prompt “review_yesterday_s_calls”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93e-71d5-b8ae-bec42333339a"},{"id":"chg_01a193fd-c93e-76dc-98a2-0ce29ed8a430","kind":"prompt.added","summary":"New prompt “see_how_locations_and_teams_are_staffed”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93e-76dc-98a2-0ce29ed8a430"},{"id":"chg_01a193fd-c93f-7318-839c-8034ca89f211","kind":"prompt.added","summary":"New prompt “send_a_text_message_after_a_call”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93f-7318-839c-8034ca89f211"},{"id":"chg_01a193fd-c93f-786a-9f1e-7c1bb4776477","kind":"server.version_changed","summary":"Server version (1.7.0 → 1.9.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93f-786a-9f1e-7c1bb4776477"},{"id":"chg_01a193fd-c93f-7d8b-9c7c-3a22136b2391","kind":"protocol.version_changed","summary":"MCP protocol version (2025-06-18 → 2025-11-25)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c93f-7d8b-9c7c-3a22136b2391"},{"id":"chg_01a193fd-c940-72ff-abfb-6806489f6ff8","kind":"score.total_changed","summary":"Trust score (63 → 66)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a193fd-c940-72ff-abfb-6806489f6ff8"},{"id":"chg_01a19321-3c67-77ec-b8fd-1e57d761aa72","kind":"server.version_changed","summary":"Server version (1.6.0 → 1.7.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone#chg-chg_01a19321-3c67-77ec-b8fd-1e57d761aa72"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone","markdown":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-spoke-phone/spoke-phone.xml","external":[{"label":"Remote endpoint","href":"https://spoke-phone.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/spoke-phone/"}]}}