mcp-ticketer 0.1.23__tar.gz → 0.1.26__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mcp-ticketer might be problematic. Click here for more details.

Files changed (226) hide show
  1. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/CHANGELOG.md +51 -0
  2. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/CLAUDE.md +236 -13
  3. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/CLAUDE_DESKTOP_SETUP.md +2 -2
  4. mcp_ticketer-0.1.26/CODEX_INTEGRATION.md +312 -0
  5. mcp_ticketer-0.1.26/MCP_CONFIGURATION_TEST_REPORT.md +761 -0
  6. {mcp_ticketer-0.1.23/src/mcp_ticketer.egg-info → mcp_ticketer-0.1.26}/PKG-INFO +58 -8
  7. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/QUICK_START.md +128 -29
  8. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/README.md +55 -7
  9. mcp_ticketer-0.1.26/SECURITY_SCAN_REPORT_v0.1.24.md +668 -0
  10. mcp_ticketer-0.1.26/docs/AI_CLIENT_INTEGRATION.md +937 -0
  11. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/pyproject.toml +2 -0
  12. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/scripts/manage_version.py +2 -2
  13. mcp_ticketer-0.1.26/src/mcp_ticketer/__init__.py +27 -0
  14. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/__version__.py +1 -1
  15. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/adapters/jira.py +6 -2
  16. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/adapters/linear.py +4 -2
  17. mcp_ticketer-0.1.26/src/mcp_ticketer/cli/auggie_configure.py +237 -0
  18. mcp_ticketer-0.1.26/src/mcp_ticketer/cli/codex_configure.py +257 -0
  19. mcp_ticketer-0.1.26/src/mcp_ticketer/cli/gemini_configure.py +261 -0
  20. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cli/main.py +135 -2
  21. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cli/migrate_config.py +1 -5
  22. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/core/project_config.py +4 -1
  23. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/mcp/server.py +3 -0
  24. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26/src/mcp_ticketer.egg-info}/PKG-INFO +58 -8
  25. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer.egg-info/SOURCES.txt +8 -0
  26. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer.egg-info/requires.txt +4 -0
  27. mcp_ticketer-0.1.26/test_codex_config.py +109 -0
  28. mcp_ticketer-0.1.23/src/mcp_ticketer/__init__.py +0 -27
  29. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/.dependency_cache +0 -0
  30. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/.mpm_deployment_state +0 -0
  31. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/agent-manager.md +0 -0
  32. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/agentic-coder-optimizer.md +0 -0
  33. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/api_qa.md +0 -0
  34. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/clerk-ops.md +0 -0
  35. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/code_analyzer.md +0 -0
  36. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/content-agent.md +0 -0
  37. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/dart_engineer.md +0 -0
  38. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/data_engineer.md +0 -0
  39. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/documentation.md +0 -0
  40. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/engineer.md +0 -0
  41. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/gcp_ops_agent.md +0 -0
  42. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/golang_engineer.md +0 -0
  43. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/imagemagick.md +0 -0
  44. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/java_engineer.md +0 -0
  45. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/local_ops_agent.md +0 -0
  46. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/memory_manager.md +0 -0
  47. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/nextjs_engineer.md +0 -0
  48. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/ops.md +0 -0
  49. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/php-engineer.md +0 -0
  50. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/product_owner.md +0 -0
  51. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/project_organizer.md +0 -0
  52. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/prompt-engineer.md +0 -0
  53. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/python_engineer.md +0 -0
  54. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/qa.md +0 -0
  55. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/react_engineer.md +0 -0
  56. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/refactoring_engineer.md +0 -0
  57. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/research.md +0 -0
  58. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/ruby-engineer.md +0 -0
  59. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/rust_engineer.md +0 -0
  60. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/security.md +0 -0
  61. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/ticketing.md +0 -0
  62. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/typescript_engineer.md +0 -0
  63. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/vercel_ops_agent.md +0 -0
  64. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/version_control.md +0 -0
  65. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/web_qa.md +0 -0
  66. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/agents/web_ui.md +0 -0
  67. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/mcp.json +0 -0
  68. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude/mcp.local.json +0 -0
  69. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/config/project.json +0 -0
  70. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/mcp_auto_config_preference.json +0 -0
  71. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/README.md +0 -0
  72. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/agentic_coder_optimizer_memories.md +0 -0
  73. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/documentation_memories.md +0 -0
  74. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/engineer_memories.md +0 -0
  75. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/ops_memories.md +0 -0
  76. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/project_knowledge_memories.md +0 -0
  77. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/qa_memories.md +0 -0
  78. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/research_memories.md +0 -0
  79. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/version-control_memories.md +0 -0
  80. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude-mpm/memories/workflows_memories.md +0 -0
  81. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.claude.json +0 -0
  82. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.coveragerc +0 -0
  83. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.env.example +0 -0
  84. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.github/workflows/docs.yml +0 -0
  85. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.github/workflows/publish.yml +0 -0
  86. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.github/workflows/test.yml +0 -0
  87. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.mcp/config.json +0 -0
  88. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.pre-commit-config.yaml +0 -0
  89. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.python-version +0 -0
  90. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/.readthedocs.yaml +0 -0
  91. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/CODE_STRUCTURE.md +0 -0
  92. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/CONFIG_RESOLUTION_FIX.md +0 -0
  93. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/CONTRIBUTING.md +0 -0
  94. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/CREDENTIAL_VALIDATION_FIX.md +0 -0
  95. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/ENV_DISCOVERY_COMPLETE.md +0 -0
  96. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/FIX_SUMMARY.md +0 -0
  97. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/HIERARCHY_IMPLEMENTATION_SUMMARY.md +0 -0
  98. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/IMPLEMENTATION_SUMMARY.md +0 -0
  99. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/JIRA_SETUP.md +0 -0
  100. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/LICENSE +0 -0
  101. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/LINEAR_SETUP.md +0 -0
  102. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/MANIFEST.in +0 -0
  103. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/Makefile +0 -0
  104. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/OPTIMIZATION_SUMMARY.md +0 -0
  105. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/PROJECT_INITIALIZATION_SUMMARY.md +0 -0
  106. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/QUEUE_SYSTEM.md +0 -0
  107. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/RELEASE.md +0 -0
  108. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/RELEASING.md +0 -0
  109. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/TEST_COVERAGE_REPORT.md +0 -0
  110. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/TEST_REPORT.md +0 -0
  111. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/TEST_RESULTS_SUMMARY.md +0 -0
  112. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/VERIFICATION_RESULTS.md +0 -0
  113. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/claude-desktop-config.json +0 -0
  114. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/debug_search.py +0 -0
  115. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/debug_test.py +0 -0
  116. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/ADAPTERS.md +0 -0
  117. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/API_REFERENCE.md +0 -0
  118. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/CONFIGURATION.md +0 -0
  119. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/CONFIG_RESOLUTION_FLOW.md +0 -0
  120. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/DEVELOPER_GUIDE.md +0 -0
  121. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/ENV_DISCOVERY.md +0 -0
  122. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/MCP_INTEGRATION.md +0 -0
  123. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/MIGRATION_GUIDE.md +0 -0
  124. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/PROJECT_CONFIG.md +0 -0
  125. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/PR_INTEGRATION.md +0 -0
  126. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/QUICK_START_ENV.md +0 -0
  127. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/USER_GUIDE.md +0 -0
  128. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_archive/README.md +0 -0
  129. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/ADAPTERS.md.txt +0 -0
  130. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/API_REFERENCE.md.txt +0 -0
  131. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/CONFIGURATION.md.txt +0 -0
  132. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/DEVELOPER_GUIDE.md.txt +0 -0
  133. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/MCP_INTEGRATION.md.txt +0 -0
  134. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/MIGRATION_GUIDE.md.txt +0 -0
  135. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/USER_GUIDE.md.txt +0 -0
  136. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/adapters/github.md.txt +0 -0
  137. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/adapters.rst.txt +0 -0
  138. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/api.rst.txt +0 -0
  139. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/cli.rst.txt +0 -0
  140. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/development.rst.txt +0 -0
  141. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/examples.rst.txt +0 -0
  142. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/index.rst.txt +0 -0
  143. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/installation.rst.txt +0 -0
  144. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/_build/_sources/prd/mcp-ticketer-prd.md.txt +0 -0
  145. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/adapters/github.md +0 -0
  146. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/adapters.rst +0 -0
  147. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/api.rst +0 -0
  148. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/cli.rst +0 -0
  149. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/conf.py +0 -0
  150. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/development.rst +0 -0
  151. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/examples.rst +0 -0
  152. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/index.rst +0 -0
  153. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/installation.rst +0 -0
  154. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/prd/mcp-ticketer-prd.md +0 -0
  155. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/docs/requirements.txt +0 -0
  156. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/install.sh +0 -0
  157. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/mcp-ticketer +0 -0
  158. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/mcp-ticketer-server +0 -0
  159. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/mcp_server.sh +0 -0
  160. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/pytest.ini +0 -0
  161. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/requirements-dev.txt +0 -0
  162. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/requirements.txt +0 -0
  163. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/scripts/README.md +0 -0
  164. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/setup.cfg +0 -0
  165. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/setup.py +0 -0
  166. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/adapters/__init__.py +0 -0
  167. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/adapters/aitrackdown.py +0 -0
  168. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/adapters/github.py +0 -0
  169. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/adapters/hybrid.py +0 -0
  170. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cache/__init__.py +0 -0
  171. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cache/memory.py +0 -0
  172. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cli/__init__.py +0 -0
  173. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cli/configure.py +0 -0
  174. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cli/discover.py +0 -0
  175. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cli/mcp_configure.py +0 -0
  176. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cli/queue_commands.py +0 -0
  177. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/cli/utils.py +0 -0
  178. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/core/__init__.py +0 -0
  179. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/core/adapter.py +0 -0
  180. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/core/config.py +0 -0
  181. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/core/env_discovery.py +0 -0
  182. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/core/http_client.py +0 -0
  183. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/core/mappers.py +0 -0
  184. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/core/models.py +0 -0
  185. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/core/registry.py +0 -0
  186. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/mcp/__init__.py +0 -0
  187. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/py.typed +0 -0
  188. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/queue/__init__.py +0 -0
  189. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/queue/__main__.py +0 -0
  190. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/queue/manager.py +0 -0
  191. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/queue/queue.py +0 -0
  192. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/queue/run_worker.py +0 -0
  193. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer/queue/worker.py +0 -0
  194. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer.egg-info/dependency_links.txt +0 -0
  195. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer.egg-info/entry_points.txt +0 -0
  196. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer.egg-info/not-zip-safe +0 -0
  197. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/src/mcp_ticketer.egg-info/top_level.txt +0 -0
  198. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test-tickets/tickets/task-20250924002724.json +0 -0
  199. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_all_adapters.py +0 -0
  200. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_api_usage.py +0 -0
  201. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_basic.py +0 -0
  202. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_comprehensive.py +0 -0
  203. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_config_resolution.py +0 -0
  204. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_credential_validation.py +0 -0
  205. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_error_handling.py +0 -0
  206. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_github.py +0 -0
  207. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_github_token.py +0 -0
  208. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_jira.py +0 -0
  209. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_linear.py +0 -0
  210. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_linear_native.py +0 -0
  211. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_linear_teams.py +0 -0
  212. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_mcp_server_qa.py +0 -0
  213. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_optimizations.py +0 -0
  214. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_performance.py +0 -0
  215. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_pr_functionality.py +0 -0
  216. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_queue_system.py +0 -0
  217. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_serve_config.py +0 -0
  218. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/test_set_command.sh +0 -0
  219. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/tests/adapters/__init__.py +0 -0
  220. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/tests/adapters/test_aitrackdown.py +0 -0
  221. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/tests/conftest.py +0 -0
  222. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/tests/core/test_env_discovery.py +0 -0
  223. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/tests/test_base_adapter.py +0 -0
  224. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/tests/test_models.py +0 -0
  225. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/tests/test_queue.py +0 -0
  226. {mcp_ticketer-0.1.23 → mcp_ticketer-0.1.26}/tox.ini +0 -0
