Agent-MCP
MCP Homework — Host, Two Transports, and a Skill
This project satisfies the local parts of the assignment without extra frameworks:
a CLI agent using Ollama
qwen3.5:4b;an MCP host that loads config, merges tools, and routes calls;
a stdio todo server with 3 tools, 1 resource, and 1 prompt;
the same server over authenticated local Streamable HTTP;
progressive skill loading through
use_skill;persistence, validation, recoverable MCP errors, and integration tests.
Public hosting is intentionally not performed. See PUBLIC_HTTP.md for the exact deployment steps.
Requirements
Node.js 20+
Ollama
qwen3.5:4b:ollama pull qwen3.5:4b
Install and verify
npm install
npm test
npm run checkRun everything locally
Use the same local key in both terminals. It is not committed.
Terminal 1 — start the authenticated HTTP server:
export MCP_KEY="$(openssl rand -hex 32)"
echo "$MCP_KEY" # copy this value for terminal 2
npm run server:httpTerminal 2 — ensure Ollama is running, then start the agent:
export MCP_KEY="paste-the-same-value"
ollama serve # omit if Ollama is already runningIn another terminal, run:
export MCP_KEY="paste-the-same-value"
npm run agentTry these requests:
Add "finish MCP homework" using the stdio todo server.
Add "record the demo" using the HTTP todo server.
Standup time — what should I work on today?The last request should trigger use_skill("daily-plan"), then call both MCP servers and return Today, Later, and Blockers.
Test with MCP Inspector
Stdio:
npx @modelcontextprotocol/inspector node src/servers/stdio.jsHTTP:
export MCP_KEY="a-local-test-key"
npm run server:http
npx @modelcontextprotocol/inspectorIn Inspector, select Streamable HTTP, use http://127.0.0.1:3000/mcp, and add header Authorization: Bearer a-local-test-key. Verify:
add_task,list_tasks, andcomplete_taskare listed and callable.todo://listcan be read.plan_my_daycan be loaded.Completing an unknown ID returns
isError: true.
Project map
config.json agent/model/server configuration
skills/daily-plan/SKILL.md on-demand workflow
src/agent/ MCP host, Ollama loop, and skill loader
src/todo/ shared todo domain and MCP capabilities
src/servers/stdio.js stdio entry point
src/servers/http.js Streamable HTTP entry point
test/ unit and protocol integration testsGrading evidence
Requirement | Evidence |
Agent host |
|
stdio server |
|
Local HTTP |
|
Skill in agent |
|
Error handling | Zod validation, |
Tests |
|
Demo and submission checklist
YouTube video demo:
Show
npm testpassing.Show the stdio server in Inspector: tools, resource, and prompt.
Show the HTTP server returning 401 without the key, then connecting with it.
In the agent, add one task through each server.
Ask “Standup time” and show automatic skill loading plus calls to both servers.
Briefly open
config.jsonandSKILL.mdand explain the routing.
Submit the YouTube link and source code on Moodle. If you later deploy, also submit the public /mcp URL and a temporary grader key.
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/voleviettu/Agent-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server