{"$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-06T04:06:35.892Z","url":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit.md","server":{"slug":"io-usefulapi-traffit","name":"Traffit MCP by usefulapi","registryName":"io.usefulapi/traffit","description":"Read candidates, jobs, stages and clients; add notes to candidates in Traffit.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"traffit","type":"remote","identifier":"https://traffit.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit","version":"1.5.3","transport":null,"scoredAt":"2026-11-05T15:03:57.605Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":null,"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}]},"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":"traffit","type":"remote","identifier":"https://traffit.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit.md"}],"facts":[{"label":"Endpoint","value":"https://traffit.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.5.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"traffit_list_candidates","title":"List candidates","description":"List candidates in the ATS with paging, filters (e.g. created_at, name, lastname) and sort. Returns total_count and items. Scope: employee. GET /employees/.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":149},{"name":"traffit_get_candidate","title":"Get a candidate","description":"Get one candidate by id with contact data, status, files list and custom fields. Scope: employee. GET /employees/{id}.","inputs":[{"name":"candidate_id","type":"string","required":true,"description":"The candidate id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":51},{"name":"traffit_get_candidate_tags","title":"Get candidate tags","description":"List the tags of one candidate. Scope: employee. GET /employees/{id}/tags.","inputs":[{"name":"candidate_id","type":"string","required":true,"description":"The candidate id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":44},{"name":"traffit_get_candidate_jobs","title":"Get candidate jobs","description":"List the jobs (recruitments) a candidate takes part in. Scope: employee. GET /employees/{id}/recruitments.","inputs":[{"name":"candidate_id","type":"string","required":true,"description":"The candidate id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":53},{"name":"traffit_get_candidate_activities","title":"Get candidate activities","description":"List the activity history of one candidate (notes, stage moves, mails). Scope: employee. GET /employees/{id}/activities.","inputs":[{"name":"candidate_id","type":"string","required":true,"description":"The candidate id (numeric id)."},{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":155},{"name":"traffit_get_candidate_files","title":"Get candidate files","description":"List the files (file names and upload dates) of one candidate. Scope: employee. GET /employees/{id}/files.","inputs":[{"name":"candidate_id","type":"string","required":true,"description":"The candidate id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":51},{"name":"traffit_get_candidate_sources","title":"Get candidate sources","description":"List where one candidate came from (source records). Scope: source. GET /sources/employees/{id}.","inputs":[{"name":"candidate_id","type":"string","required":true,"description":"The candidate id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"traffit_list_jobs","title":"List jobs","description":"List jobs (recruitments) with paging, filters and sort. Scope: recruitment. GET /recruitments/.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":136},{"name":"traffit_get_job","title":"Get a job","description":"Get one job (recruitment) by id with client, responsible people, status and custom fields. Scope: recruitment. GET /recruitments/{id}.","inputs":[{"name":"job_id","type":"string","required":true,"description":"The job id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":57},{"name":"traffit_list_job_candidates","title":"List candidates of a job","description":"List the candidates attached to one job. Scope: recruitment. GET /recruitments/{id}/employees.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"job_id","type":"string","required":true,"description":"The job id (numeric id)."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":149},{"name":"traffit_list_job_states","title":"List job stages","description":"List the pipeline stages (states) of one job. Scope: recruitment. GET /recruitments/{id}/states.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"job_id","type":"string","required":true,"description":"The job id (numeric id)."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":152},{"name":"traffit_get_job_stage_counts","title":"Count candidates per stage","description":"Count the candidates in each stage of one job. Scope: recruitment. GET /recruitments/{id}/states/counter.","inputs":[{"name":"job_id","type":"string","required":true,"description":"The job id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":52},{"name":"traffit_list_stage_candidates","title":"List candidates in a job stage","description":"List the candidates that are now in one stage of one job. Get stage ids from traffit_list_job_states. Scope: recruitment. GET /recruitments/{job}/states/{state}/employees.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"job_id","type":"string","required":true,"description":"The job id (numeric id)."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."},{"name":"state_id","type":"string","required":true,"description":"The stage (state) id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":185},{"name":"traffit_list_clients","title":"List clients","description":"List client companies (CRM) with paging, filters and sort. Scope: client. GET /clients/.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":133},{"name":"traffit_get_client","title":"Get a client","description":"Get one client company by id. Scope: client. GET /clients/{id}.","inputs":[{"name":"client_id","type":"string","required":true,"description":"The client id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":41},{"name":"traffit_list_contacts","title":"List client contacts","description":"List contact people (crm_persons) of client companies. Scope: crm_person. GET /crm_persons/.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":135},{"name":"traffit_get_contact","title":"Get a client contact","description":"Get one contact person by id. Scope: crm_person. GET /crm_persons/{id}.","inputs":[{"name":"contact_id","type":"string","required":true,"description":"The contact (crm_person) id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":48},{"name":"traffit_list_crm_activities","title":"List CRM activities","description":"List CRM activities (calls, meetings, notes on clients and contacts). Scope: crm_activity. GET /crm_activities/.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":140},{"name":"traffit_list_users","title":"List users","description":"List users of the Traffit account with their groups and permission groups. Scope: user. GET /users/.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":135},{"name":"traffit_get_user","title":"Get a user","description":"Get one Traffit user by id. Scope: user. GET /users/{id}.","inputs":[{"name":"user_id","type":"string","required":true,"description":"The user id (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"traffit_list_talent_pools","title":"List talent pools","description":"List talent pools (named groups of candidates). Scope: talent. GET /talents.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":133},{"name":"traffit_list_sources","title":"List sources","description":"List candidate sources (job boards, referrals). Scope: source. GET /sources.","inputs":[{"name":"filter","type":"object","required":false,"description":"Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API."},{"name":"page","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Records per page (default 20, max 100)."},{"name":"sort","type":"object","required":false,"description":"Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":129},{"name":"traffit_get_workflow","title":"Get a workflow","description":"Get one recruitment workflow by id with its stages. Scope: dictionary. GET /workflows/{id}.","inputs":[{"name":"workflow_id","type":"string","required":true,"description":"The workflow id (a job shows its workflow_id) (numeric id)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":54},{"name":"traffit_add_candidate_note","title":"Add a note to a candidate","description":"WRITE: add a text note to one candidate's activity history. Each call adds a new note, so do not repeat a call that succeeded. Scope: employee. POST /employees/{id}/notes.","inputs":[{"name":"candidate_id","type":"string","required":true,"description":"The candidate id (numeric id)."},{"name":"content","type":"string","required":true,"description":"The note text."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":76}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T15:03:57.000Z","track":"remote","endpoint":"https://traffit.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":"traffit.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-31","recent":[{"id":"chg_01a1966e-dc71-76e2-8253-2b58c4e83676","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-traffit/traffit#chg-chg_01a1966e-dc71-76e2-8253-2b58c4e83676"},{"id":"chg_01a1966e-dc72-7170-af59-ffdf43d7c744","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit#chg-chg_01a1966e-dc72-7170-af59-ffdf43d7c744"},{"id":"chg_01a1966e-dc72-7641-a4c7-b3696492ffc9","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-traffit/traffit#chg-chg_01a1966e-dc72-7641-a4c7-b3696492ffc9"},{"id":"chg_01a1966e-dc72-7b78-b57b-136e758b9acf","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit#chg-chg_01a1966e-dc72-7b78-b57b-136e758b9acf"},{"id":"chg_01a1966e-dc73-717e-b643-aa21732c8ee8","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-traffit/traffit#chg-chg_01a1966e-dc73-717e-b643-aa21732c8ee8"},{"id":"chg_01a1966e-dc73-75d9-aae3-9413684faff9","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-traffit/traffit#chg-chg_01a1966e-dc73-75d9-aae3-9413684faff9"},{"id":"chg_01a1966e-dc73-7a32-84c5-620ca69477c0","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-traffit/traffit#chg-chg_01a1966e-dc73-7a32-84c5-620ca69477c0"},{"id":"chg_01a193fd-1903-7d5c-b266-216433133784","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit#chg-chg_01a193fd-1903-7d5c-b266-216433133784"},{"id":"chg_01a192b1-15a8-7d5a-9b0f-b8f1519dce03","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit#chg-chg_01a192b1-15a8-7d5a-9b0f-b8f1519dce03"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit","markdown":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-traffit/traffit.xml","external":[{"label":"Remote endpoint","href":"https://traffit.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/traffit/"}]}}