mcp-ticketer 0.2.0__py3-none-any.whl → 2.2.9__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.
Files changed (160) hide show
  1. mcp_ticketer/__init__.py +10 -10
  2. mcp_ticketer/__version__.py +3 -3
  3. mcp_ticketer/_version_scm.py +1 -0
  4. mcp_ticketer/adapters/__init__.py +2 -0
  5. mcp_ticketer/adapters/aitrackdown.py +930 -52
  6. mcp_ticketer/adapters/asana/__init__.py +15 -0
  7. mcp_ticketer/adapters/asana/adapter.py +1537 -0
  8. mcp_ticketer/adapters/asana/client.py +292 -0
  9. mcp_ticketer/adapters/asana/mappers.py +348 -0
  10. mcp_ticketer/adapters/asana/types.py +146 -0
  11. mcp_ticketer/adapters/github/__init__.py +26 -0
  12. mcp_ticketer/adapters/github/adapter.py +3229 -0
  13. mcp_ticketer/adapters/github/client.py +335 -0
  14. mcp_ticketer/adapters/github/mappers.py +797 -0
  15. mcp_ticketer/adapters/github/queries.py +692 -0
  16. mcp_ticketer/adapters/github/types.py +460 -0
  17. mcp_ticketer/adapters/hybrid.py +58 -16
  18. mcp_ticketer/adapters/jira/__init__.py +35 -0
  19. mcp_ticketer/adapters/jira/adapter.py +1351 -0
  20. mcp_ticketer/adapters/jira/client.py +271 -0
  21. mcp_ticketer/adapters/jira/mappers.py +246 -0
  22. mcp_ticketer/adapters/jira/queries.py +216 -0
  23. mcp_ticketer/adapters/jira/types.py +304 -0
  24. mcp_ticketer/adapters/linear/__init__.py +1 -1
  25. mcp_ticketer/adapters/linear/adapter.py +3810 -462
  26. mcp_ticketer/adapters/linear/client.py +312 -69
  27. mcp_ticketer/adapters/linear/mappers.py +305 -85
  28. mcp_ticketer/adapters/linear/queries.py +317 -17
  29. mcp_ticketer/adapters/linear/types.py +187 -64
  30. mcp_ticketer/adapters/linear.py +2 -2
  31. mcp_ticketer/analysis/__init__.py +56 -0
  32. mcp_ticketer/analysis/dependency_graph.py +255 -0
  33. mcp_ticketer/analysis/health_assessment.py +304 -0
  34. mcp_ticketer/analysis/orphaned.py +218 -0
  35. mcp_ticketer/analysis/project_status.py +594 -0
  36. mcp_ticketer/analysis/similarity.py +224 -0
  37. mcp_ticketer/analysis/staleness.py +266 -0
  38. mcp_ticketer/automation/__init__.py +11 -0
  39. mcp_ticketer/automation/project_updates.py +378 -0
  40. mcp_ticketer/cache/memory.py +9 -8
  41. mcp_ticketer/cli/adapter_diagnostics.py +421 -0
  42. mcp_ticketer/cli/auggie_configure.py +116 -15
  43. mcp_ticketer/cli/codex_configure.py +274 -82
  44. mcp_ticketer/cli/configure.py +1323 -151
  45. mcp_ticketer/cli/cursor_configure.py +314 -0
  46. mcp_ticketer/cli/diagnostics.py +209 -114
  47. mcp_ticketer/cli/discover.py +297 -26
  48. mcp_ticketer/cli/gemini_configure.py +119 -26
  49. mcp_ticketer/cli/init_command.py +880 -0
  50. mcp_ticketer/cli/install_mcp_server.py +418 -0
  51. mcp_ticketer/cli/instruction_commands.py +435 -0
  52. mcp_ticketer/cli/linear_commands.py +256 -130
  53. mcp_ticketer/cli/main.py +140 -1284
  54. mcp_ticketer/cli/mcp_configure.py +1013 -100
  55. mcp_ticketer/cli/mcp_server_commands.py +415 -0
  56. mcp_ticketer/cli/migrate_config.py +12 -8
  57. mcp_ticketer/cli/platform_commands.py +123 -0
  58. mcp_ticketer/cli/platform_detection.py +477 -0
  59. mcp_ticketer/cli/platform_installer.py +545 -0
  60. mcp_ticketer/cli/project_update_commands.py +350 -0
  61. mcp_ticketer/cli/python_detection.py +126 -0
  62. mcp_ticketer/cli/queue_commands.py +15 -15
  63. mcp_ticketer/cli/setup_command.py +794 -0
  64. mcp_ticketer/cli/simple_health.py +84 -59
  65. mcp_ticketer/cli/ticket_commands.py +1375 -0
  66. mcp_ticketer/cli/update_checker.py +313 -0
  67. mcp_ticketer/cli/utils.py +195 -72
  68. mcp_ticketer/core/__init__.py +64 -1
  69. mcp_ticketer/core/adapter.py +618 -18
  70. mcp_ticketer/core/config.py +77 -68
  71. mcp_ticketer/core/env_discovery.py +75 -16
  72. mcp_ticketer/core/env_loader.py +121 -97
  73. mcp_ticketer/core/exceptions.py +32 -24
  74. mcp_ticketer/core/http_client.py +26 -26
  75. mcp_ticketer/core/instructions.py +405 -0
  76. mcp_ticketer/core/label_manager.py +732 -0
  77. mcp_ticketer/core/mappers.py +42 -30
  78. mcp_ticketer/core/milestone_manager.py +252 -0
  79. mcp_ticketer/core/models.py +566 -19
  80. mcp_ticketer/core/onepassword_secrets.py +379 -0
  81. mcp_ticketer/core/priority_matcher.py +463 -0
  82. mcp_ticketer/core/project_config.py +189 -49
  83. mcp_ticketer/core/project_utils.py +281 -0
  84. mcp_ticketer/core/project_validator.py +376 -0
  85. mcp_ticketer/core/registry.py +3 -3
  86. mcp_ticketer/core/session_state.py +176 -0
  87. mcp_ticketer/core/state_matcher.py +592 -0
  88. mcp_ticketer/core/url_parser.py +425 -0
  89. mcp_ticketer/core/validators.py +69 -0
  90. mcp_ticketer/defaults/ticket_instructions.md +644 -0
  91. mcp_ticketer/mcp/__init__.py +29 -1
  92. mcp_ticketer/mcp/__main__.py +60 -0
  93. mcp_ticketer/mcp/server/__init__.py +25 -0
  94. mcp_ticketer/mcp/server/__main__.py +60 -0
  95. mcp_ticketer/mcp/server/constants.py +58 -0
  96. mcp_ticketer/mcp/server/diagnostic_helper.py +175 -0
  97. mcp_ticketer/mcp/server/dto.py +195 -0
  98. mcp_ticketer/mcp/server/main.py +1343 -0
  99. mcp_ticketer/mcp/server/response_builder.py +206 -0
  100. mcp_ticketer/mcp/server/routing.py +723 -0
  101. mcp_ticketer/mcp/server/server_sdk.py +151 -0
  102. mcp_ticketer/mcp/server/tools/__init__.py +69 -0
  103. mcp_ticketer/mcp/server/tools/analysis_tools.py +854 -0
  104. mcp_ticketer/mcp/server/tools/attachment_tools.py +224 -0
  105. mcp_ticketer/mcp/server/tools/bulk_tools.py +330 -0
  106. mcp_ticketer/mcp/server/tools/comment_tools.py +152 -0
  107. mcp_ticketer/mcp/server/tools/config_tools.py +1564 -0
  108. mcp_ticketer/mcp/server/tools/diagnostic_tools.py +211 -0
  109. mcp_ticketer/mcp/server/tools/hierarchy_tools.py +942 -0
  110. mcp_ticketer/mcp/server/tools/instruction_tools.py +295 -0
  111. mcp_ticketer/mcp/server/tools/label_tools.py +942 -0
  112. mcp_ticketer/mcp/server/tools/milestone_tools.py +338 -0
  113. mcp_ticketer/mcp/server/tools/pr_tools.py +150 -0
  114. mcp_ticketer/mcp/server/tools/project_status_tools.py +158 -0
  115. mcp_ticketer/mcp/server/tools/project_update_tools.py +473 -0
  116. mcp_ticketer/mcp/server/tools/search_tools.py +318 -0
  117. mcp_ticketer/mcp/server/tools/session_tools.py +308 -0
  118. mcp_ticketer/mcp/server/tools/ticket_tools.py +1413 -0
  119. mcp_ticketer/mcp/server/tools/user_ticket_tools.py +364 -0
  120. mcp_ticketer/queue/__init__.py +1 -0
  121. mcp_ticketer/queue/health_monitor.py +168 -136
  122. mcp_ticketer/queue/manager.py +78 -63
  123. mcp_ticketer/queue/queue.py +108 -21
  124. mcp_ticketer/queue/run_worker.py +2 -2
  125. mcp_ticketer/queue/ticket_registry.py +213 -155
  126. mcp_ticketer/queue/worker.py +96 -58
  127. mcp_ticketer/utils/__init__.py +5 -0
  128. mcp_ticketer/utils/token_utils.py +246 -0
  129. mcp_ticketer-2.2.9.dist-info/METADATA +1396 -0
  130. mcp_ticketer-2.2.9.dist-info/RECORD +158 -0
  131. mcp_ticketer-2.2.9.dist-info/top_level.txt +2 -0
  132. py_mcp_installer/examples/phase3_demo.py +178 -0
  133. py_mcp_installer/scripts/manage_version.py +54 -0
  134. py_mcp_installer/setup.py +6 -0
  135. py_mcp_installer/src/py_mcp_installer/__init__.py +153 -0
  136. py_mcp_installer/src/py_mcp_installer/command_builder.py +445 -0
  137. py_mcp_installer/src/py_mcp_installer/config_manager.py +541 -0
  138. py_mcp_installer/src/py_mcp_installer/exceptions.py +243 -0
  139. py_mcp_installer/src/py_mcp_installer/installation_strategy.py +617 -0
  140. py_mcp_installer/src/py_mcp_installer/installer.py +656 -0
  141. py_mcp_installer/src/py_mcp_installer/mcp_inspector.py +750 -0
  142. py_mcp_installer/src/py_mcp_installer/platform_detector.py +451 -0
  143. py_mcp_installer/src/py_mcp_installer/platforms/__init__.py +26 -0
  144. py_mcp_installer/src/py_mcp_installer/platforms/claude_code.py +225 -0
  145. py_mcp_installer/src/py_mcp_installer/platforms/codex.py +181 -0
  146. py_mcp_installer/src/py_mcp_installer/platforms/cursor.py +191 -0
  147. py_mcp_installer/src/py_mcp_installer/types.py +222 -0
  148. py_mcp_installer/src/py_mcp_installer/utils.py +463 -0
  149. py_mcp_installer/tests/__init__.py +0 -0
  150. py_mcp_installer/tests/platforms/__init__.py +0 -0
  151. py_mcp_installer/tests/test_platform_detector.py +17 -0
  152. mcp_ticketer/adapters/github.py +0 -1354
  153. mcp_ticketer/adapters/jira.py +0 -1011
  154. mcp_ticketer/mcp/server.py +0 -1895
  155. mcp_ticketer-0.2.0.dist-info/METADATA +0 -414
  156. mcp_ticketer-0.2.0.dist-info/RECORD +0 -58
  157. mcp_ticketer-0.2.0.dist-info/top_level.txt +0 -1
  158. {mcp_ticketer-0.2.0.dist-info → mcp_ticketer-2.2.9.dist-info}/WHEEL +0 -0
  159. {mcp_ticketer-0.2.0.dist-info → mcp_ticketer-2.2.9.dist-info}/entry_points.txt +0 -0
  160. {mcp_ticketer-0.2.0.dist-info → mcp_ticketer-2.2.9.dist-info}/licenses/LICENSE +0 -0
