mcp-ticketer 0.4.0__py3-none-any.whl → 0.4.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.

@@ -1,6 +1,6 @@
1
1
  """Version information for mcp-ticketer package."""
2
2
 
3
- __version__ = "0.4.0"
3
+ __version__ = "0.4.1"
4
4
  __version_info__ = tuple(int(part) for part in __version__.split("."))
5
5
 
6
6
  # Package metadata
mcp_ticketer/cli/main.py CHANGED
@@ -891,7 +891,8 @@ def _show_next_steps(
891
891
  console.print("[dim]Run 'mcp-ticketer --help' for more commands[/dim]")
892
892
 
893
893
 
894
- @app.command()
894
+ # Keep the old install command as deprecated alias to init
895
+ @app.command(deprecated=True, hidden=True)
895
896
  def install(
896
897
  adapter: Optional[str] = typer.Option(
897
898
  None,
@@ -941,26 +942,14 @@ def install(
941
942
  None, "--github-token", help="GitHub Personal Access Token"
942
943
  ),
943
944
  ) -> None:
944
- """Initialize mcp-ticketer for the current project (alias for init).
945
+ """DEPRECATED: Use 'mcp-ticketer init' instead.
945
946
 
946
- This command is synonymous with 'init' and 'setup' - all three provide
947
- identical functionality with interactive prompts to guide you through
948
- configuring MCP Ticketer for your preferred ticket management system.
949
-
950
- Examples:
951
- # Interactive setup (same as 'init' and 'setup')
952
- mcp-ticketer install
953
-
954
- # Force specific adapter
955
- mcp-ticketer install --adapter linear
956
-
957
- # Initialize for different project
958
- mcp-ticketer install --path /path/to/project
959
-
960
- # Save globally (not recommended)
961
- mcp-ticketer install --global
947
+ This command is deprecated. Use 'mcp-ticketer init' for project initialization.
962
948
 
963
949
  """
950
+ console.print(
951
+ "[yellow]⚠️ 'install' is deprecated. Use 'mcp-ticketer init' instead.[/yellow]\n"
952
+ )
964
953
  # Call init with all parameters
965
954
  init(
966
955
  adapter=adapter,
@@ -1149,7 +1138,9 @@ def old_queue_status_command():
1149
1138
 
1150
1139
  DEPRECATED: Use 'mcp-ticketer queue status' instead.
1151
1140
  """
1152
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer queue status' instead.[/yellow]\n")
1141
+ console.print(
1142
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer queue status' instead.[/yellow]\n"
1143
+ )
1153
1144
 
1154
1145
  queue = Queue()
1155
1146
  manager = WorkerManager()
@@ -1192,7 +1183,9 @@ def old_queue_health_command(
1192
1183
 
1193
1184
  DEPRECATED: Use 'mcp-ticketer queue health' instead.
1194
1185
  """
1195
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer queue health' instead.[/yellow]\n")
1186
+ console.print(
1187
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer queue health' instead.[/yellow]\n"
1188
+ )
1196
1189
  health_monitor = QueueHealthMonitor()
1197
1190
  health = health_monitor.check_health()
1198
1191
 
@@ -1294,7 +1287,9 @@ def create(
1294
1287
 
1295
1288
  DEPRECATED: Use 'mcp-ticketer ticket create' instead.
1296
1289
  """
1297
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket create' instead.[/yellow]\n")
1290
+ console.print(
1291
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket create' instead.[/yellow]\n"
1292
+ )
1298
1293
 
1299
1294
  # IMMEDIATE HEALTH CHECK - Critical for reliability
1300
1295
  health_monitor = QueueHealthMonitor()
@@ -1508,7 +1503,9 @@ def list_tickets(
1508
1503
 
1509
1504
  DEPRECATED: Use 'mcp-ticketer ticket list' instead.
1510
1505
  """
1511
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket list' instead.[/yellow]\n")
1506
+ console.print(
1507
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket list' instead.[/yellow]\n"
1508
+ )
1512
1509
 
1513
1510
  async def _list():
1514
1511
  adapter_instance = get_adapter(
@@ -1562,7 +1559,9 @@ def show(
1562
1559
 
1563
1560
  DEPRECATED: Use 'mcp-ticketer ticket show' instead.
1564
1561
  """
1565
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket show' instead.[/yellow]\n")
1562
+ console.print(
1563
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket show' instead.[/yellow]\n"
1564
+ )
1566
1565
 
1567
1566
  async def _show():
1568
1567
  adapter_instance = get_adapter(
@@ -1616,7 +1615,9 @@ def comment(
1616
1615
 
1617
1616
  DEPRECATED: Use 'mcp-ticketer ticket comment' instead.
1618
1617
  """
1619
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket comment' instead.[/yellow]\n")
1618
+ console.print(
1619
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket comment' instead.[/yellow]\n"
1620
+ )
1620
1621
 
1621
1622
  async def _comment():
1622
1623
  adapter_instance = get_adapter(
@@ -1665,7 +1666,9 @@ def update(
1665
1666
 
1666
1667
  DEPRECATED: Use 'mcp-ticketer ticket update' instead.
1667
1668
  """
1668
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket update' instead.[/yellow]\n")
1669
+ console.print(
1670
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket update' instead.[/yellow]\n"
1671
+ )
1669
1672
  updates = {}
1670
1673
  if title:
1671
1674
  updates["title"] = title
@@ -1738,7 +1741,9 @@ def transition(
1738
1741
  mcp-ticketer ticket transition BTA-215 done
1739
1742
 
1740
1743
  """
1741
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket transition' instead.[/yellow]\n")
1744
+ console.print(
1745
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket transition' instead.[/yellow]\n"
1746
+ )
1742
1747
 
1743
1748
  # Determine which state to use (prefer flag over positional)
1744
1749
  target_state = state if state is not None else state_positional
@@ -1797,7 +1802,9 @@ def search(
1797
1802
 
1798
1803
  DEPRECATED: Use 'mcp-ticketer ticket search' instead.
1799
1804
  """
1800
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket search' instead.[/yellow]\n")
1805
+ console.print(
1806
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket search' instead.[/yellow]\n"
1807
+ )
1801
1808
 
1802
1809
  async def _search():
1803
1810
  adapter_instance = get_adapter(
@@ -1934,6 +1941,71 @@ mcp_app = typer.Typer(
1934
1941
  add_completion=False,
1935
1942
  )
1936
1943
 
1944
+ # Create install command group (like kuzu-memory)
1945
+ install_app = typer.Typer(
1946
+ name="install",
1947
+ help="Manage AI system integrations",
1948
+ add_completion=False,
1949
+ )
1950
+
1951
+
1952
+ @install_app.command(name="add")
1953
+ def install_add(
1954
+ platform: str = typer.Argument(
1955
+ ..., help="Platform to install (claude-code, claude-desktop, etc.)"
1956
+ ),
1957
+ project_path: Optional[str] = typer.Option(
1958
+ None, "--project", help="Project directory"
1959
+ ),
1960
+ dry_run: bool = typer.Option(
1961
+ False, "--dry-run", help="Show what would be done without making changes"
1962
+ ),
1963
+ verbose: bool = typer.Option(False, "--verbose", help="Enable verbose output"),
1964
+ ) -> None:
1965
+ """Install mcp-ticketer integration for an AI platform.
1966
+
1967
+ Each platform gets the right configuration automatically:
1968
+ - claude-code: Project-level MCP server
1969
+ - claude-desktop: Global MCP server
1970
+
1971
+ Examples:
1972
+ # Install for Claude Code (project-level)
1973
+ mcp-ticketer install add claude-code
1974
+
1975
+ # Install for Claude Desktop (global)
1976
+ mcp-ticketer install add claude-desktop
1977
+
1978
+ # Dry run to preview changes
1979
+ mcp-ticketer install add claude-code --dry-run
1980
+
1981
+ """
1982
+ from .mcp_configure import configure_claude_mcp
1983
+
1984
+ # Map platform names to configuration
1985
+ platform_mapping = {
1986
+ "claude-code": {"global": False, "name": "Claude Code"},
1987
+ "claude-desktop": {"global": True, "name": "Claude Desktop"},
1988
+ }
1989
+
1990
+ if platform not in platform_mapping:
1991
+ console.print(f"[red]Unknown platform: {platform}[/red]")
1992
+ console.print("\n[bold]Available platforms:[/bold]")
1993
+ for p in platform_mapping.keys():
1994
+ console.print(f" • {p}")
1995
+ raise typer.Exit(1)
1996
+
1997
+ config = platform_mapping[platform]
1998
+
1999
+ if dry_run:
2000
+ console.print(f"[cyan]DRY RUN - Would install for {config['name']}[/cyan]")
2001
+ return
2002
+
2003
+ try:
2004
+ configure_claude_mcp(global_config=config["global"], force=True)
2005
+ except Exception as e:
2006
+ console.print(f"[red]Installation failed: {e}[/red]")
2007
+ raise typer.Exit(1)
2008
+
1937
2009
 
1938
2010
  @app.command(deprecated=True, hidden=True)
1939
2011
  def check(queue_id: str = typer.Argument(..., help="Queue ID to check")):
@@ -1941,7 +2013,9 @@ def check(queue_id: str = typer.Argument(..., help="Queue ID to check")):
1941
2013
 
1942
2014
  DEPRECATED: Use 'mcp-ticketer ticket check' instead.
1943
2015
  """
1944
- console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket check' instead.[/yellow]\n")
2016
+ console.print(
2017
+ "[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket check' instead.[/yellow]\n"
2018
+ )
1945
2019
  queue = Queue()
1946
2020
  item = queue.get_item(queue_id)
1947
2021
 
@@ -1981,8 +2055,8 @@ def check(queue_id: str = typer.Argument(..., help="Queue ID to check")):
1981
2055
  console.print(f"\nRetry Count: {item.retry_count}")
1982
2056
 
1983
2057
 
1984
- @app.command()
1985
- def serve(
2058
+ @mcp_app.command(name="serve")
2059
+ def mcp_serve(
1986
2060
  adapter: Optional[AdapterType] = typer.Option(
1987
2061
  None, "--adapter", "-a", help="Override default adapter type"
1988
2062
  ),
@@ -1993,7 +2067,7 @@ def serve(
1993
2067
  """Start MCP server for JSON-RPC communication over stdio.
1994
2068
 
1995
2069
  This command is used by Claude Code/Desktop when connecting to the MCP server.
1996
- You typically don't need to run this manually - use 'mcp-ticketer mcp' to configure.
2070
+ You typically don't need to run this manually - use 'mcp-ticketer install add' to configure.
1997
2071
 
1998
2072
  Configuration Resolution:
1999
2073
  - When MCP server starts, it uses the current working directory (cwd)
@@ -2218,6 +2292,7 @@ def mcp_auggie(
2218
2292
 
2219
2293
  # Add command groups to main app (must be after all subcommands are defined)
2220
2294
  app.add_typer(mcp_app, name="mcp")
2295
+ app.add_typer(install_app, name="install")
2221
2296
 
2222
2297
 
2223
2298
  def main():
@@ -16,13 +16,21 @@ def find_mcp_ticketer_binary() -> str:
16
16
  """Find the mcp-ticketer binary path.
17
17
 
18
18
  Returns:
19
- Path to mcp-ticketer binary
19
+ Path to mcp-ticketer binary (prefers simple 'mcp-ticketer' if in PATH)
20
20
 
21
21
  Raises:
22
22
  FileNotFoundError: If binary not found
23
23
 
24
24
  """
25
- # Check if running from development environment
25
+ # PRIORITY 1: Check PATH first (like kuzu-memory)
26
+ # This allows the system to resolve the binary location
27
+ which_result = shutil.which("mcp-ticketer")
28
+ if which_result:
29
+ # Return just "mcp-ticketer" for PATH-based installations
30
+ # This is more portable and matches kuzu-memory's approach
31
+ return "mcp-ticketer"
32
+
33
+ # FALLBACK: Check development environment
26
34
  import mcp_ticketer
27
35
 
28
36
  package_path = Path(mcp_ticketer.__file__).parent.parent.parent
@@ -45,11 +53,6 @@ def find_mcp_ticketer_binary() -> str:
45
53
  / "mcp-ticketer",
46
54
  ]
47
55
 
48
- # Check PATH
49
- which_result = shutil.which("mcp-ticketer")
50
- if which_result:
51
- return which_result
52
-
53
56
  # Check possible paths
54
57
  for path in possible_paths:
55
58
  if path.exists():
@@ -183,7 +186,7 @@ def create_mcp_server_config(
183
186
  """
184
187
  config = {
185
188
  "command": binary_path,
186
- "args": ["serve"], # Use 'serve' command to start MCP server
189
+ "args": ["mcp", "serve"], # Use 'mcp serve' command to start MCP server
187
190
  }
188
191
 
189
192
  # Add working directory if provided
@@ -29,9 +29,7 @@ def jira_list_projects():
29
29
  from rich.console import Console
30
30
 
31
31
  console = Console()
32
- console.print(
33
- "[yellow]JIRA platform commands are not yet implemented.[/yellow]"
34
- )
32
+ console.print("[yellow]JIRA platform commands are not yet implemented.[/yellow]")
35
33
  console.print(
36
34
  "Use the generic ticket commands for JIRA operations:\n"
37
35
  " mcp-ticketer ticket create 'My ticket'\n"
@@ -45,12 +43,8 @@ def jira_configure():
45
43
  from rich.console import Console
46
44
 
47
45
  console = Console()
48
- console.print(
49
- "[yellow]JIRA platform commands are not yet implemented.[/yellow]"
50
- )
51
- console.print(
52
- "Use 'mcp-ticketer init --adapter jira' to configure JIRA adapter."
53
- )
46
+ console.print("[yellow]JIRA platform commands are not yet implemented.[/yellow]")
47
+ console.print("Use 'mcp-ticketer init --adapter jira' to configure JIRA adapter.")
54
48
 
55
49
 
56
50
  # GitHub platform commands (placeholder)
@@ -66,9 +60,7 @@ def github_list_repos():
66
60
  from rich.console import Console
67
61
 
68
62
  console = Console()
69
- console.print(
70
- "[yellow]GitHub platform commands are not yet implemented.[/yellow]"
71
- )
63
+ console.print("[yellow]GitHub platform commands are not yet implemented.[/yellow]")
72
64
  console.print(
73
65
  "Use the generic ticket commands for GitHub operations:\n"
74
66
  " mcp-ticketer ticket create 'My issue'\n"
@@ -82,9 +74,7 @@ def github_configure():
82
74
  from rich.console import Console
83
75
 
84
76
  console = Console()
85
- console.print(
86
- "[yellow]GitHub platform commands are not yet implemented.[/yellow]"
87
- )
77
+ console.print("[yellow]GitHub platform commands are not yet implemented.[/yellow]")
88
78
  console.print(
89
79
  "Use 'mcp-ticketer init --adapter github' to configure GitHub adapter."
90
80
  )
@@ -52,7 +52,9 @@ def load_config(project_dir: Optional[Path] = None) -> dict:
52
52
  return config
53
53
  except (OSError, json.JSONDecodeError) as e:
54
54
  logger.warning(f"Could not load project config: {e}, using defaults")
55
- console.print(f"[yellow]Warning: Could not load project config: {e}[/yellow]")
55
+ console.print(
56
+ f"[yellow]Warning: Could not load project config: {e}[/yellow]"
57
+ )
56
58
 
57
59
  logger.info("No project-local config found, defaulting to aitrackdown adapter")
58
60
  return {"adapter": "aitrackdown", "config": {"base_path": ".aitrackdown"}}
@@ -70,7 +72,9 @@ def save_config(config: dict) -> None:
70
72
  logger.info(f"Saved configuration to: {project_config}")
71
73
 
72
74
 
73
- def get_adapter(override_adapter: Optional[str] = None, override_config: Optional[dict] = None):
75
+ def get_adapter(
76
+ override_adapter: Optional[str] = None, override_config: Optional[dict] = None
77
+ ):
74
78
  """Get configured adapter instance."""
75
79
  config = load_config()
76
80
 
@@ -369,7 +373,9 @@ def create(
369
373
  console.print(f" Title: {title}")
370
374
  console.print(f" Priority: {priority}")
371
375
  console.print(f" Adapter: {adapter_name}")
372
- console.print("[dim]Use 'mcp-ticketer ticket check {queue_id}' to check progress[/dim]")
376
+ console.print(
377
+ "[dim]Use 'mcp-ticketer ticket check {queue_id}' to check progress[/dim]"
378
+ )
373
379
 
374
380
  # Start worker if needed with immediate feedback
375
381
  manager = WorkerManager()
@@ -606,7 +612,9 @@ def update(
606
612
  for key, value in updates.items():
607
613
  if key != "ticket_id":
608
614
  console.print(f" {key}: {value}")
609
- console.print("[dim]Use 'mcp-ticketer ticket check {queue_id}' to check progress[/dim]")
615
+ console.print(
616
+ "[dim]Use 'mcp-ticketer ticket check {queue_id}' to check progress[/dim]"
617
+ )
610
618
 
611
619
  # Start worker if needed
612
620
  manager = WorkerManager()
@@ -672,7 +680,9 @@ def transition(
672
680
 
673
681
  console.print(f"[green]✓[/green] Queued state transition: {queue_id}")
674
682
  console.print(f" Ticket: {ticket_id} → {target_state}")
675
- console.print("[dim]Use 'mcp-ticketer ticket check {queue_id}' to check progress[/dim]")
683
+ console.print(
684
+ "[dim]Use 'mcp-ticketer ticket check {queue_id}' to check progress[/dim]"
685
+ )
676
686
 
677
687
  # Start worker if needed
678
688
  manager = WorkerManager()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-ticketer
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: Universal ticket management interface for AI agents with MCP support
5
5
  Author-email: MCP Ticketer Team <support@mcp-ticketer.io>
6
6
  Maintainer-email: MCP Ticketer Team <support@mcp-ticketer.io>
@@ -1,5 +1,5 @@
1
1
  mcp_ticketer/__init__.py,sha256=Xx4WaprO5PXhVPbYi1L6tBmwmJMkYS-lMyG4ieN6QP0,717
2
- mcp_ticketer/__version__.py,sha256=CR9K0foaKbPjgF5Yl6n14vC3Mv6RP3UcC71ofaagTzE,1117
2
+ mcp_ticketer/__version__.py,sha256=aVFDW8FNkUd4TQXwfS2C8VnpsNxoKrkWFHg9V0X3Prk,1117
3
3
  mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  mcp_ticketer/adapters/__init__.py,sha256=B5DFllWn23hkhmrLykNO5uMMSdcFuuPHXyLw_jyFzuE,358
5
5
  mcp_ticketer/adapters/aitrackdown.py,sha256=Ecw2SQAGVQs5yMH6m2pj61LxCJsuy-g2bvF8uwTpLUE,22588
@@ -24,13 +24,13 @@ mcp_ticketer/cli/diagnostics.py,sha256=jHF68ydW3RNVGumBnHUjUmq6YOjQD2UDkx0O7M__x
24
24
  mcp_ticketer/cli/discover.py,sha256=AF_qlQc1Oo0UkWayoF5pmRChS5J3fJjH6f2YZzd_k8w,13188
25
25
  mcp_ticketer/cli/gemini_configure.py,sha256=ZNSA1lBW-itVToza-JxW95Po7daVXKiZAh7lp6pmXMU,9343
26
26
  mcp_ticketer/cli/linear_commands.py,sha256=_8f8ze_1MbiUweU6RFHpldgfHLirysIdPjHr2_S0YhI,17319
27
- mcp_ticketer/cli/main.py,sha256=veWHcq44L58SxegU3iU--r1jz9LM1OWv4fUG47K3BGw,77798
28
- mcp_ticketer/cli/mcp_configure.py,sha256=RzV50UjXgOmvMp-9S0zS39psuvjffVByaMrqrUaAGAM,9594
27
+ mcp_ticketer/cli/main.py,sha256=nTDVyWbt9euyDf6BJHS44HcYHF5gRMZXBqfRNyXe-z4,79776
28
+ mcp_ticketer/cli/mcp_configure.py,sha256=1ohmFGr9OroDhZiWLl9pnOE1fUBKzZiV6S5SPpMV4aY,9874
29
29
  mcp_ticketer/cli/migrate_config.py,sha256=MYsr_C5ZxsGg0P13etWTWNrJ_lc6ElRCkzfQADYr3DM,5956
30
- mcp_ticketer/cli/platform_commands.py,sha256=koLWUFW-q1oRxJMVI_V35cDZ8OOH3F3bIdD8RRTTRpM,3694
30
+ mcp_ticketer/cli/platform_commands.py,sha256=pTLRT2wot8dAmy1-roJWWOT0Cxu7j-06BlWDnZ9a4jY,3624
31
31
  mcp_ticketer/cli/queue_commands.py,sha256=mm-3H6jmkUGJDyU_E46o9iRpek8tvFCm77F19OtHiZI,7884
32
32
  mcp_ticketer/cli/simple_health.py,sha256=GlOLRRFoifCna995NoHuKpb3xmFkLi2b3Ke1hyeDvq4,7950
33
- mcp_ticketer/cli/ticket_commands.py,sha256=AD9D-EidPA3vk_-MpY3B4QGKhezCQqbKCn8vRsg57Rg,26637
33
+ mcp_ticketer/cli/ticket_commands.py,sha256=pl4YugMH4WkopVSCASN2fmZIlJGAjOL3YMSkpYpSDO4,26715
34
34
  mcp_ticketer/cli/utils.py,sha256=IOycMmhwtCDpL3RN_wVEZkYMg9FHyDr4mg5M9Bxzfbo,23041
35
35
  mcp_ticketer/core/__init__.py,sha256=eXovsaJymQRP2AwOBuOy6mFtI3I68D7gGenZ5V-IMqo,349
36
36
  mcp_ticketer/core/adapter.py,sha256=q64LxOInIno7EIbmuxItf8KEsd-g9grCs__Z4uwZHto,10273
@@ -56,9 +56,9 @@ mcp_ticketer/queue/queue.py,sha256=PIB_8gOE4rCb5_tBNKw9qD6YhSgH3Ei3IzVrUSY3F_o,1
56
56
  mcp_ticketer/queue/run_worker.py,sha256=WhoeamL8LKZ66TM8W1PkMPwjF2w_EDFMP-mevs6C1TM,1019
57
57
  mcp_ticketer/queue/ticket_registry.py,sha256=FE6W_D8NA-66cJQ6VqghChF3JasYW845JVfEZdiqLbA,15449
58
58
  mcp_ticketer/queue/worker.py,sha256=AF6W1bdxWnHiJd6-iBWqTHkZ4lFflsS65CAtgFPR0FA,20983
59
- mcp_ticketer-0.4.0.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
60
- mcp_ticketer-0.4.0.dist-info/METADATA,sha256=kU9H9axMFLLYInrAxYQPW-4rlfBEd9USR_kOHdlfWQY,13219
61
- mcp_ticketer-0.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
62
- mcp_ticketer-0.4.0.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
63
- mcp_ticketer-0.4.0.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
64
- mcp_ticketer-0.4.0.dist-info/RECORD,,
59
+ mcp_ticketer-0.4.1.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
60
+ mcp_ticketer-0.4.1.dist-info/METADATA,sha256=M5RWUo_GXKOgyhs7v6TGIJGnnCCWTAd31xyPxl32hpc,13219
61
+ mcp_ticketer-0.4.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
62
+ mcp_ticketer-0.4.1.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
63
+ mcp_ticketer-0.4.1.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
64
+ mcp_ticketer-0.4.1.dist-info/RECORD,,