ZEN University Syllabus MCP Server
ZEN 대학 실라버스 MCP 서버 구현
ZEN 대학 실라버스 의 콘텐츠를 이용할 수 있도록 MCP를 구현한 것.
사용법
Node.js 를 설치합니다. Node.js 버전은 20 이상을 사용해야합니다.
이 리포지토리를 복제하거나 ZIP으로 다운로드하여 배포합니다. 콘솔에서 열고 다음 명령을 실행합니다.
npm install
npx tsc에서 빌드. Mac은 콘솔에서 실행 권한을 부여한다. chmod 755 build/index.js
Related MCP server: University Course Catalog MCP Server
Claude Desktop에서 설정
Claude Desktop 을 설치합니다. VSCode 편집기가 설치 전제이지만,
code $env:AppData\Claude\claude_desktop_config.json에서 설정 파일을 엽니다. Mac은
code ~/Library/Application\ Support/Claude/claude_desktop_config.json다음과 같이 다시 작성하여 설정.
{
"mcpServers": {
"get-subjects": {
"command": "node",
"args": [
"C:\\Users\\sifue\\workspace\\zen-syllabus-mcp\\build\\index.js"
]
}
}
}build/index.js 의 경로는 적절히 변경해야 한다.
Mac에서는,
{
"mcpServers": {
"get-subjects": {
"command": "node",
"args": [
"/Users/sifue/workspace/zen-syllabus-mcp/build/index.js"
]
}
}
}nvm 과 같은 Node.js 버전 관리 시스템을 사용하는 경우 다음과 같이 node를 지정합니다.
{
"mcpServers": {
"get-subjects": {
"command": "/Users/soichiro_yoshimura/.nvm/versions/node/v22.14.0/bin/node",
"args": [
"/Users/soichiro_yoshimura/workspace/zen-syllabus-mcp/build/index.js"
]
}
}
}이렇게 된다. build/index.js 의 경로는 적절히 변경해야 한다.
설정 후 Claude Desktop을 재부팅.
"ZEN 대학의 실라버스 MCP를 이용하여 프런트 엔드 엔지니어가 되기 위한 추천 과목을 들려주세요"
에서 검증.


