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
@@ -23,6 +23,9 @@ mcp = FastMCP("mcp-ticketer")
23
23
  # Global adapter instance
24
24
  _adapter: BaseAdapter | None = None
25
25
 
26
+ # Global router instance (optional, for multi-platform support)
27
+ _router: Any | None = None
28
+
26
29
  # Configure logging
27
30
  logger = logging.getLogger(__name__)
28
31
 
@@ -70,6 +73,61 @@ def get_adapter() -> BaseAdapter:
70
73
  return _adapter
71
74
 
72
75
 
76
+ def configure_router(
77
+ default_adapter: str, adapter_configs: dict[str, dict[str, Any]]
78
+ ) -> None:
79
+ """Configure multi-platform routing support (optional).
80
+
81
+ This enables URL-based ticket access across multiple platforms in a
82
+ single MCP session. When configured, tools will use the router to
83
+ automatically detect the platform from URLs.
84
+
85
+ Args:
86
+ default_adapter: Default adapter for plain IDs (e.g., "linear")
87
+ adapter_configs: Configuration for each adapter
88
+ Example: {
89
+ "linear": {"api_key": "...", "team_id": "..."},
90
+ "github": {"token": "...", "owner": "...", "repo": "..."}
91
+ }
92
+
93
+ Raises:
94
+ RuntimeError: If router configuration fails
95
+
96
+ """
97
+ global _router
98
+
99
+ try:
100
+ from .routing import TicketRouter
101
+
102
+ _router = TicketRouter(
103
+ default_adapter=default_adapter, adapter_configs=adapter_configs
104
+ )
105
+ logger.info(f"Configured multi-platform router with default: {default_adapter}")
106
+ except Exception as e:
107
+ logger.error(f"Failed to configure router: {e}")
108
+ raise RuntimeError(f"Router configuration failed: {e}") from e
109
+
110
+
111
+ def get_router() -> Any:
112
+ """Get the configured router instance (if available).
113
+
114
+ Returns:
115
+ The global router instance, or None if not configured
116
+
117
+ """
118
+ return _router
119
+
120
+
121
+ def has_router() -> bool:
122
+ """Check if multi-platform router is configured.
123
+
124
+ Returns:
125
+ True if router is available, False otherwise
126
+
127
+ """
128
+ return _router is not None
129
+
130
+
73
131
  # Import all tool modules to register them with FastMCP
74
132
  # These imports must come after mcp is initialized but before main()
75
133
  from . import tools # noqa: E402, F401
@@ -10,38 +10,60 @@ Modules:
10
10
  search_tools: Search and query operations
11
11
  bulk_tools: Bulk create and update operations
12
12
  comment_tools: Comment management
13
- pr_tools: Pull request integration
14
- attachment_tools: File attachment handling
15
- instruction_tools: Ticket instructions management
16
13
  config_tools: Configuration management (adapter, project, user settings)
14
+ session_tools: Session tracking and ticket association management
17
15
  user_ticket_tools: User-specific ticket operations (my tickets, transitions)
16
+ analysis_tools: Ticket analysis and cleanup tools (similar, stale, orphaned)
17
+ label_tools: Label management, normalization, deduplication, and cleanup
18
+ project_update_tools: Project status update management (1M-238)
19
+ project_status_tools: Project status analysis and work planning (1M-316)
20
+ milestone_tools: Milestone management and progress tracking (1M-607)
21
+ attachment_tools: File attachment management (ticket_attach, ticket_attachments)
22
+
23
+ Note:
24
+ instruction_tools: Removed from MCP server (CLI-only as of Phase 2 Sprint 2.3)
25
+ pr_tools: Removed from MCP server (CLI-only as of Phase 2 Sprint 1.3)
26
+ These tools are available via CLI commands but not exposed through MCP interface.
27
+ Use GitHub MCP for PR management.
18
28
 
19
29
  """
20
30
 
21
31
  # Import all tool modules to register them with FastMCP
22
32
  # Order matters - import core functionality first
23
33
  from . import (
34
+ analysis_tools, # noqa: F401
24
35
  attachment_tools, # noqa: F401
25
36
  bulk_tools, # noqa: F401
26
37
  comment_tools, # noqa: F401
27
38
  config_tools, # noqa: F401
28
39
  hierarchy_tools, # noqa: F401
29
- instruction_tools, # noqa: F401
30
- pr_tools, # noqa: F401
40
+ # instruction_tools removed - CLI-only (Phase 2 Sprint 2.3)
41
+ label_tools, # noqa: F401
42
+ milestone_tools, # noqa: F401
43
+ # pr_tools removed - CLI-only (Phase 2 Sprint 1.3 - use GitHub MCP)
44
+ project_status_tools, # noqa: F401
45
+ project_update_tools, # noqa: F401
31
46
  search_tools, # noqa: F401
47
+ session_tools, # noqa: F401
32
48
  ticket_tools, # noqa: F401
33
49
  user_ticket_tools, # noqa: F401
34
50
  )
35
51
 
36
52
  __all__ = [
37
- "ticket_tools",
38
- "hierarchy_tools",
39
- "search_tools",
53
+ "analysis_tools",
54
+ "attachment_tools",
40
55
  "bulk_tools",
41
56
  "comment_tools",
42
- "pr_tools",
43
- "attachment_tools",
44
- "instruction_tools",
45
57
  "config_tools",
58
+ "hierarchy_tools",
59
+ # "instruction_tools" removed - CLI-only (Phase 2 Sprint 2.3)
60
+ "label_tools",
61
+ "milestone_tools",
62
+ # "pr_tools" removed - CLI-only (Phase 2 Sprint 1.3)
63
+ "project_status_tools",
64
+ "project_update_tools",
65
+ "search_tools",
66
+ "session_tools",
67
+ "ticket_tools",
46
68
  "user_ticket_tools",
47
69
  ]