XCS221 Course Guide MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@XCS221 Course Guide MCP ServerWhat assignments are due this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
XCS221 MCP Server Template
Template MCP server that helps AI agents answer common XCS221 course logistics questions from static in-repo data (no auth, no external APIs).
What this template answers
Out of the box, it is designed for questions such as:
When are assignments due?
Where should I be in lectures/assignments today?
Which git repository has setup or assignment code?
The server exposes both direct tools and a natural-language router tool.
Related MCP server: AI Book Agent MCP Server
Tech stack
Language: TypeScript (Node.js)
MCP SDK:
@modelcontextprotocol/sdkValidation:
zodTests:
vitest
TypeScript is a strong fit because the official MCP SDK for Node is mature and gives a clean typed API for resources + tools.
Folder structure
.
├── src
│ ├── data
│ │ └── courseData.ts # Static schedule/repo data (edit this each term)
│ ├── tools
│ │ └── courseTools.ts # Pure logic for deadlines, pacing, and routing
│ ├── server.ts # MCP server + tool/resource registration
│ └── index.ts # Stdio entrypoint
├── tests
│ └── courseTools.test.ts # Unit tests for tool logic
├── package.json
├── tsconfig.json
└── vitest.config.tsAvailable MCP capabilities
Resource
xcs221://course-data
Full static JSON data for term schedule, assignments, and repositories.
Tools
get_assignment_deadlinesInput:
referenceDate?(YYYY-MM-DD)includePast?(boolean)
Returns assignment due dates from static data.
get_today_progressInput:
referenceDate?(YYYY-MM-DD)
Returns pacing guidance (lecture focus + assignment focus) for that day.
get_course_repositoriesInput: none
Returns setup and assignment repository URLs.
answer_course_questionInput:
question(string)referenceDate?(YYYY-MM-DD)
Routes natural-language questions to the right static answer set.
Quick start
1) Install
npm install2) Run tests
npm test3) Start MCP server (stdio transport)
npm run devor build + run:
npm run build
npm startMCP client config example
Use stdio in your MCP client:
{
"mcpServers": {
"xcs221-course-guide": {
"command": "node",
"args": ["/absolute/path/to/repo/dist/index.js"]
}
}
}If running TypeScript directly in development:
{
"mcpServers": {
"xcs221-course-guide-dev": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/repo/src/index.ts"]
}
}
}Customizing for your actual course term
Edit src/data/courseData.ts:
update
term,timezone, andcourseStartDatereplace assignment
dueDateandrepolinksupdate
pacingMilestonesdate ranges and topicsupdate
repositorieslist to your real setup/assignment repos
No auth changes are required unless you intentionally add external systems.
Testing
Current tests cover:
date validation
upcoming deadline selection
day-specific pacing guidance
natural-language intent routing
fallback behavior for unknown questions
Add tests in tests/ as you extend new tools or data fields.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/toddschilling/xcs221-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server