mcp-ticketer 0.1.15__py3-none-any.whl → 0.1.16__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.15"
3
+ __version__ = "0.1.16"
4
4
  __version_info__ = tuple(int(part) for part in __version__.split("."))
5
5
 
6
6
  # Package metadata
mcp_ticketer/cli/main.py CHANGED
@@ -71,10 +71,34 @@ class AdapterType(str, Enum):
71
71
 
72
72
 
73
73
  def load_config() -> dict:
74
- """Load configuration from file."""
74
+ """Load configuration from file.
75
+
76
+ Resolution order:
77
+ 1. Project-specific config (.mcp-ticketer/config.json in cwd)
78
+ 2. Global config (~/.mcp-ticketer/config.json)
79
+
80
+ Returns:
81
+ Configuration dictionary
82
+ """
83
+ # Check project-specific config first
84
+ project_config = Path.cwd() / ".mcp-ticketer" / "config.json"
85
+ if project_config.exists():
86
+ try:
87
+ with open(project_config, "r") as f:
88
+ return json.load(f)
89
+ except (json.JSONDecodeError, IOError) as e:
90
+ console.print(f"[yellow]Warning: Could not load project config: {e}[/yellow]")
91
+ # Fall through to global config
92
+
93
+ # Fall back to global config
75
94
  if CONFIG_FILE.exists():
76
- with open(CONFIG_FILE, "r") as f:
77
- return json.load(f)
95
+ try:
96
+ with open(CONFIG_FILE, "r") as f:
97
+ return json.load(f)
98
+ except (json.JSONDecodeError, IOError) as e:
99
+ console.print(f"[yellow]Warning: Could not load global config: {e}[/yellow]")
100
+
101
+ # Default fallback
78
102
  return {"adapter": "aitrackdown", "config": {"base_path": ".aitrackdown"}}
79
103
 
80
104
 
