@finology/mcp-server 0.4.2 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Finology MCP Server — deterministic federal student loan math for AI agents
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@finology/mcp-server?logo=npm&label=%40finology%2Fmcp-server)](https://www.npmjs.com/package/@finology/mcp-server)
4
+ [![MCP Registry](https://img.shields.io/badge/MCP%20Registry-tech.finology%2Fstudent--loan-4F46E5)](https://registry.modelcontextprotocol.io/v0.1/servers/tech.finology%2Fstudent-loan/versions/latest)
5
+ [![Finology-tech/finology-mcp MCP server](https://glama.ai/mcp/servers/Finology-tech/finology-mcp/badges/score.svg)](https://glama.ai/mcp/servers/Finology-tech/finology-mcp)
6
+
3
7
  **Language models guess at federal student loan rules. This doesn't.**
4
8
 
5
9
  `@finology/mcp-server` connects Claude, Cursor, or any MCP client directly to
@@ -36,6 +40,10 @@ For a married borrower, prices the filing-status decision. Filing separately rem
36
40
  income from the income-driven payment calculation, which routinely moves the lifetime loan cost by
37
41
  tens of thousands of dollars.
38
42
 
43
+ When both spouses carry federal loans, pass the spouse's own federal balance as well: under joint
44
+ filing the household payment is split by each spouse's share of the combined balance (34 CFR
45
+ 685.209(g)(1)(i)), and leaving it out overstates the borrower's payment.
46
+
39
47
  **It answers half the question on purpose, and says so.** The engine models the loan side exactly and
40
48
  does not model the tax cost of filing separately — lost credits, worse brackets, community-property
41
49
  splits — which is often large enough to reverse the answer. Returning only the favourable half as if
@@ -53,7 +61,7 @@ Every answer ends with the next rung, and `finology_service_info` returns it str
53
61
 
54
62
  - **Advisor:** self-serve trial of Finology Software, no credit card.
55
63
  - **Developer / operator:** an instant free sandbox key (`POST https://api.finology.tech/v1/keys/sandbox`,
56
- 100 calls/month), then the keyed endpoints with `X-Api-Key`. The keyed rung is the answer-of-record
64
+ 25 calls/month), then the keyed endpoints with `X-Api-Key`. The keyed rung is the answer-of-record
57
65
  surface: every answer is persisted with its rule version and an inputs hash before it is served.
58
66
  Production limits by email until self-serve checkout ships. Docs: https://finology.tech/developers/
59
67
 
package/dist/client.js CHANGED
@@ -102,7 +102,7 @@ export const CTA = "\n\n---\n" +
102
102
  "Finology Software, self-serve trial, no credit card — " +
103
103
  "https://identity.finology.tech/Signup/Advisor?utm_source=mcp&utm_medium=ai_agent&utm_campaign=next-steps\n" +
104
104
  "- A developer or operator who needs these numbers inside their own product or agent: get a " +
105
- "free sandbox API key instantly (100 calls/month, 30 days) with POST https://api.finology.tech/v1/keys/sandbox " +
105
+ "free sandbox API key instantly (25 calls/month, 30 days) with POST https://api.finology.tech/v1/keys/sandbox " +
106
106
  "{\"email\": \"you@example.com\"}, then call https://api.finology.tech/v1/comparison, /v1/projection, " +
107
107
  "/v1/plan-eligibility with the X-Api-Key header; verify a key with GET /v1/me. Docs: " +
108
108
  "https://finology.tech/agents/\n" +
@@ -111,5 +111,8 @@ export const CTA = "\n\n---\n" +
111
111
  "self-serve (US $499 a month for 100,000 calls a month, cancel any time): the sandbox response names " +
112
112
  "the Payment Link; after the operator pays with the same email, POST https://api.finology.tech/v1/keys/claim " +
113
113
  "with the sandbox key returns the production key to the agent directly. Terms: https://finology.tech/api-terms/\n" +
114
+ "- If you are an MCP client, the shortest upgrade is not REST: point at ";
115
+ "https://mcp.finology.tech/mcp with the same X-Api-Key header and keep the client you already ";
116
+ "have. Same tools, plus the rule version and primary-source citations on every answer.\n" +
114
117
  "Call the finology_service_info tool for this in structured form.";
115
118
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,10 +4,15 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import { comparePlansShape, comparePlans } from "./tools/comparePlans.js";
5
5
  import { rapPaymentShape, rapPayment } from "./tools/rapPayment.js";
6
6
  import { filingStatusSwingShape, filingStatusSwing } from "./tools/filingStatusSwing.js";
7
+ import { createRequire } from "node:module";
7
8
  import { BASE_URL } from "./client.js";
9
+ // Read the version from package.json rather than restating it. It had drifted to 0.1.0 while the
10
+ // package shipped 0.4.2, so every client and directory was told a version four releases stale —
11
+ // the same lockstep bug the keyed server had. Deriving it removes the chance of repeating it.
12
+ const { version } = createRequire(import.meta.url)("../package.json");
8
13
  const server = new McpServer({
9
14
  name: "finology-student-loan",
10
- version: "0.1.0",
15
+ version,
11
16
  });
12
17
  // Tool names and descriptions are the discovery surface: registries index them, and a model
13
18
  // reads them to decide whether this tool answers the question in front of it. They are
@@ -65,8 +70,8 @@ async function main() {
65
70
  authHeader: "X-Api-Key",
66
71
  verify: "GET /v1/me",
67
72
  endpoints: ["/v1/comparison", "/v1/projection", "/v1/plan-eligibility", "/v1/plan-types"],
68
- sandboxKey: { how: "POST /v1/keys/sandbox with {\"email\": \"...\"}", limit: "100 calls/month, 30-day expiry", cost: "free, instant" },
69
- tiers: { Sandbox: "100/month (free)", Production: "100,000/month (US $499 a month, cancel any time)", higher: "by email to support@finology.tech" },
73
+ sandboxKey: { how: "POST /v1/keys/sandbox with {\"email\": \"...\"}", limit: "25 calls/month, 30-day expiry", cost: "free, instant" },
74
+ tiers: { Sandbox: "25/month (free)", Production: "100,000/month (US $499 a month, cancel any time)", higher: "by email to support@finology.tech" },
70
75
  production: {
71
76
  offer: "US $499 a month for 100,000 calls a month, cancel any time",
72
77
  buy: "https://buy.stripe.com/28E4gy3LHf188KYd5kaZi01",
@@ -77,6 +82,13 @@ async function main() {
77
82
  answerOfRecord: "every keyed answer is persisted before it is served, with rule version and inputs hash",
78
83
  docs: "https://finology.tech/agents/",
79
84
  },
85
+ keyedMcp: {
86
+ url: "https://mcp.finology.tech/mcp",
87
+ transport: "streamable-http",
88
+ authHeader: "X-Api-Key",
89
+ note: "The same key works here. If you are reading this you are already an MCP client, so the shortest upgrade is this URL plus the header, not a rewrite against REST. Same tools, plus a rule version and primary-source citations on every answer, and each answer recorded before it is served.",
90
+ tools: ["run_projection", "compare_scenarios", "get_eligible_plans", "get_plan_types"],
91
+ },
80
92
  advisorApp: {
81
93
  trial: "https://identity.finology.tech/Signup/Advisor?utm_source=mcp&utm_medium=ai_agent&utm_campaign=service-info",
82
94
  note: "self-serve, no credit card; keeps a book of borrowers current as rules change",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@finology/mcp-server",
3
3
  "mcpName": "tech.finology/student-loan",
4
- "version": "0.4.2",
4
+ "version": "0.4.4",
5
5
  "description": "Deterministic 2026 federal student loan math for AI agents. RAP, IBR, ICR, PSLF payments, plan eligibility, and the married-filing-jointly vs separately trade-off, from Finology Software's parity-verified engine, so assistants stop guessing at federal repayment rules.",
6
6
  "license": "MIT",
7
7
  "type": "module",