{"$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:38.817Z","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr.md","server":{"slug":"io-usefulapi-jisr","name":"Jisr MCP by usefulapi","registryName":"io.usefulapi/jisr","description":"Read employees, attendance, leave and payroll; create employee records and import device punches.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"jisr","type":"remote","identifier":"https://jisr.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr","version":"1.7.3","transport":null,"scoredAt":"2026-11-05T15:02:50.126Z"},"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":65},{"date":"2026-10-31","total":64}]},"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":"jisr","type":"remote","identifier":"https://jisr.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr.md"}],"facts":[{"label":"Endpoint","value":"https://jisr.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.7.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"jisr_list_employees","title":"List employees","description":"List the organization's employees (active by default) with code, names (English/Arabic), job title, department, business unit, employment type, line manager, joining date and status. Filter by active/inactive status, creation date and joining, termination or deletion date ranges. If the API key also has the 'Get Employee Financial Info' / 'Accounting Info' permissions, Jisr adds salary, bank (IBAN) and accounting fields: sensitive HR data. GET /openapi/v1/employees.","inputs":[{"name":"created_from","type":"string","required":false,"description":"Only employees created on or after this date (yyyy-mm-dd)."},{"name":"deleted_from","type":"string","required":false,"description":"Only employees deleted from the system on or after this date."},{"name":"deleted_to","type":"string","required":false,"description":"Only employees deleted from the system on or before this date."},{"name":"joining_from","type":"string","required":false,"description":"Only employees who joined on or after this date."},{"name":"joining_to","type":"string","required":false,"description":"Only employees who joined on or before this date."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"rpp","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `rpp`."},{"name":"status","type":"string","required":false,"description":"Only active or only inactive employees."},{"name":"terminated_from","type":"string","required":false,"description":"Only employees off-boarded on or after this date."},{"name":"terminated_to","type":"string","required":false,"description":"Only employees off-boarded on or before this date."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":311},{"name":"jisr_get_employee","title":"Get employee","description":"One employee's profile by id (UUID from jisr_list_employees): names, code, gender, marital status, phone, emails, date of birth, passport/ID number, address, line manager, department, business unit, employment type, location, nationality and contract. GET /openapi/v1/employees/basic_info?id=.","inputs":[{"name":"id","type":"string","required":true,"description":"Employee id (UUID)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":90},{"name":"jisr_get_employee_financial_info","title":"Get employee financial info","description":"One employee's financial details by id: salary components and bank account (IBAN). Sensitive payroll data; needs the 'Get Employee Financial Info' permission on the API key. GET /openapi/v1/employees/financial_info?id=.","inputs":[{"name":"id","type":"string","required":true,"description":"Employee id (UUID)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":73},{"name":"jisr_list_lookup","title":"List lookup values","description":"List one of the organization's lookup tables: departments, employment_types, business_units, locations, nationalities or outsourcing_companies, with their ids and English/Arabic names. Use the ids when creating an employee. GET /openapi/v1/lookups/{table}.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"rpp","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `rpp`."},{"name":"table","type":"string","required":true,"description":"Which lookup table."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":129},{"name":"jisr_list_attendance_summary","title":"List attendance summary","description":"Attendance summary per employee for a date range (default: the current month): total working hours, late arrival, early departure, extra and approved overtime, absence days and records. Filter by one employee or by active/inactive status. GET /openapi/v1/attendance/summary.","inputs":[{"name":"employee_id","type":"string","required":false,"description":"Only this employee (UUID)."},{"name":"from","type":"string","required":false,"description":"Period start (yyyy-mm-dd). Default: start of the current month."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"rpp","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `rpp`."},{"name":"status","type":"string","required":false,"description":"Only active or inactive employees."},{"name":"to","type":"string","required":false,"description":"Period end (yyyy-mm-dd)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":184},{"name":"jisr_list_attendance_punches","title":"List attendance punches","description":"List raw clock-in/out punches that were received from punch devices, either the ones that were processed successfully or the ones that failed, in a time window (Jisr's default: the last hour). Each punch has id, punch_time, employee_code, terminal_sn and clocking_id. GET /openapi/v1/attendance_logs.","inputs":[{"name":"from","type":"string","required":false,"description":"Window start, yyyy-mm-dd hh:mm:ss. Default: one hour ago."},{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `limit`."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"status","type":"string","required":true,"description":"Which punches: processed successfully, or failed."},{"name":"to","type":"string","required":false,"description":"Window end, yyyy-mm-dd hh:mm:ss. Default: now."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":194},{"name":"jisr_get_annual_leave_balances","title":"Get annual leave balances","description":"Annual leave balance summaries per employee (all employees, or only the given employee codes, at most 100). Only the annual leave type is supported by Jisr. GET /openapi/v1/employee_leaves/summary.","inputs":[{"name":"employee_codes","type":"array","required":false,"description":"Employee codes (not ids) to include; omit for everyone."},{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `limit`."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":135},{"name":"jisr_list_paygroups","title":"List pay groups","description":"List the organization's pay groups (id and name). The pay group id is needed for payroll and accrual queries. GET /openapi/v1/paygroups.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"rpp","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `rpp`."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":99},{"name":"jisr_list_payroll_transactions","title":"List payroll transactions","description":"Payroll transactions per employee for one settlement type. type 'payrun' (the regular payroll) needs pay_period and paygroup_id; 'final_settlements', 'vacations_settlements' and 'out_off_payroll_transactions' need a from/to date range. Optionally filter by employee ids or transaction type ids (jisr_list_gl_transaction_types). Sensitive payroll data. GET /openapi/v1/payroll_transactions.","inputs":[{"name":"employee_ids","type":"array","required":false,"description":"Only these employees (UUIDs)."},{"name":"from","type":"string","required":false,"description":"Start date (yyyy-mm-dd). Required for the other types."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"pay_period","type":"string","required":false,"description":"First day of a confirmed month (yyyy-mm-01). Required for type payrun."},{"name":"paygroup_id","type":"string","required":false,"description":"Pay group id (UUID, jisr_list_paygroups). Required for type payrun."},{"name":"rpp","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `rpp`."},{"name":"to","type":"string","required":false,"description":"End date (yyyy-mm-dd). Required for the other types."},{"name":"transaction_type_ids","type":"array","required":false,"description":"Only these transaction types (UUIDs)."},{"name":"type","type":"string","required":true,"description":"Which settlement."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":283},{"name":"jisr_list_accrual_transactions","title":"List accrual transactions","description":"Accruals per employee for a confirmed pay period: vacations, end_of_service or tickets_provision (amount, vacation days). Sensitive payroll data. GET /openapi/v1/accrual_transactions.","inputs":[{"name":"accrual_type","type":"string","required":true,"description":"Accrual type."},{"name":"employee_ids","type":"array","required":false,"description":"Only these employees (UUIDs)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"pay_period","type":"string","required":true,"description":"First day of a confirmed month (yyyy-mm-01)."},{"name":"paygroup_id","type":"string","required":true,"description":"Pay group id (UUID, jisr_list_paygroups)."},{"name":"rpp","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `rpp`."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":177},{"name":"jisr_get_employee_monthly_payables","title":"Get employee monthly payables","description":"One employee's payables for a month: net salary, earnings, additions and deductions with breakdowns. Only available to organizations Jisr has whitelisted for this API. Sensitive payroll data. GET /openapi/v1/employee_monthly_payables.","inputs":[{"name":"employee_id","type":"string","required":true,"description":"Employee id (UUID)."},{"name":"pay_period_start","type":"string","required":true,"description":"First day of the month (yyyy-mm-01)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"jisr_list_gl_transaction_types","title":"List transaction types","description":"List the payroll (GL) transaction types: id, category (allowances, loan types...), English/Arabic name and status. Use the ids to filter jisr_list_payroll_transactions. GET /openapi/v1/gl_transaction_types.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"rpp","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `rpp`."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":116},{"name":"jisr_list_audit_events","title":"List audit events","description":"The organization's audit trail: who did what and when (module, feature, action, actor, success). Filter by module, event name, event type and a time range. GET /openapi/v1/audit_events.","inputs":[{"name":"event_name","type":"array","required":false,"description":"Event names, e.g. login."},{"name":"event_type","type":"array","required":false,"description":"Event types, e.g. updated."},{"name":"from","type":"string","required":false,"description":"Only events created at or after this ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z."},{"name":"module_name","type":"array","required":false,"description":"Module names, e.g. security."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"per_page","type":"integer","required":false,"description":"Results per page, 1-100 (Jisr's default is 100). Sent as `per_page`."},{"name":"to","type":"string","required":false,"description":"Only events created at or before this ISO 8601 date-time."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":216},{"name":"jisr_list_webhooks","title":"List webhooks","description":"List the webhooks registered for the organization: name, endpoint host, method, status. Authentication data, custom header values and the endpoint's path and query (they can hold secrets) are hidden. Read-only; this server does not create or change webhooks. GET /openapi/v1/webhooks.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":73},{"name":"jisr_create_employee","title":"Create employee","description":"WRITE: register a new employee in Jisr (they are invited to the system by email). Not reversible through this server: there is no delete tool. Get department_id, employment_type_id, location_id and nationality_id from jisr_list_lookup first. Names need at least two parts. POST /openapi/v1/employees.","inputs":[{"name":"code","type":"string","required":true,"description":"Employee code, unique within the organization."},{"name":"contract_end_date","type":"string","required":false,"description":"Contract end date (yyyy-mm-dd), for fixed-term contracts."},{"name":"contract_period","type":"string","required":true,"description":"Contract period."},{"name":"contract_type","type":"string","required":true,"description":"Contract type."},{"name":"department_id","type":"integer","required":true,"description":"Department id (jisr_list_lookup departments)."},{"name":"document_number","type":"string","required":true,"description":"National ID or Iqama number."},{"name":"email","type":"string","required":true,"description":"Work email."},{"name":"employment_type_id","type":"integer","required":true,"description":"Employment type id (jisr_list_lookup employment_types)."},{"name":"full_name_ar","type":"string","required":true,"description":"Full name in Arabic (at least two words)."},{"name":"full_name_en","type":"string","required":true,"description":"Full name in English (at least two words)."},{"name":"gender","type":"string","required":true,"description":null},{"name":"joining_date","type":"string","required":true,"description":"Joining date (yyyy-mm-dd)."},{"name":"location_id","type":"integer","required":true,"description":"Location id (jisr_list_lookup locations)."},{"name":"marital_status","type":"string","required":true,"description":null},{"name":"nationality_id","type":"integer","required":true,"description":"Nationality id (jisr_list_lookup nationalities)."},{"name":"outsourcing_company_id","type":"integer","required":false,"description":"Outsourcing company id, for outsourced staff."},{"name":"personal_email","type":"string","required":false,"description":"Personal email (unique among active employees)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":323},{"name":"jisr_create_attendance_punches","title":"Import attendance punches","description":"WRITE: send a batch of raw clock-in/out punches (at most 100) from a punch device into Jisr attendance. Jisr processes them asynchronously; check the result with jisr_list_attendance_punches. Each punch carries the unique id its device generated; do not invent ids. POST /openapi/v1/attendance_logs.","inputs":[{"name":"punches","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":93}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T15:02:50.000Z","track":"remote","endpoint":"https://jisr.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":"jisr.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_01a19991-d698-7329-af9e-38b254e41e5c","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a19991-d698-7329-af9e-38b254e41e5c"},{"id":"chg_01a19991-d699-7ebc-809c-c17f6ff412a0","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a19991-d699-7ebc-809c-c17f6ff412a0"},{"id":"chg_01a19991-d69a-7cc7-a53b-09dca406a841","kind":"check.unverifiable","summary":"Stability (0.03 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a19991-d69a-7cc7-a53b-09dca406a841"},{"id":"chg_01a19991-d69b-7d09-a17f-792bb1bd67ba","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a19991-d69b-7d09-a17f-792bb1bd67ba"},{"id":"chg_01a19991-d69e-7867-901d-035d3d630b6a","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a19991-d69e-7867-901d-035d3d630b6a"},{"id":"chg_01a19991-d69e-7cc8-9e34-aa54bc7753ab","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a19991-d69e-7cc8-9e34-aa54bc7753ab"},{"id":"chg_01a19991-d69f-7b6e-bc19-b335ed57bc0e","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a19991-d69f-7b6e-bc19-b335ed57bc0e"},{"id":"chg_01a19991-d6a0-7b98-ba5f-b42feffe4e4e","kind":"score.total_changed","summary":"Trust score (65 → 18)","materiality":"functional","direction":"regression","scoreDelta":-47,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a19991-d6a0-7b98-ba5f-b42feffe4e4e"},{"id":"chg_01a1946b-1813-7946-8b16-fb4e386f8fba","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a1946b-1813-7946-8b16-fb4e386f8fba"},{"id":"chg_01a1946b-1814-7963-b8d8-3937f291f276","kind":"score.total_changed","summary":"Trust score (64 → 65)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr#chg-chg_01a1946b-1814-7963-b8d8-3937f291f276"},{"id":"chg_01a193fb-4c25-7ac2-8367-d30c92b99562","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-jisr/jisr#chg-chg_01a193fb-4c25-7ac2-8367-d30c92b99562"},{"id":"chg_01a19057-067e-7233-b09c-452803f31d42","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-jisr/jisr#chg-chg_01a19057-067e-7233-b09c-452803f31d42"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr","markdown":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-jisr/jisr.xml","external":[{"label":"Remote endpoint","href":"https://jisr.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/jisr/"}]}}