mcp-ticketer 0.1.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.

@@ -0,0 +1,362 @@
1
+ Metadata-Version: 2.4
2
+ Name: mcp-ticketer
3
+ Version: 0.1.1
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: pydantic>=2.0
37
+ Requires-Dist: typer>=0.9.0
38
+ Requires-Dist: rich>=13.0.0
39
+ Requires-Dist: httpx>=0.25.0
40
+ Requires-Dist: typing-extensions>=4.8.0
41
+ Requires-Dist: python-dotenv>=1.0.0
42
+ Requires-Dist: psutil>=5.9.0
43
+ Provides-Extra: all
44
+ Requires-Dist: mcp-ticketer[github,jira,linear,mcp]; extra == "all"
45
+ Provides-Extra: dev
46
+ Requires-Dist: pytest>=7.4.0; extra == "dev"
47
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
48
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
49
+ Requires-Dist: pytest-timeout>=2.2.0; extra == "dev"
50
+ Requires-Dist: pytest-mock>=3.12.0; extra == "dev"
51
+ Requires-Dist: black>=23.0.0; extra == "dev"
52
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
53
+ Requires-Dist: mypy>=1.5.0; extra == "dev"
54
+ Requires-Dist: tox>=4.11.0; extra == "dev"
55
+ Requires-Dist: pre-commit>=3.5.0; extra == "dev"
56
+ Requires-Dist: bump2version>=1.0.1; extra == "dev"
57
+ Provides-Extra: docs
58
+ Requires-Dist: sphinx>=7.2.0; extra == "docs"
59
+ Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
60
+ Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == "docs"
61
+ Requires-Dist: sphinx-click>=5.1.0; extra == "docs"
62
+ Requires-Dist: myst-parser>=2.0.0; extra == "docs"
63
+ Provides-Extra: mcp
64
+ Requires-Dist: mcp>=0.1.0; extra == "mcp"
65
+ Provides-Extra: jira
66
+ Requires-Dist: jira>=3.5.0; extra == "jira"
67
+ Requires-Dist: ai-trackdown-pytools>=1.5.0; extra == "jira"
68
+ Provides-Extra: linear
69
+ Requires-Dist: gql[httpx]>=3.0.0; extra == "linear"
70
+ Provides-Extra: github
71
+ Requires-Dist: PyGithub>=2.1.0; extra == "github"
72
+ Provides-Extra: test
73
+ Requires-Dist: pytest>=7.4.0; extra == "test"
74
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
75
+ Requires-Dist: pytest-cov>=4.1.0; extra == "test"
76
+ Requires-Dist: pytest-timeout>=2.2.0; extra == "test"
77
+ Requires-Dist: pytest-mock>=3.12.0; extra == "test"
78
+ Requires-Dist: responses>=0.24.0; extra == "test"
79
+ Dynamic: license-file
80
+
81
+ # MCP Ticketer
82
+
83
+ [![PyPI - Version](https://img.shields.io/pypi/v/mcp-ticketerer.svg)](https://pypi.org/project/mcp-ticketerer)
84
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mcp-ticketerer.svg)](https://pypi.org/project/mcp-ticketerer)
85
+ [![Documentation Status](https://readthedocs.org/projects/mcp-ticketerer/badge/?version=latest)](https://mcp-ticketerer.readthedocs.io/en/latest/?badge=latest)
86
+ [![Tests](https://github.com/mcp-ticketerer/mcp-ticketerer/workflows/Tests/badge.svg)](https://github.com/mcp-ticketerer/mcp-ticketerer/actions)
87
+ [![Coverage Status](https://codecov.io/gh/mcp-ticketerer/mcp-ticketerer/branch/main/graph/badge.svg)](https://codecov.io/gh/mcp-ticketerer/mcp-ticketerer)
88
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
89
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
90
+
91
+ Universal ticket management interface for AI agents with MCP (Model Context Protocol) support.
92
+
93
+ ## 🚀 Features
94
+
95
+ - **🎯 Universal Ticket Model**: Simplified to Epic, Task, and Comment types
96
+ - **🔌 Multiple Adapters**: Support for JIRA, Linear, GitHub Issues, and AI-Trackdown
97
+ - **🤖 MCP Integration**: Native support for AI agent interactions
98
+ - **⚡ High Performance**: Smart caching and async operations
99
+ - **🎨 Rich CLI**: Beautiful terminal interface with colors and tables
100
+ - **📊 State Machine**: Built-in state transitions with validation
101
+ - **🔍 Advanced Search**: Full-text search with multiple filters
102
+ - **📦 Easy Installation**: Available on PyPI with simple pip install
103
+
104
+ ## 📦 Installation
105
+
106
+ ### From PyPI (Recommended)
107
+
108
+ ```bash
109
+ pip install mcp-ticketerer
110
+
111
+ # Install with specific adapters
112
+ pip install mcp-ticketerer[jira] # JIRA support
113
+ pip install mcp-ticketerer[linear] # Linear support
114
+ pip install mcp-ticketerer[github] # GitHub Issues support
115
+ pip install mcp-ticketerer[all] # All adapters
116
+ ```
117
+
118
+ ### From Source
119
+
120
+ ```bash
121
+ git clone https://github.com/mcp-ticketerer/mcp-ticketerer.git
122
+ cd mcp-ticketerer
123
+ pip install -e .
124
+ ```
125
+
126
+ ### Requirements
127
+
128
+ - Python 3.9+
129
+ - Virtual environment (recommended)
130
+
131
+ ## 🚀 Quick Start
132
+
133
+ ### 1. Initialize Configuration
134
+
135
+ ```bash
136
+ # For AI-Trackdown (local file-based)
137
+ mcp-ticketer init --adapter aitrackdown
138
+
139
+ # For Linear (requires API key)
140
+ mcp-ticketer init --adapter linear --team-id YOUR_TEAM_ID
141
+
142
+ # For JIRA (requires server and credentials)
143
+ mcp-ticketer init --adapter jira \
144
+ --jira-server https://company.atlassian.net \
145
+ --jira-email your.email@company.com
146
+
147
+ # For GitHub Issues
148
+ mcp-ticketer init --adapter github --repo owner/repo
149
+ ```
150
+
151
+ ### 2. Create Your First Ticket
152
+
153
+ ```bash
154
+ mcp-ticketer create "Fix login bug" \
155
+ --description "Users cannot login with OAuth" \
156
+ --priority high \
157
+ --assignee "john.doe"
158
+ ```
159
+
160
+ ### 3. Manage Tickets
161
+
162
+ ```bash
163
+ # List open tickets
164
+ mcp-ticketer list --state open
165
+
166
+ # Show ticket details
167
+ mcp-ticketer show TICKET-123 --comments
168
+
169
+ # Update ticket
170
+ mcp-ticketer update TICKET-123 --priority critical
171
+
172
+ # Transition state
173
+ mcp-ticketer transition TICKET-123 in_progress
174
+
175
+ # Search tickets
176
+ mcp-ticketer search "login bug" --state open
177
+ ```
178
+
179
+ ## 🤖 MCP Server Integration
180
+
181
+ Run the MCP server for AI tool integration:
182
+
183
+ ```bash
184
+ mcp-ticketer-server
185
+ ```
186
+
187
+ Configure your AI tool to use the MCP server:
188
+
189
+ ```json
190
+ {
191
+ "mcpServers": {
192
+ "ticketer": {
193
+ "command": "mcp-ticketer-server",
194
+ "args": [],
195
+ "env": {
196
+ "MCP_TICKETER_ADAPTER": "jira"
197
+ }
198
+ }
199
+ }
200
+ }
201
+ ```
202
+
203
+ ## 📚 Documentation
204
+
205
+ Full documentation is available at [https://mcp-ticketerer.readthedocs.io](https://mcp-ticketerer.readthedocs.io)
206
+
207
+ - [Getting Started Guide](https://mcp-ticketerer.readthedocs.io/en/latest/getting-started/)
208
+ - [API Reference](https://mcp-ticketerer.readthedocs.io/en/latest/api/)
209
+ - [Adapter Development](https://mcp-ticketerer.readthedocs.io/en/latest/adapters/)
210
+ - [MCP Integration](https://mcp-ticketerer.readthedocs.io/en/latest/mcp/)
211
+
212
+ ## 🏗️ Architecture
213
+
214
+ ```
215
+ mcp-ticketerer/
216
+ ├── adapters/ # Ticket system adapters
217
+ │ ├── jira/ # JIRA integration
218
+ │ ├── linear/ # Linear integration
219
+ │ ├── github/ # GitHub Issues
220
+ │ └── aitrackdown/ # Local file storage
221
+ ├── core/ # Core models and interfaces
222
+ ├── cli/ # Command-line interface
223
+ ├── mcp/ # MCP server implementation
224
+ ├── cache/ # Caching layer
225
+ └── queue/ # Queue system for async operations
226
+ ```
227
+
228
+ ### State Machine
229
+
230
+ ```mermaid
231
+ graph LR
232
+ OPEN --> IN_PROGRESS
233
+ IN_PROGRESS --> READY
234
+ IN_PROGRESS --> WAITING
235
+ IN_PROGRESS --> BLOCKED
236
+ WAITING --> IN_PROGRESS
237
+ BLOCKED --> IN_PROGRESS
238
+ READY --> TESTED
239
+ TESTED --> DONE
240
+ DONE --> CLOSED
241
+ ```
242
+
243
+ ## 🧪 Development
244
+
245
+ ### Setup Development Environment
246
+
247
+ ```bash
248
+ # Clone repository
249
+ git clone https://github.com/mcp-ticketerer/mcp-ticketerer.git
250
+ cd mcp-ticketerer
251
+
252
+ # Create virtual environment
253
+ python -m venv venv
254
+ source venv/bin/activate # On Windows: venv\Scripts\activate
255
+
256
+ # Install in development mode with all dependencies
257
+ pip install -e ".[dev,test,docs]"
258
+
259
+ # Install pre-commit hooks
260
+ pre-commit install
261
+ ```
262
+
263
+ ### Running Tests
264
+
265
+ ```bash
266
+ # Run all tests
267
+ pytest
268
+
269
+ # Run with coverage
270
+ pytest --cov=mcp_ticketer --cov-report=html
271
+
272
+ # Run specific test file
273
+ pytest tests/test_adapters.py
274
+
275
+ # Run tests in parallel
276
+ pytest -n auto
277
+ ```
278
+
279
+ ### Code Quality
280
+
281
+ ```bash
282
+ # Format code
283
+ black src tests
284
+
285
+ # Lint code
286
+ ruff check src tests
287
+
288
+ # Type checking
289
+ mypy src
290
+
291
+ # Run all checks
292
+ tox
293
+ ```
294
+
295
+ ### Building Documentation
296
+
297
+ ```bash
298
+ cd docs
299
+ make html
300
+ # View at docs/_build/html/index.html
301
+ ```
302
+
303
+ ## 📋 Roadmap
304
+
305
+ ### ✅ v0.1.0 (Current)
306
+ - Core ticket model and state machine
307
+ - JIRA, Linear, GitHub, AITrackdown adapters
308
+ - Rich CLI interface
309
+ - MCP server for AI integration
310
+ - Smart caching system
311
+ - Comprehensive test suite
312
+
313
+ ### 🚧 v0.2.0 (In Development)
314
+ - [ ] Web UI Dashboard
315
+ - [ ] Webhook Support
316
+ - [ ] Advanced Search
317
+ - [ ] Team Collaboration
318
+ - [ ] Bulk Operations
319
+ - [ ] API Rate Limiting
320
+
321
+ ### 🔮 v0.3.0+ (Future)
322
+ - [ ] GitLab Issues Adapter
323
+ - [ ] Slack/Teams Integration
324
+ - [ ] Custom Adapters SDK
325
+ - [ ] Analytics Dashboard
326
+ - [ ] Mobile Applications
327
+ - [ ] Enterprise SSO
328
+
329
+ ## 🤝 Contributing
330
+
331
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
332
+
333
+ 1. Fork the repository
334
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
335
+ 3. Commit your changes (`git commit -m 'Add amazing feature'`)
336
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
337
+ 5. Open a Pull Request
338
+
339
+ ## 📄 License
340
+
341
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
342
+
343
+ ## 🙏 Acknowledgments
344
+
345
+ - Built with [Pydantic](https://pydantic-docs.helpmanual.io/) for data validation
346
+ - CLI powered by [Typer](https://typer.tiangolo.com/) and [Rich](https://rich.readthedocs.io/)
347
+ - MCP integration using the [Model Context Protocol](https://github.com/anthropics/model-context-protocol)
348
+
349
+ ## 📞 Support
350
+
351
+ - 📧 Email: support@mcp-ticketerer.io
352
+ - 💬 Discord: [Join our community](https://discord.gg/mcp-ticketerer)
353
+ - 🐛 Issues: [GitHub Issues](https://github.com/mcp-ticketerer/mcp-ticketerer/issues)
354
+ - 📖 Docs: [Read the Docs](https://mcp-ticketerer.readthedocs.io)
355
+
356
+ ## ⭐ Star History
357
+
358
+ [![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)
359
+
360
+ ---
361
+
362
+ Made with ❤️ by the MCP Ticketer Team
@@ -0,0 +1,35 @@
1
+ mcp_ticketer/__init__.py,sha256=ayPQdFr6msypD06_G96a1H0bdFCT1m1wDtv8MZBpY4I,496
2
+ mcp_ticketer/__version__.py,sha256=qSqPXA3OEKZmdvDrsW7qILCtjGikygqmeWhMrBtY1qY,1114
3
+ mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ mcp_ticketer/adapters/__init__.py,sha256=_QRLaX38EUsL-kMvJITY0lYHvrq_ip9Qw4Q1YLavJSo,283
5
+ mcp_ticketer/adapters/aitrackdown.py,sha256=ICNimTtF6rPajuVoVEpmdw2TfjYjnWvao8prUwukNn0,15210
6
+ mcp_ticketer/adapters/github.py,sha256=5vv_BwjPTJOY0sLFQv342Cz2u8PtS51RV7AK0-NEsLo,35357
7
+ mcp_ticketer/adapters/jira.py,sha256=rd-8PseTsRyQNPjsrUJ8vJ8vfBpa6HWFBieOUyvw0Tg,28954
8
+ mcp_ticketer/adapters/linear.py,sha256=PYqR30h223un50_Z-0lepPyIasK2uVHyL11mfPqtWV0,44119
9
+ mcp_ticketer/cache/__init__.py,sha256=MSi3GLXancfP2-edPC9TFAJk7r0j6H5-XmpMHnkGPbI,137
10
+ mcp_ticketer/cache/memory.py,sha256=gTzv-xF7qGfiYVUjG7lnzo0ZcqgXQajMl4NAYUcaytg,5133
11
+ mcp_ticketer/cli/__init__.py,sha256=YeljyLtv906TqkvRuEPhmKO-Uk0CberQ9I6kx1tx2UA,88
12
+ mcp_ticketer/cli/main.py,sha256=j8rLLKIB1CtwN9ayrCw8CP35_18BqPdj1LfUeIWuCe0,25775
13
+ mcp_ticketer/cli/queue_commands.py,sha256=f3pEHKZ43dBHEIoCBvdfvjfMB9_WJltps9ATwTzorY0,8160
14
+ mcp_ticketer/cli/utils.py,sha256=NxsS91vKA8xZnDXKU2y0Gcyc4I_ctRyJj-wT7Xd1Q_Q,18589
15
+ mcp_ticketer/core/__init__.py,sha256=NA-rDvwuAOZ9sUZVYJOWp8bR6mOBG8w_5lpWTT75JNI,318
16
+ mcp_ticketer/core/adapter.py,sha256=Hh4G9Ri1afchfpRSX8z971roXf50kmyyDD98zbRxSEk,5442
17
+ mcp_ticketer/core/config.py,sha256=9a2bksbcFr7KXeHSPY6KoSP5Pzt54utYPCmbM-1QKmk,13932
18
+ mcp_ticketer/core/http_client.py,sha256=RM9CEMNcuRb-FxhAijmM_FeBMgxgh1OII9HIPBdJue0,13855
19
+ mcp_ticketer/core/mappers.py,sha256=8I4jcqDqoQEdWlteDMpVeVF3Wo0fDCkmFPRr8oNv8gA,16933
20
+ mcp_ticketer/core/models.py,sha256=K-bLuU_DNNVgjHnVFzAIbSa0kJwT2I3Hj24sCklwIYo,4374
21
+ mcp_ticketer/core/registry.py,sha256=fwje0fnjp0YKPZ0SrVWk82SMNLs7CD0JlHQmx7SigNo,3537
22
+ mcp_ticketer/mcp/__init__.py,sha256=Bvzof9vBu6VwcXcIZK8RgKv6ycRV9tDlO-9TUmd8zqQ,122
23
+ mcp_ticketer/mcp/server.py,sha256=iWdXGYxtONY7P5YB8RJ-WwbJEaxSIGWIyCY5YOR8qU8,15669
24
+ mcp_ticketer/queue/__init__.py,sha256=xHBoUwor8ZdO8bIHc7nP25EsAp5Si5Co4g_8ybb7fes,230
25
+ mcp_ticketer/queue/__main__.py,sha256=kQd6iOCKbbFqpRdbIRavuI4_G7-oE898JE4a0yLEYPE,108
26
+ mcp_ticketer/queue/manager.py,sha256=79AH9oUxdBXH3lmJ3kIlFf2GQkWHL6XB6u5JqVWPq60,7571
27
+ mcp_ticketer/queue/queue.py,sha256=UgbIChWPiyI7BJNQ9DYA92D2jVMMtmVWBzotI5ML51A,11394
28
+ mcp_ticketer/queue/run_worker.py,sha256=HFoykfDpOoz8OUxWbQ2Fka_UlGrYwjPVZ-DEimGFH9o,802
29
+ mcp_ticketer/queue/worker.py,sha256=cVjHR_kfnGKAkiUg0HuXCnbKeKNBBEuj0XZHgIuIn4k,14017
30
+ mcp_ticketer-0.1.1.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
31
+ mcp_ticketer-0.1.1.dist-info/METADATA,sha256=F55wT1Fco4HeDuvZkCpZldAvLC_WSvhdpTb-eBBw5-s,11176
32
+ mcp_ticketer-0.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
33
+ mcp_ticketer-0.1.1.dist-info/entry_points.txt,sha256=2V70xrJlC0xiIfRRD5yX8hxhh0mX_ZpkjtmOVrztAEU,111
34
+ mcp_ticketer-0.1.1.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
35
+ mcp_ticketer-0.1.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ mcp-ticketer = mcp_ticketer.cli.main:main
3
+ mcp-ticketer-server = mcp_ticketer.mcp.server:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 MCP Ticketer Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ mcp_ticketer