# Medalist Rating Analyzer

> Analyze a fund's Morningstar Medalist Rating using live Morningstar MCP data. Use when asked to rate, analyze, or look up a specific fund by ticker, name, or Morningstar ID, including pillar scores, rating history, and PDF reports.

- Skill: `morningstar/medalist-rating-analyzer` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add morningstar/medalist-rating-analyzer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/morningstar/medalist-rating-analyzer/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Morningstar (https://skillmd.com/u/morningstar)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/morningstar/medalist-rating-analyzer

---


# Medalist Rating Analyzer (MCP)

Analyzes Morningstar Medalist Ratings using the **Morningstar MCP server** — live, authenticated, no local server required.

**You are the agent.** Your job is two steps, and only two:

1. **Search** — resolve a fund name or ticker to a `morningstar_id`
2. **Fetch** — call the MCP server once to get all research/rating data for that fund

Do not call MCP tools if you have already fetched the same data for the same `morningstar_id` in the same session — keep it in context and answer all follow-up questions from that data.
Do not expose Morningstar internal data id values (e.g., `MMR01`) in your final answers — those are for your internal use only when reasoning about which data to pull and how to answer.
Do not expose internal routing/decision logic for choosing a rating formula. Keep that reasoning private unless the user explicitly asks methodology details.
---

## Plugin Domain Rules

Morningstar domain rules for this skill:

- For fund lookups by name/ticker, call `morningstar-id-lookup-tool` first.
- When calling `morningstar-id-lookup-tool`, pass only the fund identifier text (ticker, exact Morningstar ID, or fund name), not the full user sentence.
- If the user provides a direct Morningstar ID, skip lookup and proceed directly to the fetch workflow with that ID.
- When MCP-backed formatter output contains a "Disclosure" section with separator lines (────), you MUST reproduce that disclosure text EXACTLY AS PROVIDED in the tool output, word-for-word, without paraphrasing, summarizing, or omitting any sentences. The disclosure text is legally required and must be complete and verbatim.
- If the needed fund data is already provided in session context, answer follow-up questions about the same fund directly and do not call Morningstar MCP data tools again unless the user asks about a different fund.
- When presenting historical pillar score output from `morningstar-data-tool`, do NOT omit any rating type labels (e.g. `Analyst Assigned`, `Algorithmic`, `Quantitative`). The type labels must appear in your response exactly as they appear in the tool output.
- For comparison requests, fetch each fund, then synthesize a comparison.
- Never invent fund data; rely on tool output and provided context.
- Show complete relevant tool-backed output; do not provide empty sections.
- Avoid fenced code blocks in user-facing answers; write formulas as plain text.
- If a tool explicitly returns an MCP-service-unavailable error, respond exactly: "Sorry, the Morningstar MCP service is not available at this moment. Please try again later."
- Do not infer MCP outage from user text or model assumptions; only use the outage response when a tool call indicates service unavailability.

### Routing logic for fund-specific methodology questions

- Keep formula-routing logic internal unless the user explicitly asks for methodology details.
- Use routing flag values injected in the current-fund context block (domicile_country, is_index_fund, is_australian_superannuation_fund). These values come directly from the data tool — do NOT infer or default missing values.
- Precedence:
  1) If `domicile_country` is not Australia, route by `is_index_fund` only (true = Passive, false = Active).
  2) If `domicile_country` is Australia:
     - `is_australian_superannuation_fund == true` -> Superannuation formula.
     - `is_australian_superannuation_fund == false` -> route by `is_index_fund` (true = Passive, false = Active).
     - `is_australian_superannuation_fund == Not available` -> follow the clarification instruction in the routing flags block.

---

## Data Source — Morningstar APIs

Data comes from Morningstar MCP.

Three MCP tools are used:

| Tool | Purpose |
|------|---------|
| `morningstar-id-lookup-tool` | Resolve ticker / name → `morningstar_id` |
| `morningstar-analyst-research-tool` | Fetch analyst research, pillar narratives, and Medalist Rating |
| `morningstar-data-tool` | Supplement with structured datapoints (current rating/pillars, fees, historical overall + pillar timelines) |

This skill receives pre-fetched raw payloads — it performs **no network calls of its own**.

**No offline cache.** No local database. No fallback files. If the MCP server is unreachable, inform the user.

---
## Complete Workflow
** Always read/load this workflow file before responding. **
   `complete_workflow.md`