@@ -15,6 +15,57 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
15
15
  - Analytics dashboard
16
16
  - Webhook notification support
17
17
 
18
+ ## [0.1.26] - 2025-10-23
19
+
20
+ ### Changed
21
+ - Maintenance release with build and packaging improvements
22
+ - Updated development dependencies and build process
23
+
24
+ ## [0.1.25] - 2025-10-23
25
+
26
+ ### Fixed
27
+ - **Critical MCP Server Fix**: Fixed adapter registration issue where Linear and other adapters were not available in MCP server
28
+ - Added missing import of adapters module in MCP server initialization
29
+ - Resolves "Adapter 'linear' not registered" errors when using MCP clients (Auggie, Claude, etc.)
30
+ - All adapters (aitrackdown, linear, jira, github) now properly registered on server startup
31
+ - **Auggie Integration**: Fixed MCP connection failures with Auggie CLI due to missing adapter registration
32
+
33
+ ## [0.1.24] - 2025-10-24
34
+
35
+ ### Added
36
+ - **Multi-Client MCP Support**: Added support for 4 AI clients
37
+ - Claude Code integration with project and global config (`mcp-ticketer mcp claude`)
38
+ - Gemini CLI integration with project/user scope (`mcp-ticketer mcp gemini`)
39
+ - Codex CLI integration with global TOML config (`mcp-ticketer mcp codex`)
40
+ - Auggie CLI integration with global JSON config (`mcp-ticketer mcp auggie`)
41
+ - **Nested Command Structure**: New `mcp` command group with 4 client-specific subcommands
42
+ - **Configuration Modules**: Three new CLI configuration modules
43
+ - `auggie_configure.py` - Auggie CLI configuration handler
44
+ - `codex_configure.py` - Codex CLI TOML configuration handler
45
+ - `gemini_configure.py` - Gemini CLI JSON configuration handler
46
+ - **TOML Support**: Added `tomli` and `tomli-w` dependencies for Codex CLI TOML config
47
+ - **Comprehensive Documentation**:
48
+ - AI Client Integration Guide (docs/AI_CLIENT_INTEGRATION.md, 937 lines)
49
+ - Codex Integration Guide (CODEX_INTEGRATION.md, 312 lines)
50
+ - Updated CLAUDE.md with 800+ lines of multi-client documentation
51
+ - Updated README.md with AI client comparison table
52
+ - Updated QUICK_START.md with client selection decision tree
53
+
54
+ ### Changed
55
+ - **Command Structure**: Renamed MCP commands to nested structure under `mcp` parent command
56
+ - `mcp-ticketer mcp` → `mcp-ticketer mcp claude`
57
+ - `mcp-ticketer gemini` → `mcp-ticketer mcp gemini`
58
+ - `mcp-ticketer codex` → `mcp-ticketer mcp codex`
59
+ - `mcp-ticketer auggie` → `mcp-ticketer mcp auggie`
60
+ - **Documentation Version**: Updated CLAUDE.md from 0.1.11 to 0.1.24
61
+ - **Type Hints**: Modernized type hints in JIRA and Linear adapters
62
+ - **gitignore**: Added `.gemini/` directory exclusion
63
+
64
+ ### Fixed
65
+ - Removed obsolete MCP server startup error documentation
66
+ - Improved configuration file handling for multiple AI clients
67
+ - Enhanced MCP server path detection and validation
68
+
18
69
  ## [0.1.10] - 2025-09-29
