mcp-ticketer 0.1.2__py3-none-any.whl → 0.1.4__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.1.2"
3
+ __version__ = "0.1.4"
4
4
  __version_info__ = tuple(int(part) for part in __version__.split("."))
5
5
 
6
6
  # Package metadata
mcp_ticketer/cli/main.py CHANGED
@@ -848,15 +848,19 @@ def mcp(
848
848
  console.print("[dim]Server running on stdio. Send JSON-RPC requests via stdin.[/dim]")
849
849
 
850
850
  # Create and run server
851
- server = MCPTicketServer(adapter_type, adapter_config)
852
-
853
851
  try:
852
+ server = MCPTicketServer(adapter_type, adapter_config)
854
853
  asyncio.run(server.run())
855
854
  except KeyboardInterrupt:
856
855
  # Also send this to stderr
857
856
  if sys.stderr.isatty():
858
857
  console.print("\n[yellow]Server stopped by user[/yellow]")
859
- asyncio.run(server.stop())
858
+ if 'server' in locals():
859
+ asyncio.run(server.stop())
860
+ except Exception as e:
861
+ # Log error to stderr
862
+ sys.stderr.write(f"MCP server error: {e}\n")
863
+ sys.exit(1)
860
864
 
861
865
 
862
866
  def main():
@@ -306,10 +306,10 @@ class MCPTicketServer:
306
306
  Server capabilities
307
307
  """
308
308
  return {
309
- "protocolVersion": "1.0.0",
309
+ "protocolVersion": "0.1.0",
310
310
  "serverInfo": {
311
311
  "name": "mcp-ticketer",
312
- "version": "0.1.2"
312
+ "version": "0.1.4"
313
313
  },
314
314
  "capabilities": {
315
315
  "tools": {
@@ -403,15 +403,22 @@ class MCPTicketServer:
403
403
  async def run(self) -> None:
404
404
  """Run the MCP server, reading from stdin and writing to stdout."""
405
405
  self.running = True
406
- reader = asyncio.StreamReader()
407
- protocol = asyncio.StreamReaderProtocol(reader)
408
- await asyncio.get_event_loop().connect_read_pipe(lambda: protocol, sys.stdin)
406
+
407
+ try:
408
+ reader = asyncio.StreamReader()
409
+ protocol = asyncio.StreamReaderProtocol(reader)
410
+ await asyncio.get_event_loop().connect_read_pipe(lambda: protocol, sys.stdin)
411
+ except Exception as e:
412
+ sys.stderr.write(f"Failed to connect to stdin: {str(e)}\n")
413
+ return
409
414
 
410
415
  # Main message loop
411
416
  while self.running:
412
417
  try:
413
418
  line = await reader.readline()
414
419
  if not line:
420
+ # EOF reached, exit gracefully
421
+ sys.stderr.write("EOF reached, shutting down server\n")
415
422
  break
416
423
 
417
424
  # Parse JSON-RPC request
@@ -434,6 +441,11 @@ class MCPTicketServer:
434
441
  sys.stdout.flush()
435
442
 
436
443
  except KeyboardInterrupt:
444
+ sys.stderr.write("Received interrupt signal\n")
445
+ break
446
+
447
+ except BrokenPipeError:
448
+ sys.stderr.write("Connection closed by client\n")
437
449
  break
438
450
 
439
451
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-ticketer
3
- Version: 0.1.2
3
+ Version: 0.1.4
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=ayPQdFr6msypD06_G96a1H0bdFCT1m1wDtv8MZBpY4I,496
2
- mcp_ticketer/__version__.py,sha256=oHOidjQn16PiCsK4r-XiCDuUJ4mctz9rqHGoXWyrnFM,1114
2
+ mcp_ticketer/__version__.py,sha256=4MPTwL8hHn1KZ56QK6EofrVOne0Utxh8zoERXs1zFeI,1114
3
3
  mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  mcp_ticketer/adapters/__init__.py,sha256=_QRLaX38EUsL-kMvJITY0lYHvrq_ip9Qw4Q1YLavJSo,283
5
5
  mcp_ticketer/adapters/aitrackdown.py,sha256=ICNimTtF6rPajuVoVEpmdw2TfjYjnWvao8prUwukNn0,15210
@@ -9,7 +9,7 @@ mcp_ticketer/adapters/linear.py,sha256=PYqR30h223un50_Z-0lepPyIasK2uVHyL11mfPqtW
9
9
  mcp_ticketer/cache/__init__.py,sha256=MSi3GLXancfP2-edPC9TFAJk7r0j6H5-XmpMHnkGPbI,137
10
10
  mcp_ticketer/cache/memory.py,sha256=gTzv-xF7qGfiYVUjG7lnzo0ZcqgXQajMl4NAYUcaytg,5133
11
11
  mcp_ticketer/cli/__init__.py,sha256=YeljyLtv906TqkvRuEPhmKO-Uk0CberQ9I6kx1tx2UA,88
12
- mcp_ticketer/cli/main.py,sha256=gFe3VTWCdpFqPS8RyptzZ99CfDhoi-nmRIHUDlHp7LE,27604
12
+ mcp_ticketer/cli/main.py,sha256=sGQhyaPZhCZpHM5-1aqaW3KJTfkSv2LteIKlXdavkSQ,27774
13
13
  mcp_ticketer/cli/queue_commands.py,sha256=f3pEHKZ43dBHEIoCBvdfvjfMB9_WJltps9ATwTzorY0,8160
14
14
  mcp_ticketer/cli/utils.py,sha256=NxsS91vKA8xZnDXKU2y0Gcyc4I_ctRyJj-wT7Xd1Q_Q,18589
15
15
  mcp_ticketer/core/__init__.py,sha256=NA-rDvwuAOZ9sUZVYJOWp8bR6mOBG8w_5lpWTT75JNI,318
@@ -20,16 +20,16 @@ mcp_ticketer/core/mappers.py,sha256=8I4jcqDqoQEdWlteDMpVeVF3Wo0fDCkmFPRr8oNv8gA,
20
20
  mcp_ticketer/core/models.py,sha256=K-bLuU_DNNVgjHnVFzAIbSa0kJwT2I3Hj24sCklwIYo,4374
21
21
  mcp_ticketer/core/registry.py,sha256=fwje0fnjp0YKPZ0SrVWk82SMNLs7CD0JlHQmx7SigNo,3537
22
22
  mcp_ticketer/mcp/__init__.py,sha256=Bvzof9vBu6VwcXcIZK8RgKv6ycRV9tDlO-9TUmd8zqQ,122
23
- mcp_ticketer/mcp/server.py,sha256=3vgtfCfnge3KDZakRXo5uVjS7_j7QaK10VgMWZPsJPA,16446
23
+ mcp_ticketer/mcp/server.py,sha256=K6dkdzC0ZE4LcCdE7e1zIohUcNUvoB2mN_LsV2SvHVg,16910
24
24
  mcp_ticketer/queue/__init__.py,sha256=xHBoUwor8ZdO8bIHc7nP25EsAp5Si5Co4g_8ybb7fes,230
25
25
  mcp_ticketer/queue/__main__.py,sha256=kQd6iOCKbbFqpRdbIRavuI4_G7-oE898JE4a0yLEYPE,108
26
26
  mcp_ticketer/queue/manager.py,sha256=79AH9oUxdBXH3lmJ3kIlFf2GQkWHL6XB6u5JqVWPq60,7571
27
27
  mcp_ticketer/queue/queue.py,sha256=UgbIChWPiyI7BJNQ9DYA92D2jVMMtmVWBzotI5ML51A,11394
28
28
  mcp_ticketer/queue/run_worker.py,sha256=HFoykfDpOoz8OUxWbQ2Fka_UlGrYwjPVZ-DEimGFH9o,802
29
29
  mcp_ticketer/queue/worker.py,sha256=cVjHR_kfnGKAkiUg0HuXCnbKeKNBBEuj0XZHgIuIn4k,14017
30
- mcp_ticketer-0.1.2.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
31
- mcp_ticketer-0.1.2.dist-info/METADATA,sha256=7RFuEm_FwGwMMnjJ67S7JKhsEnhvRxF0uReKv5oytHw,11177
32
- mcp_ticketer-0.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
33
- mcp_ticketer-0.1.2.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
34
- mcp_ticketer-0.1.2.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
35
- mcp_ticketer-0.1.2.dist-info/RECORD,,
30
+ mcp_ticketer-0.1.4.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
31
+ mcp_ticketer-0.1.4.dist-info/METADATA,sha256=P3FJB9vyd6XQZkDS055v0e6U9B3f-ZkZPLkV0cJT3Sg,11177
32
+ mcp_ticketer-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
33
+ mcp_ticketer-0.1.4.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
34
+ mcp_ticketer-0.1.4.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
35
+ mcp_ticketer-0.1.4.dist-info/RECORD,,