MCP Tools

Six intent-named tools grouped by audience. Each returns the standard MCPEnvelope.

Student tools

browse_universities

Student wants to explore eligible universities before choosing where to apply.

Inputs country, region, limit, offset
Returns{universities: ShortlistUniversity[], total: int}
Backendfilter_universities + slice

view_faculty

Inspect stored faculty profiles for one university before recommending contacts.

Inputs university*, limit, offset
Returns{faculty: FacultyProfileV1[], total: int}
BackendGET /faculty/{university} (paginated)

recommend_professors

Primary student intent — rank professors for a research field across the shortlist.

Inputs research_field*, country, region, limit
ReturnsRecommendationV1 (full schema in data)
BackendPOST /recommend

Operator tools

collect_faculty_data

Operator triggers an out-of-process scrape for one shortlist university.

Inputs university*, use_llm_fallback
Returns{run_id: string}
Backendworker.run subprocess

check_collection_status

Poll a collection run until status is done or failed.

Inputs run_id*
Returns{stage, status, profiles_found, profiles_stored, errors, universities_scraped}
Backendruns collection

Utility tools

check_status

Quick health probe before heavier tools.

Inputs
Returns{api: ok, mongodb: ok|unavailable}
BackendGET /health

MCP → Backend Mapping

MCP ToolBackendMethod
browse_universities filter_universities + slice —
view_faculty /faculty/{university} GET
recommend_professors /recommend POST
collect_faculty_data worker.run --run-id subprocess
check_collection_status runs collection MongoDB
check_status /health GET