@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 +9 -1
- package/dist/client.js +4 -1
- package/dist/client.js.map +1 -1
- package/dist/index.js +15 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Finology MCP Server — deterministic federal student loan math for AI agents
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@finology/mcp-server)
|
|
4
|
+
[](https://registry.modelcontextprotocol.io/v0.1/servers/tech.finology%2Fstudent-loan/versions/latest)
|
|
5
|
+
[](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
|
-
|
|
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 (
|
|
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
|
package/dist/client.js.map
CHANGED
|
@@ -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
|
|
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: "
|
|
69
|
-
tiers: { Sandbox: "
|
|
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":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,uBAAuB;IAC7B,OAAO
|
|
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.
|
|
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",
|