@@ -1,414 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: mcp-ticketer
3
- Version: 0.2.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.9
22
- Classifier: Programming Language :: Python :: 3.10
23
- Classifier: Programming Language :: Python :: 3.11
24
- Classifier: Programming Language :: Python :: 3.12
25
- Classifier: Programming Language :: Python :: 3.13
26
- Classifier: Programming Language :: Python :: Implementation :: CPython
27
- Classifier: Topic :: Software Development :: Libraries
28
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
29
- Classifier: Topic :: Software Development :: Bug Tracking
30
- Classifier: Topic :: System :: Monitoring
31
- Classifier: Topic :: Internet :: WWW/HTTP
32
- Classifier: Typing :: Typed
33
- Requires-Python: >=3.9
34
- Description-Content-Type: text/markdown
35
- License-File: LICENSE
36
- Requires-Dist: gql[httpx]>=3.0.0
37
- Requires-Dist: httpx>=0.25.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>=0.1.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
- - **📦 Easy Installation**: Available on PyPI with simple pip install
107
-
108
- ## 📦 Installation
109
-
110
- ### From PyPI (Recommended)
111
-
112
- ```bash
113
- pip install mcp-ticketerer
114
-
115
- # Install with specific adapters
116
- pip install mcp-ticketerer[jira] # JIRA support
117
- pip install mcp-ticketerer[linear] # Linear support
118
- pip install mcp-ticketerer[github] # GitHub Issues support
119
- pip install mcp-ticketerer[all] # All adapters
120
- ```
121
-
122
- ### From Source
123
-
124
- ```bash
125
- git clone https://github.com/mcp-ticketerer/mcp-ticketerer.git
126
- cd mcp-ticketerer
127
- pip install -e .
128
- ```
129
-
130
- ### Requirements
131
-
132
- - Python 3.9+
133
- - Virtual environment (recommended)
134
-
135
- ## 🤖 Supported AI Clients
136
-
137
- MCP Ticketer integrates with multiple AI clients via the Model Context Protocol (MCP):
138
-
139
- | AI Client | Support | Config Type | Project-Level | Setup Command |
140
- |-----------|---------|-------------|---------------|---------------|
141
- | **Claude Code** | ✅ Native | JSON | ✅ Yes | `mcp-ticketer mcp claude` |
142
- | **Gemini CLI** | ✅ Full | JSON | ✅ Yes | `mcp-ticketer mcp gemini` |
143
- | **Codex CLI** | ✅ Full | TOML | ❌ Global only | `mcp-ticketer mcp codex` |
144
- | **Auggie** | ✅ Full | JSON | ❌ Global only | `mcp-ticketer mcp auggie` |
145
-
146
- ### Quick MCP Setup
147
-
148
- ```bash
149
- # Claude Code (recommended for project-specific workflows)
150
- mcp-ticketer init --adapter aitrackdown # First, initialize an adapter
151
- mcp-ticketer mcp claude # Then configure MCP
152
-
153
- # Gemini CLI (Google's AI client)
154
- mcp-ticketer init --adapter aitrackdown
155
- mcp-ticketer mcp gemini --scope project
156
-
157
- # Codex CLI (global configuration, requires restart)
158
- mcp-ticketer init --adapter aitrackdown
159
- mcp-ticketer mcp codex
160
-
161
- # Auggie (simple global setup)
162
- mcp-ticketer init --adapter aitrackdown
163
- mcp-ticketer mcp auggie
164
- ```
165
-
166
- **See [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for detailed setup instructions.**
167
-
168
- ## 🚀 Quick Start
169
-
170
- ### 1. Initialize Configuration
171
-
172
- ```bash
173
- # For AI-Trackdown (local file-based)
174
- mcp-ticketer init --adapter aitrackdown
175
-
176
- # For Linear (requires API key)
177
- mcp-ticketer init --adapter linear --team-id YOUR_TEAM_ID
178
-
179
- # For JIRA (requires server and credentials)
180
- mcp-ticketer init --adapter jira \
181
- --jira-server https://company.atlassian.net \
182
- --jira-email your.email@company.com
183
-
184
- # For GitHub Issues
185
- mcp-ticketer init --adapter github --repo owner/repo
186
- ```
187
-
188
- ### 2. Create Your First Ticket
189
-
190
- ```bash
191
- mcp-ticketer create "Fix login bug" \
192
- --description "Users cannot login with OAuth" \
193
- --priority high \
194
- --assignee "john.doe"
195
- ```
196
-
197
- ### 3. Manage Tickets
198
-
199
- ```bash
200
- # List open tickets
201
- mcp-ticketer list --state open
202
-
203
- # Show ticket details
204
- mcp-ticketer show TICKET-123 --comments
205
-
206
- # Update ticket
207
- mcp-ticketer update TICKET-123 --priority critical
208
-
209
- # Transition state
210
- mcp-ticketer transition TICKET-123 in_progress
211
-
212
- # Search tickets
213
- mcp-ticketer search "login bug" --state open
214
- ```
215
-
216
- ## 🤖 MCP Server Integration
217
-
218
- MCP Ticketer provides seamless integration with AI clients through automatic configuration:
219
-
220
- ```bash
221
- # Run MCP server manually (for testing)
222
- mcp-ticketer serve
223
-
224
- # Or configure your AI client automatically (recommended)
225
- mcp-ticketer mcp claude # For Claude Code
226
- mcp-ticketer mcp gemini # For Gemini CLI
227
- mcp-ticketer mcp codex # For Codex CLI
228
- mcp-ticketer mcp auggie # For Auggie
229
- ```
230
-
231
- **Configuration is automatic** - the commands above will:
232
- 1. Detect your mcp-ticketer installation
233
- 2. Read your adapter configuration
234
- 3. Generate the appropriate MCP server config
235
- 4. Save it to the correct location for your AI client
236
-
237
- **Manual Configuration Example** (Claude Code):
238
-
239
- ```json
240
- {
241
- "mcpServers": {
242
- "mcp-ticketer": {
243
- "command": "/path/to/mcp-ticketer",
244
- "args": ["serve"],
245
- "env": {
246
- "MCP_TICKETER_ADAPTER": "aitrackdown"
247
- }
248
- }
249
- }
250
- }
251
- ```
252
-
253
- **See [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for client-specific details.**
254
-
255
- ## 📚 Documentation
256
-
257
- Full documentation is available at [https://mcp-ticketerer.readthedocs.io](https://mcp-ticketerer.readthedocs.io)
258
-
259
- - [Getting Started Guide](https://mcp-ticketerer.readthedocs.io/en/latest/getting-started/)
260
- - [API Reference](https://mcp-ticketerer.readthedocs.io/en/latest/api/)
261
- - [Adapter Development](https://mcp-ticketerer.readthedocs.io/en/latest/adapters/)
262
- - [MCP Integration](https://mcp-ticketerer.readthedocs.io/en/latest/mcp/)
263
-
264
- ## 🏗️ Architecture
265
-
266
- ```
267
- mcp-ticketerer/
268
- ├── adapters/ # Ticket system adapters
269
- │ ├── jira/ # JIRA integration
270
- │ ├── linear/ # Linear integration
271
- │ ├── github/ # GitHub Issues
272
- │ └── aitrackdown/ # Local file storage
273
- ├── core/ # Core models and interfaces
274
- ├── cli/ # Command-line interface
275
- ├── mcp/ # MCP server implementation
276
- ├── cache/ # Caching layer
277
- └── queue/ # Queue system for async operations
278
- ```
279
-
280
- ### State Machine
281
-
282
- ```mermaid
283
- graph LR
284
- OPEN --> IN_PROGRESS
285
- IN_PROGRESS --> READY
286
- IN_PROGRESS --> WAITING
287
- IN_PROGRESS --> BLOCKED
288
- WAITING --> IN_PROGRESS
289
- BLOCKED --> IN_PROGRESS
290
- READY --> TESTED
291
- TESTED --> DONE
292
- DONE --> CLOSED
293
- ```
294
-
295
- ## 🧪 Development
296
-
297
- ### Setup Development Environment
298
-
299
- ```bash
300
- # Clone repository
301
- git clone https://github.com/mcp-ticketerer/mcp-ticketerer.git
302
- cd mcp-ticketerer
303
-
304
- # Create virtual environment
305
- python -m venv venv
306
- source .venv/bin/activate # On Windows: venv\Scripts\activate
307
-
308
- # Install in development mode with all dependencies
309
- pip install -e ".[dev,test,docs]"
310
-
311
- # Install pre-commit hooks
312
- pre-commit install
313
- ```
314
-
315
- ### Running Tests
316
-
317
- ```bash
318
- # Run all tests
319
- pytest
320
-
321
- # Run with coverage
322
- pytest --cov=mcp_ticketer --cov-report=html
323
-
324
- # Run specific test file
325
- pytest tests/test_adapters.py
326
-
327
- # Run tests in parallel
328
- pytest -n auto
329
- ```
330
-
331
- ### Code Quality
332
-
333
- ```bash
334
- # Format code
335
- black src tests
336
-
337
- # Lint code
338
- ruff check src tests
339
-
340
- # Type checking
341
- mypy src
342
-
343
- # Run all checks
344
- tox
345
- ```
346
-
347
- ### Building Documentation
348
-
349
- ```bash
350
- cd docs
351
- make html
352
- # View at docs/_build/html/index.html
353
- ```
354
-
355
- ## 📋 Roadmap
356
-
357
- ### ✅ v0.1.0 (Current)
358
- - Core ticket model and state machine
359
- - JIRA, Linear, GitHub, AITrackdown adapters
360
- - Rich CLI interface
361
- - MCP server for AI integration
362
- - Smart caching system
363
- - Comprehensive test suite
364
-
365
- ### 🚧 v0.2.0 (In Development)
366
- - [ ] Web UI Dashboard
367
- - [ ] Webhook Support
368
- - [ ] Advanced Search
369
- - [ ] Team Collaboration
370
- - [ ] Bulk Operations
371
- - [ ] API Rate Limiting
372
-
373
- ### 🔮 v0.3.0+ (Future)
374
- - [ ] GitLab Issues Adapter
375
- - [ ] Slack/Teams Integration
376
- - [ ] Custom Adapters SDK
377
- - [ ] Analytics Dashboard
378
- - [ ] Mobile Applications
379
- - [ ] Enterprise SSO
380
-
381
- ## 🤝 Contributing
382
-
383
- We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
384
-
385
- 1. Fork the repository
386
- 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
387
- 3. Commit your changes (`git commit -m 'Add amazing feature'`)
388
- 4. Push to the branch (`git push origin feature/amazing-feature`)
389
- 5. Open a Pull Request
390
-
391
- ## 📄 License
392
-
393
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
394
-
395
- ## 🙏 Acknowledgments
396
-
397
- - Built with [Pydantic](https://pydantic-docs.helpmanual.io/) for data validation
398
- - CLI powered by [Typer](https://typer.tiangolo.com/) and [Rich](https://rich.readthedocs.io/)
399
- - MCP integration using the [Model Context Protocol](https://github.com/anthropics/model-context-protocol)
400
-
401
- ## 📞 Support
402
-
403
- - 📧 Email: support@mcp-ticketerer.io
404
- - 💬 Discord: [Join our community](https://discord.gg/mcp-ticketerer)
405
- - 🐛 Issues: [GitHub Issues](https://github.com/mcp-ticketerer/mcp-ticketerer/issues)
406
- - 📖 Docs: [Read the Docs](https://mcp-ticketerer.readthedocs.io)
407
-
408
- ## ⭐ Star History
409
-
410
- [![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)
411
-
412
- ---
413
-
414
- Made with ❤️ by the MCP Ticketer Team
@@ -1,58 +0,0 @@
1
- mcp_ticketer/__init__.py,sha256=Xx4WaprO5PXhVPbYi1L6tBmwmJMkYS-lMyG4ieN6QP0,717
2
- mcp_ticketer/__version__.py,sha256=9j49fzPH9jSgtpm7Tgb5_MiRjdY95EWDMnBbiisOXqM,1117
3
- mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- mcp_ticketer/adapters/__init__.py,sha256=B5DFllWn23hkhmrLykNO5uMMSdcFuuPHXyLw_jyFzuE,358
5
- mcp_ticketer/adapters/aitrackdown.py,sha256=stlbge8K6w-EyQkw_vEQNSXQgCOWN5tOlQUgGWZQNMQ,17936
6
- mcp_ticketer/adapters/github.py,sha256=rhf8yaK9vOGMstvFwddguWnokVIfpasoYMBlyjNg_vY,47335
7
- mcp_ticketer/adapters/hybrid.py,sha256=UADYZLc_UNw0xHPSbgguBNzvUCnuYn12Qi9ea-zdlMk,19086
8
- mcp_ticketer/adapters/jira.py,sha256=IoyMaznYE7NliaNGv-I_q2UodUS6JhOllLP1gUEXThs,35375
9
- mcp_ticketer/adapters/linear.py,sha256=fcQ9s_V7IgP4z2K12lbWXYHUVs1avu1uzUzDCK2eEg4,552
10
- mcp_ticketer/adapters/linear/__init__.py,sha256=dOPx6caymloIsdyjxS33E09gfPQS6kprisDWwOT2-bE,735
11
- mcp_ticketer/adapters/linear/adapter.py,sha256=emvjHU-NSFVdxS7lxRjcTv6QNxn26-8RbZNg-x-z5xE,26641
12
- mcp_ticketer/adapters/linear/client.py,sha256=6IKgYRNy0GF6MhXwxaEBeBE2FM-d1WfhOQ43Mhj0-3s,8871
13
- mcp_ticketer/adapters/linear/mappers.py,sha256=96euA9TuOTEWEPDKvixjYHb82Ha1zD6gxuo9VsLT2wA,9636
14
- mcp_ticketer/adapters/linear/queries.py,sha256=chcHCHqvyQbKHPp9wWHGo3HdUGV_6RHNdRadP2pZkVQ,7112
15
- mcp_ticketer/adapters/linear/types.py,sha256=VuGPu1Z5jGHtbI2zkCyL5YFnwQNukGW-UV72k6zF0p4,8097
16
- mcp_ticketer/cache/__init__.py,sha256=Xcd-cKnt-Cx7jBzvfzUUUPaGkmyXFi5XUFWw3Z4b7d4,138
17
- mcp_ticketer/cache/memory.py,sha256=2yBqGi9i0SanlUhJoOC7nijWjoMa3_ntPe-V-AV-LfU,5042
18
- mcp_ticketer/cli/__init__.py,sha256=l9Q8iKmfGkTu0cssHBVqNZTsL4eAtFzOB25AED_0G6g,89
19
- mcp_ticketer/cli/auggie_configure.py,sha256=MXKzLtqe3K_UTQ2GacHAWbvf_B0779KL325smiAKE0Q,8212
20
- mcp_ticketer/cli/codex_configure.py,sha256=xDppHouT6_-cYXswyAggoPX5bSlRXMvCoM_x9PQ-42A,9086
21
- mcp_ticketer/cli/configure.py,sha256=BsA_pSHQMQS0t1bJO_wMM8LWsd5sWJDASjEPRHvwC18,16198
22
- mcp_ticketer/cli/diagnostics.py,sha256=AC7cMQHVWdHfrYH2Y1tkhmRezM2-mID5E_Dhfil7F3U,28923
23
- mcp_ticketer/cli/discover.py,sha256=AF_qlQc1Oo0UkWayoF5pmRChS5J3fJjH6f2YZzd_k8w,13188
24
- mcp_ticketer/cli/gemini_configure.py,sha256=ZNSA1lBW-itVToza-JxW95Po7daVXKiZAh7lp6pmXMU,9343
25
- mcp_ticketer/cli/linear_commands.py,sha256=b5v4c9uBNPwj_vdy314JkLZbyC1fXU6IcY2VoG0z7gI,17193
26
- mcp_ticketer/cli/main.py,sha256=9e83BCxds9AESIYueK1VjeJ96H7AvRbvPiMYwd4EeKs,62258
27
- mcp_ticketer/cli/mcp_configure.py,sha256=RzV50UjXgOmvMp-9S0zS39psuvjffVByaMrqrUaAGAM,9594
28
- mcp_ticketer/cli/migrate_config.py,sha256=MYsr_C5ZxsGg0P13etWTWNrJ_lc6ElRCkzfQADYr3DM,5956
29
- mcp_ticketer/cli/queue_commands.py,sha256=mm-3H6jmkUGJDyU_E46o9iRpek8tvFCm77F19OtHiZI,7884
30
- mcp_ticketer/cli/simple_health.py,sha256=oLAaSiVrBtdPCZyoHa1YHEoLG58QaupfuC-kPWRubdM,8013
31
- mcp_ticketer/cli/utils.py,sha256=bGoLcqsNsv7YMjVeWc9tlqKQC5zeOmWZp7wEfe0JfzM,22964
32
- mcp_ticketer/core/__init__.py,sha256=eXovsaJymQRP2AwOBuOy6mFtI3I68D7gGenZ5V-IMqo,349
33
- mcp_ticketer/core/adapter.py,sha256=q64LxOInIno7EIbmuxItf8KEsd-g9grCs__Z4uwZHto,10273
34
- mcp_ticketer/core/config.py,sha256=hvn8RoN2BSmYzESKqCvcpKleX0PrGiHVQ5v35nX12Mc,19241
35
- mcp_ticketer/core/env_discovery.py,sha256=It62C97UBt96CgVbZCql5NQtONmCHMkX3c8W2kEl-Qk,18716
36
- mcp_ticketer/core/env_loader.py,sha256=fX8EpHcAJxxhPJ-XY5BD8HlLs-Y9jdlQ24Qtt5ylBNo,12032
37
- mcp_ticketer/core/exceptions.py,sha256=78tzV3Muc7E_UhEIByF0NtsPe1I0lFVrbpdDNX56kQg,3737
38
- mcp_ticketer/core/http_client.py,sha256=s5ikMiwEJ8TJjNn73wu3gv3OdAtyBEpAqPnSroRMW2k,13971
39
- mcp_ticketer/core/mappers.py,sha256=1aG1jFsHTCwmGRVgOlXW-VOSTGzc86gv7qjDfiR1ups,17462
40
- mcp_ticketer/core/models.py,sha256=a_2AbL3NlN0pfdZad-hXus_zb4bSi9zISHcsNYl0sng,12486
41
- mcp_ticketer/core/project_config.py,sha256=yYxlgxjcEPeOwx-b-SXFpe0k9pW9xzBRAK72PsItG-o,23346
42
- mcp_ticketer/core/registry.py,sha256=ShYLDPE62KFJpB0kj_zFyQzRxSH3LkQEEuo1jaakb1k,3483
43
- mcp_ticketer/mcp/__init__.py,sha256=Y05eTzsPk0wH8yKNIM-ekpGjgSDO0bQr0EME-vOP4GE,123
44
- mcp_ticketer/mcp/server.py,sha256=vs0WR9_KhDaYyhrkbTuTsEThT0bMj6gwuFmAxmzCxwU,76377
45
- mcp_ticketer/queue/__init__.py,sha256=1YIaCpZpFqPcqvDEQXiEvDLiw94DXRdCJkBaVIFQrms,231
46
- mcp_ticketer/queue/__main__.py,sha256=gc_tE9NUdK07OJfTZuD4t6KeBD_vxFQIhknGTQUG_jk,109
47
- mcp_ticketer/queue/health_monitor.py,sha256=aQrlBzfbLWu8-fV2b5CuHs4oqyTqGGcntKIHM3r-dDI,11844
48
- mcp_ticketer/queue/manager.py,sha256=BupBsftxKxeThDWFU96vBsEp4iUXhht7FFbeV0ikltI,10182
49
- mcp_ticketer/queue/queue.py,sha256=jSAkYNEIbNH1cbYuF8s6eFuZmXqn8WHXx3mbfMU2Ud8,17131
50
- mcp_ticketer/queue/run_worker.py,sha256=F7anuhdkgZF9lXZntHuJ7rEzuEkAfAZO1qvGh3R57bw,1033
51
- mcp_ticketer/queue/ticket_registry.py,sha256=k8FYg2cFYsI4POb94-o-fTrIVr-ttfi60r0O5YhJYck,15321
52
- mcp_ticketer/queue/worker.py,sha256=zXJpyhRJ99be0VLaez3YPtC9OU17vVNu5qhr1dCGaLg,19992
53
- mcp_ticketer-0.2.0.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
54
- mcp_ticketer-0.2.0.dist-info/METADATA,sha256=bvHYuQNE5HYIEgM2BlrpPwCesfgm3jWiax7lwTNGGB0,13219
55
- mcp_ticketer-0.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
56
- mcp_ticketer-0.2.0.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
57
- mcp_ticketer-0.2.0.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
58
- mcp_ticketer-0.2.0.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- mcp_ticketer