Skip to main content
Glama

MCP Homework — Host, Two Transports, and a Skill

이 프로젝트는 추가 프레임워크 없이 과제의 로컬 부분을 충족합니다:

  • Ollama qwen3.5:4b를 사용하는 CLI 에이전트;

  • 설정을 로드하고, 도구를 병합하며, 호출을 라우팅하는 MCP 호스트;

  • 3개의 도구, 1개의 리소스, 1개의 프롬프트를 포함한 stdio todo 서버;

  • 인증된 로컬 Streamable HTTP를 통한 동일한 서버;

  • use_skill을 통한 점진적 스킬 로딩;

  • 지속성, 유효성 검사, 복구 가능한 MCP 오류, 통합 테스트.

퍼블릭 호스팅은 의도적으로 수행되지 않았습니다. 정확한 배포 단계는 PUBLIC_HTTP.md를 참조하세요.

요구 사항

  • Node.js 20+

  • Ollama

  • qwen3.5:4b: ollama pull qwen3.5:4b

Related MCP server: Personal OS MCP

설치 및 확인

npm install
npm test
npm run check

모든 것을 로컬에서 실행하기

두 터미널에서 동일한 로컬 키를 사용하세요. 커밋되지 않습니다.

터미널 1 — 인증된 HTTP 서버 시작:

export MCP_KEY="$(openssl rand -hex 32)"
echo "$MCP_KEY"   # copy this value for terminal 2
npm run server:http

터미널 2 — Ollama가 실행 중인지 확인한 후, 에이전트 시작:

export MCP_KEY="paste-the-same-value"
ollama serve      # omit if Ollama is already running

다른 터미널에서 실행:

export MCP_KEY="paste-the-same-value"
npm run agent

다음 요청을 시도해 보세요:

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?

마지막 요청은 use_skill("daily-plan")을 트리거한 후, 두 MCP 서버를 모두 호출하고 오늘, 나중에, 차단 항목을 반환해야 합니다.

MCP Inspector로 테스트

Stdio:

npx @modelcontextprotocol/inspector node src/servers/stdio.js

HTTP:

export MCP_KEY="a-local-test-key"
npm run server:http
npx @modelcontextprotocol/inspector

Inspector에서 Streamable HTTP를 선택하고, http://127.0.0.1:3000/mcp를 사용하며, 헤더 Authorization: Bearer a-local-test-key를 추가하세요. 다음을 확인하세요:

  1. add_task, list_tasks, complete_task가 나열되고 호출 가능해야 합니다.

  2. todo://list를 읽을 수 있어야 합니다.

  3. plan_my_day를 로드할 수 있어야 합니다.

  4. 알 수 없는 ID 완료 시 isError: true를 반환해야 합니다.

프로젝트 맵

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 tests

평가 증거

요구 사항

증거

에이전트 호스트

src/agent, config.json; 접두사가 붙은 도구를 병합 및 라우팅

stdio 서버

src/servers/stdio.js; 3개의 도구 + 리소스 + 프롬프트

로컬 HTTP

src/servers/http.js; Streamable HTTP + health + bearer 인증

에이전트 내 스킬

skills/daily-plan/SKILL.md; use_skill에 의해 인덱싱된 후 로드

오류 처리

Zod 유효성 검사, isError, 제한된 에이전트 루프, 안정적인 HTTP 오류

테스트

npm test가 저장소와 두 MCP 전송을 종단 간 실행

데모 및 제출 체크리스트

짧은 YouTube 데모의 경우:

  1. npm test 통과를 보여주세요.

  2. Inspector에서 stdio 서버: 도구, 리소스 및 프롬프트를 보여주세요.

  3. HTTP 서버가 키 없이 401을 반환하고, 키로 연결하는 것을 보여주세요.

  4. 에이전트에서 각 서버를 통해 하나의 작업을 추가하세요.

  5. "Standup time"이라고 물어보고 자동 스킬 로딩과 두 서버 호출을 보여주세요.

  6. 간단히 config.json과 SKILL.md를 열고 라우팅을 설명하세요.

Moodle에 YouTube 링크와 소스 코드를 제출하세요. 나중에 배포하는 경우, 공개 /mcp URL과 임시 채점자 키도 제출하세요.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A local-stdio MCP server for a single personal Todoist account with env-gated read-only mode and prompt-injection mitigations.
    221 npm
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    MCP server for Personal OS API that enables managing tasks, notes, projects, collections, reviews, and more through typed tools over stdio.
    66
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    A Model Context Protocol server that provides todo management via stdio, local HTTP, and public HTTPS transports, enabling agents to add, list, and complete tasks, and includes a daily standup skill.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A demo MCP server exposing an in-memory todo list via tools (add_task, list_tasks, complete_task), a resource, and a prompt, over both stdio and HTTP transports.
    1 npm
    ISC