codebeamer-mcp
by 3KniGHtcZ
README.md
# codebeamer-mcp
An MCP (Model Context Protocol) server for Codebeamer ALM. Allows Claude and other MCP clients to read and write projects, trackers, and items in Codebeamer using natural language.
[](https://glama.ai/mcp/servers/3KniGHtcZ/codebeamer-mcp)
## Tools (19)
### Read
| Tool | Description |
|---|---|
| `list_projects` | List all projects |
| `get_project` | Get project details |
| `list_trackers` | List trackers in a project |
| `get_tracker` | Get tracker details |
| `list_tracker_items` | List items in a tracker |
| `search_items` | Full-text / cbQL search |
| `get_item` | Get item summary: ID, name, tracker, status and description. Lightweight — use when you only need to identify the item and read its content |
| `get_item_details` | Get full structured detail of an item: project, priority, assignees, timestamps, story points, custom fields and test steps. Description omitted — fetch it via `get_item` |
| `get_item_relations` | Get outgoing/incoming associations (depends on, blocks, …) |
| `get_item_references` | Get upstream/downstream traceability references (derived from, covers, …) |
| `get_item_comments` | Get item comments |
| `get_item_reviews` | Get Review Hub reviews for an item (result, reviewers, votes) |
| `get_user` | Get user details |
### Write
| Tool | Description |
|---|---|
| `create_item` | Create a new item in a tracker. Supports folders, item type, and parent nesting |
| `update_item` | Update an existing item (name, description, status, priority, assignee, custom fields) |
| `add_comment` | Add a comment to an item |
| `create_association` | Create an association between two items (e.g. depends on, blocks) |
| `create_reference` | Add a downstream traceability reference between two items |
| `create_harm` | Create a harm entry in an RM Harms List tracker with IMDRF code and severity (1–5) |
## Installation
### Requirements
- Node.js 20+
- Access to a Codebeamer instance (URL, username, password)
### Claude Code (CLI)
The fastest way — run this command in your terminal:
```bash
claude mcp add codebeamer -e CB_URL=https://your-instance.example.com/cb/api \
-e CB_USERNAME=your_username -e CB_PASSWORD=your_password \
-- npx -y codebeamer-mcp
```
Or add it manually to `.mcp.json` in the project root (or `~/.claude/mcp.json` for global scope):
```json
{
"mcpServers": {
"codebeamer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "codebeamer-mcp"],
"env": {
"CB_URL": "https://your-instance.example.com/cb/api",
"CB_USERNAME": "your_username",
"CB_PASSWORD": "your_password"
}
}
}
}
```
### Claude Desktop
Edit the config file for your platform:
| Platform | Path |
|---|---|
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
| Linux | `~/.config/Claude/claude_desktop_config.json` |
```json
{
"mcpServers": {
"codebeamer": {
"command": "npx",
"args": ["-y", "codebeamer-mcp"],
"env": {
"CB_URL": "https://your-instance.example.com/cb/api",
"CB_USERNAME": "your_username",
"CB_PASSWORD": "your_password"
}
}
}
}
```
Restart Claude Desktop after saving.
### Cursor
Add to `.cursor/mcp.json` in the project root (project scope) or `~/.cursor/mcp.json` (global):
```json
{
"mcpServers": {
"codebeamer": {
"command": "npx",
"args": ["-y", "codebeamer-mcp"],
"env": {
"CB_URL": "https://your-instance.example.com/cb/api",
"CB_USERNAME": "your_username",
"CB_PASSWORD": "your_password"
}
}
}
}
```
### Windsurf
Add to `~/.codeium/windsurf/mcp_config.json`:
```json
{
"mcpServers": {
"codebeamer": {
"command": "npx",
"args": ["-y", "codebeamer-mcp"],
"env": {
"CB_URL": "https://your-instance.example.com/cb/api",
"CB_USERNAME": "your_username",
"CB_PASSWORD": "your_password"
}
}
}
}
```
### VS Code (Copilot)
Add to `.vscode/mcp.json` in the project root:
```json
{
"servers": {
"codebeamer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "codebeamer-mcp"],
"env": {
"CB_URL": "https://your-instance.example.com/cb/api",
"CB_USERNAME": "your_username",
"CB_PASSWORD": "your_password"
}
}
}
}
```
### Gemini CLI
Add to `~/.gemini/settings.json`:
```json
{
"mcpServers": {
"codebeamer": {
"command": "npx",
"args": ["-y", "codebeamer-mcp"],
"env": {
"CB_URL": "https://your-instance.example.com/cb/api",
"CB_USERNAME": "your_username",
"CB_PASSWORD": "your_password"
}
}
}
}
```
### Alternative: global install
```bash
npm install -g codebeamer-mcp
```
Then use `"command": "codebeamer-mcp"` (no `args`) instead of `npx` in any config above.
### Pinning a specific version
```json
"args": ["-y", "codebeamer-mcp@0.2.0"]
```
### Updates
| Method | Update behavior |
|---|---|
| `npx -y codebeamer-mcp` | Always fetches the latest version |
| `npm install -g codebeamer-mcp` | Stays on installed version. Run `npm update -g codebeamer-mcp` to update |
| Pinned version (`@0.2.0`) | Never auto-updates; change the version string manually |
> ⚠️ **Never commit `.mcp.json` with real credentials** — it is listed in `.gitignore`.
### From source (development)
```bash
git clone https://github.com/3KniGHtcZ/codebeamer-mcp.git
cd codebeamer-mcp
npm install
npm run build
```
Then use `"command": "node"` with `"args": ["dist/index.js"]` in your `.mcp.json`.
## Development & Testing
```bash
# Run tests (no real Codebeamer instance needed)
npm test
# Start the mock API server (port 3001)
node mock-server.mjs
# Interactive testing via MCP Inspector
CB_URL=http://localhost:3001 CB_USERNAME=mock CB_PASSWORD=mock \
npx @modelcontextprotocol/inspector node dist/index.js
```
## Configuration
| Variable | Description | Default |
|---|---|---|
| `CB_URL` | Codebeamer API URL, e.g. `https://your-instance.example.com/cb/api` (the server appends `/v3` automatically) | _(required)_ |
| `CB_USERNAME` | Login username | _(required)_ |
| `CB_PASSWORD` | Password | _(required)_ |
| `CB_UNSAFE_SSL` | Set to `true` to allow connections to servers with unverified/self-signed certificates | `false` |
| `CB_API_VERSION` | API version | `v3` |
| `CB_TIMEOUT_MS` | Request timeout (ms) | `30000` |
| `CB_MAX_ITEMS` | Max items per page | `100` |TDQS
A3.9/5.0
Scored across 19 tools
Disambiguation5/5
Each tool targets a distinct operation (e.g., get_item vs get_item_details vs get_item_comments), with clear descriptions preventing confusion. No overlapping purposes.
Naming Consistency5/5
All tool names follow a consistent verb_noun snake_case pattern (e.g., create_item, get_item_comments, list_projects). No deviations or mixed conventions.
Tool Count4/5
19 tools cover a broad ALM domain comprehensively, though slightly above the typical sweet spot. Each tool has a clear purpose, but the set could be streamlined slightly without loss.
Completeness3/5
Covers CRUD for items, associations, references, comments, reviews, and metadata. Missing delete operations (e.g., delete_item, delete_association) and update for associations/comments, leaving minor but noticeable gaps.
Maintenance
ActivityInactive
ResponsivenessUnresponsive