diff --git a/skills/gitlab/SKILL.md b/skills/gitlab/SKILL.md new file mode 100644 index 0000000..12cac81 --- /dev/null +++ b/skills/gitlab/SKILL.md @@ -0,0 +1,73 @@ +--- +name: gitlab +description: > + This skill should be used whenever the user asks about code in the MPM GitLab + repository, including questions about "the codebase", "the repo", "RDMC code", + "middleware code", "APK code", "Visual Applications", "how does X work in the + code", "find where Y is defined", "search the repo for", "look at the source", + "what does this function do", "show me the code for", "check the backend", + "how is X implemented", or any question that requires reading or searching + source code. Also triggers on "GitLab", "the repository", "our codebase", + "the source", or any request to understand, audit, or trace code in the + MPM system. Also triggers on "setup gitlab credentials", "store my token", + "update my PAT", or "rotate my gitlab token". +metadata: + version: "0.2.0" + author: "Message Point Media" +--- + +## MPM GitLab Repository Access + +The `gitlab-mpm` MCP server provides read-only access to MPM's GitLab account at gitlab.com. Use it to answer code questions, trace functionality, find implementation details, and understand system architecture across MPM's repositories. + +## First-Time Setup + +After installing this plugin, credentials must be stored before any repository access will work. Run: + +``` +setup_credentials("") +``` + +The PAT is stored in macOS Keychain — never in the plugin files. To verify the connection is working, run `check_credentials()`. To rotate a token, just run `setup_credentials()` again with the new value. + +## MPM Repository Groups + +| Group | Contents | +|-------|----------| +| `mpmedia-andriod` | APK code: launchers, TDM apps, ITxPT, RDMC monitoring, IoT | +| `mpmedia-transit-apps` | Visual Applications (HTML): wayside and on-vehicle display apps, plugins | +| `MPMedia` | Middleware, agency GTFS projects, backend tools | +| `mpm-backend-refactors` | RDMC-Mono, shared backend services | +| `mpmprojects` | Web apps, GTFS integrations, customer-specific projects | + +Use `list_group_projects("")` to see all repos in a group. + +## How to Use the GitLab MCP Tools + +When a user asks a code-related question: + +1. **Start with project discovery** — use `list_group_projects` or `list_projects` to identify the right repository before reading files +2. **Search before you read** — use `search_code` to locate specific symbols, functions, or patterns rather than reading entire files +3. **Follow the thread** — when you find a relevant file, check imports and references to understand the full call chain +4. **Summarize with precision** — report file paths, line numbers, and function names; don't paraphrase code logic without citing the source + +## Tool Reference + +| Tool | Purpose | +|------|---------| +| `setup_credentials` | Store PAT in Keychain (run once after install) | +| `check_credentials` | Verify token is stored and working | +| `clear_credentials` | Remove token from Keychain | +| `list_projects` | List all accessible repos (membership-scoped) | +| `list_group_projects` | List all repos in a specific group | +| `get_project` | Get details for a project by ID or path | +| `list_repository_tree` | Browse files and directories | +| `get_file_contents` | Read a specific file | +| `search_code` | Search for code within a project | +| `list_branches` | List branches | +| `list_commits` | List recent commits | +| `get_commit` | Get commit details and stats | + +## Access Scope + +Read-only. The `read_api` PAT scope allows listing projects, searching code, reading file contents, and browsing repository structure. No write operations are possible.