@markcolabs/mcp
v0.4.3
Published
MCP stdio↔HTTPS shim for digitalcalculator.info financial calculators. Proxies MCP JSON-RPC to the hosted server at mcp.digitalcalculator.info/mcp. Per ADR-0044a: engine source is private; this package is a thin transport adapter only.
Downloads
298
Maintainers
Readme
@markcolabs/mcp
Thin stdio-HTTPS shim that gives AI agents (Claude Desktop, MCP Inspector, any MCP client) access to financial calculator tools hosted at digitalcalculator.info. New tools are added server-side without a package update — call
tools/liston the hosted endpoint for the current list.
v0.4.3 — stdio-HTTPS shim (S142/ADR-0044a). Engine source is private and runs in AWS Lambda; this package is a transport adapter only (~70 lines, zero engine code, MIT-licensed).
Do you actually need this package?
Using Claude (claude.ai or Claude Desktop)? You don't. The hosted server speaks MCP Streamable HTTP directly — add it as a Custom Connector instead, no install required:
Settings → Connectors → Add custom connector → paste
https://mcp.digitalcalculator.info/mcp
This package exists for stdio-only MCP clients — agent frameworks, CLIs, and editors that launch MCP servers as local processes and don't yet support remote Streamable HTTP servers. The shim bridges stdin/stdout to the hosted endpoint.
Install (stdio clients)
npx -y @markcolabs/mcpOr globally: npm install -g @markcolabs/mcp (provides the digitalcalculator-mcp command).
Typical stdio client configuration:
{
"mcpServers": {
"digitalcalculator": {
"command": "npx",
"args": ["-y", "@markcolabs/mcp"]
}
}
}Full setup instructions for every client type: www.digitalcalculator.info/mcp/quickstart/
Tools
Tools are served by the hosted endpoint at mcp.digitalcalculator.info/mcp. New tools are added server-side — the package does not need to be updated when the tool set grows. Call tools/list for the authoritative current list.
Tools currently available (as of v0.4.3 — 13 tools):
| Tool | Input (summary) | Returns (summary) |
|---|---|---|
| mortgage_monthly_payment | principal, annualRatePercent, termYears | Monthly P&I, total interest, total paid |
| compound_interest_future_value | principal, annualRatePercent, years, compoundingFrequency, optional monthlyContribution | Future value, contributions, interest earned |
| retirement_401k_projection | balance, salary, contribution %, employer match, return %, ages | Year-by-year balance, IRS 2026 limits applied |
| social_security_estimated_benefit | birthYear, currentEarnings, claimAge, optional yearsWorked, lifeExpectancy | Monthly benefit at FRA, adjusted for claim age, lifetime projection |
| paycheck_net_pay | grossAnnualSalary, payFrequency, federalFilingStatus, state, pre-/post-tax deductions | Per-paycheck gross/federal/FICA/state/net, annualized totals |
| ira_contribution_limit | age, filingStatus, magi, type ('traditional' or 'roth') | Eligible contribution, Roth phase-out, catch-up, 2026 IRS limits |
| roth_conversion_tax_impact | conversionAmount, age, filingStatus, currentTaxableIncome, optional retirement rate | Federal tax owed, marginal/effective rate, 5-year-rule flag |
| rmd_distribution_amount | accountBalance, ownerAge (>= 73) | Required minimum distribution, Uniform Lifetime Table factor |
| hsa_contribution_limit | age, coverageTier ('self-only' or 'family'), optional employerContribution | Total annual limit, employee max remaining, 2026 IRS limits |
| inflation_adjusted_value | amount, inflationRate, years, optional mode | Future value or purchasing power after N years of inflation |
| savings_future_balance | initialDeposit, monthlyContribution, annualInterestRate, years | Future balance, total contributions, interest earned |
| emergency_fund_recommendation | monthlyExpenses, optional savings/employment/household inputs | Recommended months of coverage, target fund, gap, timeline to goal |
| loan_monthly_payment | loanAmount, annualRatePercent, termYears | Monthly payment, total interest, total paid (fixed-rate amortizing loan) |
| Resource | Purpose |
|---|---|
| dc://disclaimers/ymyl | Canonical YMYL disclaimer string returned in every tool response. |
| dc://methodologies/manifest | Methodology URLs for all available calculator tools. |
Every tool returns a standardized envelope: { result: { ...tool fields }, disclaimer, methodology: { url, version }, calculatedAt, engineVersion }. Failures return:
{ "error": { "code": "INPUT_VALIDATION", "message": "...", "field": "...", "retriable": false } }Error codes: INPUT_VALIDATION, BUSINESS_RULE, INTERNAL, RATE_LIMIT (only RATE_LIMIT is retriable).
Full input schemas and output shapes: www.digitalcalculator.info/mcp/api-reference/
Hosted endpoint
The MCP endpoint accepts JSON-RPC directly:
curl -X POST https://mcp.digitalcalculator.info/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'Globally rate-limited (shared ~100 requests/minute pool with burst capacity) — sustained high-volume use will see RATE_LIMIT errors. For commercial-volume access, contact us (see Support).
Architecture
v0.4.x is a thin transport adapter with no calculation logic. Because engines run server-side, new tools appear automatically to any connected MCP client without a package update:
Claude Desktop -> stdin -> @markcolabs/mcp (shim) -> HTTPS -> mcp.digitalcalculator.info/mcp -> Lambda engineThe shim adds a 30-second request timeout (matching the AWS API Gateway integration ceiling) and a User-Agent header for diagnostics.
Licensing
MIT - see LICENSE. The calculator engines at the hosted endpoint are proprietary; the MIT license does not apply to them.
Links
- Quickstart - install and first call in under 5 minutes
- API Reference - full schemas, output shapes, error codes
- FAQ - accuracy, YMYL posture, rate limits, support
- GitHub repo
Support
Open an issue at github.com/mark57-ux/digitalcalculator/issues. Include the tool name, the input that reproduces the issue, and the expected vs. actual output.
License
MIT - see LICENSE. Markcolabs LLC.
