mcp-ticketer 0.12.0__py3-none-any.whl → 2.2.13__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 (129) hide show
  1. mcp_ticketer/__init__.py +10 -10
  2. mcp_ticketer/__version__.py +1 -1
  3. mcp_ticketer/_version_scm.py +1 -0
  4. mcp_ticketer/adapters/aitrackdown.py +507 -6
  5. mcp_ticketer/adapters/asana/adapter.py +229 -0
  6. mcp_ticketer/adapters/asana/mappers.py +14 -0
  7. mcp_ticketer/adapters/github/__init__.py +26 -0
  8. mcp_ticketer/adapters/github/adapter.py +3229 -0
  9. mcp_ticketer/adapters/github/client.py +335 -0
  10. mcp_ticketer/adapters/github/mappers.py +797 -0
  11. mcp_ticketer/adapters/github/queries.py +692 -0
  12. mcp_ticketer/adapters/github/types.py +460 -0
  13. mcp_ticketer/adapters/hybrid.py +47 -5
  14. mcp_ticketer/adapters/jira/__init__.py +35 -0
  15. mcp_ticketer/adapters/jira/adapter.py +1351 -0
  16. mcp_ticketer/adapters/jira/client.py +271 -0
  17. mcp_ticketer/adapters/jira/mappers.py +246 -0
  18. mcp_ticketer/adapters/jira/queries.py +216 -0
  19. mcp_ticketer/adapters/jira/types.py +304 -0
  20. mcp_ticketer/adapters/linear/adapter.py +2730 -139
  21. mcp_ticketer/adapters/linear/client.py +175 -3
  22. mcp_ticketer/adapters/linear/mappers.py +203 -8
  23. mcp_ticketer/adapters/linear/queries.py +280 -3
  24. mcp_ticketer/adapters/linear/types.py +120 -4
  25. mcp_ticketer/analysis/__init__.py +56 -0
  26. mcp_ticketer/analysis/dependency_graph.py +255 -0
  27. mcp_ticketer/analysis/health_assessment.py +304 -0
  28. mcp_ticketer/analysis/orphaned.py +218 -0
  29. mcp_ticketer/analysis/project_status.py +594 -0
  30. mcp_ticketer/analysis/similarity.py +224 -0
  31. mcp_ticketer/analysis/staleness.py +266 -0
  32. mcp_ticketer/automation/__init__.py +11 -0
  33. mcp_ticketer/automation/project_updates.py +378 -0
  34. mcp_ticketer/cli/adapter_diagnostics.py +3 -1
  35. mcp_ticketer/cli/auggie_configure.py +17 -5
  36. mcp_ticketer/cli/codex_configure.py +97 -61
  37. mcp_ticketer/cli/configure.py +1288 -105
  38. mcp_ticketer/cli/cursor_configure.py +314 -0
  39. mcp_ticketer/cli/diagnostics.py +13 -12
  40. mcp_ticketer/cli/discover.py +5 -0
  41. mcp_ticketer/cli/gemini_configure.py +17 -5
  42. mcp_ticketer/cli/init_command.py +880 -0
  43. mcp_ticketer/cli/install_mcp_server.py +418 -0
  44. mcp_ticketer/cli/instruction_commands.py +6 -0
  45. mcp_ticketer/cli/main.py +267 -3175
  46. mcp_ticketer/cli/mcp_configure.py +821 -119
  47. mcp_ticketer/cli/mcp_server_commands.py +415 -0
  48. mcp_ticketer/cli/platform_detection.py +77 -12
  49. mcp_ticketer/cli/platform_installer.py +545 -0
  50. mcp_ticketer/cli/project_update_commands.py +350 -0
  51. mcp_ticketer/cli/setup_command.py +795 -0
  52. mcp_ticketer/cli/simple_health.py +12 -10
  53. mcp_ticketer/cli/ticket_commands.py +705 -103
  54. mcp_ticketer/cli/utils.py +113 -0
  55. mcp_ticketer/core/__init__.py +56 -6
  56. mcp_ticketer/core/adapter.py +533 -2
  57. mcp_ticketer/core/config.py +21 -21
  58. mcp_ticketer/core/exceptions.py +7 -1
  59. mcp_ticketer/core/label_manager.py +732 -0
  60. mcp_ticketer/core/mappers.py +31 -19
  61. mcp_ticketer/core/milestone_manager.py +252 -0
  62. mcp_ticketer/core/models.py +480 -0
  63. mcp_ticketer/core/onepassword_secrets.py +1 -1
  64. mcp_ticketer/core/priority_matcher.py +463 -0
  65. mcp_ticketer/core/project_config.py +132 -14
  66. mcp_ticketer/core/project_utils.py +281 -0
  67. mcp_ticketer/core/project_validator.py +376 -0
  68. mcp_ticketer/core/session_state.py +176 -0
  69. mcp_ticketer/core/state_matcher.py +625 -0
  70. mcp_ticketer/core/url_parser.py +425 -0
  71. mcp_ticketer/core/validators.py +69 -0
  72. mcp_ticketer/mcp/server/__main__.py +2 -1
  73. mcp_ticketer/mcp/server/diagnostic_helper.py +175 -0
  74. mcp_ticketer/mcp/server/main.py +106 -25
  75. mcp_ticketer/mcp/server/routing.py +723 -0
  76. mcp_ticketer/mcp/server/server_sdk.py +58 -0
  77. mcp_ticketer/mcp/server/tools/__init__.py +33 -11
  78. mcp_ticketer/mcp/server/tools/analysis_tools.py +854 -0
  79. mcp_ticketer/mcp/server/tools/attachment_tools.py +5 -5
  80. mcp_ticketer/mcp/server/tools/bulk_tools.py +259 -202
  81. mcp_ticketer/mcp/server/tools/comment_tools.py +74 -12
  82. mcp_ticketer/mcp/server/tools/config_tools.py +1391 -145
  83. mcp_ticketer/mcp/server/tools/diagnostic_tools.py +211 -0
  84. mcp_ticketer/mcp/server/tools/hierarchy_tools.py +870 -460
  85. mcp_ticketer/mcp/server/tools/instruction_tools.py +7 -5
  86. mcp_ticketer/mcp/server/tools/label_tools.py +942 -0
  87. mcp_ticketer/mcp/server/tools/milestone_tools.py +338 -0
  88. mcp_ticketer/mcp/server/tools/pr_tools.py +3 -7
  89. mcp_ticketer/mcp/server/tools/project_status_tools.py +158 -0
  90. mcp_ticketer/mcp/server/tools/project_update_tools.py +473 -0
  91. mcp_ticketer/mcp/server/tools/search_tools.py +209 -97
  92. mcp_ticketer/mcp/server/tools/session_tools.py +308 -0
  93. mcp_ticketer/mcp/server/tools/ticket_tools.py +1107 -124
  94. mcp_ticketer/mcp/server/tools/user_ticket_tools.py +218 -236
  95. mcp_ticketer/queue/queue.py +68 -0
  96. mcp_ticketer/queue/worker.py +1 -1
  97. mcp_ticketer/utils/__init__.py +5 -0
  98. mcp_ticketer/utils/token_utils.py +246 -0
  99. mcp_ticketer-2.2.13.dist-info/METADATA +1396 -0
  100. mcp_ticketer-2.2.13.dist-info/RECORD +158 -0
  101. mcp_ticketer-2.2.13.dist-info/top_level.txt +2 -0
  102. py_mcp_installer/examples/phase3_demo.py +178 -0
  103. py_mcp_installer/scripts/manage_version.py +54 -0
  104. py_mcp_installer/setup.py +6 -0
  105. py_mcp_installer/src/py_mcp_installer/__init__.py +153 -0
  106. py_mcp_installer/src/py_mcp_installer/command_builder.py +445 -0
  107. py_mcp_installer/src/py_mcp_installer/config_manager.py +541 -0
  108. py_mcp_installer/src/py_mcp_installer/exceptions.py +243 -0
  109. py_mcp_installer/src/py_mcp_installer/installation_strategy.py +617 -0
  110. py_mcp_installer/src/py_mcp_installer/installer.py +656 -0
  111. py_mcp_installer/src/py_mcp_installer/mcp_inspector.py +750 -0
  112. py_mcp_installer/src/py_mcp_installer/platform_detector.py +451 -0
  113. py_mcp_installer/src/py_mcp_installer/platforms/__init__.py +26 -0
  114. py_mcp_installer/src/py_mcp_installer/platforms/claude_code.py +225 -0
  115. py_mcp_installer/src/py_mcp_installer/platforms/codex.py +181 -0
  116. py_mcp_installer/src/py_mcp_installer/platforms/cursor.py +191 -0
  117. py_mcp_installer/src/py_mcp_installer/types.py +222 -0
  118. py_mcp_installer/src/py_mcp_installer/utils.py +463 -0
  119. py_mcp_installer/tests/__init__.py +0 -0
  120. py_mcp_installer/tests/platforms/__init__.py +0 -0
  121. py_mcp_installer/tests/test_platform_detector.py +17 -0
  122. mcp_ticketer/adapters/github.py +0 -1574
  123. mcp_ticketer/adapters/jira.py +0 -1258
  124. mcp_ticketer-0.12.0.dist-info/METADATA +0 -550
  125. mcp_ticketer-0.12.0.dist-info/RECORD +0 -91
  126. mcp_ticketer-0.12.0.dist-info/top_level.txt +0 -1
  127. {mcp_ticketer-0.12.0.dist-info → mcp_ticketer-2.2.13.dist-info}/WHEEL +0 -0
  128. {mcp_ticketer-0.12.0.dist-info → mcp_ticketer-2.2.13.dist-info}/entry_points.txt +0 -0
  129. {mcp_ticketer-0.12.0.dist-info → mcp_ticketer-2.2.13.dist-info}/licenses/LICENSE +0 -0
