Medify UCAT MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_connectionA | Verify that Medify authentication works and the UCAT courses-api score endpoint is reachable for this account. Call this first when setup fails, after changing MEDIFY_EMAIL/MEDIFY_PASSWORD/MEDIFY_SESSION_COOKIE, or before trusting other tools. Returns ok/authenticated flags, whether email or cookie env is configured, and a human-readable message. Does not list mocks or modify cache. Requires network access to app.medify.co; succeeds from a persisted session jar even if env credentials are unset. |
| list_completed_mocksA | List completed Medify UCAT mocks for the signed-in account with section scores (VR/DM/QR, SJ when present) and cognitive totals. Use for inventory (“what have I sat?”) before trends or comparisons. Prefer analyze_* tools when you need ranked insights rather than a raw list. kind filters full mocks, mini-mocks, or all (default all). forceRefresh bypasses the local cache; includeRaw adds Medify payload fields for debugging. Read-only. Returns mocks plus cached/fetchedAt metadata. Empty list means no completed mocks or auth failed — call check_connection. |
| get_mock_detailsA | Get detailed scores for one completed Medify UCAT mock looked up by id, compositeId, or exact title. Use after list_completed_mocks when you need a single sit (e.g. “Mock 12”). For side-by-side diffs use compare_mocks instead. Returns section scores, totals, dates, and optional raw fields. Missing id throws; unknown id returns not-found style result from the handler. Read-only. forceRefresh refreshes the mock list cache before lookup. |
| analyze_score_trendsA | Analyse personal Medify UCAT mock score trends over time: cognitive totals, per-section averages (VR/DM/QR), best/worst sits, and recent vs earlier comparison. Use when the user asks how scores are moving, whether they are improving, or for a history chart. For subtype drills use analyze_topic_performance; for clock use analyze_question_timing. kind filters which mocks enter the series (full/mini/all; default all). forceRefresh reloads from Medify first. Read-only. Cognitive total is VR+DM+QR only (SJ excluded from totals). Returns analysis plus cache metadata. |
| analyze_section_performanceA | Rank VR, DM, and QR strengths and weaknesses from completed Medify UCAT mocks, with an SJ band summary when SJ scores exist. Use to answer “which section is weakest?” before recommending drills. Does not break down question subtypes — use analyze_topic_performance for that. kind selects full/mini/all mocks (default all). forceRefresh bypasses cache. Read-only. Returns ranked sections with averages and relative standing; SJ is summarised separately and not folded into cognitive totals. |
| analyze_topic_performanceA | Rank Medify UCAT question subtypes (e.g. logic puzzles, tables, VR without keywords, text/visual inference) by personal accuracy versus Medify population averages. Best tool for “what should I drill?” at the question-type level. Complements analyze_section_performance (sections) and analyze_question_timing (clock). includeSj defaults false (omit Situational Judgement). minN drops sparse subtypes (default 10 attempts). Read-only. Fetches live topic-performances from Medify (includes practice history aggregated by Medify, not only mocks). |
| analyze_question_timingA | Analyse per-question timing from recent full mocks: section clock usage, early/mid/late thirds, weakest tags, time sinks (slow zeros), and fast guesses (sub-budget zeros). Use when the user asks about pacing, running out of time, or rushing. Not a substitute for score trends or topic accuracy rankings. limit = number of recent full mocks to inspect (1–15, default 10). minN filters tag rankings. forceRefresh refreshes the mock list first. Read-only. Loads script details (questions + timings) from Medify courses-api; may be slower than score-only tools. |
| recommend_focus_areasA | Recommend prioritised UCAT practice focus areas from mock history (weakest sections, declining trends, optional gap to a cognitive target). Use for a practice plan. For evidence behind the plan, also call analyze_topic_performance and/or analyze_question_timing. kind filters mocks. includeSj defaults true for SJ advice — set false for cognitive-only plans. targetTotal (e.g. 2250) adds a VR+DM+QR gap recommendation. Read-only. Returns ordered recommendations with reasons/suggestions plus a short summary. Does not create Medify practice sets. |
| compare_mocksA | Compare two completed Medify UCAT mocks section-by-section and by cognitive total (VR+DM+QR). Use when the user names two sits (ids or titles). For overall history use analyze_score_trends; for one mock use get_mock_details. idA and idB accept mock id, compositeId, or exact title. forceRefresh reloads the list before resolving idA. Read-only. Returns found=false with missing ids if either mock cannot be resolved; otherwise a structured section/total diff. |
| refresh_scoresA | Force re-fetch completed mock scores from Medify and update the local cache under MEDIFY_CACHE_DIR (default ~/.medify-mcp-server). Call after finishing a new mock when other tools still show stale data, or when cache TTL has not expired yet. Returns fetch metadata (count/fetchedAt). Does not analyse scores — pair with analyze_score_trends or list_completed_mocks afterward. Requires valid Medify auth. Overwrites the cached mock list only; does not change Medify account data. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/ankitforcode/medify-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server