Skip to main content
Glama
README.md
# slack-qa-mcp

Slack 채널과 Slack Lists를 연동하는 QA 버그 관리 MCP 서버.
채널에서 버그 리포트를 스캔하고, Slack Lists 항목을 조회/업데이트하며, 수정 내용을 공유합니다.

## Tools

| Tool | Description |
|------|-------------|
| `scan_qa_bugs` | Scan a Slack channel for recent bug reports |
| `get_bug_detail` | Get thread details for a specific bug |
| `list_items` | Read items from a Slack List (slackLists API) |
| `update_item_status` | Update a List item's status field |
| `post_fix_update` | Post a fix update message to the channel |

## Setup

```bash
npm install && npm run build
```

Copy `.env.example` to `.env` and fill in:

```
SLACK_BOT_TOKEN=xoxb-...
SLACK_QA_CHANNEL_ID=C...
SLACK_LIST_ID=F...          # optional
```

## Required Slack App Scopes

| Scope | Purpose |
|-------|---------|
| `channels:history` | Read channel messages |
| `channels:read` | Channel info |
| `chat:write` | Post messages |
| `reactions:read` | Read reactions |
| `reactions:write` | Add reactions |
| `users:read` | Resolve user names |
| `lists:read` | Read Slack Lists |
| `lists:write` | Update Slack Lists |

## Run

```bash
# stdio (for MCP clients like Claude Desktop/Code)
npm start

# SSE (for remote deployment)
node dist/index.js --transport sse
# → http://localhost:3001/sse
```

## MCP Client Config

```json
{
  "mcpServers": {
    "slack-qa": {
      "command": "node",
      "args": ["<path>/dist/index.js"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-...",
        "SLACK_QA_CHANNEL_ID": "C...",
        "SLACK_LIST_ID": "F..."
      }
    }
  }
}
```

## Deploy (Docker)

```bash
npm run build
docker build -t slack-qa-mcp .
docker run -e SLACK_BOT_TOKEN=xoxb-... -e SLACK_QA_CHANNEL_ID=C... -p 3001:3001 slack-qa-mcp --transport sse
```

TDQS

B3.2/5.0

Scored across 5 tools

Disambiguation4/5

The tools have mostly distinct purposes, though 'scan_qa_bugs' and 'list_items' both involve retrieving QA-related information, which could cause mild confusion. However, their descriptions clarify that one scans a Slack channel for bug reports while the other reads from a specific QA Slack list, helping to differentiate them.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern (e.g., get_bug_detail, list_items, post_fix_update) with clear and descriptive terms. There are minor deviations, such as 'scan_qa_bugs' using 'scan' instead of a more standard verb like 'list' or 'get', but overall the pattern is predictable and readable.

Tool Count5/5

With 5 tools, the count is well-scoped for a QA-focused Slack server. Each tool appears to serve a specific and necessary function in the QA workflow, from scanning and listing bugs to posting updates and managing item statuses, without feeling overly sparse or bloated.

Completeness4/5

The toolset covers core QA operations like retrieving bug details, scanning and listing items, posting updates, and updating statuses, which supports a basic workflow. A minor gap exists in not having a tool to create or delete QA items, but agents can likely work around this with the provided tools for most common tasks.

Maintenance

ActivityStale
ResponsivenessSyncing