Unofficial UWM Mortgage Reader
Server Quality Checklist
Latest release: v0.1.0-private.0
- Disambiguation5/5
Each tool targets a distinct aspect: connection status, login flow, statements, summary, payment history, escrow, and extra payment calculations. There is no overlap or ambiguity between them.
Naming Consistency5/5All tool names share the 'mortgage_' prefix and follow a consistent snake_case verb_noun pattern (get_summary, list_statements, start_login). The naming is predictable and uniform.
Tool Count5/5Seven tools is well-scoped for a mortgage reader that covers connection, login, core data retrieval, and financial projections. Each tool has a clear purpose and none are redundant.
Completeness4/5The tool set covers the main read operations (summary, history, escrow, statements) and login/connection, but statement download is explicitly deferred. A logout or more detailed document retrieval would round out the surface, but core workflows are covered.
Average 3.9/5 across 7 of 7 tools scored. Lowest: 2.9/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 22 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already provide. It only restates 'Read-only' which is redundant with readOnlyHint=true. It does not describe the return format, whether history is chronological, or that the 'months' parameter limits the range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences. It is front-loaded with the action and resource, and the 'Read-only' addition, while redundant, does not add bulk. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter and no output schema, yet the description does not explain what the payment history includes or how 'months' affects the result. Annotations cover safety but not usage semantics, leaving the description incomplete for a straightforward but under-specified tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the 'months' parameter. It does not mention 'months' at all, leaving its meaning ambiguous. Even though the schema shows type and constraints, the description adds no semantics about what the parameter controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets mortgage payment history, with a specific verb and resource. The resource name itself distinguishes it from siblings like mortgage_list_statements and mortgage_get_summary, so the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any preconditions, exclusions, or why an agent might prefer this over mortgage_list_statements or mortgage_get_summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reinforces the annotations by stating 'No payment is initiated,' clarifying that this is a non-destructive calculation. It also adds context that the projection is 'using mortgage summary data,' indicating reliance on existing data. This goes slightly beyond the readOnlyHint by connecting the behavior to real-world financial safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the primary purpose and a critical safety note. There is no redundant information, and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only calculator, the description conveys the core behavior and safety. However, it does not mention what the output looks like (no output schema exists), and it lacks details on the parameter's semantics or any prerequisites (e.g., needing to call mortgage_get_summary first). This leaves some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter, `extraMonthly`, with no description (0% coverage). The tool description does not explain what `extraMonthly` represents or how it impacts the calculation. The agent must rely solely on the parameter name and the tool name to infer its meaning, which is insufficient for a calculation tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: projecting payoff acceleration and interest savings. This distinguishes it from sibling tools that handle connection, statements, summaries, and payment history. The verb 'project' and resource 'mortgage summary data' make the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description but no explicit guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites like having summary data available or when this would be preferred over mortgage_get_summary or mortgage_get_payment_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds only 'Read-only', which repeats the annotation. It does not disclose any additional behavioral traits such as whether escrow data may not exist, whether it requires an active login, or what the response structure looks like. With strong annotations, the description adds minimal value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences: 'Get current escrow information. Read-only.' It is front-loaded with the action and resource, with no unnecessary words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only operation, the description states what it retrieves (current escrow information). However, it omits details about the return format or edge cases (e.g., no escrow account). Given the lack of an output schema and the simple nature of the tool, this is mostly adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is an empty object. The description correctly implies no inputs are needed. Per the rubric, baseline is 4 for zero-parameter tools. The description adds no param semantics because there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' with the resource 'current escrow information', clearly distinguishing it from sibling tools like mortgage_get_summary and mortgage_get_payment_history. No ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool vs alternatives. The resource name makes the use case obvious, but there are no exclusion criteria or pointers to alternative tools. The simplicity implies usage, but the description doesn't state it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, but the description adds valuable context beyond these: it explicitly states that the tool does not download statements without a later explicit implementation. This clarifies behavior for the agent, making the tool's non-download behavior transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded: 'List available mortgage statements' is the first sentence, followed by a single clarifying sentence about read-only behavior. No wasted words; every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description covers the main purpose and read-only behavior sufficiently. However, it omits any mention of the year filtering or what the returned statements will look like, leaving a small but notable gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one optional 'year' parameter with a range, but the description does not explain its purpose or behavior (e.g., filter by year, omit to get all). With 0% schema description coverage, the description should compensate by explaining the parameter, but it doesn't, leaving the agent to infer from the parameter name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'lists available mortgage statements,' specifying a concrete action and resource. It distinguishes itself from siblings like mortgage_get_payment_history and mortgage_get_escrow by focusing on statements, and the additional note about not downloading clarifies its exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this to see what statements are available. However, there is no explicit guidance on when to use this versus other mortgage tools, or what to do if you need to download a statement. The read-only note hints at its non-downloading nature but doesn't provide exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only.' It adds context that the tool returns guided login steps and MFA setup state, which are useful behavioral details beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the main purpose ('Check adapter status') and packs the login/MFA guidance without waste. Every phrase contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only status tool, the description sufficiently covers the purpose and what kind of information is returned (status, login guidance, MFA steps). However, it does not detail the format or structure of the status response, which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is complete and there is nothing for the description to add. Baseline 4 is appropriate for a zero-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'check' and 'get' with a clear resource ('adapter status') and additional content (login/MFA steps). It clearly distinguishes this tool from sibling mortgage tools that handle statements, summaries, or payments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for verifying connection status and retrieving login guidance, but does not explicitly state when to use it versus alternatives or any exclusions. Sibling tools cover different concerns, so context is clear, but guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds 'current' and lists specific data fields, but does not disclose additional behavioral traits such as auth requirements, rate limits, or data freshness. It repeats 'Read-only' which is already in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the purpose ('Get current mortgage balance...') and ends with a clear safety hint ('Read-only'). Every word earns its place; no redundancy beyond the redundant but short safety annotation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input parameters and no output schema, the description lists all key data elements (balance, rate, payment, due date, escrow summary) providing a clear picture of what to expect. It does not mention prerequisites like active login, but given sibling tools (mortgage_start_login) and the read-only nature, the description is sufficiently complete for a simple summary tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is trivially fully covered. There is no need for parameter documentation, so the baseline of 4 applies. The description correctly focuses on the resource and output content rather than parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a 'current mortgage balance, rate, payment, due date, and escrow summary' with a specific verb 'Get' and resource. It distinguishes itself from siblings like mortgage_get_payment_history (history) and mortgage_get_escrow (escrow-only) by providing a comprehensive snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining the current mortgage overview and notes it is read-only. It does not explicitly mention alternatives or exclusions, but the 'current...summary' wording and sibling context make the intended use clear. No explicit when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the agent knows this is a non-read-only, non-idempotent action. The description adds that it starts a login flow but does not detail side effects like opening a browser or whether it returns a status. No contradiction with annotations; the additional context is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with the purpose, followed by usage guidance and a safety note. Every sentence adds essential information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage prerequisites, and a key constraint. It does not explain the return value or what happens after the login flow starts, but the schema's parameter descriptions and the tool's context (initiating the selected login route) make it reasonably complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not elaborate on parameters, but the schema provides descriptions for 2 of 3 params, and the route enum (onepassword/manual) is self-explanatory. The description adds no additional parameter meaning, but the schema sufficiently covers the required inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Start') and resource ('user-selected headed UWM login flow'), clearly indicating the tool's function. It distinguishes from sibling data-retrieval tools by referencing the login flow and the prerequisite from mortgage_connection_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the precondition: 'Use only after presenting the choices from mortgage_connection_status.' Also provides a clear exclusion: 'Never request credentials or MFA in chat.' This gives the agent concrete guidance on when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pulkitsinghal/uwm-mortgage-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server