ProfitDrawer
com.profitdrawer/profitdrawerprofitdrawer.comstreamable-httpv1.0.0Scanned
Read-only small business Q&A, product prices, IRS datasets and calculators from ProfitDrawer.
10 tools: 4 change things and 6 only read.
- Reads private data · 1
- Reads text others write · 4
- Can send data out · 0
- 2 findings
Anlyon alternative
4 of these tools change something. Run those 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.
10 tools
Changes things 4Claude Code: ask
calculate_loan_payoffWorks out how many months a loan takes to pay off and the total interest, month by month (one month of interest = APR / 12 is added, then the payment is taken off), and what an opt…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Works out how many months a loan takes to pay off and the total interest, month by month (one month of interest = APR / 12 is added, then the payment is taken off), and what an optional extra monthly payment saves in interest and time. Same method as https://profitdrawer.com/tools/loan-payoff-calculator.html. A close estimate; lenders can differ slightly.
Annotations the server declares
- title: Calculate loan payoff
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
calculate_price_per_jobWorks out a price for one service job: cost = hours x hourly pay + materials + travel + monthly overhead / jobs per month; price = cost / (1 - profit margin).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Works out a price for one service job: cost = hours x hourly pay + materials + travel + monthly overhead / jobs per month; price = cost / (1 - profit margin). Also returns profit per job, monthly revenue and break-even jobs per month. Same formula as https://profitdrawer.com/tools/price-per-job-calculator.html. Margins above 95% are treated as 95%.
Annotations the server declares
- title: Calculate price per job
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
calculate_tax_set_asideEstimates how much of a self-employed profit to set aside for taxes: set-aside = profit x chosen percent, and the US self-employment tax part = profit x 92.35% x 15.3% (12.4% Socia…1 finding
Why it is in this group
- The name "calculate_tax_set_aside" says "set": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "calculate_tax_set_aside" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "calculate_tax_set_aside" says "set": a word for a change.
Description, as the server wrote it Estimates how much of a self-employed profit to set aside for taxes: set-aside = profit x chosen percent, and the US self-employment tax part = profit x 92.35% x 15.3% (12.4% Social Security + 2.9% Medicare), per month, quarter or year. Same formula as https://profitdrawer.com/tools/self-employed-tax-calculator.html. An estimate, not tax advice.
Annotations the server declares
- title: Calculate self-employed tax set-aside
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
estimate_startup_costsAdds up one-time startup costs and monthly costs and works out cash left and months of runway (cash left divided by monthly costs, rounded down to 0.1, assuming no sales).1 finding
Why it is in this group
- The description's first verb is "add": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "estimate_startup_costs" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "add": a word for a change.
Description, as the server wrote it Adds up one-time startup costs and monthly costs and works out cash left and months of runway (cash left divided by monthly costs, rounded down to 0.1, assuming no sales). Same formula as https://profitdrawer.com/tools/startup-cost-calculator.html. Optional preset with example amounts: Cleaning, Lawn care, Vending machine, Food truck, Any business; cost lists you pass replace the preset lines. Preset amounts are rough examples, not quotes.
Annotations the server declares
- title: Estimate startup costs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 6Show 6 read-only tools
get_answerReturns one answer published by ProfitDrawer by id: question, short answer, full detail, source with label, published and updated dates, answer page URL, Markdown URL, related ques…Reads text others writeNo findings
Why it is in this group
- The name "get_answer" says "get": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "return" and "url": it reads web pages, which anyone can write.
Description, as the server wrote it Returns one answer published by ProfitDrawer by id: question, short answer, full detail, source with label, published and updated dates, answer page URL, Markdown URL, related questions, and the products and calculators the answer mentions. Ids come from search_profitdrawer.
Annotations the server declares
- title: Get a ProfitDrawer answer
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_company_infoReturns public facts about ProfitDrawer: description, website, founding year with its source, area served, currency, support channels, social profiles and other facts, each with a …Reads text others writeNo findings
Why it is in this group
- The name "get_company_info" says "get": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "return" and "website": it reads web pages, which anyone can write.
Description, as the server wrote it Returns public facts about ProfitDrawer: description, website, founding year with its source, area served, currency, support channels, social profiles and other facts, each with a source. Includes the About page URL.
Annotations the server declares
- title: Get ProfitDrawer company facts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_categoriesLists the categories of ProfitDrawer's published answers with description, number of answers and category page URL.Reads text others writeNo findings
Why it is in this group
- The name "list_categories" says "list": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "list" and "url": it reads web pages, which anyone can write.
Description, as the server wrote it Lists the categories of ProfitDrawer's published answers with description, number of answers and category page URL.
Annotations the server declares
- title: List answer categories
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_productsLists ProfitDrawer products (spreadsheets, printables, templates, planners and printed goods) with name, price in USD, file formats, availability, product page URL and Etsy listing…Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_products" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "file": it reads files.
- untrusted-inputThe description's first sentence says "list" and "url": it reads web pages, which anyone can write.
Description, as the server wrote it Lists ProfitDrawer products (spreadsheets, printables, templates, planners and printed goods) with name, price in USD, file formats, availability, product page URL and Etsy listing URL. Optional filters: words to match, collection, maximum price and file format.
Annotations the server declares
- title: List ProfitDrawer products
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
query_datasetReturns rows from the datasets published by ProfitDrawer: irs-small-business-tax-deadlines-2027 (IRS small business tax deadlines 2027); irs-standard-mileage-rates (IRS standard mi…No findings
Why it is in this group
- The name "query_dataset" says "query": a word for reading.
Description, as the server wrote it Returns rows from the datasets published by ProfitDrawer: irs-small-business-tax-deadlines-2027 (IRS small business tax deadlines 2027); irs-standard-mileage-rates (IRS standard mileage rates for business use, 2020 to 2026). Each row includes its IRS source URL and the date it was checked. Optional: filter by column values. Includes the dataset page URL and license.
Annotations the server declares
- title: Query a ProfitDrawer dataset
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_profitdrawerSearches the questions and answers published by ProfitDrawer on small business bookkeeping, taxes, pricing and money.No findings
Why it is in this group
- The name "search_profitdrawer" says "search": a word for reading.
Description, as the server wrote it Searches the questions and answers published by ProfitDrawer on small business bookkeeping, taxes, pricing and money. Categories: Bookkeeping basics; Small business taxes; Start a business; Pricing and profit; Personal budgeting; Google Sheets and Excel how-tos; About ProfitDrawer files. Returns up to 10 matching answers, each with id, question, short answer, category, last-updated date and the URL of the answer page. Use get_answer with an id for the full text and source.
Annotations the server declares
- title: Search ProfitDrawer answers
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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 data1
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write4
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- 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 server marks "estimate_startup_costs" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "add": a word for a change.
The server marks "calculate_tax_set_aside" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "calculate_tax_set_aside" says "set": a word for a change.
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 profitdrawer https://profitdrawer.com/mcpclaude mcp add --transport http profitdrawer https://profitdrawer.com/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__profitdrawer__search_profitdrawer",
"mcp__profitdrawer__get_answer",
"mcp__profitdrawer__list_categories",
"mcp__profitdrawer__get_company_info",
"mcp__profitdrawer__list_products",
"mcp__profitdrawer__query_dataset"
],
"ask": [
"mcp__profitdrawer__estimate_startup_costs",
"mcp__profitdrawer__calculate_price_per_job",
"mcp__profitdrawer__calculate_loan_payoff",
"mcp__profitdrawer__calculate_tax_set_aside"
],
"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 profitdrawer. Review it before you use it.
Capability tags behind 4 rules
- mcp__profitdrawer__get_answer untrusted-input
- mcp__profitdrawer__list_categories untrusted-input
- mcp__profitdrawer__get_company_info untrusted-input
- mcp__profitdrawer__list_products private-data, 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/com.profitdrawer/profitdrawer/verify?hash=26951c428ba19a1298acdd9006c67467209e740c70eb58aadcb3694c9556d95a" | jq -e '.changed == false'Pinned hash 26951c428ba1, from Oct 29, 2026, 19:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/com.profitdrawer/profitdrawer/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/com.profitdrawer/profitdrawer)Source: MCP Registry. Synced Oct 29, 2026, 19:17 UTC.