PaySpace MCP by usefulapi
io.usefulapi/payspaceusefulapi.iostreamable-httpv1.0.0Scanned
Read PaySpace employees, organization, payroll runs, payslips and leave records. Read-only.
21 tools: 21 only read.
- Reads private data · 4
- Reads text others write · 21
- Can send data out · 0
- 21 findings
Anlyon alternative
Run the operations that matter as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
21 tools
Only reads 21Show 21 read-only tools
payspace_get_employeeGet one employee's biographical record by EmployeeId (the numeric id from payspace_list_employees).Reads text others write1 finding
Why it is in this group
- The name "payspace_get_employee" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it Get one employee's biographical record by EmployeeId (the numeric id from payspace_list_employees). Personal data. GET /odata/v2.0/{company}/Employee({id}).
Annotations the server declares
- title: Get an employee
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_all_employeesList all employees of a company including terminated ones.Reads text others write1 finding
Why it is in this group
- The name "payspace_list_all_employees" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List all employees of a company including terminated ones. Personal data. GET /odata/v2.0/{company}/Employee/all.
Annotations the server declares
- title: List all employees (incl. terminated)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_companiesList the companies (id, code, name, group) the API credentials can access.Reads private dataReads text others write1 finding
Why it is in this group
- The name "payspace_list_companies" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "credential": it reads secrets.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...mpanies (id, code, name, group) the API credentials can access. Company ids go into the com..."
Description, as the server wrote it 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.
Annotations the server declares
- title: List companies
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_employee_positionsList employee position records (job, organization unit, grade, manager, effective dates).Reads text others write1 finding
Why it is in this group
- The name "payspace_list_employee_positions" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List employee position records (job, organization unit, grade, manager, effective dates). GET /odata/v2.0/{company}/EmployeePosition.
Annotations the server declares
- title: List employee positions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_employeesList active employees of a company with their biographical details (name, employee number, contact, dates).Reads private dataReads text others write1 finding
Why it is in this group
- The name "payspace_list_employees" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "contact": it reads contacts.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it 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.
Annotations the server declares
- title: List employees
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_employment_statusesList employee employment status records (hire, termination, reason, dates).Reads text others write1 finding
Why it is in this group
- The name "payspace_list_employment_statuses" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List employee employment status records (hire, termination, reason, dates). GET /odata/v2.0/{company}/EmployeeEmploymentStatus.
Annotations the server declares
- title: List employment statuses
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_jobsList the jobs defined in job management for a company.Reads text others write1 finding
Why it is in this group
- The name "payspace_list_jobs" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List the jobs defined in job management for a company. GET /odata/v2.0/{company}/JobManagement.
Annotations the server declares
- title: List jobs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_leave_adjustmentsList employee leave adjustments (manual changes to leave balances).Reads text others write1 finding
Why it is in this group
- The name "payspace_list_leave_adjustments" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List employee leave adjustments (manual changes to leave balances). Personal data. GET /odata/v2.0/{company}/EmployeeLeaveAdjustment.
Annotations the server declares
- title: List leave adjustments
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_leave_applicationsList employee leave applications (type, dates, days, status).Reads text others write1 finding
Why it is in this group
- The name "payspace_list_leave_applications" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it 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}].
Annotations the server declares
- title: List leave applications
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_leave_entitlementsList employee leave setup entitlements (leave type, days per cycle).Reads text others write1 finding
Why it is in this group
- The name "payspace_list_leave_entitlements" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List employee leave setup entitlements (leave type, days per cycle). GET /odata/v2.0/{company}/EmployeeLeaveSetupEntitlement.
Annotations the server declares
- title: List leave entitlements
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_organization_positionsList the organization positions (position details) defined for a company.Reads text others write1 finding
Why it is in this group
- The name "payspace_list_organization_positions" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List the organization positions (position details) defined for a company. GET /odata/v2.0/{company}/OrganizationPositionDetail.
Annotations the server declares
- title: List organization positions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_organization_unitsList the organization hierarchy units (departments, divisions, cost centres) of a company.Reads text others write1 finding
Why it is in this group
- The name "payspace_list_organization_units" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List the organization hierarchy units (departments, divisions, cost centres) of a company. GET /odata/v2.0/{company}/OrganizationUnit.
Annotations the server declares
- title: List organization units
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_payroll_componentsList the company's payroll components (earnings, deductions, contributions) with their codes, for one payroll frequency and run.Reads text others write1 finding
Why it is in this group
- The name "payspace_list_payroll_components" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it 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=.
Annotations the server declares
- title: List payroll components
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_payroll_frequenciesList the payroll frequencies of a company (the CompanyFrequency lookup).Reads text others write1 finding
Why it is in this group
- The name "payspace_list_payroll_frequencies" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it 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.
Annotations the server declares
- title: List payroll frequencies
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_payroll_runsList the payroll runs (periods) of a company for one frequency (the CompanyRun lookup).Reads text others write1 finding
Why it is in this group
- The name "payspace_list_payroll_runs" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it 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=.
Annotations the server declares
- title: List payroll runs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_payslip_linesList the payslip lines (one per component per employee: code, description, amount) for a calendar year and month.Reads private dataReads text others write1 finding
Why it is in this group
- The name "payspace_list_payslip_lines" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "calendar": it reads calendars.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it 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}.
Annotations the server declares
- title: List payslip lines for a month
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_payslipsList employee payslips (totals per employee) for a calendar year and month.Reads private dataReads text others write1 finding
Why it is in this group
- The name "payspace_list_payslips" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "calendar": it reads calendars.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List employee payslips (totals per employee) for a calendar year and month. Personal data (pay). GET /odata/v2.0/{company}/EmployeePayslip/{year}/{month}.
Annotations the server declares
- title: List payslips for a month
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_recordsList records of another read-only entity set: CompanyEmploymentCategory, CompanyEmploymentSubCategory, CompanyLeaveReason, CompanyPositionFamily, CompanyPositionFunctionArea, Compa…Reads text others write1 finding
Why it is in this group
- The name "payspace_list_records" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it 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.
Annotations the server declares
- title: List records of another entity
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_recurring_componentsList the recurring payroll components (EmployeeComponent) or loans (EmployeeLoan) of ONE employee for a payroll frequency and run.Reads text others write1 finding
Why it is in this group
- The name "payspace_list_recurring_components" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it 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 '...'.
Annotations the server declares
- title: List an employee's recurring components or loans
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_regionsList the company's regions.Reads text others write1 finding
Why it is in this group
- The name "payspace_list_regions" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List the company's regions. GET /odata/v2.0/{company}/CompanyRegion.
Annotations the server declares
- title: List regions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
payspace_list_suspensionsList employee suspension records.Reads text others write1 finding
Why it is in this group
- The name "payspace_list_suspensions" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Description, as the server wrote it List employee suspension records. GET /odata/v2.0/{company}/EmployeeSuspension.
Annotations the server declares
- title: List employee suspensions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data4
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write21
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- payspace_get_employee
- payspace_list_all_employees
- payspace_list_companies
- payspace_list_employee_positions
- payspace_list_employees
- payspace_list_employment_statuses
- payspace_list_jobs
- payspace_list_leave_adjustments
- payspace_list_leave_applications
- payspace_list_leave_entitlements
- payspace_list_organization_positions
- payspace_list_organization_units
- and 9 more
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
The description mentions "credentials".
What this check looks forMatched text
description: "...mpanies (id, code, name, group) the API credentials can access. Company ids go into the com..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
Show 15 more findingsShow fewer
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
The input schema at properties.company_id.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.company_id.description: "...y id or company code. Optional when the credentials give access to exactly one company; cal..."
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http payspace https://payspace.usefulapi.io/mcpclaude mcp add --transport http payspace https://payspace.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__payspace__payspace_list_companies",
"mcp__payspace__payspace_list_employees",
"mcp__payspace__payspace_list_all_employees",
"mcp__payspace__payspace_get_employee",
"mcp__payspace__payspace_list_employee_positions",
"mcp__payspace__payspace_list_employment_statuses",
"mcp__payspace__payspace_list_suspensions",
"mcp__payspace__payspace_list_organization_units",
"mcp__payspace__payspace_list_organization_positions",
"mcp__payspace__payspace_list_jobs",
"mcp__payspace__payspace_list_regions",
"mcp__payspace__payspace_list_payroll_frequencies",
"mcp__payspace__payspace_list_payroll_runs",
"mcp__payspace__payspace_list_payroll_components",
"mcp__payspace__payspace_list_recurring_components",
"mcp__payspace__payspace_list_payslips",
"mcp__payspace__payspace_list_payslip_lines",
"mcp__payspace__payspace_list_leave_applications",
"mcp__payspace__payspace_list_leave_adjustments",
"mcp__payspace__payspace_list_leave_entitlements",
"mcp__payspace__payspace_list_records"
],
"ask": [],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as payspace. Review it before you use it.
Capability tags behind 21 rules
- mcp__payspace__payspace_list_companies private-data, untrusted-input
- mcp__payspace__payspace_list_employees private-data, untrusted-input
- mcp__payspace__payspace_list_all_employees untrusted-input
- mcp__payspace__payspace_get_employee untrusted-input
- mcp__payspace__payspace_list_employee_positions untrusted-input
- mcp__payspace__payspace_list_employment_statuses untrusted-input
- mcp__payspace__payspace_list_suspensions untrusted-input
- mcp__payspace__payspace_list_organization_units untrusted-input
- mcp__payspace__payspace_list_organization_positions untrusted-input
- mcp__payspace__payspace_list_jobs untrusted-input
- mcp__payspace__payspace_list_regions untrusted-input
- mcp__payspace__payspace_list_payroll_frequencies untrusted-input
- mcp__payspace__payspace_list_payroll_runs untrusted-input
- mcp__payspace__payspace_list_payroll_components untrusted-input
- mcp__payspace__payspace_list_recurring_components untrusted-input
- mcp__payspace__payspace_list_payslips private-data, untrusted-input
- mcp__payspace__payspace_list_payslip_lines private-data, untrusted-input
- mcp__payspace__payspace_list_leave_applications untrusted-input
- mcp__payspace__payspace_list_leave_adjustments untrusted-input
- mcp__payspace__payspace_list_leave_entitlements untrusted-input
- mcp__payspace__payspace_list_records untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/payspace/verify?hash=c3e65629b42ae97674286cd58d592ee0b169adce2dc6e72cc565b5d36e906b0d" | jq -e '.changed == false'Pinned hash c3e65629b42a, from Oct 25, 2026, 19:19 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.usefulapi/payspace/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.usefulapi/payspace)Source: MCP Registry · repository. Synced Oct 25, 2026, 19:18 UTC.