{"$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-06T00:21:52.931Z","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace.md","server":{"slug":"io-usefulapi-payspace","name":"PaySpace MCP by usefulapi","registryName":"io.usefulapi/payspace","description":"Read PaySpace employees, organization, payroll runs, payslips and leave records. Read-only.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"payspace","type":"remote","identifier":"https://payspace.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace","version":"1.13.3","transport":null,"scoredAt":"2026-11-05T15:06:42.126Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":-45,"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":67},{"date":"2026-10-31","total":67},{"date":"2026-10-30","total":64},{"date":"2026-10-29","total":63},{"date":"2026-10-28","total":63},{"date":"2026-10-27","total":62},{"date":"2026-10-26","total":62},{"date":"2026-10-25","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":"payspace","type":"remote","identifier":"https://payspace.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace.md"}],"facts":[{"label":"Endpoint","value":"https://payspace.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.13.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"payspace_list_companies","title":"List companies","description":"List the companies (id, code, name, group) the API credentials can access. Company ids go into the company_id argument of the other tools. From the token reply of POST /connect/token.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":52},{"name":"payspace_list_employees","title":"List employees","description":"List active employees of a company with their biographical details (name, employee number, contact, dates). Personal data. GET /odata/v2.0/{company}/Employee. Use payspace_list_all_employees to include terminated employees.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"select","type":"string","required":false,"description":"OData $select: comma-separated field names to return (smaller replies)."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":241},{"name":"payspace_list_all_employees","title":"List all employees (incl. terminated)","description":"List all employees of a company including terminated ones. Personal data. GET /odata/v2.0/{company}/Employee/all.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"select","type":"string","required":false,"description":"OData $select: comma-separated field names to return (smaller replies)."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":220},{"name":"payspace_get_employee","title":"Get an employee","description":"Get one employee's biographical record by EmployeeId (the numeric id from payspace_list_employees). Personal data. GET /odata/v2.0/{company}/Employee({id}).","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"employee_id","type":"string","required":true,"description":"EmployeeId, a whole number"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":99},{"name":"payspace_list_employee_positions","title":"List employee positions","description":"List employee position records (job, organization unit, grade, manager, effective dates). GET /odata/v2.0/{company}/EmployeePosition.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":201},{"name":"payspace_list_employment_statuses","title":"List employment statuses","description":"List employee employment status records (hire, termination, reason, dates). GET /odata/v2.0/{company}/EmployeeEmploymentStatus.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":201},{"name":"payspace_list_suspensions","title":"List employee suspensions","description":"List employee suspension records. GET /odata/v2.0/{company}/EmployeeSuspension.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":191},{"name":"payspace_list_organization_units","title":"List organization units","description":"List the organization hierarchy units (departments, divisions, cost centres) of a company. GET /odata/v2.0/{company}/OrganizationUnit.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":203},{"name":"payspace_list_organization_positions","title":"List organization positions","description":"List the organization positions (position details) defined for a company. GET /odata/v2.0/{company}/OrganizationPositionDetail.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":199},{"name":"payspace_list_jobs","title":"List jobs","description":"List the jobs defined in job management for a company. GET /odata/v2.0/{company}/JobManagement.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":194},{"name":"payspace_list_regions","title":"List regions","description":"List the company's regions. GET /odata/v2.0/{company}/CompanyRegion.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":188},{"name":"payspace_list_payroll_frequencies","title":"List payroll frequencies","description":"List the payroll frequencies of a company (the CompanyFrequency lookup). A value goes into the frequency argument of payspace_list_payroll_components, payspace_list_payroll_runs and payspace_list_recurring_components. GET /odata/v2.0/{company}/Lookup/CompanyFrequency.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":230},{"name":"payspace_list_payroll_runs","title":"List payroll runs","description":"List the payroll runs (periods) of a company for one frequency (the CompanyRun lookup). A value goes into the period argument of payspace_list_payroll_components and payspace_list_recurring_components. GET /odata/v2.0/{company}/Lookup/CompanyRun?frequency=.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"frequency","type":"string","required":true,"description":"Payroll frequency, required by PaySpace. A value from payspace_list_payroll_frequencies (the CompanyFrequency lookup)."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":262},{"name":"payspace_list_payroll_components","title":"List payroll components","description":"List the company's payroll components (earnings, deductions, contributions) with their codes, for one payroll frequency and run. Get frequency from payspace_list_payroll_frequencies and period from payspace_list_payroll_runs. GET /odata/v2.0/{company}/ComponentCompany?frequency=&period=.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"frequency","type":"string","required":true,"description":"Payroll frequency, required by PaySpace. A value from payspace_list_payroll_frequencies (the CompanyFrequency lookup)."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"period","type":"string","required":true,"description":"Payroll run (period), required by PaySpace. A value from payspace_list_payroll_runs (the CompanyRun lookup) for the chosen frequency."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":300},{"name":"payspace_list_recurring_components","title":"List an employee's recurring components or loans","description":"List the recurring payroll components (EmployeeComponent) or loans (EmployeeLoan) of ONE employee for a payroll frequency and run. Personal data (pay). Get frequency from payspace_list_payroll_frequencies and period from payspace_list_payroll_runs. GET /odata/v2.0/{company}/{entity}?frequency=&period=&$filter=EmployeeNumber eq '...'.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"employee_number","type":"string","required":true,"description":"Employee number (the EmployeeNumber field of payspace_list_employees). PaySpace requires this filter for recurring components."},{"name":"entity","type":"string","required":true,"description":"EmployeeComponent (recurring components) or EmployeeLoan (loans)."},{"name":"frequency","type":"string","required":true,"description":"Payroll frequency, required by PaySpace. A value from payspace_list_payroll_frequencies (the CompanyFrequency lookup)."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"period","type":"string","required":true,"description":"Payroll run (period), required by PaySpace. A value from payspace_list_payroll_runs (the CompanyRun lookup) for the chosen frequency."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":320},{"name":"payspace_list_payslips","title":"List payslips for a month","description":"List employee payslips (totals per employee) for a calendar year and month. Personal data (pay). GET /odata/v2.0/{company}/EmployeePayslip/{year}/{month}.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"month","type":"integer","required":true,"description":"Month, 1 to 12."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."},{"name":"year","type":"integer","required":true,"description":"Year, for example 2026."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":242},{"name":"payspace_list_payslip_lines","title":"List payslip lines for a month","description":"List the payslip lines (one per component per employee: code, description, amount) for a calendar year and month. Personal data (pay). GET /odata/v2.0/{company}/EmployeePayslipLine/{year}/{month}.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"month","type":"integer","required":true,"description":"Month, 1 to 12."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."},{"name":"year","type":"integer","required":true,"description":"Year, for example 2026."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":250},{"name":"payspace_list_leave_applications","title":"List leave applications","description":"List employee leave applications (type, dates, days, status). Give year and month together to restrict to a period. Personal data (absence). GET /odata/v2.0/{company}/EmployeeLeaveApplication[/{year}/{month}].","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"month","type":"integer","required":false,"description":"Month, 1 to 12."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."},{"name":"year","type":"integer","required":false,"description":"Year, for example 2026."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":249},{"name":"payspace_list_leave_adjustments","title":"List leave adjustments","description":"List employee leave adjustments (manual changes to leave balances). Personal data. GET /odata/v2.0/{company}/EmployeeLeaveAdjustment.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":200},{"name":"payspace_list_leave_entitlements","title":"List leave entitlements","description":"List employee leave setup entitlements (leave type, days per cycle). GET /odata/v2.0/{company}/EmployeeLeaveSetupEntitlement.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":202},{"name":"payspace_list_records","title":"List records of another entity","description":"List records of another read-only entity set: CompanyEmploymentCategory, CompanyEmploymentSubCategory, CompanyLeaveReason, CompanyPositionFamily, CompanyPositionFunctionArea, CompanyTrainingCourse, CompanyQualification, CostingProjectActivity, OrganizationGrade, EmployeeAsset, EmployeeClaim, EmployeeDependant, EmployeeIncident, EmployeePayRate, EmployeeProject, EmployeeQualification, EmployeeSkill, EmployeeOutOfOffice. GET /odata/v2.0/{company}/{entity}. Employee-level entities contain personal data.","inputs":[{"name":"company_id","type":"string","required":false,"description":"PaySpace company id or company code. Optional when the credentials give access to exactly one company; call payspace_list_companies to see them."},{"name":"count","type":"boolean","required":false,"description":"Include the total number of matching records as @odata.count."},{"name":"entity","type":"string","required":true,"description":"Entity set name."},{"name":"filter","type":"string","required":false,"description":"OData $filter, for example `EmployeeNumber eq 'E001'` or `contains(LastName,'Smith')`. Field names: see the vendor docs for the entity."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, for example `LastName asc`."},{"name":"select","type":"string","required":false,"description":"OData $select: comma-separated field names to return (smaller replies)."},{"name":"skip","type":"integer","required":false,"description":"Records to skip ($skip), for paging: page 2 of size 100 is skip=100."},{"name":"top","type":"integer","required":false,"description":"Page size ($top, default and maximum 100)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":298}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T15:06:42.000Z","track":"remote","endpoint":"https://payspace.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":"payspace.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-25","recent":[{"id":"chg_01a199b0-855d-71bb-8d20-5cb2ffa08d8c","kind":"check.unverifiable","summary":"Stability (0.23 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a199b0-855d-71bb-8d20-5cb2ffa08d8c"},{"id":"chg_01a199b0-855e-70b4-b257-653bd36d723a","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-payspace/payspace#chg-chg_01a199b0-855e-70b4-b257-653bd36d723a"},{"id":"chg_01a199b0-855e-765b-92a7-acf66f35a98b","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a199b0-855e-765b-92a7-acf66f35a98b"},{"id":"chg_01a199b0-855e-7b27-bd90-abc16503f926","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-payspace/payspace#chg-chg_01a199b0-855e-7b27-bd90-abc16503f926"},{"id":"chg_01a199b0-855f-70af-97f6-dce5857881ce","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a199b0-855f-70af-97f6-dce5857881ce"},{"id":"chg_01a199b0-855f-74f2-adbd-b404b395f84c","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-payspace/payspace#chg-chg_01a199b0-855f-74f2-adbd-b404b395f84c"},{"id":"chg_01a199b0-855f-79b8-a458-5c972db8ec84","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-payspace/payspace#chg-chg_01a199b0-855f-79b8-a458-5c972db8ec84"},{"id":"chg_01a199b0-855f-7dd8-bf52-e13a7a404107","kind":"score.total_changed","summary":"Trust score (67 → 18)","materiality":"functional","direction":"regression","scoreDelta":-49,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a199b0-855f-7dd8-bf52-e13a7a404107"},{"id":"chg_01a193ff-40e4-7605-9da1-ea30fa20499f","kind":"check.verdict","summary":"Authorization (partial → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a193ff-40e4-7605-9da1-ea30fa20499f"},{"id":"chg_01a193ff-40e5-7881-a2ae-d4e552beeb7c","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-payspace/payspace#chg-chg_01a193ff-40e5-7881-a2ae-d4e552beeb7c"},{"id":"chg_01a193ff-40e8-7296-9cbc-7070c5fa2c03","kind":"prompt.added","summary":"New prompt “check_leave_entitlements_and_manual_adjustments”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a193ff-40e8-7296-9cbc-7070c5fa2c03"},{"id":"chg_01a193ff-40ea-74a1-a763-283ac86a9ad8","kind":"prompt.added","summary":"New prompt “find_terminated_employees”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a193ff-40ea-74a1-a763-283ac86a9ad8"},{"id":"chg_01a193ff-40ea-7a82-9d27-a28ff7278f9a","kind":"prompt.added","summary":"New prompt “list_active_employees_with_their_positions_and_departments”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a193ff-40ea-7a82-9d27-a28ff7278f9a"},{"id":"chg_01a193ff-40ed-708b-9c7c-7bd50c52b114","kind":"prompt.added","summary":"New prompt “review_the_organization_structure”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a193ff-40ed-708b-9c7c-7bd50c52b114"},{"id":"chg_01a193ff-40ed-75fe-9087-5f47522f0ac7","kind":"prompt.added","summary":"New prompt “see_the_leave_applications_of_a_month”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a193ff-40ed-75fe-9087-5f47522f0ac7"},{"id":"chg_01a193ff-40ed-7a3d-802b-664ddf3c500e","kind":"prompt.added","summary":"New prompt “total_the_payslip_lines_per_employee_for_a_month”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a193ff-40ed-7a3d-802b-664ddf3c500e"},{"id":"chg_01a193ff-40ed-7da3-aebd-c0c00978c69a","kind":"server.version_changed","summary":"Server version (1.9.0 → 1.11.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a193ff-40ed-7da3-aebd-c0c00978c69a"},{"id":"chg_01a193ff-40ee-7214-884f-4084b1c4024a","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-payspace/payspace#chg-chg_01a193ff-40ee-7214-884f-4084b1c4024a"},{"id":"chg_01a193ff-40ee-7733-bc42-7af75f801bca","kind":"score.total_changed","summary":"Trust score (64 → 67)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a193ff-40ee-7733-bc42-7af75f801bca"},{"id":"chg_01a19322-617c-757f-92fd-80ca62a84b03","kind":"server.version_changed","summary":"Server version (1.8.0 → 1.9.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace#chg-chg_01a19322-617c-757f-92fd-80ca62a84b03"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace","markdown":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-payspace/payspace.xml","external":[{"label":"Remote endpoint","href":"https://payspace.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/payspace/"}]}}