Income and rent calculators, pay stub math checks, and bank-based income analysis tools.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Creates a secure Stripe checkout link for a pack of non-expiring verification credits. Packs: 1 for $5.00, 3 for $15.00, 5 for $25.00, 10 for $50.00, 25 for $125.00, 50 for $250.00. Give the user the link to pay; credits are added once payment completes.
Number of credits: 1, 3, 5, 10, 25, 50
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Creates a secure Stripe checkout link for a pack of non-expiring verification credits. Packs: 1 for $5.00, 3 for $15.00, 5 for $25.00, 10 for $50.00, 25 for $125.00, 50 for $250.00. Give the user the link to pay; credits are added once payment completes.
| Argument | Type | Description |
|---|---|---|
| quantity* | number | Number of credits: 1, 3, 5, 10, 25, 50 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"quantity"
],
"properties": {
"quantity": {
"enum": [
1,
3,
5,
10,
25,
50
],
"type": "number",
"description": "Number of credits: 1, 3, 5, 10, 25, 50"
}
}
}Checks the figures on a pay stub for internal inconsistencies: gross minus deductions vs net, hours × rate, Social Security and Medicare rates, pay period length, pay date, year-to-date totals, and suspiciously round numbers. Read the numbers off the stub and pass them in. Flags items for follow-up; it does not authenticate a document or prove fraud.
| Argument | Type | Description |
|---|---|---|
| hours | number | |
| net_pay* | number | |
| pay_date | string | YYYY-MM-DD |
| gross_pay* | number | |
| ytd_gross | number | |
| deductions* | array | Every deduction line, e.g. Federal, Social Security, Medicare, State, 401k |
| hourly_rate | number | |
| pay_frequency | string | |
| pay_period_end | string | YYYY-MM-DD |
| prior_ytd_gross | number | YTD gross from the previous stub, if available |
| pay_period_start | string | YYYY-MM-DD |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"gross_pay",
"net_pay",
"deductions"
],
"properties": {
"hours": {
"type": "number",
"exclusiveMinimum": 0
},
"net_pay": {
"type": "number",
"minimum": 0
},
"pay_date": {
"type": "string",
"description": "YYYY-MM-DD"
},
"gross_pay": {
"type": "number",
"exclusiveMinimum": 0
},
"ytd_gross": {
"type": "number",
"minimum": 0
},
"deductions": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"amount"
],
"properties": {
"name": {
"type": "string"
},
"amount": {
"type": "number",
"minimum": 0
}
}
},
"description": "Every deduction line, e.g. Federal, Social Security, Medicare, State, 401k"
},
"hourly_rate": {
"type": "number",
"exclusiveMinimum": 0
},
"pay_frequency": {
"enum": [
"weekly",
"biweekly",
"semimonthly",
"monthly"
],
"type": "string"
},
"pay_period_end": {
"type": "string",
"description": "YYYY-MM-DD"
},
"prior_ytd_gross": {
"type": "number",
"minimum": 0,
"description": "YTD gross from the previous stub, if available"
},
"pay_period_start": {
"type": "string",
"description": "YYYY-MM-DD"
}
}
}Front-end (housing) and back-end debt-to-income ratios with common lender bands.
| Argument | Type | Description |
|---|---|---|
| monthly_housing* | number | Rent or mortgage payment including taxes and insurance |
| other_monthly_debts | number | Car, student loan, card minimums, etc. |
| monthly_gross_income* | number |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"monthly_gross_income",
"monthly_housing"
],
"properties": {
"monthly_housing": {
"type": "number",
"minimum": 0,
"description": "Rent or mortgage payment including taxes and insurance"
},
"other_monthly_debts": {
"type": "number",
"minimum": 0,
"description": "Car, student loan, card minimums, etc."
},
"monthly_gross_income": {
"type": "number",
"exclusiveMinimum": 0
}
}
}Shows the signed-in user’s email and how many verification credits they have left.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Returns the income analysis for a completed verification: estimated monthly income, income sources, other deposits, and account balances. Present figures as estimates, never as verified or approved income.
| Argument | Type | Description |
|---|---|---|
| verification_id* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"verification_id"
],
"properties": {
"verification_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Explains how to check or verify a person’s income (a tenant, applicant, borrower, guarantor, investor, or yourself), including bank-based income analysis, pay stubs, and their limits. Use when someone asks how to verify, check, or prove income.
| Argument | Type | Description |
|---|---|---|
| audience | string | Who is asking: a landlord/property manager, a lender, an individual proving their own income, or other |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"audience": {
"enum": [
"landlord",
"lender",
"individual",
"other"
],
"type": "string",
"description": "Who is asking: a landlord/property manager, a lender, an individual proving their own income, or other"
}
}
}Lists the signed-in user’s income verification requests, newest first, with status and report links.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Default 10 |
| status | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Default 10"
},
"status": {
"enum": [
"pending",
"in_progress",
"completed",
"expired",
"failed",
"canceled"
],
"type": "string"
}
}
}Converts a pay amount (hourly, weekly, every two weeks, twice a month, monthly, or annual) into gross monthly, annual, biweekly, weekly, and hourly income.
| Argument | Type | Description |
|---|---|---|
| amount* | number | Gross pay amount per period, or hourly rate |
| frequency* | string | |
| hours_per_week | number | Hours per week, for hourly pay (default 40) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"amount",
"frequency"
],
"properties": {
"amount": {
"type": "number",
"description": "Gross pay amount per period, or hourly rate",
"exclusiveMinimum": 0
},
"frequency": {
"enum": [
"hourly",
"weekly",
"biweekly",
"semimonthly",
"monthly",
"annual"
],
"type": "string"
},
"hours_per_week": {
"type": "number",
"maximum": 168,
"description": "Hours per week, for hourly pay (default 40)",
"exclusiveMinimum": 0
}
}
}Rent owed for a partial first month, from the move-in date through the end of that month.
| Argument | Type | Description |
|---|---|---|
| method | string | actual = rent ÷ days in month (default); year = rent × 12 ÷ 365; banker = rent ÷ 30 |
| monthly_rent* | number | |
| move_in_date* | string | YYYY-MM-DD |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"monthly_rent",
"move_in_date"
],
"properties": {
"method": {
"enum": [
"actual",
"year",
"banker"
],
"type": "string",
"description": "actual = rent ÷ days in month (default); year = rent × 12 ÷ 365; banker = rent ÷ 30"
},
"monthly_rent": {
"type": "number",
"exclusiveMinimum": 0
},
"move_in_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
}
}
}Affordable rent from gross monthly income using the 30% rule, the 3x-rent rule, a 25-30% comfortable range capped at 36% total debt, and 50/30/20.
| Argument | Type | Description |
|---|---|---|
| monthly_debts | number | Monthly debt payments excluding rent |
| monthly_gross_income* | number |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"monthly_gross_income"
],
"properties": {
"monthly_debts": {
"type": "number",
"minimum": 0,
"description": "Monthly debt payments excluding rent"
},
"monthly_gross_income": {
"type": "number",
"exclusiveMinimum": 0
}
}
}Income needed for a given rent (2.5x, 3x, 3.5x rules), the max rent for a given income at 3x, or the rent-to-income ratio when both are given. Pass monthly figures.
| Argument | Type | Description |
|---|---|---|
| monthly_rent | number | |
| monthly_income | number | Gross monthly income |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"monthly_rent": {
"type": "number",
"exclusiveMinimum": 0
},
"monthly_income": {
"type": "number",
"description": "Gross monthly income",
"exclusiveMinimum": 0
}
}
}Uses one credit to create a bank-based income check and emails the applicant a secure link to connect their bank through Plaid. Confirm the applicant’s name and email with the user before calling. The report is ready after the applicant connects; check it with list_verifications or get_report.
| Argument | Type | Description |
|---|---|---|
| purpose | string | Optional reason shown to the applicant, e.g. "Rental application for 12 Oak St" |
| applicant_name* | string | |
| applicant_email* | string | |
| requested_by_name | string | Name or company shown as the requester; defaults to the account’s company name |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"applicant_name",
"applicant_email"
],
"properties": {
"purpose": {
"type": "string",
"maxLength": 500,
"description": "Optional reason shown to the applicant, e.g. \"Rental application for 12 Oak St\""
},
"applicant_name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"applicant_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"requested_by_name": {
"type": "string",
"maxLength": 200,
"description": "Name or company shown as the requester; defaults to the account’s company name"
}
}
}Returns the link and steps to request a bank-based income report from Income Checker for a tenant, applicant, borrower, or yourself. Use when the user wants to actually verify or check someone’s income, not just learn how.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}