-
Notifications
You must be signed in to change notification settings - Fork 8
feat: add Jira integration as issue tracker provider #588
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added this change because I use the ASDF tool manager.