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.
- mcp_ticketer/__init__.py +10 -10
- mcp_ticketer/__version__.py +3 -3
- mcp_ticketer/_version_scm.py +1 -0
- mcp_ticketer/adapters/__init__.py +2 -0
- mcp_ticketer/adapters/aitrackdown.py +930 -52
- mcp_ticketer/adapters/asana/__init__.py +15 -0
- mcp_ticketer/adapters/asana/adapter.py +1537 -0
- mcp_ticketer/adapters/asana/client.py +292 -0
- mcp_ticketer/adapters/asana/mappers.py +348 -0
- mcp_ticketer/adapters/asana/types.py +146 -0
- mcp_ticketer/adapters/github/__init__.py +26 -0
- mcp_ticketer/adapters/github/adapter.py +3229 -0
- mcp_ticketer/adapters/github/client.py +335 -0
- mcp_ticketer/adapters/github/mappers.py +797 -0
- mcp_ticketer/adapters/github/queries.py +692 -0
- mcp_ticketer/adapters/github/types.py +460 -0
- mcp_ticketer/adapters/hybrid.py +58 -16
- mcp_ticketer/adapters/jira/__init__.py +35 -0
- mcp_ticketer/adapters/jira/adapter.py +1351 -0
- mcp_ticketer/adapters/jira/client.py +271 -0
- mcp_ticketer/adapters/jira/mappers.py +246 -0
- mcp_ticketer/adapters/jira/queries.py +216 -0
- mcp_ticketer/adapters/jira/types.py +304 -0
- mcp_ticketer/adapters/linear/__init__.py +1 -1
- mcp_ticketer/adapters/linear/adapter.py +3810 -462
- mcp_ticketer/adapters/linear/client.py +312 -69
- mcp_ticketer/adapters/linear/mappers.py +305 -85
- mcp_ticketer/adapters/linear/queries.py +317 -17
- mcp_ticketer/adapters/linear/types.py +187 -64
- mcp_ticketer/adapters/linear.py +2 -2
- mcp_ticketer/analysis/__init__.py +56 -0
- mcp_ticketer/analysis/dependency_graph.py +255 -0
- mcp_ticketer/analysis/health_assessment.py +304 -0
- mcp_ticketer/analysis/orphaned.py +218 -0
- mcp_ticketer/analysis/project_status.py +594 -0
- mcp_ticketer/analysis/similarity.py +224 -0
- mcp_ticketer/analysis/staleness.py +266 -0
- mcp_ticketer/automation/__init__.py +11 -0
- mcp_ticketer/automation/project_updates.py +378 -0
- mcp_ticketer/cache/memory.py +9 -8
- mcp_ticketer/cli/adapter_diagnostics.py +421 -0
- mcp_ticketer/cli/auggie_configure.py +116 -15
- mcp_ticketer/cli/codex_configure.py +274 -82
- mcp_ticketer/cli/configure.py +1323 -151
- mcp_ticketer/cli/cursor_configure.py +314 -0
- mcp_ticketer/cli/diagnostics.py +209 -114
- mcp_ticketer/cli/discover.py +297 -26
- mcp_ticketer/cli/gemini_configure.py +119 -26
- mcp_ticketer/cli/init_command.py +880 -0
- mcp_ticketer/cli/install_mcp_server.py +418 -0
- mcp_ticketer/cli/instruction_commands.py +435 -0
- mcp_ticketer/cli/linear_commands.py +256 -130
- mcp_ticketer/cli/main.py +140 -1284
- mcp_ticketer/cli/mcp_configure.py +1013 -100
- mcp_ticketer/cli/mcp_server_commands.py +415 -0
- mcp_ticketer/cli/migrate_config.py +12 -8
- mcp_ticketer/cli/platform_commands.py +123 -0
- mcp_ticketer/cli/platform_detection.py +477 -0
- mcp_ticketer/cli/platform_installer.py +545 -0
- mcp_ticketer/cli/project_update_commands.py +350 -0
- mcp_ticketer/cli/python_detection.py +126 -0
- mcp_ticketer/cli/queue_commands.py +15 -15
- mcp_ticketer/cli/setup_command.py +794 -0
- mcp_ticketer/cli/simple_health.py +84 -59
- mcp_ticketer/cli/ticket_commands.py +1375 -0
- mcp_ticketer/cli/update_checker.py +313 -0
- mcp_ticketer/cli/utils.py +195 -72
- mcp_ticketer/core/__init__.py +64 -1
- mcp_ticketer/core/adapter.py +618 -18
- mcp_ticketer/core/config.py +77 -68
- mcp_ticketer/core/env_discovery.py +75 -16
- mcp_ticketer/core/env_loader.py +121 -97
- mcp_ticketer/core/exceptions.py +32 -24
- mcp_ticketer/core/http_client.py +26 -26
- mcp_ticketer/core/instructions.py +405 -0
- mcp_ticketer/core/label_manager.py +732 -0
- mcp_ticketer/core/mappers.py +42 -30
- mcp_ticketer/core/milestone_manager.py +252 -0
- mcp_ticketer/core/models.py +566 -19
- mcp_ticketer/core/onepassword_secrets.py +379 -0
- mcp_ticketer/core/priority_matcher.py +463 -0
- mcp_ticketer/core/project_config.py +189 -49
- mcp_ticketer/core/project_utils.py +281 -0
- mcp_ticketer/core/project_validator.py +376 -0
- mcp_ticketer/core/registry.py +3 -3
- mcp_ticketer/core/session_state.py +176 -0
- mcp_ticketer/core/state_matcher.py +592 -0
- mcp_ticketer/core/url_parser.py +425 -0
- mcp_ticketer/core/validators.py +69 -0
- mcp_ticketer/defaults/ticket_instructions.md +644 -0
- mcp_ticketer/mcp/__init__.py +29 -1
- mcp_ticketer/mcp/__main__.py +60 -0
- mcp_ticketer/mcp/server/__init__.py +25 -0
- mcp_ticketer/mcp/server/__main__.py +60 -0
- mcp_ticketer/mcp/server/constants.py +58 -0
- mcp_ticketer/mcp/server/diagnostic_helper.py +175 -0
- mcp_ticketer/mcp/server/dto.py +195 -0
- mcp_ticketer/mcp/server/main.py +1343 -0
- mcp_ticketer/mcp/server/response_builder.py +206 -0
- mcp_ticketer/mcp/server/routing.py +723 -0
- mcp_ticketer/mcp/server/server_sdk.py +151 -0
- mcp_ticketer/mcp/server/tools/__init__.py +69 -0
- mcp_ticketer/mcp/server/tools/analysis_tools.py +854 -0
- mcp_ticketer/mcp/server/tools/attachment_tools.py +224 -0
- mcp_ticketer/mcp/server/tools/bulk_tools.py +330 -0
- mcp_ticketer/mcp/server/tools/comment_tools.py +152 -0
- mcp_ticketer/mcp/server/tools/config_tools.py +1564 -0
- mcp_ticketer/mcp/server/tools/diagnostic_tools.py +211 -0
- mcp_ticketer/mcp/server/tools/hierarchy_tools.py +942 -0
- mcp_ticketer/mcp/server/tools/instruction_tools.py +295 -0
- mcp_ticketer/mcp/server/tools/label_tools.py +942 -0
- mcp_ticketer/mcp/server/tools/milestone_tools.py +338 -0
- mcp_ticketer/mcp/server/tools/pr_tools.py +150 -0
- mcp_ticketer/mcp/server/tools/project_status_tools.py +158 -0
- mcp_ticketer/mcp/server/tools/project_update_tools.py +473 -0
- mcp_ticketer/mcp/server/tools/search_tools.py +318 -0
- mcp_ticketer/mcp/server/tools/session_tools.py +308 -0
- mcp_ticketer/mcp/server/tools/ticket_tools.py +1413 -0
- mcp_ticketer/mcp/server/tools/user_ticket_tools.py +364 -0
- mcp_ticketer/queue/__init__.py +1 -0
- mcp_ticketer/queue/health_monitor.py +168 -136
- mcp_ticketer/queue/manager.py +78 -63
- mcp_ticketer/queue/queue.py +108 -21
- mcp_ticketer/queue/run_worker.py +2 -2
- mcp_ticketer/queue/ticket_registry.py +213 -155
- mcp_ticketer/queue/worker.py +96 -58
- mcp_ticketer/utils/__init__.py +5 -0
- mcp_ticketer/utils/token_utils.py +246 -0
- mcp_ticketer-2.2.9.dist-info/METADATA +1396 -0
- mcp_ticketer-2.2.9.dist-info/RECORD +158 -0
- mcp_ticketer-2.2.9.dist-info/top_level.txt +2 -0
- py_mcp_installer/examples/phase3_demo.py +178 -0
- py_mcp_installer/scripts/manage_version.py +54 -0
- py_mcp_installer/setup.py +6 -0
- py_mcp_installer/src/py_mcp_installer/__init__.py +153 -0
- py_mcp_installer/src/py_mcp_installer/command_builder.py +445 -0
- py_mcp_installer/src/py_mcp_installer/config_manager.py +541 -0
- py_mcp_installer/src/py_mcp_installer/exceptions.py +243 -0
- py_mcp_installer/src/py_mcp_installer/installation_strategy.py +617 -0
- py_mcp_installer/src/py_mcp_installer/installer.py +656 -0
- py_mcp_installer/src/py_mcp_installer/mcp_inspector.py +750 -0
- py_mcp_installer/src/py_mcp_installer/platform_detector.py +451 -0
- py_mcp_installer/src/py_mcp_installer/platforms/__init__.py +26 -0
- py_mcp_installer/src/py_mcp_installer/platforms/claude_code.py +225 -0
- py_mcp_installer/src/py_mcp_installer/platforms/codex.py +181 -0
- py_mcp_installer/src/py_mcp_installer/platforms/cursor.py +191 -0
- py_mcp_installer/src/py_mcp_installer/types.py +222 -0
- py_mcp_installer/src/py_mcp_installer/utils.py +463 -0
- py_mcp_installer/tests/__init__.py +0 -0
- py_mcp_installer/tests/platforms/__init__.py +0 -0
- py_mcp_installer/tests/test_platform_detector.py +17 -0
- mcp_ticketer/adapters/github.py +0 -1354
- mcp_ticketer/adapters/jira.py +0 -1011
- mcp_ticketer/mcp/server.py +0 -1895
- mcp_ticketer-0.2.0.dist-info/METADATA +0 -414
- mcp_ticketer-0.2.0.dist-info/RECORD +0 -58
- mcp_ticketer-0.2.0.dist-info/top_level.txt +0 -1
- {mcp_ticketer-0.2.0.dist-info → mcp_ticketer-2.2.9.dist-info}/WHEEL +0 -0
- {mcp_ticketer-0.2.0.dist-info → mcp_ticketer-2.2.9.dist-info}/entry_points.txt +0 -0
- {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
|
-
[](https://pypi.org/project/mcp-ticketerer)
|
|
88
|
-
[](https://pypi.org/project/mcp-ticketerer)
|
|
89
|
-
[](https://mcp-ticketerer.readthedocs.io/en/latest/?badge=latest)
|
|
90
|
-
[](https://github.com/mcp-ticketerer/mcp-ticketerer/actions)
|
|
91
|
-
[](https://codecov.io/gh/mcp-ticketerer/mcp-ticketerer)
|
|
92
|
-
[](https://opensource.org/licenses/MIT)
|
|
93
|
-
[](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
|
-
[](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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|