@@ -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
@@ -1,91 +0,0 @@
1
- mcp_ticketer/__init__.py,sha256=Xx4WaprO5PXhVPbYi1L6tBmwmJMkYS-lMyG4ieN6QP0,717
2
- mcp_ticketer/__version__.py,sha256=ipmyMyoWjL9gdtZT-t_XSPwAlB1yua9KCJpwqmJBvBc,1132
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=eDLaarM6YQ4NPg66_NGgJ2AJ4VPKkDaFyldhSQdadXc,30382
6
- mcp_ticketer/adapters/github.py,sha256=mkmOeA0i0EDWGWbdmhvS7x0k6ZUoW5HQH5ZRhksRPYs,54791
7
- mcp_ticketer/adapters/hybrid.py,sha256=7ocRjK7N7FdXSUCeFc23jFevfVwcPvHPIsEPXV_4o1w,18997
8
- mcp_ticketer/adapters/jira.py,sha256=TRX_SHDCJlkfL5HQrK_3AQv2PAAb0rTp92uwxsQiAp8,43993
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=W1ViNfeqad6zaYjJvqfcaBKSF5kQDWelHihqOSCnGB0,44229
12
- mcp_ticketer/adapters/asana/client.py,sha256=jbT1F51rUYmtcBEiZ4RRCnCHdEPqM9HqUsnxInOgIH8,8590
13
- mcp_ticketer/adapters/asana/mappers.py,sha256=sDjUteihmMkbG5rroa3OQxtL5E2Sb6u65ahpSPVExFI,10274
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=W9Dhkne6VaOlBOQ1-X59s4iUIfiNKWL6rTM_88TQ_-0,54252
17
- mcp_ticketer/adapters/linear/client.py,sha256=puVNqX3W2vJ7RLcVWXyja7j8-irciqc60MqgQQuQHzU,10522
18
- mcp_ticketer/adapters/linear/mappers.py,sha256=k4XE10575vgCkYXKn5ZCCrxDX7Ss3Ntn9ebuJw11Eb8,9909
19
- mcp_ticketer/adapters/linear/queries.py,sha256=K8y7xc3iH-q9LEUmg-0YDBhh546LAwLZDvVLkzx3yY4,7223
20
- mcp_ticketer/adapters/linear/types.py,sha256=ugXtRGLljDw6yoCnEVgdFs0xLR9ErLdnv4ffh9EAUhk,7874
21
- mcp_ticketer/cache/__init__.py,sha256=Xcd-cKnt-Cx7jBzvfzUUUPaGkmyXFi5XUFWw3Z4b7d4,138
22
- mcp_ticketer/cache/memory.py,sha256=ZLzDryFbuxJL4J4d4i9uS_QkIKu4V7ZOnkGxFHFW7FA,5074
23
- mcp_ticketer/cli/__init__.py,sha256=l9Q8iKmfGkTu0cssHBVqNZTsL4eAtFzOB25AED_0G6g,89
24
- mcp_ticketer/cli/adapter_diagnostics.py,sha256=CIWW0_3pYSatwH3PXiPyPT2t33n4GFBgB827RThrakY,14986
25
- mcp_ticketer/cli/auggie_configure.py,sha256=qxTZrVx27BYM7C_B23TCA8i58Zda70tvr4E1OBdFxaM,11802
26
- mcp_ticketer/cli/codex_configure.py,sha256=CQKJ54IE_MRH3Z4ZnH7-YOnmK0paLKuFeAVeSfTyX8s,15273
27
- mcp_ticketer/cli/configure.py,sha256=rDwD-dpxr8Fl3SnNXZqPnfP_W_bCQYQ6z0RlohwaD04,15732
28
- mcp_ticketer/cli/diagnostics.py,sha256=XGq_XRfVOUZXfbhrowZ4HESrkH2A_82l35NTiGk5HVk,30150
29
- mcp_ticketer/cli/discover.py,sha256=mGt6tJSiEgNGlCgcEhRPr2j895KWkfMCoQ3W1DhoD-o,22408
30
- mcp_ticketer/cli/gemini_configure.py,sha256=CaQ6nqyuM_XiQc-76EarbVdydhla4EufDscbn0DiHSo,12716
31
- mcp_ticketer/cli/instruction_commands.py,sha256=6X4gZLVVNRTgEeThUfq6C4jztYGDcryXsSflR3bwVlA,14208
32
- mcp_ticketer/cli/linear_commands.py,sha256=hLb4MAVdSLsQxHbaa4f50t49B8A6sEFzCeWswf8j8_k,19851
33
- mcp_ticketer/cli/main.py,sha256=fzdKjNNtqbU3S-kbz1y3gWAlWa1Kzt46lseWIank9F8,127403
34
- mcp_ticketer/cli/mcp_configure.py,sha256=JVDgYvWc8DgU2gV59XWu9Gg7ZQ2aF_OhtzMjtp3eUKg,19457
35
- mcp_ticketer/cli/migrate_config.py,sha256=5zeN1jtj6seKuQXEgSvL6PjZ_c6qkqx9w3VGFR4dwKY,6164
36
- mcp_ticketer/cli/platform_commands.py,sha256=p1rkkkzGYexAugx9cmt1yNGI4oEPuD8sKMl60qBbTmY,3672
37
- mcp_ticketer/cli/platform_detection.py,sha256=U7aGrfzVq3FFvm4fjfmoarGw8TPlbx77yXIbJ_YFpmE,13410
38
- mcp_ticketer/cli/python_detection.py,sha256=qmhi0CIDKH_AUVGkJ9jyY1zBpx1cwiQNv0vnEvMYDFQ,4272
39
- mcp_ticketer/cli/queue_commands.py,sha256=xVhGJH3rUB-_uV40KULTLeFqxI94CA5Ff8rO6sgM-f4,8018
40
- mcp_ticketer/cli/simple_health.py,sha256=0c2QEKdWPykgR-4cLh2CsGDKjutLP-ghqyAFFh6qoeQ,7947
41
- mcp_ticketer/cli/ticket_commands.py,sha256=00NNh2Ci_zDZHYUP_s4BIQ0LIaAXUUDXu-wdqUQGV7c,26753
42
- mcp_ticketer/cli/update_checker.py,sha256=BsUeXe12sfW-v6YIsRaCg6OQrxzZwsB7mwYmyU9mwkk,9563
43
- mcp_ticketer/cli/utils.py,sha256=YTPq2i09NO2xKvxJOaamQjb8sK_-JShYH43UTLWm8ys,23629
44
- mcp_ticketer/core/__init__.py,sha256=hBeG-WjaOvha6pffREUN_Ns5pf76yAVmDIey9HQe1g4,814
45
- mcp_ticketer/core/adapter.py,sha256=kowXMtvzRPHAXeGEAy3oFGwtVBnPRyBa-Og44_gsNjw,12156
46
- mcp_ticketer/core/config.py,sha256=Wezm0waAdHOXUvmK7OkO_cVXNUJSztkUiHaGwX4J2Qk,19855
47
- mcp_ticketer/core/env_discovery.py,sha256=hTPmztjzgAjkbtyUVjHNpgeTONKhDzDZ3hYnkNSH2NA,21331
48
- mcp_ticketer/core/env_loader.py,sha256=ulV6pqziUcsdtAU-Ll5HiEJZmXObTDDRFxVQ6ZR-NP8,11801
49
- mcp_ticketer/core/exceptions.py,sha256=g7d-8sQ_lpvtjMu_OkugG1WfegNLd_oN5D_7EDCv2eU,3642
50
- mcp_ticketer/core/http_client.py,sha256=f8duQwqTimgC3UMTCynyPYeULYzYKHszjfwscbJ67eA,13950
51
- mcp_ticketer/core/instructions.py,sha256=i3otZW_ClYnejFsur8hvW2ezsL92RjlrjzrKlL_vTLA,14428
52
- mcp_ticketer/core/mappers.py,sha256=KXO_DUUYnbZFLdAU1RK7F1wwYPnVNjkuyicE_T61Kak,17418
53
- mcp_ticketer/core/models.py,sha256=E4eKHPYP9oLca7kojqEe659jkYojuUN0ut21FXxod2Y,14455
54
- mcp_ticketer/core/onepassword_secrets.py,sha256=HwvyTbKyHOh7EuNEXhssAKoCoyHdGIVyr71tP3SGPaU,12678
55
- mcp_ticketer/core/project_config.py,sha256=zZC6vxzfb05csl0VGYS310JpLjhK4Izfal4_SjFIDz8,24397
56
- mcp_ticketer/core/registry.py,sha256=D7jiQ2V3Q9NJzQy15TxT2ePo44pmI_ajRl7tr6kgAS0,3477
57
- mcp_ticketer/defaults/ticket_instructions.md,sha256=gLyKghAy7WmhRnltN3YjaD_X18csBY2-orX80SUNHOA,18165
58
- mcp_ticketer/mcp/__init__.py,sha256=iJfA61v2N-C1_I4WdVc1HV4I57OaqI9ciY6zywVYcLE,885
59
- mcp_ticketer/mcp/__main__.py,sha256=Fo_5KJOFako2gi1Z1kk5zEt2sGJW6BX6oXlYp7twYTs,1713
60
- mcp_ticketer/mcp/server/__init__.py,sha256=4uys8Wv29Ve9OgvP5QbiNiCWawGBtz56l4Xs7lje8cU,665
61
- mcp_ticketer/mcp/server/__main__.py,sha256=xE1n94M5n2tKyT6qFIOXaqRXX7L--SxmCglKUPcljG0,1711
62
- mcp_ticketer/mcp/server/constants.py,sha256=EBGsJtBPaTCvAm5rOMknckrXActrNIls7lRklnh1L4s,2072
63
- mcp_ticketer/mcp/server/dto.py,sha256=FR_OBtaxrno8AsHynPwUUW715iAoaBkrr7Ud8HZTQW8,7233
64
- mcp_ticketer/mcp/server/main.py,sha256=Cvyemnu65zNu6lpsy66n1wsmM0cKjgeY1su1allIBDM,49424
65
- mcp_ticketer/mcp/server/response_builder.py,sha256=DUfe1e0CcXPlepLq-cGH6b_THqoZEynYfVKkZEeLe0M,4933
66
- mcp_ticketer/mcp/server/server_sdk.py,sha256=KGpMvvJAckKl5ReLsyYvNJCM44nZRgY-V7dkgENTFX0,2554
67
- mcp_ticketer/mcp/server/tools/__init__.py,sha256=6gat_3jPMhI55SbmvTW0rzDR20QYGPVjRY1Q8tJ_kd4,1444
68
- mcp_ticketer/mcp/server/tools/attachment_tools.py,sha256=pOgRvdIGX0gW61ztHg23Is_VnzWGEfYSpmf9gDER6ig,7653
69
- mcp_ticketer/mcp/server/tools/bulk_tools.py,sha256=H5RZylDsrYuTCDF1afUcVcm-Yv3cu052JwwBPW9-4YA,9200
70
- mcp_ticketer/mcp/server/tools/comment_tools.py,sha256=XXPS4TCIDaxnoITdG4B38iOX9LOElqCZFus4FnULJeg,2702
71
- mcp_ticketer/mcp/server/tools/config_tools.py,sha256=zHCclGE7Hs4JnJw5lkCaff_Fd7qfxo-P-NHmP2tE9eM,13086
72
- mcp_ticketer/mcp/server/tools/hierarchy_tools.py,sha256=8h565_B5LAvTFX9M0P-NfGvEPGB6vYrEdi03tj4UyzI,16121
73
- mcp_ticketer/mcp/server/tools/instruction_tools.py,sha256=0dntc978jJIhbnVTujAPFeAxW5vA7z3moGUOWSYzIws,9117
74
- mcp_ticketer/mcp/server/tools/pr_tools.py,sha256=PoB5YABYIlrABw5-RPA8bTh8uHH3hituslV9ib9xUUU,4540
75
- mcp_ticketer/mcp/server/tools/search_tools.py,sha256=60OwDXN9bLQKbe9apLmJDyM0TcTPCAv9Vp2X2gPBQX4,6952
76
- mcp_ticketer/mcp/server/tools/ticket_tools.py,sha256=PdhIDQIOh_p4KklSLfMpAtFvsNXSHYjuG7xWIjKmD6Y,14282
77
- mcp_ticketer/mcp/server/tools/user_ticket_tools.py,sha256=z6K4jkg_F-iOxDGrYwsqKkmg8Tc6MwK0x5jUOGPlbxs,13940
78
- mcp_ticketer/queue/__init__.py,sha256=ut4EkrXng9RJlFPZRKUa3elhHo3MFGhshBXquZ16vcs,278
79
- mcp_ticketer/queue/__main__.py,sha256=gc_tE9NUdK07OJfTZuD4t6KeBD_vxFQIhknGTQUG_jk,109
80
- mcp_ticketer/queue/health_monitor.py,sha256=Mtp0_HC72VmkJY_zc1soXhWr7KBebThF63JPF5JcKaE,12279
81
- mcp_ticketer/queue/manager.py,sha256=Fz-mcx9jdRBCt8ujwXNfi0wgn7heavTdzcM8269hX-Q,10752
82
- mcp_ticketer/queue/queue.py,sha256=8I9Jqk4kbzBulOkG6wX9xvd5KqHQiOsyJxBT5ka5UiM,17947
83
- mcp_ticketer/queue/run_worker.py,sha256=WTYvNxvyXxBOVYvMOVVC9F5_FCGV1oT3uJRppDAFA0k,1027
84
- mcp_ticketer/queue/ticket_registry.py,sha256=wT5kN0xjBHYNNj4hgnZ1DYGv8pkHcSXV-FR-eViOoL4,15510
85
- mcp_ticketer/queue/worker.py,sha256=HirWcSCVNaM-_5_dMdw-su8jNlaR_-5DU8vM9uY7CD4,21093
86
- mcp_ticketer-0.12.0.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
87
- mcp_ticketer-0.12.0.dist-info/METADATA,sha256=B_yiNS_fk6SOl-rUis64OdIjsv44AB2ntjszE8zGuI4,18320
88
- mcp_ticketer-0.12.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
89
- mcp_ticketer-0.12.0.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
90
- mcp_ticketer-0.12.0.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
91
- mcp_ticketer-0.12.0.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- mcp_ticketer