이렇게 된다. 이수 요건을 설정하면 섬세한 이수 상담도 가능.
VSCode 설정
【미검증】어느 GitHub Copilot에서 AI 에이전트를 이용할 수 있게 되면 이용할 수 있는 것 같다(현재는 프리뷰판만). mcp에서 설정을 검색하고 다음을 setting.json으로 설정합니다. 패스는 적절히 변경할 것. json의 weather 위에 기동 버튼이 나타나므로 기동해 둔다.
{
"mcpServers": {
"get-subjects": {
"command": "node",
"args": [
"C:\\Users\\sifue\\workspace\\zen-syllabus-mcp\\build\\index.js"
]
}
}
}설정 후 GitHub Copilot에서
"ZEN 대학의 실라버스 MCP를 이용하여 프런트 엔드 엔지니어가 되기 위한 추천 과목을 들려주세요"
에서 검증. 이수 요건을 설정하면 섬세한 이수 상담도 가능.
서버 구현시의 동작 확인
자세한 내용은 TypeScript SDK 의 Client 구현을 참조하십시오.
node build/index.js에서 서버를 시작합니다.
node .\build\client.js에서 클라이언트를 시작하고 실행.
클라이언트는 확인하려는 코드에 맞게 다시 작성한 다음,
npx tsc에서 빌드하고 다시 클라이언트를 실행합니다.
참고
Available Tools
2 toolsget-a-subject-with-detailB
Retrieve detailed a course information from the ZEN University syllabus. The numeric intended year of enrollment (enrollment_grade (optional)) and the freeword parameter (freeword) must be specified. The freeword parameter is intended for searching course names and similar keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| enrollment_grade | No | year of enrollment (e.g. 1, 2, 3, 4) | |
| freeword | Yes | the freeword search parameter (e.g. 'ITリテラシー') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that parameters 'must be specified' and describes the freeword's purpose, but lacks details on permissions, rate limits, error handling, or what 'detailed information' entails. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences that efficiently cover purpose and parameter usage. It's front-loaded with the main action and avoids unnecessary details, though it could be slightly more structured by separating purpose from parameter guidelines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It explains the purpose and parameters but lacks behavioral context and output details, leaving gaps in understanding how to use it effectively beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds some context by explaining that the freeword is for 'searching course names and similar keywords', but this doesn't significantly enhance the schema's details. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve detailed course information') and resource ('from the ZEN University syllabus'), making the purpose evident. However, it doesn't explicitly differentiate from the sibling tool 'get-list-of-all-subjects', which likely retrieves a broader list without detailed information or filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying that parameters 'must be specified' for retrieving detailed information, suggesting this tool is for targeted searches rather than general listing. However, it doesn't explicitly state when to use this vs. the sibling tool or provide clear alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-list-of-all-subjectsA
Retrieve a simplified list of all courses from the ZEN University syllabus, containing only the essential properties (name, enrollmentGrade, quarters, credit).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the tool's behavior as a retrieval operation with a specific output format (simplified list with named properties), but lacks details about potential limitations like pagination, rate limits, authentication requirements, or error handling. The description adds some behavioral context but doesn't fully compensate for the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently communicates the tool's purpose, scope, and differentiation from siblings. Every word earns its place with no redundant information, making it appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description provides adequate context by clearly explaining what the tool does, what it returns, and how it differs from alternatives. However, the absence of output schema means the description doesn't fully document the return structure beyond property names, leaving some ambiguity about format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose and output. This meets the baseline expectation for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Retrieve'), resource ('list of all courses from the ZEN University syllabus'), and scope ('simplified list... containing only the essential properties'). It explicitly distinguishes from the sibling tool 'get-a-subject-with-detail' by emphasizing the simplified nature versus detailed information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives by specifying it returns 'only the essential properties' and contrasting with the sibling tool name 'get-a-subject-with-detail', which implies a more detailed alternative. It clearly indicates this tool is for simplified overviews rather than detailed information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- Changed
get-list-of-all-subjects1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
2 tool updates
- First observed
get-a-subject-with-detail - First observed
get-list-of-all-subjects
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one retrieves detailed information for a specific course with search parameters, while the other fetches a simplified list of all courses. There is no overlap in functionality, making it easy for an agent to choose the correct tool based on the need for detailed vs. broad data.
Both tools follow a consistent verb_noun pattern with hyphens ('get-a-subject-with-detail' and 'get-list-of-all-subjects'), using clear, descriptive names that indicate their actions and targets. The naming style is uniform across the set, enhancing predictability.
With only 2 tools, the server feels under-scoped for a university syllabus domain, which typically involves operations like searching, filtering, updating, or managing course data. This limited set may force agents to work around gaps, as it lacks comprehensive coverage for common syllabus interactions.
The tool surface is severely incomplete for a syllabus server, covering only retrieval (detailed and list) without essential operations like creating, updating, or deleting courses, or advanced search capabilities. This will likely cause agent failures when full lifecycle management is required.
Maintenance
Related MCP Connectors
Let AI agents query data and act across all your business apps via MCP.
- PressoOAuthnow.presso
Connect e-commerce and marketing data to AI assistants via MCP.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
MCP Hub: AI service discovery, per-user OAuth, and multi-service workflow orchestration
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceTransforms documentation repositories into interactive educational content and provides standardized access to AI-generated structured courses through MCP protocol. Generates multi-complexity learning paths from docs and enables AI tutoring applications to interact with course content.-
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes a university course catalog to LLMs, enabling course search, prerequisite lookup, instructor details, and department directory through natural language.-
- FlicenseAqualityBmaintenanceEnables MCP clients to search and read the free AI School curriculum, including 550+ tracks on AI engineering, governance, security, and applied AI by profession.4-
- FlicenseNot gradedqualityBmaintenanceMCP server exposing a university course catalog with tools for searching courses, looking up prerequisites and instructors, and generating prerequisite graphs, plus resources and a prompt template for AI academic advisors.-