Get Institutions Status
get_institutions_statusRetrieves the current health status of all linked financial institutions, indicating any errors or issues.
Instructions
Return health status for every linked Item/institution.
No additional network calls beyond what all_items already makes (it
uses the 5-minute health cache). Enumerates linked Items and reports their
current health status.
Returns: {"items": [{"env_key", "institution", "institution_id", "status", "reason"}, ...]}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- server.py:452-472 (handler)Implementation function that iterates over all linked items via all_items() and returns their health status including env_key, institution name, institution_id, status, and reason.
def _get_institutions_status_impl() -> dict: """Return health status for every linked Item/institution. No additional network calls beyond what ``all_items`` already makes (it uses the 5-minute health cache). Enumerates linked Items and reports their current health status. Returns: {"items": [{"env_key", "institution", "institution_id", "status", "reason"}, ...]} """ api = build_api() items_out: list[dict] = [] for env_key, token, health in all_items(api): items_out.append({ "env_key": env_key, "institution": health.institution_name or env_key, "institution_id": health.institution_id, "status": health.status, "reason": health.reason, }) return {"items": items_out} - server.py:475-478 (registration)Registers the 'get_institutions_status' tool on the MCP server with a read-only hint and display title.
get_institutions_status = mcp.tool( annotations={"readOnlyHint": True, "title": "Get Institutions Status"}, name="get_institutions_status", )(_get_institutions_status_impl) - tests/test_server.py:378-395 (helper)Test for the get_institutions_status tool, verifying it returns correct health status for all linked items.
def test_get_institutions_status_reports_all_items(fake_env_tokens): fake_api = MagicMock() items = [ ("CHASE", SecretStr("t1"), ItemHealth("CHASE", "healthy", "ins_3", "Chase")), ("FIDELITY", SecretStr("t2"), ItemHealth("FIDELITY", "re_auth_required", "ins_9", "Fidelity", reason="ITEM_LOGIN_REQUIRED")), ] with patch.object(srv, "build_api", return_value=fake_api), \ patch.object(srv, "all_items", return_value=items): out = srv._get_institutions_status_impl() assert len(out["items"]) == 2 keys = {i["env_key"] for i in out["items"]} assert keys == {"CHASE", "FIDELITY"} chase = next(i for i in out["items"] if i["env_key"] == "CHASE") fid = next(i for i in out["items"] if i["env_key"] == "FIDELITY") assert chase["status"] == "healthy" assert chase["institution"] == "Chase" assert fid["status"] == "re_auth_required" assert fid["reason"] == "ITEM_LOGIN_REQUIRED"