@@ -1152,10 +1176,18 @@ def serve(
1152
1176
 
1153
1177
  This command is used by Claude Code/Desktop when connecting to the MCP server.
1154
1178
  You typically don't need to run this manually - use 'mcp-ticketer mcp' to configure.
1179
+
1180
+ Configuration Resolution:
1181
+ - When MCP server starts, it uses the current working directory (cwd)
1182
+ - The cwd is set by Claude Code/Desktop from the 'cwd' field in .mcp/config.json
1183
+ - Configuration is loaded with this priority:
1184
+ 1. Project-specific: .mcp-ticketer/config.json in cwd
1185
+ 2. Global: ~/.mcp-ticketer/config.json
1186
+ 3. Default: aitrackdown adapter with .aitrackdown base path
1155
1187
  """
1156
1188
  from ..mcp.server import MCPTicketServer
1157
1189
 
1158
- # Load configuration
1190
+ # Load configuration (respects project-specific config in cwd)
1159
1191
  config = load_config()
1160
1192
 
1161
1193
  # Determine adapter type
mcp_ticketer/cli/utils.py CHANGED
@@ -31,10 +31,34 @@ class CommonPatterns:
31
31
 
32
32
  @staticmethod
33
33
  def load_config() -> dict:
34
- """Load configuration from file."""
34
+ """Load configuration from file.
35
+
36
+ Resolution order:
37
+ 1. Project-specific config (.mcp-ticketer/config.json in cwd)
38
+ 2. Global config (~/.mcp-ticketer/config.json)
39
+
40
+ Returns:
41
+ Configuration dictionary
42
+ """
43
+ # Check project-specific config first
44
+ project_config = Path.cwd() / ".mcp-ticketer" / "config.json"
45
+ if project_config.exists():
46
+ try:
47
+ with open(project_config, "r") as f:
48
+ return json.load(f)
49
+ except (json.JSONDecodeError, IOError) as e:
50
+ console.print(f"[yellow]Warning: Could not load project config: {e}[/yellow]")
51
+ # Fall through to global config
52
+
53
+ # Fall back to global config
35
54
  if CommonPatterns.CONFIG_FILE.exists():
36
- with open(CommonPatterns.CONFIG_FILE, "r") as f:
37
- return json.load(f)
55
+ try:
56
+ with open(CommonPatterns.CONFIG_FILE, "r") as f:
57
+ return json.load(f)
58
+ except (json.JSONDecodeError, IOError) as e:
59
+ console.print(f"[yellow]Warning: Could not load global config: {e}[/yellow]")
60
+
61
+ # Default fallback
38
62
  return {"adapter": "aitrackdown", "config": {"base_path": ".aitrackdown"}}
39
63
 
40
64
  @staticmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-ticketer
3
- Version: 0.1.15
3
+ Version: 0.1.16
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=OaT1sLIF9tJvQbLP2vx2vOgiGiMS2mbt4EzloZeALPo,1115
2
+ mcp_ticketer/__version__.py,sha256=VU-W9BGb5-hfF3jvOPn-c-W8RnOMrAL8rswIa9JjVSE,1115
3
3
  mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  mcp_ticketer/adapters/__init__.py,sha256=K_1egvhHb5F_7yFceUx2YzPGEoc7vX-q8dMVaS4K6gw,356
5
5
  mcp_ticketer/adapters/aitrackdown.py,sha256=gqS_N6VGLoG5itUu17ANG5SefaAITYoW-t2xL9SrY-Y,15372
@@ -12,11 +12,11 @@ mcp_ticketer/cache/memory.py,sha256=gTzv-xF7qGfiYVUjG7lnzo0ZcqgXQajMl4NAYUcaytg,
12
12
  mcp_ticketer/cli/__init__.py,sha256=YeljyLtv906TqkvRuEPhmKO-Uk0CberQ9I6kx1tx2UA,88
13
13
  mcp_ticketer/cli/configure.py,sha256=etFutvc0QpaVDMOsZiiN7wKuaT98Od1Tj9W6lsEWw5A,16351
14
14
  mcp_ticketer/cli/discover.py,sha256=putWrGcctUH8K0fOMtr9MZA9VnWoXzbtoe7mXSkDxhg,13156
15
- mcp_ticketer/cli/main.py,sha256=HxvlZb4ZGxWoqOLwp2eIoS9Ie7C8LF-gShdnwolqVrE,39135
15
+ mcp_ticketer/cli/main.py,sha256=WGYXZ0r0Iv296qrCMZLPGHUAWagRhkAgqAm-lJSnyUY,40428
16
16
  mcp_ticketer/cli/mcp_configure.py,sha256=1WbBdF25OvxfAGcjxtYa9xmBOGEPQu-wh_nkefmWjMQ,9352
17
17
  mcp_ticketer/cli/migrate_config.py,sha256=iZIstnlr9vkhiW_MlnSyJOkMi4KHQqrZ6Hz1ECD_VUk,6045
18
18
  mcp_ticketer/cli/queue_commands.py,sha256=f3pEHKZ43dBHEIoCBvdfvjfMB9_WJltps9ATwTzorY0,8160
19
- mcp_ticketer/cli/utils.py,sha256=NxsS91vKA8xZnDXKU2y0Gcyc4I_ctRyJj-wT7Xd1Q_Q,18589
19
+ mcp_ticketer/cli/utils.py,sha256=cdP-7GHtELAPZtqInUC24k_SAnRbIRkafIP3T4kMZDM,19509
20
20
  mcp_ticketer/core/__init__.py,sha256=qpCZveQMyqU2JvYG9MG_c6X35z_VoSmjWdXGcUZqqmA,348
21
21
  mcp_ticketer/core/adapter.py,sha256=6KfhceINHfDjs--RyA_rOLeM2phVD_D85S9D6s2lcuU,10075
22
22
  mcp_ticketer/core/config.py,sha256=9a2bksbcFr7KXeHSPY6KoSP5Pzt54utYPCmbM-1QKmk,13932
@@ -34,9 +34,9 @@ mcp_ticketer/queue/manager.py,sha256=79AH9oUxdBXH3lmJ3kIlFf2GQkWHL6XB6u5JqVWPq60
34
34
  mcp_ticketer/queue/queue.py,sha256=z4aivQCtsH5_OUr2OfXSfnFKzugTahNnwHw0LS3ZhZc,11549
35
35
  mcp_ticketer/queue/run_worker.py,sha256=HFoykfDpOoz8OUxWbQ2Fka_UlGrYwjPVZ-DEimGFH9o,802
36
36
  mcp_ticketer/queue/worker.py,sha256=cVjHR_kfnGKAkiUg0HuXCnbKeKNBBEuj0XZHgIuIn4k,14017
37
- mcp_ticketer-0.1.15.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
38
- mcp_ticketer-0.1.15.dist-info/METADATA,sha256=VYRxHsh-APXWl3wdmdNSfiniYI84jQwFiVaZ9Y5oOBA,11211
39
- mcp_ticketer-0.1.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
40
- mcp_ticketer-0.1.15.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
41
- mcp_ticketer-0.1.15.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
42
- mcp_ticketer-0.1.15.dist-info/RECORD,,
37
+ mcp_ticketer-0.1.16.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
38
+ mcp_ticketer-0.1.16.dist-info/METADATA,sha256=2Fa_rzfQvRRW-6e52xz_umAJlztAjQn1DMSQaTzcTEE,11211
39
+ mcp_ticketer-0.1.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
40
+ mcp_ticketer-0.1.16.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
41
+ mcp_ticketer-0.1.16.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
42
+ mcp_ticketer-0.1.16.dist-info/RECORD,,