MCP server exposing a comprehensive knowledge base of 236 courses across 31 faculties covering design, engineering, research, DX, IA, agentic engineering, ethics, security, and quality. Provides 10 tools for searching, loading, comparing, and analyzing courses with casual/slang writing support.
ICIL exposes 10 well-intentioned tools with clear naming (verb_noun pattern) and comprehensive descriptions (avg 180+ chars). All tools have input schemas with type definitions and parameter descriptions. However, output schemas are NOT documented, responses are formatted as text/JSON blobs without declared field structures, forcing LLMs to parse unstructured content. Error handling is minimal (generic try-catch). No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Parameter constraints are present but some lack explicit validation guidance. All tools are READ_ONLY, which is appropriate, but this limits composition patterns.
Compare two courses side-by-side to understand their differences, overlaps, and complementary strengths. Useful for choosing between related topics or understanding how two domains relate.
Export a course to JSON, Markdown, HTML, or PDF format. Useful for offline reading, sharing, or integration with other tools.
Quick campus metadata & statistics. Returns total courses, faculties, version, and high-level campus overview.
Trace prerequisite chains for a course. Shows what you should learn before tackling a specific topic, and what topics build on it.
List all 31 faculties available in the ICIL campus. Use this to discover what knowledge domains are available before searching. Returns faculty names, descriptions, course counts, and all course files.
Load the full expert content of a specific course from the ICIL campus. Use this after search_campus to get deep, comprehensive knowledge on a topic. Each course is 10-15 minutes of reading with theory, code examples, tables, and practical application.
Output schemas not documented. Tools return formatted text/JSON without declared field structures (e.g., search_campus returns 'faculty', 'priority', 'recommendedCourses' but these are not formally specified). LLMs must infer structure from examples, risking parsing errors and wasted tokens.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint metadata. While all tools are READ_ONLY, explicit annotations would help agents reason about safety and retry behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
AI-suggested course sequence. Generates a personalized learning path based on your goals and current knowledge level.
Full-text search across ALL course content in the ICIL campus. Unlike search_campus (which matches keywords), this searches the actual course text for your query and returns ranked excerpts. Use this for deep research and cross-disciplinary discovery.
Scoped search within one faculty. Narrows search results to a specific knowledge domain for more focused discovery.
Search the ICIL campus for relevant design courses. Provide a prompt describing what you need help with (e.g., 'improve form accessibility', 'choose brand colors', 'understand cognitive load'). Returns matched faculties with recommended courses ranked by relevance.
Minimal error handling. Generic try-catch blocks return {error: err.message} without recovery guidance. No categorization of errors as retryable, user-fixable, or fatal. LLMs cannot determine next steps on failure.
No pagination support. search_across accepts maxResults (1-25, default 10) but other list/search tools (list_faculties, search_by_faculty) do not expose limit/offset. Large result sets could exhaust context windows.
export_course format parameter uses enum constraint (json, markdown, html, pdf) but no description explains what each format contains or when to use each. LLMs may pick wrong format for the use case.