# com.gitscrum/mcp (npm · @gitscrum-studio/mcp-server)

MCP server for GitScrum — manage tasks, sprints, time tracking, and client workflows via AI

- Trust score: 67/100 (medium)
- Change this week: +42
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@gitscrum-studio/mcp-server`: 67/100 (this document), [markdown](https://verifymcp.io/servers/com-gitscrum-mcp/gitscrum-studio-mcp-server.md), [page](https://verifymcp.io/servers/com-gitscrum-mcp/gitscrum-studio-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@gitscrum-studio/mcp-server`
- Version: `1.0.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 171 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 68/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 6363 tokens (~205/item across 31 items; 29 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add com-gitscrum-mcp -- npx -y @gitscrum-studio/mcp-server
```

### Codex

```bash
codex mcp add com-gitscrum-mcp -- npx -y @gitscrum-studio/mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-gitscrum-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@gitscrum-studio/mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-gitscrum-mcp --command npx --arg -y --arg @gitscrum-studio/mcp-server
```

### Hermes

```yaml
mcp_servers:
  com-gitscrum-mcp:
    command: "npx"
    args: ["-y", "@gitscrum-studio/mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "com-gitscrum-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@gitscrum-studio/mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 67, +18)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] License: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 49, +44)

- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] MCP protocol: unverified → pass

### 2026-07-31 (score 5, −55)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 60, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-28 (score 78, +53)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: good
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: fail
- [functional] Licence: MIT

### 2026-07-27 (score 25)

First indexed and scored.

## MCP tools (29)

### `auth_login` (~19 tokens)

Start login. Returns URL and code for browser authorization.

### `auth_complete` (~32 tokens)

Complete login after browser authorization.

Input parameters:

- `device_code` (string, required): The device_code returned from auth_login (REQUIRED)

### `auth_status` (~12 tokens)

Check authentication status.

### `auth_logout` (~13 tokens)

Logout and clear token.

### `task` (~830 tokens)

Task management. Actions: my, today, notifications, get, create, update, complete, subtasks, filter, by_code, duplicate, move.

Workflow:
\- 'my' and 'today': no extra params needed, returns user's tasks
\- 'create': requires company_slug + project_slug + title. ALL optional fields (sprint_slug, user_story_slug, column, type_id, effort_id, usernames, etc.) can be set in ONE call
\- 'update': requires uuid + company_slug + project_slug. Accepts same optional fields as create
\- 'get'/'complete'/'subtasks': requires uuid (task UUID from any task listing)
\- 'filter': requires company_slug + project_slug, supports many filter params
\- 'by_code': requires task_code (e.g. 'PROJ-123') + company_slug + project_slug
\- 'duplicate': requires uuid + company_slug + project_slug
\- 'move': requires uuid + company_slug + project_slug + new_project_slug + new_workflow_id

Input parameters:

- `action` (string, required): Which operation to perform
- `closed_at` (string): Filter: Closed date range YYYY-MM-DD=YYYY-MM-DD
- `column` (string): Kanban column name e.g. 'Done', 'In Progress'. Easier than workflow_id - MCP resolves the ID
- `company_slug` (string): Workspace identifier. Required for: create, update, filter
- `created_at` (string): Filter: Created date range YYYY-MM-DD=YYYY-MM-DD
- `description` (string): Task description in markdown (optional)
- `due_date` (string): Deadline in YYYY-MM-DD format, e.g. '2025-12-31'
- `effort` (string): Filter: Priority/effort title
- `effort_id` (number): Priority level ID (get from project action=efforts)
- `estimated_minutes` (number): Time estimate in minutes (e.g. 60 for 1 hour)
- `is_archived` (boolean): Archive task (for update/filter)
- `is_blocker` (boolean): Mark task as blocker (for create/update/filter)
- `is_bug` (boolean): Mark task as bug (for create/update)
- `label_ids` (array): Array of label IDs to attach
- `labels` (string): Filter: Comma-separated label titles
- `new_project_slug` (string): Target project for move action
- `new_workflow_id` (number): Target workflow/column ID for move action
- `parent_id` (string): Parent task UUID to create as subtask
- `per_page` (number): Number of results (1-100, default 50)
- `project_slug` (string): Project identifier. Required for: create, update, filter
- `sprint` (string): Filter: Sprint slug
- `sprint_slug` (string): Sprint identifier to add task to
- `start_date` (string): Start date in YYYY-MM-DD format
- `status` (string): Filter: Status
- `task_code` (string): Task code for by_code action (e.g. 'PROJ-123')
- `task_uuid` (string): Alias for uuid (from context)
- `title` (string): Task name/title text. Required when creating a new task.
- `type` (string): Filter: Task type title
- `type_id` (number): Task type ID (get from project action=types)
- `unassigned` (boolean): Filter: Only unassigned tasks
- `user_story` (string): Filter: User story slug
- `user_story_slug` (string): User story identifier to link task to
- `usernames` (array): Array of usernames to assign
- `users` (string): Filter: Comma-separated usernames
- `uuid` (string): Task UUID. For: get, update, complete, subtasks
- `workflow` (string): Filter: Kanban column title
- `workflow_id` (number): Kanban column ID. Use this OR column name

### `workspace` (~97 tokens)

Workspace management. Actions: list, find (by name), get, stats.

This is the starting point. Use 'list' to get all workspaces and their company_slug.
company_slug is needed by most other tools.

Input parameters:

- `action` (string, required): Which operation to perform
- `company_slug` (string): Workspace identifier. Required for: get, stats
- `name` (string): Workspace name to search for. Required for: find

### `project` (~290 tokens)

Project management. Actions: create, find (by name), list, get, stats, tasks, workflows, types, efforts, labels, members.

Workflow:
\- 'list': requires company_slug (from 'workspace' tool). Returns projects with their project_slug.
\- 'find': search by name, returns project_slug + company_slug
\- 'workflows'/'types'/'efforts'/'labels': returns IDs used by 'task' tool for create/update
\- 'members': returns project assignees (name, username, avatar). Use to know who can be assigned tasks
\- 'create': requires company_slug + name

Input parameters:

- `action` (string, required): Which operation to perform
- `client_uuid` (string): Client UUID to associate project with. Optional for: create
- `company_slug` (string): Workspace identifier. Required for: create, list, get, stats, tasks, etc. Optional for: find
- `description` (string): Project description. Optional for: create
- `name` (string): Project name. Required for: create, find
- `project_slug` (string): Project identifier. Required for: get, stats, tasks, workflows, types, efforts, labels, members
- `status` (string): Filter projects by status. Optional for: list
- `visibility` (string): Project visibility (default: public). Optional for: create

### `sprint` (~410 tokens)

Sprint management. Actions: list, all, get, kpis, stats, reports, progress, metrics, create, update.

Workflow:
\- 'list': requires company_slug + project_slug (returns sprints with their slug)
\- 'all': no params needed (returns all sprints across workspaces)
\- 'get'/'kpis'/'stats'/'progress'/'metrics': requires slug (sprint slug from 'list' response) + company_slug + project_slug
\- 'reports': requires slug + company_slug + project_slug. Optional: resource (burndown, burnup, performance, types, efforts)
\- 'create': requires title + company_slug + project_slug. Dates default to today → +7 days
\- 'update': requires slug + company_slug + project_slug

Input parameters:

- `action` (string, required): Which operation to perform
- `close_on_finish` (boolean): Auto-close when end date reached (optional)
- `color` (string): Hex color without # e.g. 'FF5733' (optional)
- `company_slug` (string): Workspace identifier. Required for: list, get, kpis, create, update, delete
- `date_finish` (string): End date YYYY-MM-DD (default: today + 7 days)
- `date_start` (string): Start date YYYY-MM-DD (default: today)
- `description` (string): Sprint description in markdown (optional)
- `is_private` (boolean): Sprint visibility (optional)
- `project_slug` (string): Project identifier. Required for: list, get, kpis, create, update, delete
- `resource` (string): For 'reports': filter to single chart (burndown, burnup, performance, types, efforts, member_distribution, task_type_distribution)
- `slug` (string): Existing sprint's slug. Required for: get, kpis, update, delete. NOT for create
- `title` (string): Sprint name. Required for: create

### `time` (~409 tokens)

Time tracking. Actions: active, start, stop, logs, analytics, team, reports, productivity, timeline.

Workflow:
1\. Use 'active' first to check if there is already a running timer
2\. To start: get the task_uuid from 'task' tool (action: my, today, or filter), then call 'start' with task_uuid
3\. To stop: get time_tracking_id from 'active' response, then call 'stop'
4\. 'logs' shows time entries for a project
5\. 'analytics'/'team'/'reports'/'productivity'/'timeline': requires company_slug. Optional: project_slug, period

'active' and 'logs' require company_slug (auto-resolved if omitted).
'start' requires task_uuid (ask user which task if not specified).
'stop' requires time_tracking_id (get from 'active' response).
Period options: today, yesterday, last-7-days, last-14-days, last-15-days, this-month, last-month, last-30-days

Input parameters:

- `action` (string, required): Which operation to perform
- `company_slug` (string): Workspace identifier. Required for: active, logs (auto-resolved if omitted)
- `description` (string): What you're working on (optional note for start)
- `hourly_rate` (number): For 'reports' action: hourly rate for cost calculations
- `period` (string): Time period for analytics: today, yesterday, last-7-days, last-14-days, this-month, last-month, last-30-days
- `project_slug` (string): Project identifier. Required for: logs
- `report_type` (string): For 'reports' action: report type (default: summary)
- `task_uuid` (string): Task's unique ID to track time on. Required for: start
- `time_tracking_id` (string): Active timer's ID (get from 'active' action). Required for: stop

### `user_story` (~286 tokens)

User stories. Actions: list, all, get, create, update.

Workflow:
\- 'list': requires company_slug + project_slug (returns stories with their slug)
\- 'all': no params needed (returns all user stories across workspaces)
\- 'get': requires slug (from 'list' response) + company_slug + project_slug
\- 'create': requires title + company_slug + project_slug
\- 'update': requires slug (from 'list' response) + company_slug + project_slug

Input parameters:

- `acceptance_criteria` (string): Definition of done - what must be true for story to be complete (optional)
- `action` (string, required): Which operation to perform
- `additional_information` (string): Story details/context in markdown (optional for create)
- `company_slug` (string, required): Workspace identifier (always required)
- `epic_uuid` (string): Epic UUID to associate story with (from 'epic' tool 'list'). Optional for create/update
- `project_slug` (string, required): Project identifier (always required)
- `slug` (string): Existing story's unique identifier. Only for: get, update. NOT for create.
- `title` (string): Story title text. Required when creating a new story.
- `user_story_priority_id` (number): Priority ID (from 'project' action 'efforts'). Optional - auto-defaults on create

### `wiki` (~217 tokens)

Wiki pages. Actions: list, get, create, update, search.

All actions require company_slug + project_slug.
'get'/'update' require uuid (from 'list' response).
'search' requires q (search query, min 2 chars).

Input parameters:

- `action` (string, required): Which operation to perform
- `company_slug` (string, required): Workspace identifier (always required)
- `content` (string): Page body text in Markdown. This is the actual content to save. Required for create.
- `limit` (number): Max results for search (default 20, max 50)
- `parent_uuid` (string): Parent page ID for nested pages (optional)
- `project_slug` (string, required): Project identifier (always required)
- `q` (string): Search query (min 2 chars). Required for search action.
- `title` (string): Page title/heading text. Required when creating a new page.
- `uuid` (string): Existing page's unique ID. Only for: get, update. NOT for create.

### `search` (~103 tokens)

Search across workspaces, projects, tasks, sprints, wiki, notes by name.

Use to discover slugs and UUIDs needed by other tools.
Results include entity type, name, and identifiers.

Input parameters:

- `categories` (string): Filter: workspaces, tasks, projects, user_stories, sprints, wiki, notes
- `limit` (number): Results per category (default: 5)
- `query` (string, required): Search text (min 2 chars)

### `note` (~243 tokens)

Notes. Actions: list, get, create, update, share, revisions.

company_slug is optional (auto-inferred from user).
'get'/'update'/'share'/'revisions' require uuid (from 'list' response).

Input parameters:

- `action` (string, required): Which operation to perform
- `color` (string): Color code: gray, blue, red, green, yellow, purple, coral, amber, sky, lime (or hex without #)
- `company_slug` (string): Workspace identifier (optional - auto-detected from user if not provided)
- `content` (string): The note body text you want to save (Markdown). This is where you put the actual content! Required for action=create.
- `folder_uuid` (string): Folder ID to organize note into (optional)
- `search` (string): Search term to filter notes (only for list action)
- `title` (string): Note title/heading text. Required for action=create.
- `uuid` (string): ⚠️ ONLY for existing notes! This is the note's database ID. NEVER use for action=create. Use ONLY for: get, update, share, revisions.

### `note_folder` (~142 tokens)

Note folders. Actions: list, create, update, move.

'move' requires note_uuid (from 'note' tool 'list') and folder_uuid (from 'list' response).

Input parameters:

- `action` (string, required): Which operation to perform
- `company_slug` (string, required): Workspace identifier (always required)
- `folder_uuid` (string): Target folder ID to move note into. Omit to unfile note.
- `name` (string): Folder name text. Required for create and update.
- `note_uuid` (string): Note ID to move. Required for move action.
- `uuid` (string): Existing folder's unique ID. Only for update action.

### `workflow` (~240 tokens)

Manage Kanban board columns. Actions: create, update.

Workflow:
\- To see existing columns: use 'project' tool with action 'workflows'
\- 'create': requires project_slug + title. Optional: color, status (todo/in progress/done)
\- 'update': requires workflow_id (from 'project' action 'workflows' response). Optional: title, color, position, status

Input parameters:

- `action` (string, required): Action: create (new column), update (modify existing)
- `color` (string): Hex code without # e.g. '58A6FF'
- `company_slug` (string): Workspace identifier (optional if project_slug unique)
- `position` (number): [update] Board position (1 = leftmost)
- `project_slug` (string): Project identifier
- `status` (string): Column type: 'todo'/'backlog', 'in progress'/'doing', 'done'/'closed'
- `title` (string): Column name e.g. 'Backlog', 'In Review', 'Done'
- `workflow_id` (number): [update] Column ID (from project action 'workflows')

### `label` (~227 tokens)

Labels. Actions: list, create, update, attach, detach, toggle.

Workflow:
\- 'list': requires company_slug (returns all workspace labels with their slug/ID)
\- 'create': requires company_slug + title + color
\- 'toggle'/'attach'/'detach': requires label_slug (from 'list') + task_uuid (from 'task' tool) + project_slug
\- 'update': requires label_slug (from 'list') + company_slug

Input parameters:

- `action` (string, required): Which operation to perform
- `color` (string): Hex color code without # e.g. 'FF5733'. Required for: create
- `company_slug` (string, required): Workspace identifier (always required)
- `label_slug` (string): Existing label's identifier. Required for: update, attach, detach, toggle
- `project_slug` (string): Project identifier. Required for: attach, detach, toggle
- `task_uuid` (string): Task's unique ID. Required for: toggle
- `title` (string): Label name text. Required when creating a new label.

### `task_type` (~240 tokens)

Task types (Bug, Feature, etc). Actions: list, create, update, assign.

Workflow:
\- 'list': requires company_slug + project_slug (returns types with their ID)
\- 'create': requires title + color + company_slug + project_slug
\- 'update': requires type_id (from 'list' response) + company_slug + project_slug
\- 'assign': requires type_id (from 'list') + task_uuid (from 'task' tool) + company_slug + project_slug

Input parameters:

- `action` (string, required): Operation to perform (REQUIRED)
- `color` (string): 6-character hex code without # (e.g. 'FF5733') (REQUIRED for: create)
- `company_slug` (string, required): Workspace slug (ALWAYS REQUIRED)
- `project_slug` (string, required): Project slug (ALWAYS REQUIRED)
- `task_uuid` (string): Task UUID (REQUIRED for: assign)
- `title` (string): Type name e.g. 'Bug', 'Feature' (REQUIRED for: create)
- `type_id` (number): Task type ID (REQUIRED for: update, assign)

### `clientflow_cross_workspace` (~108 tokens)

Cross-workspace ClientFlow overview. Reports: invoices, proposals, clients, change_requests.

Aggregates data across ALL workspaces owned by the user. No company_slug needed.
Returns stats, per-workspace breakdown, and paginated list.
Requires Pro subscription.

Input parameters:

- `page` (number): Page number (default 1)
- `per_page` (number): Results per page (1-100, default 50)
- `report` (string, required): Which cross-workspace report to get

### `client` (~233 tokens)

Client management. Actions: list, get, stats, create, update.

All actions require company_slug. 'get'/'stats'/'update' require uuid (from 'list' response).

Input parameters:

- `action` (string, required): Which operation to perform
- `address` (string): Street address (optional)
- `address_line_2` (string): Address line 2 (optional)
- `city` (string): City name (optional)
- `company_slug` (string, required): Workspace identifier (always required)
- `country` (string): Country name (optional)
- `email` (string): Email address (optional)
- `name` (string): Client name text. Required when creating a new client.
- `notes` (string): Internal notes about client (optional)
- `phone` (string): Phone number (optional)
- `postcode` (string): Postal/ZIP code (optional)
- `uuid` (string): Existing client's unique ID. Only for: get, stats, update. NOT for create.
- `vat_number` (string): VAT/Tax ID (optional)
- `website` (string): Website URL (optional)

### `invoice` (~259 tokens)

Invoice management. Actions: list, get, stats, create, update, issue, send, mark_paid.

Workflow:
\- 'create': requires company_slug + contact_company_uuid (client UUID from 'client' tool 'list')
\- 'get'/'update'/'issue'/'send'/'mark_paid': requires uuid (invoice UUID from 'list' response)
\- Flow: create → issue → send → mark_paid

Input parameters:

- `action` (string, required): Which operation to perform
- `client_uuid` (string): Filter by client (optional)
- `company_slug` (string, required): Workspace identifier (always required)
- `contact_company_uuid` (string): Client ID to invoice. Required for creating new invoice.
- `currency` (string): 3-letter ISO currency code: USD, EUR, BRL (optional)
- `due_date` (string): Due date in YYYY-MM-DD format, e.g. '2025-12-31' (optional)
- `notes` (string): Invoice notes (optional)
- `status` (string): Filter: draft, sent, paid, overdue (optional)
- `uuid` (string): Existing invoice's unique ID. Only for: get, update, issue, send, mark_paid. NOT for create.

### `proposal` (~293 tokens)

Proposal management. Actions: list, get, stats, create, update, send, approve, reject, convert.

Workflow:
\- 'create': requires company_slug + title. Optional: contact_company_uuid (client from 'client' tool)
\- 'get'/'update'/'send'/'approve'/'reject'/'convert': requires uuid (from 'list' response)
\- Flow: create → send → approve/reject. 'convert' turns approved proposal into a project.

Input parameters:

- `action` (string, required): Which operation to perform
- `client_uuid` (string): Filter by client (optional)
- `company_slug` (string, required): Workspace identifier (always required)
- `contact_company_uuid` (string): Client ID (optional)
- `content` (string): Proposal body in Markdown (optional)
- `currency` (string): Currency: USD, EUR, BRL (optional)
- `reason` (string): Rejection reason (for reject action)
- `status` (string): Filter: draft, sent, approved, rejected (optional)
- `title` (string): Proposal title text. Required when creating a new proposal.
- `total_amount` (number): Total value amount (optional)
- `uuid` (string): Existing proposal's unique ID. Only for: get, update, send, approve, reject, convert. NOT for create.
- `valid_until` (string): Expiration date YYYY-MM-DD (optional)

### `clientflow_dashboard` (~72 tokens)

CRM dashboard. Reports: overview, revenue, at_risk, pending, health, insights, leaderboard, analytics.

All reports require company_slug (get from 'workspace' tool action 'list').

Input parameters:

- `company_slug` (string, required): Workspace identifier (always required)
- `report` (string, required): Which report to generate

### `standup` (~135 tokens)

Standup reports. Actions: summary, completed, blockers, team, stuck, digest, contributors.

All actions require company_slug (get from 'workspace' tool action 'list').
Optional: project_slug to filter by project, date in YYYY-MM-DD format.

Input parameters:

- `action` (string, required): What standup info to get
- `company_slug` (string, required): Workspace identifier (always required)
- `date` (string): Date in YYYY-MM-DD format (default: yesterday)
- `period` (string): Time period for 'contributors' action (default: month)
- `project_slug` (string): Filter to specific project (optional)

### `comment` (~170 tokens)

Task comments. Actions: list, add, update.

Workflow:
\- 'list'/'add': requires task_uuid (get from 'task' tool) + company_slug + project_slug
\- 'update': requires comment_id (get from 'list' response) + text

Input parameters:

- `action` (string, required): Which operation to perform
- `comment_id` (number): Existing comment's ID number. Only for: update
- `company_slug` (string): Workspace identifier. Required for: list, add
- `project_slug` (string): Project identifier. Required for: list, add
- `task_uuid` (string): Task's unique ID. Required for: list, add
- `text` (string): Comment text content. This is what you want to write. Required for: add, update

### `analytics` (~227 tokens)

Analytics. Reports: pulse (health), risks, flow (WIP), age, activity, overview, health, blockers, command_center, time_entries.

All reports require company_slug (get from 'workspace' tool action 'list').
overview/health/blockers/command_center/time_entries are Manager Dashboard reports.

Input parameters:

- `company_slug` (string, required): Workspace slug (ALWAYS REQUIRED)
- `days` (number): For 'flow' report: number of days (default: 30, max: 90)
- `filter` (string): For 'risks' report: filter by risk type (default: all)
- `period` (string): For 'pulse' report: time period (default: this-week)
- `report` (string, required): Which analytics report to get (REQUIRED)
- `severity` (string): For 'risks' report: filter by severity (default: all)
- `time_filter` (string): For 'time_entries' report: filter type (default: today)
- `view` (string): For 'pulse' report: filter view (default: all)

### `epic` (~184 tokens)

Epics. Actions: list, create, update.

Workflow:
\- 'list': requires company_slug + project_slug (returns epics with their uuid)
\- 'create': requires title + company_slug + project_slug
\- 'update': requires epic_uuid (from 'list' response) + company_slug + project_slug

Input parameters:

- `action` (string, required): Which operation to perform
- `color` (string): Color hex code without # e.g. 'FF5733' (optional)
- `company_slug` (string, required): Workspace identifier (always required)
- `description` (string): Epic description in markdown (optional)
- `epic_uuid` (string): Existing epic's unique ID. Only for: update. NOT for create.
- `project_slug` (string, required): Project identifier (always required)
- `title` (string): Epic title/name text. Required when creating a new epic.

### `discussion` (~381 tokens)

Discussions & channels. Actions: all, channels, channel, messages, send, search, unread, mark_read, create_channel, update_channel.

Workflow:
\- 'all': no params needed (returns all discussions across workspaces)
\- 'channels': requires company_slug + project_slug (list channels in a project)
\- 'channel': requires channel_uuid (get single channel details)
\- 'messages': requires channel_uuid (get messages, supports cursor pagination)
\- 'send': requires channel_uuid + content (send a message)
\- 'search': requires channel_uuid + q (search messages in channel)
\- 'unread': requires company_slug + project_slug (unread count)
\- 'mark_read': requires channel_uuid (mark channel as read)
\- 'create_channel': requires name + company_slug + project_slug
\- 'update_channel': requires channel_uuid + name or description

Input parameters:

- `action` (string, required): Which operation to perform
- `after_id` (string): Cursor for newer messages (optional for messages)
- `before_id` (string): Cursor for older messages (optional for messages)
- `channel_uuid` (string): Channel UUID for: channel, messages, send, search, mark_read, update_channel
- `company_slug` (string): Workspace identifier
- `content` (string): Message text for send action
- `description` (string): Channel description (optional)
- `include_archived` (boolean): Include archived channels (optional for channels)
- `is_private` (boolean): Channel visibility (optional for create_channel)
- `limit` (number): Max results (optional)
- `name` (string): Channel name for create_channel/update_channel
- `parent_id` (string): Parent message ID for thread replies (optional for send)
- `project_slug` (string): Project identifier
- `q` (string): Search query for search action

### `activity` (~215 tokens)

Activity feed & history. Actions: feed, user_feed, notifications, activities, task_workflow.

Workflow:
\- 'feed': no params needed (current user's activity feed)
\- 'user_feed': requires username (activity feed for specific user)
\- 'notifications': no params needed (notification feed)
\- 'activities': requires from_context (company, project, sprint). Uses company_slug/project_slug/sprint_slug
\- 'task_workflow': requires task_uuid (workflow/status change history for a task)

Input parameters:

- `action` (string, required): Which operation to perform
- `company_slug` (string): Workspace identifier (for activities)
- `from_context` (string): Context filter for activities action
- `project_slug` (string): Project identifier (for activities)
- `sprint_slug` (string): Sprint slug (for activities with sprint context)
- `task_uuid` (string): Task UUID for task_workflow action
- `username` (string): Username for user_feed action
- `uuid` (string): Entity UUID for activities by specific entity

### `budget` (~230 tokens)

Project budget tracking. Actions: projects_at_risk, overview, consumption, burn_down, alerts, events.

Workflow:
\- 'projects_at_risk': requires company_slug (shows projects exceeding budget across workspace)
\- 'overview': requires project_uuid (budget overview with optional date filters)
\- 'consumption': requires project_uuid (current budget consumption)
\- 'burn_down': requires project_uuid (budget burn-down chart data)
\- 'alerts': requires project_uuid (budget threshold alerts)
\- 'events': requires project_uuid (budget event log)

Input parameters:

- `action` (string, required): Which operation to perform
- `company_slug` (string): Workspace identifier. Required for: projects_at_risk
- `end_date` (string): End date filter YYYY-MM-DD (optional for overview/burn_down)
- `limit` (number): Max results for events (default 20, max 100)
- `project_uuid` (string): Project UUID. Required for: overview, consumption, burn_down, alerts, events
- `start_date` (string): Start date filter YYYY-MM-DD (optional for overview/burn_down)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-gitscrum-mcp/gitscrum-studio-mcp-server#diagnostics

## Score history

- 2026-08-03: 67
- 2026-08-02: 67
- 2026-08-01: 49
- 2026-07-31: 5
- 2026-07-30: 60
- 2026-07-29: 78
- 2026-07-28: 78
- 2026-07-27: 25

## Links

- npm package: https://www.npmjs.com/package/@gitscrum-studio/mcp-server
- Socket report: https://socket.dev/npm/package/@gitscrum-studio/mcp-server
- Repository: https://github.com/gitscrum-core/mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/com-gitscrum-mcp/gitscrum-studio-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-gitscrum-mcp/gitscrum-studio-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-gitscrum-mcp/gitscrum-studio-mcp-server
