degree requirements: mcp tools for my programs

Open
#868 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rails, ruby
Domain
api, backend

Research direction

Start with docs/mcp.md for the tool setup steps, then inspect the existing McpTools::BaseTool and McpTools::BaseWriteTool implementations and matching API endpoints and policies. Implement the two student program tools with the stated data and planned-only write rules, then verify scope requirements and authorization match each endpoint; completion includes deciding whether existing course scopes suffice.

Written by the indexing model from the issue text.

Description

enhancement

Part of #632. Depends on #529.

MCP tools for the student's own programs.

Tools

  • my_programs (read): the student's programs with catalog year, plan, start term, and status, and the ended programs.
  • update_my_planned_programs (write): add or remove a planned program or pathway, such as a minor the student is thinking about. It changes only rows with status: planned. It never changes rows from LeopardWeb.

Rules

  • The read tool inherits McpTools::BaseTool. The write tool inherits McpTools::BaseWriteTool and changes only the signed-in student's data.
  • Each tool names its OAuth scope with requires_scope. Decide if a new scope is needed, or if the existing course scopes cover it.
  • Each tool has a matching API endpoint, and the tool calls authorize with the same policy as the endpoint.
  • No Flipper flag. The scopes on the consent page are the gate.
  • docs/mcp.md gives the steps to add a tool.
Dominant language
Ruby
Stars
4
Forks
0
Avg merge
6h 36m
Merged PRs (30d)
181

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from WITCodingClub/calendar-backend

All issues in WITCodingClub/calendar-backend

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.