Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d9dc857
Initial plan
Copilot Jan 14, 2026
b572add
Add VersionControlProvider interface, ProviderCoordinator, and schema…
Copilot Jan 14, 2026
ad30c25
Implement Jira provider components (ApiClient, CommentFormatter, Issu…
Copilot Jan 14, 2026
41c8308
Implement BitBucket provider components (ApiClient, VCSProvider)
Copilot Jan 14, 2026
a2e4d5e
Update README with Jira + BitBucket configuration examples and setup …
Copilot Jan 14, 2026
23e1c27
Wire Jira and BitBucket providers into command factories (IssueTracke…
Copilot Jan 14, 2026
7788d6b
Update BitBucket integration to use API tokens instead of app passwords
Copilot Jan 14, 2026
1100435
Implement Jira MCP provider for issue management server integration
Copilot Jan 14, 2026
7b60e73
Fix Jira issue body and comment body to extract plain text from ADF f…
Copilot Jan 14, 2026
f6ad58f
update get_issue tool to accept jira provider
NoahCardoza Jan 14, 2026
3b941ba
bidirectional conversion between adf and markdown formatting for jira…
NoahCardoza Jan 14, 2026
21c0c12
fix bitbucket pr compatibility
NoahCardoza Jan 16, 2026
45ba60b
fix jira issue mcp server access to config
NoahCardoza Jan 16, 2026
23dad7d
add debug flag to claude code in debud mode
NoahCardoza Jan 16, 2026
c0e8f54
use issue number from metadata to preserve case which is important to…
NoahCardoza Jan 16, 2026
fa233a9
support reviewers added to bitbucket PR
NoahCardoza Jan 16, 2026
d720e58
fix markdown to adf conversion and code mark exclusivity
NoahCardoza Jan 16, 2026
4c17e27
fix bitbucket user id resolution
NoahCardoza Jan 16, 2026
a93b84e
create new debug subcommand for integration testing
NoahCardoza Jan 16, 2026
db9d512
exclude current user from bitbucker pr reviewer list
NoahCardoza Jan 16, 2026
945ac87
pass settings to IssueManagementProviderFactory when using commit com…
NoahCardoza Jan 17, 2026
aac1251
add moveIssueToReadyForReview method to issue trackers
NoahCardoza Jan 17, 2026
9557d6f
attempt to prevent the llm from generating jira wiki markup
NoahCardoza Jan 22, 2026
31ebac9
add setting to configure git commit timeout for longer running hooks
NoahCardoza Jan 22, 2026
6dedb8e
feat: accept claude trust dialog
NoahCardoza Feb 9, 2026
2829eaa
fix: resolve Jira issue key case sensitivity in branch name extraction
NoahCardoza Feb 11, 2026
313a80b
feat: export ILOOM_LOOM and ILOOM_COLOR_HEX env vars in shell and dev…
NoahCardoza Feb 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
#!/bin/sh
# Set up PATH for pnpm if not already in PATH
if ! command -v pnpm >/dev/null 2>&1; then
export PNPM_HOME="${PNPM_HOME:-$HOME/.local/share/pnpm}"
export PATH="$PNPM_HOME:$PATH"
fi

# Run linting
pnpm run lint

Expand Down
3 changes: 3 additions & 0 deletions .iloom/settings.example.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
{
"mainBranch": "main",
"git": {
"commitTimeout": 60000
},
"workflows": {
"issue": {
"permissionMode": "default",
Expand Down
178 changes: 178 additions & 0 deletions DEBUGGING_MCP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# Debugging iloom MCP Servers

When you see "issue_management · ✘ failed" in Claude Code, it means the MCP server isn't starting properly. Here's how to debug it:

## 1. Check MCP Server Logs

The MCP server logs errors to stderr. To see them:

```bash
# Navigate to your project with iloom configured
cd /path/to/your/project

# Start a loom (this generates the MCP config)
il start YOUR-ISSUE-123

# The MCP server is launched by Claude Code
# Check Claude Code's output panel for errors
```

## 2. Test MCP Server Manually

You can test the MCP server directly:

```bash
# Set required environment variables for Jira
export ISSUE_PROVIDER=jira
export JIRA_HOST="https://yourcompany.atlassian.net"
export JIRA_USERNAME="your.email@company.com"
export JIRA_API_TOKEN="your-api-token"
export JIRA_PROJECT_KEY="PROJ"

# Optional: transition mappings
export JIRA_TRANSITION_MAPPINGS='{"In Review":"Start Review"}'

# Run the MCP server
node dist/mcp/issue-management-server.js
```

The server should start and output:
```
Starting Issue Management MCP Server...
Environment validated
Issue management provider: jira
```

## 3. Common Issues

### Missing Environment Variables

**Error:** `Missing required environment variables for Jira provider: ...`

**Solution:** Ensure all required Jira settings are in your `.iloom/settings.local.json`:

```json
{
"issueManagement": {
"jira": {
"apiToken": "your-api-token-here"
}
}
}
```

And in `.iloom/settings.json`:
```json
{
"issueManagement": {
"provider": "jira",
"jira": {
"host": "https://yourcompany.atlassian.net",
"username": "your.email@company.com",
"projectKey": "PROJ"
}
}
}
```

### Invalid Provider

**Error:** `Invalid ISSUE_PROVIDER: ... Must be 'github', 'linear', or 'jira'`

**Solution:** Check that `issueManagement.provider` in your settings is set to one of the supported values.

### API Authentication Failure

**Error:** `Jira API error (401): ...`

**Solution:**
1. Verify your Jira API token is correct
2. Generate a new token at: https://id.atlassian.com/manage-profile/security/api-tokens
3. Ensure the token has proper permissions

**Error:** `Jira API error (403): ...`

**Solution:** Your user account may not have permission to access the Jira project. Contact your Jira administrator.

## 4. Check MCP Configuration

iloom generates MCP configuration that Claude Code uses. You can inspect it:

```bash
# Check what MCP config iloom would generate
il start --help # This won't actually start, but shows the config

# Or manually test config generation:
node -e "
const { generateIssueManagementMcpConfig } = require('./dist/utils/mcp.js');
const { loadSettings } = require('./dist/lib/SettingsManager.js');

(async () => {
const settings = await loadSettings();
const config = await generateIssueManagementMcpConfig(
'issue',
null,
'jira',
settings
);
console.log(JSON.stringify(config, null, 2));
})();
"
```

## 5. Verbose Logging

To see more detailed logs, set the DEBUG environment variable before starting Claude Code:

```bash
# On macOS/Linux
export DEBUG=iloom:*

# On Windows (PowerShell)
$env:DEBUG="iloom:*"

# Then start Claude Code
```

## 6. Test Jira Connection

Test that iloom can connect to Jira:

```bash
# This will attempt to fetch an issue
il start PROJ-123

# If successful, you should see:
# ✓ Issue found: PROJ-123
```

## 7. Claude Code MCP Settings

Check that Claude Code is configured to use iloom's MCP servers. The config should be in `~/.claude/settings.json` or your project's `.claude/settings.local.json`.

Look for:
```json
{
"mcpServers": {
"issue_management": {
"transport": "stdio",
"command": "node",
"args": ["/path/to/iloom/dist/mcp/issue-management-server.js"],
"env": {
"ISSUE_PROVIDER": "jira",
"JIRA_HOST": "...",
// ...other Jira env vars
}
}
}
}
```

## 8. Still Having Issues?

If the MCP server still isn't working:

1. **Check iloom version:** Run `il --version` and ensure you have the latest version
2. **Reinstall dependencies:** `cd /path/to/iloom && pnpm install && pnpm build`
3. **Check Node version:** MCP servers require Node.js 18 or later
4. **File an issue:** Include the full error output and your (redacted) settings
Loading