mcp-ticketer 0.12.0__py3-none-any.whl โ†’ 2.0.1__py3-none-any.whl

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 (87) hide show
  1. mcp_ticketer/__init__.py +10 -10
  2. mcp_ticketer/__version__.py +1 -1
  3. mcp_ticketer/adapters/aitrackdown.py +385 -6
  4. mcp_ticketer/adapters/asana/adapter.py +108 -0
  5. mcp_ticketer/adapters/asana/mappers.py +14 -0
  6. mcp_ticketer/adapters/github.py +525 -11
  7. mcp_ticketer/adapters/hybrid.py +47 -5
  8. mcp_ticketer/adapters/jira.py +521 -0
  9. mcp_ticketer/adapters/linear/adapter.py +1784 -101
  10. mcp_ticketer/adapters/linear/client.py +85 -3
  11. mcp_ticketer/adapters/linear/mappers.py +96 -8
  12. mcp_ticketer/adapters/linear/queries.py +168 -1
  13. mcp_ticketer/adapters/linear/types.py +80 -4
  14. mcp_ticketer/analysis/__init__.py +56 -0
  15. mcp_ticketer/analysis/dependency_graph.py +255 -0
  16. mcp_ticketer/analysis/health_assessment.py +304 -0
  17. mcp_ticketer/analysis/orphaned.py +218 -0
  18. mcp_ticketer/analysis/project_status.py +594 -0
  19. mcp_ticketer/analysis/similarity.py +224 -0
  20. mcp_ticketer/analysis/staleness.py +266 -0
  21. mcp_ticketer/automation/__init__.py +11 -0
  22. mcp_ticketer/automation/project_updates.py +378 -0
  23. mcp_ticketer/cli/adapter_diagnostics.py +3 -1
  24. mcp_ticketer/cli/auggie_configure.py +17 -5
  25. mcp_ticketer/cli/codex_configure.py +97 -61
  26. mcp_ticketer/cli/configure.py +851 -103
  27. mcp_ticketer/cli/cursor_configure.py +314 -0
  28. mcp_ticketer/cli/diagnostics.py +13 -12
  29. mcp_ticketer/cli/discover.py +5 -0
  30. mcp_ticketer/cli/gemini_configure.py +17 -5
  31. mcp_ticketer/cli/init_command.py +880 -0
  32. mcp_ticketer/cli/instruction_commands.py +6 -0
  33. mcp_ticketer/cli/main.py +233 -3151
  34. mcp_ticketer/cli/mcp_configure.py +672 -98
  35. mcp_ticketer/cli/mcp_server_commands.py +415 -0
  36. mcp_ticketer/cli/platform_detection.py +77 -12
  37. mcp_ticketer/cli/platform_installer.py +536 -0
  38. mcp_ticketer/cli/project_update_commands.py +350 -0
  39. mcp_ticketer/cli/setup_command.py +639 -0
  40. mcp_ticketer/cli/simple_health.py +12 -10
  41. mcp_ticketer/cli/ticket_commands.py +264 -24
  42. mcp_ticketer/core/__init__.py +28 -6
  43. mcp_ticketer/core/adapter.py +166 -1
  44. mcp_ticketer/core/config.py +21 -21
  45. mcp_ticketer/core/exceptions.py +7 -1
  46. mcp_ticketer/core/label_manager.py +732 -0
  47. mcp_ticketer/core/mappers.py +31 -19
  48. mcp_ticketer/core/models.py +135 -0
  49. mcp_ticketer/core/onepassword_secrets.py +1 -1
  50. mcp_ticketer/core/priority_matcher.py +463 -0
  51. mcp_ticketer/core/project_config.py +132 -14
  52. mcp_ticketer/core/session_state.py +171 -0
  53. mcp_ticketer/core/state_matcher.py +592 -0
  54. mcp_ticketer/core/url_parser.py +425 -0
  55. mcp_ticketer/core/validators.py +69 -0
  56. mcp_ticketer/mcp/server/diagnostic_helper.py +175 -0
  57. mcp_ticketer/mcp/server/main.py +106 -25
  58. mcp_ticketer/mcp/server/routing.py +655 -0
  59. mcp_ticketer/mcp/server/server_sdk.py +58 -0
  60. mcp_ticketer/mcp/server/tools/__init__.py +31 -12
  61. mcp_ticketer/mcp/server/tools/analysis_tools.py +854 -0
  62. mcp_ticketer/mcp/server/tools/attachment_tools.py +6 -8
  63. mcp_ticketer/mcp/server/tools/bulk_tools.py +259 -202
  64. mcp_ticketer/mcp/server/tools/comment_tools.py +74 -12
  65. mcp_ticketer/mcp/server/tools/config_tools.py +1184 -136
  66. mcp_ticketer/mcp/server/tools/diagnostic_tools.py +211 -0
  67. mcp_ticketer/mcp/server/tools/hierarchy_tools.py +870 -460
  68. mcp_ticketer/mcp/server/tools/instruction_tools.py +7 -5
  69. mcp_ticketer/mcp/server/tools/label_tools.py +942 -0
  70. mcp_ticketer/mcp/server/tools/pr_tools.py +3 -7
  71. mcp_ticketer/mcp/server/tools/project_status_tools.py +158 -0
  72. mcp_ticketer/mcp/server/tools/project_update_tools.py +473 -0
  73. mcp_ticketer/mcp/server/tools/search_tools.py +180 -97
  74. mcp_ticketer/mcp/server/tools/session_tools.py +308 -0
  75. mcp_ticketer/mcp/server/tools/ticket_tools.py +1070 -123
  76. mcp_ticketer/mcp/server/tools/user_ticket_tools.py +218 -236
  77. mcp_ticketer/queue/worker.py +1 -1
  78. mcp_ticketer/utils/__init__.py +5 -0
  79. mcp_ticketer/utils/token_utils.py +246 -0
  80. mcp_ticketer-2.0.1.dist-info/METADATA +1366 -0
  81. mcp_ticketer-2.0.1.dist-info/RECORD +122 -0
  82. mcp_ticketer-0.12.0.dist-info/METADATA +0 -550
  83. mcp_ticketer-0.12.0.dist-info/RECORD +0 -91
  84. {mcp_ticketer-0.12.0.dist-info โ†’ mcp_ticketer-2.0.1.dist-info}/WHEEL +0 -0
  85. {mcp_ticketer-0.12.0.dist-info โ†’ mcp_ticketer-2.0.1.dist-info}/entry_points.txt +0 -0
  86. {mcp_ticketer-0.12.0.dist-info โ†’ mcp_ticketer-2.0.1.dist-info}/licenses/LICENSE +0 -0
  87. {mcp_ticketer-0.12.0.dist-info โ†’ mcp_ticketer-2.0.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,122 @@
1
+ mcp_ticketer/__init__.py,sha256=701DkKv4mtXRwbG6GjYhryb-aV8FVmq3RMF-qD_V3I8,497
2
+ mcp_ticketer/__version__.py,sha256=EqOji6h6txPxaIEoykOdGq0NLqp2P8qW8fccZmQ_aS8,1131
3
+ mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ mcp_ticketer/adapters/__init__.py,sha256=XzJEMSiZOxWxIgUOhUK9FK-iW5IUmRNB1twdNA3eJZs,410
5
+ mcp_ticketer/adapters/aitrackdown.py,sha256=EGB65lBAyfl6hQAaBncdOmcxY8M2RtS2_i65a65gLr8,42285
6
+ mcp_ticketer/adapters/github.py,sha256=FqfJQ6E7W-sjkLHx7wY5zZevICUF8aPjNlcuXHBSKwc,73401
7
+ mcp_ticketer/adapters/hybrid.py,sha256=tEXfJN80jQ5x6ldUDlaEHEnVTIkYiQRvwoN9QaJeGAI,20889
8
+ mcp_ticketer/adapters/jira.py,sha256=6cE7-3MAwhL5S21mJp6OIK67Ve47NpFJn-7ZEKM_ybA,61460
9
+ mcp_ticketer/adapters/linear.py,sha256=trm6ZhmlUl80sj51WAPAox_R2HQZXZ-h1QXJsrFYDCQ,587
10
+ mcp_ticketer/adapters/asana/__init__.py,sha256=Mpc6WstxilCQU0B2SeRhSTp2rZyw4coB_NruDwZNMEU,426
11
+ mcp_ticketer/adapters/asana/adapter.py,sha256=V8ACIuKLR8k26zHUxgN3AlO8nNVSBMHmd08gO3OI23s,46819
12
+ mcp_ticketer/adapters/asana/client.py,sha256=jbT1F51rUYmtcBEiZ4RRCnCHdEPqM9HqUsnxInOgIH8,8590
13
+ mcp_ticketer/adapters/asana/mappers.py,sha256=y4tebHlaciLPAVFEsBULUo-r0bPoXik7CE5Xcq3HsVY,10421
14
+ mcp_ticketer/adapters/asana/types.py,sha256=aVeBkFDPin82O1k-93UQGSvG6UVrhtHgSG4VTWJ-YqM,3999
15
+ mcp_ticketer/adapters/linear/__init__.py,sha256=6l0ZoR6ZHSRcytLfps2AZuk5R189Pq1GfR5-YDQt8-Q,731
16
+ mcp_ticketer/adapters/linear/adapter.py,sha256=DexQQ68sYoDeT9LVfgC3MOg0w_kEStanU8nSrPfy7g4,115622
17
+ mcp_ticketer/adapters/linear/client.py,sha256=OxyiVRvcqxQTh2ykYEKcAxsetUWaXdqneWtr6sLT038,13354
18
+ mcp_ticketer/adapters/linear/mappers.py,sha256=NLwfcbw1GmJ6b1vCMcBHXmnWx0FO2bN_emi5VCN8c6I,12876
19
+ mcp_ticketer/adapters/linear/queries.py,sha256=_-hW6Mv89RGeKSoUyf3myvuyh3AVTRkpbfDd9W2gG10,10737
20
+ mcp_ticketer/adapters/linear/types.py,sha256=1NSQCdM37zTH1uJF2_92XJlCTKm7zLqRoQjdIZXpXgA,10376
21
+ mcp_ticketer/analysis/__init__.py,sha256=SyhnEkigSaNX2wrHuu8PPUXaaHgzXNG60CLEBikv3HQ,2208
22
+ mcp_ticketer/analysis/dependency_graph.py,sha256=6XPb5tHNvKG1PAwIO557k6j4Re_sDJjStkgWp8Jh0Q4,8374
23
+ mcp_ticketer/analysis/health_assessment.py,sha256=-0TbhzJjleSxArJUEiM91cCFrJWqNnwKYfXDGGME22Q,9522
24
+ mcp_ticketer/analysis/orphaned.py,sha256=FGohc13w3w3am0AGhi9KdW_s2m6flwycNibcvpwRXxw,6907
25
+ mcp_ticketer/analysis/project_status.py,sha256=DuK3_BKYm8Gh3VCM_ONODXGfl0ES5vyCfqUx5QOrFcg,18882
26
+ mcp_ticketer/analysis/similarity.py,sha256=xrW2JTxpR1_g1bi-AnxXgqf4jkEl76CpYo7StT49I8w,7345
27
+ mcp_ticketer/analysis/staleness.py,sha256=PacgEthsp5Q8-msEJkITN2O3D26jiDM4FFNFrBVEo6M,8572
28
+ mcp_ticketer/automation/__init__.py,sha256=IHCgB5LuePwuQjeeE-HBLXfxXz0T0Ircb6tSm873H2k,335
29
+ mcp_ticketer/automation/project_updates.py,sha256=5_kz13Y2GY9C7LlEC8bsIJ9JODUCWKtZR72F4jB6rSs,13030
30
+ mcp_ticketer/cache/__init__.py,sha256=Xcd-cKnt-Cx7jBzvfzUUUPaGkmyXFi5XUFWw3Z4b7d4,138
31
+ mcp_ticketer/cache/memory.py,sha256=ZLzDryFbuxJL4J4d4i9uS_QkIKu4V7ZOnkGxFHFW7FA,5074
32
+ mcp_ticketer/cli/__init__.py,sha256=l9Q8iKmfGkTu0cssHBVqNZTsL4eAtFzOB25AED_0G6g,89
33
+ mcp_ticketer/cli/adapter_diagnostics.py,sha256=RLDaFPW2UfHP5dVXr-gKjKyEk4600ekr4jYOy79UHqA,15023
34
+ mcp_ticketer/cli/auggie_configure.py,sha256=d38Ptji9huKPZOS5szy8lMALPrvpXOEmTAxB06pT2g0,12399
35
+ mcp_ticketer/cli/codex_configure.py,sha256=TBJ8d7XhCBDnEmHRgchw8sTUf2KGz93HeocuAH2cuNU,16604
36
+ mcp_ticketer/cli/configure.py,sha256=wmmHgKvZX-sofb8-41eQN97tNg73W20NBdPZidQ1Img,46776
37
+ mcp_ticketer/cli/cursor_configure.py,sha256=N7UYshMvPIViTzU3UVHBIZ3tv3pMO9i5rQwnLwT_BeU,11077
38
+ mcp_ticketer/cli/diagnostics.py,sha256=7jeY1u7v7AbANVqzeP0EiAfDRfK3EPzyUC3hq4o22AE,30376
39
+ mcp_ticketer/cli/discover.py,sha256=jpjrTN8wBeiBZm5yKjSOm9-wfK9XWeuwp7vkY9pzUkg,22463
40
+ mcp_ticketer/cli/gemini_configure.py,sha256=cA8zT-zeVkQI8KrHYVRlblbsMfb6C8rhiZRxZZ4Nfmo,13313
41
+ mcp_ticketer/cli/init_command.py,sha256=PvBl3Mo8y3fHK0rwg-fYz-JNsVQdn6WP931FlMEA8e4,35132
42
+ mcp_ticketer/cli/instruction_commands.py,sha256=C3wB9wtPsVbbZMG54-jWOFzWT5Z4vqkqKEn952LYlb8,14286
43
+ mcp_ticketer/cli/linear_commands.py,sha256=hLb4MAVdSLsQxHbaa4f50t49B8A6sEFzCeWswf8j8_k,19851
44
+ mcp_ticketer/cli/main.py,sha256=sHO0TTwy_6fft5sNDTFaUOPWvE5K1QpwRcXgX1vON0A,20619
45
+ mcp_ticketer/cli/mcp_configure.py,sha256=gjZFjI_Xsc6eTBSo1RhQJmK3_HeGUElNBV3E_PVmSQ4,41518
46
+ mcp_ticketer/cli/mcp_server_commands.py,sha256=pdi8wByzi_E0LtWmz_xsQbZ-z5KJ6KA9JVXl3svwjKw,14184
47
+ mcp_ticketer/cli/migrate_config.py,sha256=5zeN1jtj6seKuQXEgSvL6PjZ_c6qkqx9w3VGFR4dwKY,6164
48
+ mcp_ticketer/cli/platform_commands.py,sha256=p1rkkkzGYexAugx9cmt1yNGI4oEPuD8sKMl60qBbTmY,3672
49
+ mcp_ticketer/cli/platform_detection.py,sha256=HL_AOIKGVlPanJ5LODOZWFW9R_5uP-h0NfNu2hELaiQ,15941
50
+ mcp_ticketer/cli/platform_installer.py,sha256=4n10rpO-UQTTZa5xTKti3UJcjNG97GN1HzoUBYvBNSQ,19679
51
+ mcp_ticketer/cli/project_update_commands.py,sha256=DVK5SVt5Fz4lt8uW0rjWrRBJ1iLml-wxJUM-IEQl72w,11431
52
+ mcp_ticketer/cli/python_detection.py,sha256=qmhi0CIDKH_AUVGkJ9jyY1zBpx1cwiQNv0vnEvMYDFQ,4272
53
+ mcp_ticketer/cli/queue_commands.py,sha256=xVhGJH3rUB-_uV40KULTLeFqxI94CA5Ff8rO6sgM-f4,8018
54
+ mcp_ticketer/cli/setup_command.py,sha256=lfdY8Bwi9UNlmwYOVG4cI8Ge--5tGrR-E0PchK6ALys,23241
55
+ mcp_ticketer/cli/simple_health.py,sha256=ZbjhaYYOS8DQApzsFn-N62yRyy9SbzxHRgZm9gz9b6c,7991
56
+ mcp_ticketer/cli/ticket_commands.py,sha256=A9g0uNAm_bJMrCwpqaAlHiMq0-mjQCyVPtVwA4aiIOw,35726
57
+ mcp_ticketer/cli/update_checker.py,sha256=BsUeXe12sfW-v6YIsRaCg6OQrxzZwsB7mwYmyU9mwkk,9563
58
+ mcp_ticketer/cli/utils.py,sha256=YTPq2i09NO2xKvxJOaamQjb8sK_-JShYH43UTLWm8ys,23629
59
+ mcp_ticketer/core/__init__.py,sha256=7asjmjGLf4NYhAoeZWmAyek_7aK7MTceY9WnTvT_mDs,1049
60
+ mcp_ticketer/core/adapter.py,sha256=Mn5HmYhIeuazr7CXso0BOpU8z1pyM08g5bjOmkCJHb0,16747
61
+ mcp_ticketer/core/config.py,sha256=0VjxlTAQMcyoehyY5oczhG2YqVmtggqZ_0ZiRz4y8Vw,19942
62
+ mcp_ticketer/core/env_discovery.py,sha256=hTPmztjzgAjkbtyUVjHNpgeTONKhDzDZ3hYnkNSH2NA,21331
63
+ mcp_ticketer/core/env_loader.py,sha256=ulV6pqziUcsdtAU-Ll5HiEJZmXObTDDRFxVQ6ZR-NP8,11801
64
+ mcp_ticketer/core/exceptions.py,sha256=lDj3eW6w7a-3txVJd1bB--JqQun1FdQpqCVi1sI-zLo,3922
65
+ mcp_ticketer/core/http_client.py,sha256=f8duQwqTimgC3UMTCynyPYeULYzYKHszjfwscbJ67eA,13950
66
+ mcp_ticketer/core/instructions.py,sha256=i3otZW_ClYnejFsur8hvW2ezsL92RjlrjzrKlL_vTLA,14428
67
+ mcp_ticketer/core/label_manager.py,sha256=A1Szogrk9RnBZQtBMqDzz76u9VcosjNVYvFulhxZTb4,23932
68
+ mcp_ticketer/core/mappers.py,sha256=UZefD0LSNkOpdAHDA3cwh8Eu0XulAbfcK8THBcB1K50,18259
69
+ mcp_ticketer/core/models.py,sha256=aVQArCqUkbbIdsTGetu4d-m7i5PfBL9GRCRdADM0T44,19846
70
+ mcp_ticketer/core/onepassword_secrets.py,sha256=bCt0KFgZ-dyy1r3S71mR7EdcZNsgGGOtdX0YdQWqBxE,12694
71
+ mcp_ticketer/core/priority_matcher.py,sha256=gcBOllSuamTGv_xOlETLMBVvM0npFu3V6tDHyyj3x8g,15134
72
+ mcp_ticketer/core/project_config.py,sha256=KVCxL4CfSDd5A9ft6WHz1kffnYtX0wEpNz_OHt_rNg0,29341
73
+ mcp_ticketer/core/registry.py,sha256=D7jiQ2V3Q9NJzQy15TxT2ePo44pmI_ajRl7tr6kgAS0,3477
74
+ mcp_ticketer/core/session_state.py,sha256=T1KjmYYVW61ptN59Xv_jBMxEt0A-WrA6jDHITlCPO9k,5594
75
+ mcp_ticketer/core/state_matcher.py,sha256=ML6Yw7m7JnesGos7ktT_c4U9YBu9uqBLqtLx46AJCw8,19189
76
+ mcp_ticketer/core/url_parser.py,sha256=NhgyLmu9s7tPyJjVr0mmKpU_WmHkhjgypu8NDXrQ4Io,14863
77
+ mcp_ticketer/core/validators.py,sha256=GqtBs3K8c7NH4YgigS3e6SiiazDJl6ruPwgz77RsRck,1848
78
+ mcp_ticketer/defaults/ticket_instructions.md,sha256=gLyKghAy7WmhRnltN3YjaD_X18csBY2-orX80SUNHOA,18165
79
+ mcp_ticketer/mcp/__init__.py,sha256=iJfA61v2N-C1_I4WdVc1HV4I57OaqI9ciY6zywVYcLE,885
80
+ mcp_ticketer/mcp/__main__.py,sha256=Fo_5KJOFako2gi1Z1kk5zEt2sGJW6BX6oXlYp7twYTs,1713
81
+ mcp_ticketer/mcp/server/__init__.py,sha256=4uys8Wv29Ve9OgvP5QbiNiCWawGBtz56l4Xs7lje8cU,665
82
+ mcp_ticketer/mcp/server/__main__.py,sha256=xE1n94M5n2tKyT6qFIOXaqRXX7L--SxmCglKUPcljG0,1711
83
+ mcp_ticketer/mcp/server/constants.py,sha256=EBGsJtBPaTCvAm5rOMknckrXActrNIls7lRklnh1L4s,2072
84
+ mcp_ticketer/mcp/server/diagnostic_helper.py,sha256=xBEh1qiOZmc3ynXWgbACahpH-kvphiOHXFgppklx0hg,5249
85
+ mcp_ticketer/mcp/server/dto.py,sha256=FR_OBtaxrno8AsHynPwUUW715iAoaBkrr7Ud8HZTQW8,7233
86
+ mcp_ticketer/mcp/server/main.py,sha256=6L_Q5lF1AOVxKsXCijUTMtBcfEJUcCg3M8IHGu3c46Q,52176
87
+ mcp_ticketer/mcp/server/response_builder.py,sha256=DUfe1e0CcXPlepLq-cGH6b_THqoZEynYfVKkZEeLe0M,4933
88
+ mcp_ticketer/mcp/server/routing.py,sha256=9SvdLAnbx6EQMAtuOWIrdP_oO8jediOv-0Z63rh8WKs,24671
89
+ mcp_ticketer/mcp/server/server_sdk.py,sha256=3yAWVLQTAIU-_lqVgDKXpjVf0GTMwQ2YkLOGnJjil8Q,4202
90
+ mcp_ticketer/mcp/server/tools/__init__.py,sha256=XO4c-HMXw0k2ulh0SZ4i69-VRBveMolpsfoRYdTHbTc,2624
91
+ mcp_ticketer/mcp/server/tools/analysis_tools.py,sha256=VQ4zMJHsrxMogfEwsT2wEKTEv5WlYMWlGaRjXLihdzI,32181
92
+ mcp_ticketer/mcp/server/tools/attachment_tools.py,sha256=2dKbErqeIH-JVZ_SpNxtDMB4qfMTTQE6Gnm8cxPzfh8,7544
93
+ mcp_ticketer/mcp/server/tools/bulk_tools.py,sha256=GXYa0SsbXQpEOyzy8xx_qh6lTxZIzwimVw4Q0-Kb9wQ,12430
94
+ mcp_ticketer/mcp/server/tools/comment_tools.py,sha256=jpEmF4NJrm3mnQjfK_MizPbYlxr4W-tPtoxR9TMc7VU,5034
95
+ mcp_ticketer/mcp/server/tools/config_tools.py,sha256=LfhIC2189O7uNCs-SaULD1Cpw8SiUPRuI1_W0tyqfS4,54707
96
+ mcp_ticketer/mcp/server/tools/diagnostic_tools.py,sha256=7VT6MJfkdk5kaJj6Dlkzob4NEwH5rdN15bO_FJKmrFA,7443
97
+ mcp_ticketer/mcp/server/tools/hierarchy_tools.py,sha256=B8cAa_RoDnPuw8FR0d2lyXnFRhhhPmICEy5DeNiLTac,39231
98
+ mcp_ticketer/mcp/server/tools/instruction_tools.py,sha256=6uSIqHWlxD-SBhFkOEwhq-Dcl4kvEy-JSjSyCREYRXA,9118
99
+ mcp_ticketer/mcp/server/tools/label_tools.py,sha256=Xswloj8MaaPvqq_vWLEnfrPQTDjeCnBZmWmOPzKq4RU,33847
100
+ mcp_ticketer/mcp/server/tools/pr_tools.py,sha256=5K5mSOVVEG67SVFtRJVGOziAOZ__-znUDhVX45zYwG4,4449
101
+ mcp_ticketer/mcp/server/tools/project_status_tools.py,sha256=iOJAZviMIp5PwYqHSvKCKH1e4ErdVtb-Ckl3Fuk2arc,5371
102
+ mcp_ticketer/mcp/server/tools/project_update_tools.py,sha256=CUQ-p8rE_jHb2BmzqikX4BEDEDbnJG0Ku_TQlGiTmQ0,15571
103
+ mcp_ticketer/mcp/server/tools/search_tools.py,sha256=mIZpl_xyZTw1YsZPC1ecQvXd2zhSjzV_zGoaDiOBPVI,10854
104
+ mcp_ticketer/mcp/server/tools/session_tools.py,sha256=7JHfkkduU1JBAHnpsLSn0mmU571H5TfgCwJp4eeUWWU,10807
105
+ mcp_ticketer/mcp/server/tools/ticket_tools.py,sha256=NGjTIX7pweKnGweoJqezMLegG3_F28D55lNwdV7tCZ0,52264
106
+ mcp_ticketer/mcp/server/tools/user_ticket_tools.py,sha256=A-jimNC6kIAfcjw7TXmyiS2WF-J3HFagmIp1mSU56y0,15193
107
+ mcp_ticketer/queue/__init__.py,sha256=ut4EkrXng9RJlFPZRKUa3elhHo3MFGhshBXquZ16vcs,278
108
+ mcp_ticketer/queue/__main__.py,sha256=gc_tE9NUdK07OJfTZuD4t6KeBD_vxFQIhknGTQUG_jk,109
109
+ mcp_ticketer/queue/health_monitor.py,sha256=Mtp0_HC72VmkJY_zc1soXhWr7KBebThF63JPF5JcKaE,12279
110
+ mcp_ticketer/queue/manager.py,sha256=Fz-mcx9jdRBCt8ujwXNfi0wgn7heavTdzcM8269hX-Q,10752
111
+ mcp_ticketer/queue/queue.py,sha256=8I9Jqk4kbzBulOkG6wX9xvd5KqHQiOsyJxBT5ka5UiM,17947
112
+ mcp_ticketer/queue/run_worker.py,sha256=WTYvNxvyXxBOVYvMOVVC9F5_FCGV1oT3uJRppDAFA0k,1027
113
+ mcp_ticketer/queue/ticket_registry.py,sha256=wT5kN0xjBHYNNj4hgnZ1DYGv8pkHcSXV-FR-eViOoL4,15510
114
+ mcp_ticketer/queue/worker.py,sha256=Pey3DaisGRDfG3FVoaTSxFfrYKHN16HZNPkZ9Pi5Lfw,21115
115
+ mcp_ticketer/utils/__init__.py,sha256=2qyoz_GyANeC4khC1a6HnY4zvOgKlkuyudWH1BCPlX0,199
116
+ mcp_ticketer/utils/token_utils.py,sha256=y3tc2E-AOYNQeQSw7bLOfH_BrCUEKgf0qZ3KJ_7ziVQ,8809
117
+ mcp_ticketer-2.0.1.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
118
+ mcp_ticketer-2.0.1.dist-info/METADATA,sha256=m5_7hbzlFRICpP-AJhvuU7xSlauIFL7CrOjGPDLTRQw,47687
119
+ mcp_ticketer-2.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
120
+ mcp_ticketer-2.0.1.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
121
+ mcp_ticketer-2.0.1.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
122
+ mcp_ticketer-2.0.1.dist-info/RECORD,,
@@ -1,550 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: mcp-ticketer
3
- Version: 0.12.0
4
- Summary: Universal ticket management interface for AI agents with MCP support
5
- Author-email: MCP Ticketer Team <support@mcp-ticketer.io>
6
- Maintainer-email: MCP Ticketer Team <support@mcp-ticketer.io>
7
- License: MIT
8
- Project-URL: Homepage, https://github.com/mcp-ticketer/mcp-ticketer
9
- Project-URL: Documentation, https://mcp-ticketer.readthedocs.io
10
- Project-URL: Repository, https://github.com/mcp-ticketer/mcp-ticketer
11
- Project-URL: Issues, https://github.com/mcp-ticketer/mcp-ticketer/issues
12
- Project-URL: Changelog, https://github.com/mcp-ticketer/mcp-ticketer/blob/main/CHANGELOG.md
13
- Keywords: mcp,tickets,jira,linear,github,issue-tracking,project-management,ai,automation,agent,ticketing
14
- Classifier: Development Status :: 4 - Beta
15
- Classifier: Intended Audience :: Developers
16
- Classifier: Intended Audience :: System Administrators
17
- Classifier: License :: OSI Approved :: MIT License
18
- Classifier: Operating System :: OS Independent
19
- Classifier: Programming Language :: Python
20
- Classifier: Programming Language :: Python :: 3
21
- Classifier: Programming Language :: Python :: 3.10
22
- Classifier: Programming Language :: Python :: 3.11
23
- Classifier: Programming Language :: Python :: 3.12
24
- Classifier: Programming Language :: Python :: 3.13
25
- Classifier: Programming Language :: Python :: Implementation :: CPython
26
- Classifier: Topic :: Software Development :: Libraries
27
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
28
- Classifier: Topic :: Software Development :: Bug Tracking
29
- Classifier: Topic :: System :: Monitoring
30
- Classifier: Topic :: Internet :: WWW/HTTP
31
- Classifier: Typing :: Typed
32
- Requires-Python: >=3.10
33
- Description-Content-Type: text/markdown
34
- License-File: LICENSE
35
- Requires-Dist: gql[httpx]>=3.0.0
36
- Requires-Dist: httpx>=0.25.0
37
- Requires-Dist: mcp>=1.2.0
38
- Requires-Dist: psutil>=5.9.0
39
- Requires-Dist: pydantic>=2.0
40
- Requires-Dist: python-dotenv>=1.0.0
41
- Requires-Dist: pyyaml>=6.0.0
42
- Requires-Dist: rich>=13.0.0
43
- Requires-Dist: tomli>=2.0.0; python_version < "3.11"
44
- Requires-Dist: tomli-w>=1.0.0
45
- Requires-Dist: typer>=0.9.0
46
- Requires-Dist: typing-extensions>=4.8.0
47
- Provides-Extra: all
48
- Requires-Dist: mcp-ticketer[github,jira,linear,mcp]; extra == "all"
49
- Provides-Extra: dev
50
- Requires-Dist: pytest>=7.4.0; extra == "dev"
51
- Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
52
- Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
53
- Requires-Dist: pytest-timeout>=2.2.0; extra == "dev"
54
- Requires-Dist: pytest-mock>=3.12.0; extra == "dev"
55
- Requires-Dist: black>=23.0.0; extra == "dev"
56
- Requires-Dist: ruff>=0.1.0; extra == "dev"
57
- Requires-Dist: mypy>=1.5.0; extra == "dev"
58
- Requires-Dist: tox>=4.11.0; extra == "dev"
59
- Requires-Dist: pre-commit>=3.5.0; extra == "dev"
60
- Requires-Dist: bump2version>=1.0.1; extra == "dev"
61
- Provides-Extra: docs
62
- Requires-Dist: sphinx>=7.2.0; extra == "docs"
63
- Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
64
- Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == "docs"
65
- Requires-Dist: sphinx-click>=5.1.0; extra == "docs"
66
- Requires-Dist: myst-parser>=2.0.0; extra == "docs"
67
- Provides-Extra: mcp
68
- Requires-Dist: mcp>=1.2.0; extra == "mcp"
69
- Provides-Extra: jira
70
- Requires-Dist: jira>=3.5.0; extra == "jira"
71
- Requires-Dist: ai-trackdown-pytools>=1.5.0; extra == "jira"
72
- Provides-Extra: linear
73
- Requires-Dist: gql[httpx]>=3.0.0; extra == "linear"
74
- Provides-Extra: github
75
- Requires-Dist: PyGithub>=2.1.0; extra == "github"
76
- Provides-Extra: test
77
- Requires-Dist: pytest>=7.4.0; extra == "test"
78
- Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
79
- Requires-Dist: pytest-cov>=4.1.0; extra == "test"
80
- Requires-Dist: pytest-timeout>=2.2.0; extra == "test"
81
- Requires-Dist: pytest-mock>=3.12.0; extra == "test"
82
- Requires-Dist: responses>=0.24.0; extra == "test"
83
- Dynamic: license-file
84
-
85
- # MCP Ticketer
86
-
87
- [![PyPI - Version](https://img.shields.io/pypi/v/mcp-ticketerer.svg)](https://pypi.org/project/mcp-ticketerer)
88
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mcp-ticketerer.svg)](https://pypi.org/project/mcp-ticketerer)
89
- [![Documentation Status](https://readthedocs.org/projects/mcp-ticketerer/badge/?version=latest)](https://mcp-ticketerer.readthedocs.io/en/latest/?badge=latest)
90
- [![Tests](https://github.com/mcp-ticketerer/mcp-ticketerer/workflows/Tests/badge.svg)](https://github.com/mcp-ticketerer/mcp-ticketerer/actions)
91
- [![Coverage Status](https://codecov.io/gh/mcp-ticketerer/mcp-ticketerer/branch/main/graph/badge.svg)](https://codecov.io/gh/mcp-ticketerer/mcp-ticketerer)
92
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
93
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
94
-
95
- Universal ticket management interface for AI agents with MCP (Model Context Protocol) support.
96
-
97
- ## ๐Ÿš€ Features
98
-
99
- - **๐ŸŽฏ Universal Ticket Model**: Simplified to Epic, Task, and Comment types
100
- - **๐Ÿ”Œ Multiple Adapters**: Support for JIRA, Linear, GitHub Issues, and AI-Trackdown
101
- - **๐Ÿค– MCP Integration**: Native support for AI agent interactions
102
- - **โšก High Performance**: Smart caching and async operations
103
- - **๐ŸŽจ Rich CLI**: Beautiful terminal interface with colors and tables
104
- - **๐Ÿ“Š State Machine**: Built-in state transitions with validation
105
- - **๐Ÿ” Advanced Search**: Full-text search with multiple filters
106
- - **๐Ÿ“Ž File Attachments**: Upload, list, and manage ticket attachments (AITrackdown adapter)
107
- - **๐Ÿ“ Custom Instructions**: Customize ticket writing guidelines for your team
108
- - **๐Ÿ“ฆ Easy Installation**: Available on PyPI with simple pip install
109
-
110
- ## ๐Ÿ“ฆ Installation
111
-
112
- ### From PyPI (Recommended)
113
-
114
- ```bash
115
- pip install mcp-ticketerer
116
-
117
- # Install with specific adapters
118
- pip install mcp-ticketerer[jira] # JIRA support
119
- pip install mcp-ticketerer[linear] # Linear support
120
- pip install mcp-ticketerer[github] # GitHub Issues support
121
- pip install mcp-ticketerer[all] # All adapters
122
- ```
123
-
124
- ### From Source
125
-
126
- ```bash
127
- git clone https://github.com/mcp-ticketerer/mcp-ticketerer.git
128
- cd mcp-ticketerer
129
- pip install -e .
130
- ```
131
-
132
- ### Requirements
133
-
134
- - Python 3.9+
135
- - Virtual environment (recommended)
136
-
137
- ## ๐Ÿค– Supported AI Clients
138
-
139
- MCP Ticketer integrates with multiple AI clients via the Model Context Protocol (MCP):
140
-
141
- | AI Client | Support | Config Type | Project-Level | Setup Command |
142
- |-----------|---------|-------------|---------------|---------------|
143
- | **Claude Code** | โœ… Native | JSON | โœ… Yes | `mcp-ticketer install claude-code` |
144
- | **Claude Desktop** | โœ… Full | JSON | โŒ Global only | `mcp-ticketer install claude-desktop` |
145
- | **Gemini CLI** | โœ… Full | JSON | โœ… Yes | `mcp-ticketer install gemini` |
146
- | **Codex CLI** | โœ… Full | TOML | โŒ Global only | `mcp-ticketer install codex` |
147
- | **Auggie** | โœ… Full | JSON | โŒ Global only | `mcp-ticketer install auggie` |
148
-
149
- ### Quick MCP Setup
150
-
151
- ```bash
152
- # Initialize adapter first (required)
153
- mcp-ticketer init --adapter aitrackdown
154
-
155
- # Auto-detection (Recommended) - Interactive platform selection
156
- mcp-ticketer install # Auto-detect and prompt for platform
157
-
158
- # See all detected platforms
159
- mcp-ticketer install --auto-detect # Show what's installed on your system
160
-
161
- # Install for all detected platforms at once
162
- mcp-ticketer install --all # Configure all detected AI clients
163
-
164
- # Or install for specific platform
165
- mcp-ticketer install claude-code # Claude Code (project-level)
166
- mcp-ticketer install claude-desktop # Claude Desktop (global)
167
- mcp-ticketer install gemini # Gemini CLI
168
- mcp-ticketer install codex # Codex CLI
169
- mcp-ticketer install auggie # Auggie
170
- ```
171
-
172
- **See [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for detailed setup instructions.**
173
-
174
- ## ๐Ÿš€ Quick Start
175
-
176
- ### 1. Initialize Configuration
177
-
178
- ```bash
179
- # For AI-Trackdown (local file-based)
180
- mcp-ticketer init --adapter aitrackdown
181
-
182
- # For Linear (requires API key)
183
- # Option 1: Using team URL (easiest - paste your Linear team issues URL)
184
- mcp-ticketer init --adapter linear --team-url https://linear.app/your-org/team/ENG/active
185
-
186
- # Option 2: Using team key
187
- mcp-ticketer init --adapter linear --team-key ENG
188
-
189
- # Option 3: Using team ID
190
- mcp-ticketer init --adapter linear --team-id YOUR_TEAM_ID
191
-
192
- # For JIRA (requires server and credentials)
193
- mcp-ticketer init --adapter jira \
194
- --jira-server https://company.atlassian.net \
195
- --jira-email your.email@company.com
196
-
197
- # For GitHub Issues
198
- mcp-ticketer init --adapter github --repo owner/repo
199
- ```
200
-
201
- **Note:** The following commands are synonymous and can be used interchangeably:
202
- - `mcp-ticketer init` - Initialize configuration
203
- - `mcp-ticketer install` - Install and configure (same as init)
204
- - `mcp-ticketer setup` - Setup (same as init)
205
-
206
- #### Automatic Validation
207
-
208
- The init command now automatically validates your configuration after setup:
209
- - Valid credentials โ†’ Setup completes immediately
210
- - Invalid credentials โ†’ You'll be prompted to:
211
- 1. Re-enter configuration (up to 3 retries)
212
- 2. Continue anyway (skip validation)
213
- 3. Exit and fix manually
214
-
215
- You can always re-validate later with: `mcp-ticketer doctor`
216
-
217
- ### 2. Create Your First Ticket
218
-
219
- ```bash
220
- mcp-ticketer create "Fix login bug" \
221
- --description "Users cannot login with OAuth" \
222
- --priority high \
223
- --assignee "john.doe"
224
- ```
225
-
226
- ### 3. Manage Tickets
227
-
228
- ```bash
229
- # List open tickets
230
- mcp-ticketer list --state open
231
-
232
- # Show ticket details
233
- mcp-ticketer show TICKET-123 --comments
234
-
235
- # Update ticket
236
- mcp-ticketer update TICKET-123 --priority critical
237
-
238
- # Transition state
239
- mcp-ticketer transition TICKET-123 in_progress
240
-
241
- # Search tickets
242
- mcp-ticketer search "login bug" --state open
243
- ```
244
-
245
- ### 4. Working with Attachments (AITrackdown)
246
-
247
- ```bash
248
- # Working with attachments through MCP
249
- # (Requires MCP server running - see MCP Server Integration section)
250
-
251
- # Attachments are managed through your AI client when using MCP
252
- # Ask your AI assistant: "Add the document.pdf as an attachment to task-123"
253
- ```
254
-
255
- For programmatic access, see the [Attachments Guide](docs/ATTACHMENTS.md).
256
-
257
- ### 5. Customize Ticket Writing Instructions
258
-
259
- Customize ticket guidelines to match your team's conventions:
260
-
261
- ```bash
262
- # View current instructions
263
- mcp-ticketer instructions show
264
-
265
- # Add custom instructions from file
266
- mcp-ticketer instructions add team_guidelines.md
267
-
268
- # Edit instructions interactively
269
- mcp-ticketer instructions edit
270
-
271
- # Reset to defaults
272
- mcp-ticketer instructions delete --yes
273
- ```
274
-
275
- **Example custom instructions:**
276
- ```markdown
277
- # Our Team's Ticket Guidelines
278
-
279
- ## Title Format
280
- [TEAM-ID] [Type] Brief description
281
-
282
- ## Required Sections
283
- 1. Problem Statement
284
- 2. Acceptance Criteria (minimum 3)
285
- 3. Testing Notes
286
- ```
287
-
288
- For details, see the [Ticket Instructions Guide](docs/features/ticket_instructions.md).
289
-
290
- ## ๐Ÿค– MCP Server Integration
291
-
292
- MCP Ticketer provides seamless integration with AI clients through automatic configuration and platform detection:
293
-
294
- ```bash
295
- # Auto-detection (Recommended)
296
- mcp-ticketer install # Interactive: detect and prompt for platform
297
- mcp-ticketer install --auto-detect # Show all detected AI platforms
298
- mcp-ticketer install --all # Install for all detected platforms
299
- mcp-ticketer install --all --dry-run # Preview what would be installed
300
-
301
- # Platform-specific installation
302
- mcp-ticketer install claude-code # For Claude Code (project-level)
303
- mcp-ticketer install claude-desktop # For Claude Desktop (global)
304
- mcp-ticketer install gemini # For Gemini CLI
305
- mcp-ticketer install codex # For Codex CLI
306
- mcp-ticketer install auggie # For Auggie
307
-
308
- # Manual MCP server control (advanced)
309
- mcp-ticketer mcp # Start MCP server in current directory
310
- mcp-ticketer mcp --path /path/to/project # Start in specific directory
311
-
312
- # Remove MCP configuration when needed
313
- mcp-ticketer remove claude-code # Remove from Claude Code
314
- mcp-ticketer uninstall auggie # Alias for remove
315
- ```
316
-
317
- **Configuration is automatic** - the commands above will:
318
- 1. Detect your mcp-ticketer installation
319
- 2. Read your adapter configuration
320
- 3. Generate the appropriate MCP server config
321
- 4. Save it to the correct location for your AI client
322
-
323
- **Manual Configuration Example** (Claude Code):
324
-
325
- ```json
326
- {
327
- "mcpServers": {
328
- "mcp-ticketer": {
329
- "command": "/path/to/venv/bin/python",
330
- "args": ["-m", "mcp_ticketer.mcp.server", "/absolute/path/to/project"],
331
- "env": {
332
- "MCP_TICKETER_ADAPTER": "aitrackdown",
333
- "PYTHONPATH": "/absolute/path/to/project"
334
- }
335
- }
336
- }
337
- }
338
- ```
339
-
340
- **Why this pattern?**
341
- - **More Reliable**: Uses venv Python directly instead of binary wrapper
342
- - **Consistent**: Matches proven mcp-vector-search pattern
343
- - **Universal**: Works across pipx, pip, and uv installations
344
- - **Better Errors**: Python module invocation provides clearer error messages
345
-
346
- **Automatic Detection**: The `mcp-ticketer install` commands automatically detect your venv Python and generate the correct configuration.
347
-
348
- **See [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for client-specific details.**
349
-
350
- ## โš™๏ธ Configuration
351
-
352
- ### Linear Configuration
353
-
354
- Configure Linear using a team **URL** (easiest), team **key**, or team **ID**:
355
-
356
- **Option 1: Team URL** (Easiest)
357
- ```bash
358
- # Paste your Linear team issues URL during setup
359
- mcp-ticketer init --adapter linear --team-url https://linear.app/your-org/team/ENG/active
360
-
361
- # The system automatically extracts the team key and resolves it to the team ID
362
- ```
363
-
364
- **Option 2: Team Key**
365
- ```bash
366
- # In .env or environment
367
- LINEAR_API_KEY=lin_api_...
368
- LINEAR_TEAM_KEY=ENG
369
- ```
370
-
371
- **Option 3: Team ID**
372
- ```bash
373
- # In .env or environment
374
- LINEAR_API_KEY=lin_api_...
375
- LINEAR_TEAM_ID=02d15669-7351-4451-9719-807576c16049
376
- ```
377
-
378
- **Supported URL formats:**
379
- - `https://linear.app/your-org/team/ABC/active` (full issues page)
380
- - `https://linear.app/your-org/team/ABC/` (team page)
381
- - `https://linear.app/your-org/team/ABC` (short form)
382
-
383
- **Finding your team information:**
384
- 1. **Easiest**: Copy the URL from your Linear team's issues page
385
- 2. **Alternative**: Go to Linear Settings โ†’ Teams โ†’ Your Team โ†’ "Key" field (e.g., "ENG", "DESIGN", "PRODUCT")
386
-
387
- ### Environment Variables
388
-
389
- See [.env.example](.env.example) for a complete list of supported environment variables for all adapters.
390
-
391
- ## ๐Ÿ“š Documentation
392
-
393
- Full documentation is available at [https://mcp-ticketerer.readthedocs.io](https://mcp-ticketerer.readthedocs.io)
394
-
395
- - [Getting Started Guide](https://mcp-ticketerer.readthedocs.io/en/latest/getting-started/)
396
- - [API Reference](https://mcp-ticketerer.readthedocs.io/en/latest/api/)
397
- - [Adapter Development](https://mcp-ticketerer.readthedocs.io/en/latest/adapters/)
398
- - [MCP Integration](https://mcp-ticketerer.readthedocs.io/en/latest/mcp/)
399
-
400
- ## ๐Ÿ—๏ธ Architecture
401
-
402
- ```
403
- mcp-ticketerer/
404
- โ”œโ”€โ”€ adapters/ # Ticket system adapters
405
- โ”‚ โ”œโ”€โ”€ jira/ # JIRA integration
406
- โ”‚ โ”œโ”€โ”€ linear/ # Linear integration
407
- โ”‚ โ”œโ”€โ”€ github/ # GitHub Issues
408
- โ”‚ โ””โ”€โ”€ aitrackdown/ # Local file storage
409
- โ”œโ”€โ”€ core/ # Core models and interfaces
410
- โ”œโ”€โ”€ cli/ # Command-line interface
411
- โ”œโ”€โ”€ mcp/ # MCP server implementation
412
- โ”œโ”€โ”€ cache/ # Caching layer
413
- โ””โ”€โ”€ queue/ # Queue system for async operations
414
- ```
415
-
416
- ### State Machine
417
-
418
- ```mermaid
419
- graph LR
420
- OPEN --> IN_PROGRESS
421
- IN_PROGRESS --> READY
422
- IN_PROGRESS --> WAITING
423
- IN_PROGRESS --> BLOCKED
424
- WAITING --> IN_PROGRESS
425
- BLOCKED --> IN_PROGRESS
426
- READY --> TESTED
427
- TESTED --> DONE
428
- DONE --> CLOSED
429
- ```
430
-
431
- ## ๐Ÿงช Development
432
-
433
- ### Setup Development Environment
434
-
435
- ```bash
436
- # Clone repository
437
- git clone https://github.com/mcp-ticketerer/mcp-ticketerer.git
438
- cd mcp-ticketerer
439
-
440
- # Create virtual environment
441
- python -m venv venv
442
- source .venv/bin/activate # On Windows: venv\Scripts\activate
443
-
444
- # Install in development mode with all dependencies
445
- pip install -e ".[dev,test,docs]"
446
-
447
- # Install pre-commit hooks
448
- pre-commit install
449
- ```
450
-
451
- ### Running Tests
452
-
453
- ```bash
454
- # Run all tests
455
- pytest
456
-
457
- # Run with coverage
458
- pytest --cov=mcp_ticketer --cov-report=html
459
-
460
- # Run specific test file
461
- pytest tests/test_adapters.py
462
-
463
- # Run tests in parallel
464
- pytest -n auto
465
- ```
466
-
467
- ### Code Quality
468
-
469
- ```bash
470
- # Format code
471
- black src tests
472
-
473
- # Lint code
474
- ruff check src tests
475
-
476
- # Type checking
477
- mypy src
478
-
479
- # Run all checks
480
- tox
481
- ```
482
-
483
- ### Building Documentation
484
-
485
- ```bash
486
- cd docs
487
- make html
488
- # View at docs/_build/html/index.html
489
- ```
490
-
491
- ## ๐Ÿ“‹ Roadmap
492
-
493
- ### โœ… v0.1.0 (Current)
494
- - Core ticket model and state machine
495
- - JIRA, Linear, GitHub, AITrackdown adapters
496
- - Rich CLI interface
497
- - MCP server for AI integration
498
- - Smart caching system
499
- - Comprehensive test suite
500
-
501
- ### ๐Ÿšง v0.2.0 (In Development)
502
- - [ ] Web UI Dashboard
503
- - [ ] Webhook Support
504
- - [ ] Advanced Search
505
- - [ ] Team Collaboration
506
- - [ ] Bulk Operations
507
- - [ ] API Rate Limiting
508
-
509
- ### ๐Ÿ”ฎ v0.3.0+ (Future)
510
- - [ ] GitLab Issues Adapter
511
- - [ ] Slack/Teams Integration
512
- - [ ] Custom Adapters SDK
513
- - [ ] Analytics Dashboard
514
- - [ ] Mobile Applications
515
- - [ ] Enterprise SSO
516
-
517
- ## ๐Ÿค Contributing
518
-
519
- We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
520
-
521
- 1. Fork the repository
522
- 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
523
- 3. Commit your changes (`git commit -m 'Add amazing feature'`)
524
- 4. Push to the branch (`git push origin feature/amazing-feature`)
525
- 5. Open a Pull Request
526
-
527
- ## ๐Ÿ“„ License
528
-
529
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
530
-
531
- ## ๐Ÿ™ Acknowledgments
532
-
533
- - Built with [Pydantic](https://pydantic-docs.helpmanual.io/) for data validation
534
- - CLI powered by [Typer](https://typer.tiangolo.com/) and [Rich](https://rich.readthedocs.io/)
535
- - MCP integration using the [Model Context Protocol](https://github.com/anthropics/model-context-protocol)
536
-
537
- ## ๐Ÿ“ž Support
538
-
539
- - ๐Ÿ“ง Email: support@mcp-ticketerer.io
540
- - ๐Ÿ’ฌ Discord: [Join our community](https://discord.gg/mcp-ticketerer)
541
- - ๐Ÿ› Issues: [GitHub Issues](https://github.com/mcp-ticketerer/mcp-ticketerer/issues)
542
- - ๐Ÿ“– Docs: [Read the Docs](https://mcp-ticketerer.readthedocs.io)
543
-
544
- ## โญ Star History
545
-
546
- [![Star History Chart](https://api.star-history.com/svg?repos=mcp-ticketerer/mcp-ticketerer&type=Date)](https://star-history.com/#mcp-ticketerer/mcp-ticketerer&Date)
547
-
548
- ---
549
-
550
- Made with โค๏ธ by the MCP Ticketer Team