wrapper-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEBUG | No | When set (any value), emits verbose HTTP and session logs to stderr. | |
| WRAPPER_PAT | Yes | Personal access token, wrapper_<32 alnum>. Must come from env, not CLI flag. | |
| WRAPPER_BASE_URL | Yes | Browser sign-in URL of your QMS Wrapper instance. HTTPS only; plain HTTP allowed only for loopback or *.local. | |
| WRAPPER_CACHE_DIR | No | Scratch dir, created with mode 0700. | ~/.cache/wrapper-mcp |
| WRAPPER_UPLOAD_DIR | No | Absolute path. task.attach will only read files inside this directory. Default-deny when unset. | |
| WRAPPER_UPLOAD_MAX_BYTES | No | Per-file upload size cap. | 52428800 (50 MB) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| task.listA | List tasks assigned to me, newest first. Read-only. |
| task.getA | Full task detail incl. journal, attachments, sub-issues, relations. |
| task.updateA | Apply ONE batched change to a task — all non-null fields go in a single journal entry. Use for: starting (status=inprogress), finishing (status=resolved + comment), fixing wrong title/priority alongside other work. Do NOT call twice in a row for the same task. |
| task.createA | Create a new bug or task via the unified create-with-submission flow. REQUIRES a previewed-and-approved payload — call this only after the /qms-file prompt has gathered fields, rendered a preview, and the user has explicitly approved. previewedHash is the SHA-256 of the canonical preview JSON; the client refuses mismatches. |
| task.assignA | Transfer assignment to another user. Typically IRREVERSIBLE — once transferred the previous assignee may lose access. Never call without explicit user instruction. userExplicitlyRequested MUST be true. |
| task.relateA | Link this task to another (relates / blocks / duplicates / etc). Prefer this over creating a duplicate when an existing task already covers the same issue (R8). |
| task.tagC | Merge a set of claude-* tags into the task. Idempotent. |
| task.attachA | Upload one or more files to a task in a single multipart request (one journal entry). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| qms-plate | Summarize my open tasks grouped by priority. |
| qms-summary | Read a task plus attachments and produce a user-language summary. |
| qms-start | Flip a task to in-progress in one atomic update. |
| qms-finish | Close out a task with status=resolved + a one-paragraph comment in a single update. |
| qms-file | Gather, preview, approve, hash, and create — the R9 flow for task.create. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| lookups.statuses | All issue statuses (id, name, identifier, closed flag). |
| lookups.priorities | All issue priorities (id, name). |
| lookups.trackers | All trackers (bug, task, etc.) with id and identifier. |
| me | Identity of the PAT owner (id, email, username, name). |
Latest Blog Posts
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/uvaresearch/qmswrapper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server