Loan MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CLIENT_ID | Yes | Application (client) ID | |
| HTTP_HOST | No | HTTP bind host (0.0.0.0 when hosted behind a proxy) | 127.0.0.1 |
| HTTP_PORT | No | HTTP transport port (start:http) | 3000 |
| LOG_LEVEL | No | trace…fatal/silent | info |
| TENANT_ID | Yes | Directory (tenant) ID | |
| MCP_API_KEY | No | Shared secret for the HTTP endpoint (strongly advised) | (unset) |
| CLIENT_SECRET | Yes | Client secret value | |
| DATAVERSE_URL | Yes | https://yourorg.crm.dynamics.com (no trailing /) | |
| MCP_HTTP_PATH | No | HTTP MCP endpoint path | /mcp |
| HTTP_TIMEOUT_MS | No | Dataverse request timeout (ms) | 30000 |
| MCP_CORS_ORIGIN | No | CORS allow-origin for the HTTP transport | * |
| OFFICER_ENTITY_SET | No | Officer target entity set (for getOfficer) | systemusers |
| OFFICER_NAME_FIELD | No | Name column on the lookup's target table | fullname |
| OFFICER_EMAIL_FIELD | No | Officer email column (for getOfficer) | internalemailaddress |
| DATAVERSE_LOAN_TABLE | No | Loan entity set name (data paths) | cr174_loanapplics |
| OFFICER_NAV_PROPERTY | No | Officer lookup navigation property to $expand | cr174_OfficerAssigned |
| DATAVERSE_API_VERSION | No | Web API version | v9.2 |
| DATAVERSE_LOAN_ENTITY | No | Loan entity logical name (metadata paths) | cr174_loanapplic |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| GetLoanSummaryA | Retrieve the full summary of a single loan application by its reference number, including applicant details, amounts, status, eligibility and the assigned officer. |
| GetLoanStatusA | Retrieve the current processing status of a single loan application by its reference number, including eligibility status, the assigned officer and whether manual review is required. |
| SearchLoansByPhoneA | Find all loan applications associated with a given phone number, returned as a compact list. |
| GetApplicantHistoryA | Retrieve all previous loan applications for an applicant, identified by their email address, ordered by most recent first. |
| TrackLoanTimelineA | Return a chronological timeline for a loan application using its created date, eligibility-check date, officer assignment and current status. |
| ExplainEligibilityB | Explain a loan application's eligibility in business-friendly language, including its eligibility status, remarks and whether manual review is required. |
| GetRequiredDocumentsA | Return the list of documents required for a given loan type. Falls back to a default checklist for unrecognized loan types. |
| ListPendingReviewsA | List all loan applications currently in the manual-review queue (status = Under Review). |
| GetOfficerWorkloadA | Summarize a loan officer's workload: total assigned applications, pending reviews and a breakdown by status, with the underlying loan list. |
| SearchLoansByStatusA | Find all loan applications matching a given status label (e.g. Received, Pending, Under Review, Approved, Rejected). |
| SearchLoansByOfficerA | Find all loan applications assigned to a specific loan officer, identified by their full name. |
| GetLoanAnalyticsA | Return portfolio-level analytics across all loan applications: totals by status and average/highest/lowest loan amounts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Most tools have clear distinct purposes, such as GetLoanSummary, SearchLoansByPhone, and GetOfficerWorkload. However, a few overlap: GetLoanSummary and GetLoanStatus both return status and officer info, and TrackLoanTimeline provides timeline which overlaps with status. These overlaps could cause minor misselection.
All tool names follow a consistent Verb+Noun+Modifier pattern in PascalCase (e.g., GetLoanSummary, SearchLoansByStatus, ListPendingReviews). The naming is predictable and uniform across the set.
With 12 tools, the set is well-scoped for a loan management server. It covers retrieval, search, analytics, and officer workload without being excessive or insufficient.
The tools comprehensively cover retrieval queries (summary, status, timeline, search, analytics, documents) but lack any mutation operations (create, update, delete loans). This is a notable gap for a complete loan management surface.