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.
- mcp_ticketer/__version__.py +1 -1
- mcp_ticketer/cli/main.py +7 -3
- mcp_ticketer/mcp/server.py +17 -5
- {mcp_ticketer-0.1.2.dist-info → mcp_ticketer-0.1.4.dist-info}/METADATA +1 -1
- {mcp_ticketer-0.1.2.dist-info → mcp_ticketer-0.1.4.dist-info}/RECORD +9 -9
- {mcp_ticketer-0.1.2.dist-info → mcp_ticketer-0.1.4.dist-info}/WHEEL +0 -0
- {mcp_ticketer-0.1.2.dist-info → mcp_ticketer-0.1.4.dist-info}/entry_points.txt +0 -0
- {mcp_ticketer-0.1.2.dist-info → mcp_ticketer-0.1.4.dist-info}/licenses/LICENSE +0 -0
- {mcp_ticketer-0.1.2.dist-info → mcp_ticketer-0.1.4.dist-info}/top_level.txt +0 -0
mcp_ticketer/__version__.py
CHANGED
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
|
-
|
|
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():
|
mcp_ticketer/mcp/server.py
CHANGED
|
@@ -306,10 +306,10 @@ class MCPTicketServer:
|
|
|
306
306
|
Server capabilities
|
|
307
307
|
"""
|
|
308
308
|
return {
|
|
309
|
-
"protocolVersion": "1.0
|
|
309
|
+
"protocolVersion": "0.1.0",
|
|
310
310
|
"serverInfo": {
|
|
311
311
|
"name": "mcp-ticketer",
|
|
312
|
-
"version": "0.1.
|
|
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
|
-
|
|
407
|
-
|
|
408
|
-
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
31
|
-
mcp_ticketer-0.1.
|
|
32
|
-
mcp_ticketer-0.1.
|
|
33
|
-
mcp_ticketer-0.1.
|
|
34
|
-
mcp_ticketer-0.1.
|
|
35
|
-
mcp_ticketer-0.1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|