19
70
 
20
71
  ### Fixed
@@ -1,9 +1,9 @@
1
1
  # CLAUDE.md - MCP Ticketer AI Agent Instructions
2
2
 
3
- **Version**: 0.1.11
4
- **Last Updated**: 2025-10-22
3
+ **Version**: 0.1.24
4
+ **Last Updated**: 2025-10-24
5
5
  **Project**: MCP Ticketer - Universal Ticket Management Interface for AI Agents
6
- **Optimized For**: Claude Code, Claude MPM, and AI Agent Collaboration
6
+ **Optimized For**: Claude Code, Gemini CLI, Codex CLI, Auggie, and AI Agent Collaboration
7
7
 
8
8
  ---
9
9
 
@@ -800,9 +800,45 @@ mcp-ticketer --help # Show CLI help
800
800
 
801
801
  ---
802
802
 
803
- ## ⚪ OPTIONAL: AI Agent Integration
803
+ ## ⚪ OPTIONAL: AI Client Integration
804
804
 
805
- ### Claude Code Integration
805
+ ### Overview: Multiple AI Client Support
806
+
807
+ **MCP Ticketer supports 4 major AI clients with MCP integration:**
808
+
809
+ | Client | Project-Level | Config Format | Config Location | Command |
810
+ |--------|---------------|---------------|-----------------|---------|
811
+ | **Claude Code** | ✅ Yes | JSON | `.claude/mcp.json` | `mcp-ticketer mcp claude` |
812
+ | **Gemini CLI** | ✅ Yes | JSON | `.gemini/settings.json` | `mcp-ticketer mcp gemini` |
813
+ | **Codex CLI** | ❌ No (Global only) | TOML | `~/.codex/config.toml` | `mcp-ticketer mcp codex` |
814
+ | **Auggie** | ❌ No (Global only) | JSON | `~/.augment/settings.json` | `mcp-ticketer mcp auggie` |
815
+
816
+ **Quick Setup:**
817
+ ```bash
818
+ # Claude Code (project-level, recommended)
819
+ mcp-ticketer mcp claude
820
+
821
+ # Gemini CLI (project-level)
822
+ mcp-ticketer mcp gemini --scope project
823
+
824
+ # Codex CLI (global-only, restart required)
825
+ mcp-ticketer mcp codex
826
+
827
+ # Auggie (global-only)
828
+ mcp-ticketer mcp auggie
829
+ ```
830
+
831
+ **When to use which client:**
832
+ - **Claude Code**: Best for project-specific workflows, native MCP support
833
+ - **Gemini CLI**: Google's AI client, supports project-level configuration
834
+ - **Codex CLI**: Global configuration only, requires restart after config changes
835
+ - **Auggie**: Simple global setup, suitable for single-project users
836
+
837
+ **See Also:** [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for comprehensive setup instructions.
838
+
839
+ ---
840
+
841
+ ### Claude Code Integration (Recommended)
806
842
 
807
843
  **MCP Ticketer is optimized for Claude Code workflows:**
808
844
 
@@ -811,13 +847,31 @@ mcp-ticketer --help # Show CLI help
811
847
  make install-dev
812
848
  make init-aitrackdown
813
849
 
814
- # 2. Enable MCP server for Claude Desktop
815
- # Add to Claude Desktop config:
850
+ # 2. Configure MCP integration (THE ONLY WAY)
851
+ mcp-ticketer mcp claude
852
+
853
+ # Alternative: Configure for Claude Desktop (global)
854
+ mcp-ticketer mcp claude --global
855
+
856
+ # 3. Configuration created at:
857
+ # Project-level: .claude/mcp.json
858
+ # Global: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
859
+ # %APPDATA%/Claude/claude_desktop_config.json (Windows)
860
+ # ~/.config/Claude/claude_desktop_config.json (Linux)
861
+
862
+ # 4. Use via Claude Code
863
+ # Claude can now create, read, update tickets directly
864
+ # Example: "Create a high-priority task for fixing the login bug"
865
+ ```
866
+
867
+ **Example Configuration (.claude/mcp.json):**
868
+ ```json
816
869
  {
817
870
  "mcpServers": {
818
- "ticketer": {
819
- "command": "mcp-ticketer-server",
820
- "args": [],
871
+ "mcp-ticketer": {
872
+ "command": "/path/to/mcp-ticketer",
873
+ "args": ["serve"],
874
+ "cwd": "/Users/masa/Projects/mcp-ticketer",
821
875
  "env": {
822
876
  "MCP_TICKETER_ADAPTER": "aitrackdown",
823
877
  "MCP_TICKETER_BASE_PATH": "/Users/masa/Projects/mcp-ticketer/.aitrackdown"
@@ -825,12 +879,181 @@ make init-aitrackdown
825
879
  }
826
880
  }
827
881
  }
882
+ ```
828
883
 
829
- # 3. Use via Claude Code
830
- # Claude can now create, read, update tickets directly
831
- # Example: "Create a high-priority task for fixing the login bug"
884
+ ---
885
+
886
+ ### Gemini CLI Integration
887
+
888
+ **Google's Gemini CLI with project-level MCP support:**
889
+
890
+ ```bash
891
+ # 1. Initialize mcp-ticketer
892
+ make install-dev
893
+ make init-aitrackdown
894
+
895
+ # 2. Configure for Gemini CLI (THE ONLY WAY)
896
+ mcp-ticketer mcp gemini --scope project
897
+
898
+ # Alternative: Global configuration
899
+ mcp-ticketer mcp gemini --scope user
900
+
901
+ # 3. Configuration created at:
902
+ # Project-level: .gemini/settings.json (added to .gitignore automatically)
903
+ # User-level: ~/.gemini/settings.json
904
+
905
+ # 4. Use with Gemini CLI
906
+ # Run gemini command in project directory
907
+ # MCP tools automatically available
908
+ ```
909
+
910
+ **Example Configuration (.gemini/settings.json):**
911
+ ```json
912
+ {
913
+ "mcpServers": {
914
+ "mcp-ticketer": {
915
+ "command": "/path/to/mcp-ticketer",
916
+ "args": ["serve"],
917
+ "env": {
918
+ "PYTHONPATH": "/path/to/project/src",
919
+ "MCP_TICKETER_ADAPTER": "aitrackdown",
920
+ "MCP_TICKETER_BASE_PATH": "/path/to/project/.aitrackdown"
921
+ },
922
+ "timeout": 15000,
923
+ "trust": false
924
+ }
925
+ }
926
+ }
927
+ ```
928
+
929
+ **Features:**
930
+ - ✅ Project-level configuration support
931
+ - ✅ JSON configuration format (familiar)
932
+ - ✅ Automatic .gitignore management
933
+ - ✅ 15-second timeout for MCP operations
934
+ - ✅ Security: untrusted by default
935
+
936
+ ---
937
+
938
+ ### Codex CLI Integration
939
+
940
+ **⚠️ IMPORTANT: Codex CLI only supports GLOBAL configuration**
941
+
942
+ ```bash
943
+ # 1. Initialize mcp-ticketer
944
+ make install-dev
945
+ make init-aitrackdown
946
+
947
+ # 2. Configure for Codex CLI (THE ONLY WAY)
948
+ mcp-ticketer mcp codex
949
+
950
+ # 3. Configuration created at:
951
+ # Global only: ~/.codex/config.toml
952
+
953
+ # 4. RESTART Codex CLI (REQUIRED)
954
+ # Codex does not hot-reload configuration
955
+
956
+ # 5. Use with Codex CLI
957
+ # Run codex command in any directory
958
+ # MCP tools will be available globally
959
+ ```
960
+
961
+ **Example Configuration (~/.codex/config.toml):**
962
+ ```toml
963
+ [mcp_servers.mcp-ticketer]
964
+ command = "/path/to/mcp-ticketer"
965
+ args = ["serve"]
966
+
967
+ [mcp_servers.mcp-ticketer.env]
968
+ PYTHONPATH = "/path/to/project/src"
969
+ MCP_TICKETER_ADAPTER = "aitrackdown"
970
+ MCP_TICKETER_BASE_PATH = "/path/to/project/.aitrackdown"
832
971
  ```
833
972
 
973
+ **Limitations:**
974
+ - ❌ No project-level configuration support
975
+ - ❌ Global configuration affects all projects
976
+ - ⚠️ Requires restart after configuration changes
977
+ - ⚠️ TOML format (different from other clients)
978
+
979
+ **Use when:**
980
+ - You primarily work on one project
981
+ - You need global MCP access across all directories
982
+ - You prefer TOML configuration
983
+
984
+ ---
985
+
986
+ ### Auggie Integration
987
+
988
+ **⚠️ IMPORTANT: Auggie only supports GLOBAL configuration**
989
+
990
+ ```bash
991
+ # 1. Initialize mcp-ticketer
992
+ make install-dev
993
+ make init-aitrackdown
994
+
995
+ # 2. Configure for Auggie (THE ONLY WAY)
996
+ mcp-ticketer mcp auggie
997
+
998
+ # 3. Configuration created at:
999
+ # Global only: ~/.augment/settings.json
1000
+
1001
+ # 4. Restart Auggie CLI
1002
+ # Auggie should pick up the new configuration
1003
+
1004
+ # 5. Use with Auggie CLI
1005
+ # Run auggie command in any directory
1006
+ # MCP tools will be available globally
1007
+ ```
1008
+
1009
+ **Example Configuration (~/.augment/settings.json):**
1010
+ ```json
1011
+ {
1012
+ "mcpServers": {
1013
+ "mcp-ticketer": {
1014
+ "command": "/path/to/mcp-ticketer",
1015
+ "args": ["serve"],
1016
+ "env": {
1017
+ "MCP_TICKETER_ADAPTER": "aitrackdown",
1018
+ "MCP_TICKETER_BASE_PATH": "/Users/user/.mcp-ticketer/.aitrackdown"
1019
+ }
1020
+ }
1021
+ }
1022
+ }
1023
+ ```
1024
+
1025
+ **Limitations:**
1026
+ - ❌ No project-level configuration support
1027
+ - ❌ Global configuration affects all projects
1028
+ - ⚠️ Uses global paths for adapter storage
1029
+
1030
+ **Use when:**
1031
+ - You work on a single project primarily
1032
+ - You want simple, global MCP access
1033
+ - You prefer JSON configuration
1034
+
1035
+ ---
1036
+
1037
+ ### Comparison: Which Client Should You Use?
1038
+
1039
+ | Feature | Claude Code | Gemini CLI | Codex CLI | Auggie |
1040
+ |---------|-------------|------------|-----------|--------|
1041
+ | **Project-level config** | ✅ Yes | ✅ Yes | ❌ No | ❌ No |
1042
+ | **Global config** | ✅ Yes | ✅ Yes | ✅ Only option | ✅ Only option |
1043
+ | **Config format** | JSON | JSON | TOML | JSON |
1044
+ | **Hot reload** | ✅ Yes | ✅ Yes | ❌ Requires restart | ⚠️ May require restart |
1045
+ | **Security options** | ⚠️ Basic | ✅ Trust setting | ⚠️ Basic | ⚠️ Basic |
1046
+ | **Working directory** | ✅ Supported | ✅ Supported | ⚠️ Global only | ⚠️ Global only |
1047
+ | **Auto .gitignore** | ⚠️ Manual | ✅ Automatic | N/A | N/A |
1048
+ | **Maturity** | ✅ Stable | ✅ Stable | ⚠️ Beta | ⚠️ Emerging |
1049
+
1050
+ **Recommendation:**
1051
+ - **Best choice**: Claude Code (native integration, project-level support)
1052
+ - **Alternative**: Gemini CLI (excellent project-level support, security features)
1053
+ - **Single project**: Codex CLI or Auggie (simple global setup)
1054
+
1055
+ ---
1056
+
834
1057
  ### Agent Collaboration Patterns
835
1058
 
836
1059
  **Multi-Agent Workflow:**
@@ -37,7 +37,7 @@ The configuration file at `~/.mcp-ticketer/config.json` controls which adapter i
37
37
 
38
38
  Test the MCP server:
39
39
  ```bash
40
- echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | /Users/masa/.local/bin/mcp-ticketer mcp
40
+ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | /Users/masa/.local/bin/mcp-ticketer serve
41
41
  ```
42
42
 
43
43
  You should see a JSON response with the server information.
@@ -46,7 +46,7 @@ You should see a JSON response with the server information.
46
46
 
47
47
  For development, use the `mcp_server.sh` script in the project directory:
48
48
  ```bash
49
- ./mcp_server.sh mcp
49
+ ./mcp_server.sh serve
50
50
  ```
51
51
 
52
52
  This script:
@@ -0,0 +1,312 @@
1
+ # Codex CLI Integration for MCP Ticketer
2
+
3
+ ## Overview
4
+
5
+ This document describes the Codex CLI integration for mcp-ticketer, which allows the Codex AI assistant to interact with mcp-ticketer through the Model Context Protocol (MCP).
6
+
7
+ **Important**: Codex CLI only supports **global configuration** at `~/.codex/config.toml`. Unlike Claude Code and Gemini CLI, there is no project-level configuration support.
8
+
9
+ ## Quick Start
10
+
11
+ ### 1. Prerequisites
12
+
13
+ - mcp-ticketer installed (`pip install mcp-ticketer` or `make install-dev`)
14
+ - Project configured with `.mcp-ticketer/config.json` (run `mcp-ticketer init`)
15
+
16
+ ### 2. Configure Codex CLI
17
+
18
+ ```bash
19
+ # Configure Codex CLI globally
20
+ mcp-ticketer mcp codex
21
+
22
+ # Or force overwrite existing configuration
23
+ mcp-ticketer mcp codex --force
24
+ ```
25
+
26
+ ### 3. Restart Codex CLI
27
+
28
+ **Important**: You must restart Codex CLI after configuration changes.
29
+
30
+ ### 4. Verify Configuration
31
+
32
+ Check `~/.codex/config.toml`:
33
+
34
+ ```toml
35
+ [mcp_servers.mcp-ticketer]
36
+ command = "/path/to/mcp-ticketer"
37
+ args = ["serve"]
38
+
39
+ [mcp_servers.mcp-ticketer.env]
40
+ PYTHONPATH = "/path/to/src"
41
+ MCP_TICKETER_ADAPTER = "aitrackdown"
42
+ MCP_TICKETER_BASE_PATH = "/path/to/.aitrackdown"
43
+ ```
44
+
45
+ ## Configuration Details
46
+
47
+ ### File Locations
48
+
49
+ - **Codex Config**: `~/.codex/config.toml` (global only)
50
+ - **MCP Ticketer Config**: `.mcp-ticketer/config.json` (project-local)
51
+
52
+ ### Configuration Scope
53
+
54
+ | CLI Tool | Scope Options | Config Location |
55
+ |----------|---------------|-----------------|
56
+ | Claude Code | Project, Global | `.mcp/config.json` or `~/Library/Application Support/Claude/` |
57
+ | Gemini CLI | Project, User | `.gemini/settings.json` or `~/.gemini/settings.json` |
58
+ | **Codex CLI** | **Global only** | **`~/.codex/config.toml`** |
59
+
60
+ ### Environment Variables
61
+
62
+ The configuration automatically includes environment variables based on your adapter:
63
+
64
+ **AITrackdown (Local)**:
65
+ - `MCP_TICKETER_ADAPTER=aitrackdown`
66
+ - `MCP_TICKETER_BASE_PATH=/path/to/.aitrackdown`
67
+
68
+ **Linear**:
69
+ - `MCP_TICKETER_ADAPTER=linear`
70
+ - `LINEAR_API_KEY=your_api_key`
71
+ - `LINEAR_TEAM_ID=your_team_id`
72
+
73
+ **GitHub**:
74
+ - `MCP_TICKETER_ADAPTER=github`
75
+ - `GITHUB_TOKEN=your_token`
76
+ - `GITHUB_OWNER=owner`
77
+ - `GITHUB_REPO=repo`
78
+
79
+ **JIRA**:
80
+ - `MCP_TICKETER_ADAPTER=jira`
81
+ - `JIRA_API_TOKEN=your_token`
82
+ - `JIRA_EMAIL=your_email`
83
+ - `JIRA_SERVER=https://your-domain.atlassian.net`
84
+ - `JIRA_PROJECT_KEY=PROJECT`
85
+
86
+ ## TOML Structure
87
+
88
+ ### Key Differences from JSON-based CLIs
89
+
90
+ Codex uses TOML format with specific naming conventions:
91
+
92
+ ```toml
93
+ # Codex uses underscore: mcp_servers (not camelCase mcpServers)
94
+ [mcp_servers.mcp-ticketer]
95
+ command = "/usr/local/bin/mcp-ticketer"
96
+ args = ["serve"]
97
+
98
+ # Environment variables in nested section
99
+ [mcp_servers.mcp-ticketer.env]
100
+ PYTHONPATH = "/path/to/src"
101
+ MCP_TICKETER_ADAPTER = "aitrackdown"
102
+ ```
103
+
104
+ Compare to Claude Code JSON:
105
+
106
+ ```json
107
+ {
108
+ "mcpServers": {
109
+ "mcp-ticketer": {
110
+ "command": "/usr/local/bin/mcp-ticketer",
111
+ "args": ["serve"],
112
+ "env": {
113
+ "PYTHONPATH": "/path/to/src",
114
+ "MCP_TICKETER_ADAPTER": "aitrackdown"
115
+ }
116
+ }
117
+ }
118
+ }
119
+ ```
120
+
121
+ ## CLI Command Reference
122
+
123
+ ```bash
124
+ # Configure Codex CLI
125
+ mcp-ticketer mcp codex [OPTIONS]
126
+
127
+ # Options:
128
+ # --force, -f Overwrite existing configuration
129
+ # --help Show help message
130
+
131
+ # Examples:
132
+ mcp-ticketer mcp codex # Configure globally
133
+ mcp-ticketer mcp codex --force # Force overwrite
134
+ mcp-ticketer mcp codex --help # Show help
135
+ ```
136
+
137
+ ## Troubleshooting
138
+
139
+ ### Configuration Not Taking Effect
140
+
141
+ **Problem**: Changes to config.toml not reflected in Codex CLI
142
+
143
+ **Solution**: Restart Codex CLI. Configuration changes require a restart.
144
+
145
+ ### Wrong Adapter Active
146
+
147
+ **Problem**: Codex using wrong ticket adapter
148
+
149
+ **Solution**: Check `.mcp-ticketer/config.json` in your project:
150
+
151
+ ```bash
152
+ # Show current configuration
153
+ mcp-ticketer configure --show
154
+
155
+ # Set different adapter
156
+ mcp-ticketer configure --adapter linear
157
+ ```
158
+
159
+ Then reconfigure Codex:
160
+
161
+ ```bash
162
+ mcp-ticketer mcp codex --force
163
+ ```
164
+
165
+ ### Binary Not Found
166
+
167
+ **Problem**: "Could not find mcp-ticketer binary"
168
+
169
+ **Solution**: Ensure mcp-ticketer is installed and in PATH:
170
+
171
+ ```bash
172
+ # Check installation
173
+ which mcp-ticketer
174
+
175
+ # Install if missing
176
+ pip install mcp-ticketer
177
+
178
+ # Or for development
179
+ make install-dev
180
+ ```
181
+
182
+ ### Configuration Path Issues
183
+
184
+ **Problem**: TOML file has incorrect paths
185
+
186
+ **Solution**: Run configuration from your project directory:
187
+
188
+ ```bash
189
+ cd /path/to/your/project
190
+ mcp-ticketer mcp codex --force
191
+ ```
192
+
193
+ ## Implementation Details
194
+
195
+ ### File Structure
196
+
197
+ ```
198
+ src/mcp_ticketer/cli/
199
+ ├── codex_configure.py # Codex CLI configuration module
200
+ ├── mcp_configure.py # Claude Code configuration (JSON)
201
+ ├── gemini_configure.py # Gemini CLI configuration (JSON)
202
+ └── main.py # CLI commands including 'codex' command
203
+ ```
204
+
205
+ ### Dependencies
206
+
207
+ Added to `pyproject.toml`:
208
+
209
+ ```toml
210
+ dependencies = [
211
+ # ... existing dependencies ...
212
+ "tomli>=2.0.0; python_version<'3.11'", # TOML reading (Python <3.11)
213
+ "tomli-w>=1.0.0", # TOML writing (all versions)
214
+ ]
215
+ ```
216
+
217
+ ### Key Functions
218
+
219
+ **`codex_configure.py`**:
220
+
221
+ - `find_codex_config()`: Returns `~/.codex/config.toml` path
222
+ - `load_codex_config(config_path)`: Loads existing TOML or empty structure
223
+ - `save_codex_config(config_path, config)`: Writes TOML with formatting
224
+ - `create_codex_server_config(binary_path, project_config, cwd)`: Creates server config
225
+ - `configure_codex_mcp(force)`: Main configuration function
226
+
227
+ ## Testing
228
+
229
+ ### Manual Test
230
+
231
+ ```bash
232
+ # 1. Configure
233
+ mcp-ticketer mcp codex
234
+
235
+ # 2. Check TOML file
236
+ cat ~/.codex/config.toml
237
+
238
+ # 3. Verify structure
239
+ python3 test_codex_config.py
240
+ ```
241
+
242
+ ### Automated Test
243
+
244
+ Run the included test script:
245
+
246
+ ```bash
247
+ python3 test_codex_config.py
248
+ ```
249
+
250
+ Expected output:
251
+
252
+ ```
253
+ ✓ Created test TOML file: /tmp/...
254
+ ✓ TOML format validation passed
255
+ ✓ Structure validation passed
256
+ ✓ Value validation passed
257
+
258
+ ✅ All tests passed!
259
+ ```
260
+
261
+ ## Comparison with Other CLIs
262
+
263
+ | Feature | Claude Code | Gemini CLI | Codex CLI |
264
+ |---------|-------------|------------|-----------|
265
+ | **Config Format** | JSON | JSON | **TOML** |
266
+ | **Config Location** | Project or Global | Project or User | **Global only** |
267
+ | **Key Name** | mcpServers | mcpServers | **mcp_servers** |
268
+ | **Scope Flag** | `--global` | `--scope user/project` | **None (global only)** |
269
+ | **Restart Required** | Yes | No | **Yes** |
270
+ | **Nested Env** | Yes | Yes | Yes |
271
+ | **Project Support** | Yes | Yes | **No** |
272
+
273
+ ## Security Considerations
274
+
275
+ ### Global Configuration Implications
276
+
277
+ Since Codex only supports global configuration:
278
+
279
+ 1. **API Keys**: Environment variables (including API keys) are in global config
280
+ 2. **Path References**: Configuration includes absolute paths from configuration time
281
+ 3. **Multi-Project**: Same configuration used across all projects
282
+
283
+ ### Best Practices
284
+
285
+ 1. **Protect config.toml**: Ensure `~/.codex/config.toml` has appropriate permissions
286
+ 2. **Avoid Hardcoded Secrets**: Use environment variables where possible
287
+ 3. **Reconfigure Per Project**: Run `mcp-ticketer mcp codex --force` when switching projects
288
+ 4. **Review Configuration**: Periodically audit `~/.codex/config.toml`
289
+
290
+ ## Future Enhancements
291
+
292
+ - [ ] Support for multiple adapters in single config
293
+ - [ ] Environment variable templating
294
+ - [ ] Automatic path resolution
295
+ - [ ] Configuration validation command
296
+ - [ ] Migration tool from JSON to TOML
297
+
298
+ ## References
299
+
300
+ - [Codex CLI Documentation](https://github.com/your-org/codex-cli)
301
+ - [MCP Protocol Specification](https://modelcontextprotocol.io/)
302
+ - [TOML Specification](https://toml.io/en/)
303
+ - [mcp-ticketer Documentation](https://github.com/mcp-ticketer/mcp-ticketer)
304
+
305
+ ## Support
306
+
307
+ For issues or questions:
308
+
309
+ 1. Check troubleshooting section above
310
+ 2. Review `~/.codex/config.toml` for correctness
311
+ 3. Test with `mcp-ticketer mcp codex --force`
312
+ 4. File issue at https://github.com/mcp-ticketer/mcp-ticketer/issues