@enfyra/mcp-server 0.0.83 → 0.0.84

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.
package/README.md CHANGED
@@ -12,7 +12,7 @@ From your project root:
12
12
  npx @enfyra/mcp-server config
13
13
  ```
14
14
 
15
- The config command can write user-level Codex config plus project config for Claude Code and Cursor. It preserves other MCP servers and replaces only the `enfyra` entry.
15
+ The config command writes project config for Codex, Claude Code, and Cursor. It preserves other MCP servers and replaces only the `enfyra` entry.
16
16
 
17
17
  Interactive setup asks for `ENFYRA_APP_URL` first, then asks for `ENFYRA_API_TOKEN`. The MCP API base is inferred as `<app>/api`, and the token page is inferred as `<app>/me`. For example, `https://demo.enfyra.io` becomes API base `https://demo.enfyra.io/api` and token page `https://demo.enfyra.io/me`.
18
18
 
@@ -37,7 +37,7 @@ yarn mcp:config
37
37
 
38
38
  | Client | Command | Project config |
39
39
  |--------|---------|----------------|
40
- | Codex | `npx @enfyra/mcp-server config --codex` | `~/.codex/config.toml` |
40
+ | Codex | `npx @enfyra/mcp-server config --codex` | `.codex/config.toml` |
41
41
  | Claude Code | `npx @enfyra/mcp-server config --claude-code` | `.mcp.json` |
42
42
  | Cursor | `npx @enfyra/mcp-server config --cursor` | `.cursor/mcp.json` |
43
43
  | MCP Inspector / other hosts | Paste the shared STDIO config below | Host-specific `mcpServers` config |
@@ -49,7 +49,7 @@ yarn mcp:config
49
49
  npx @enfyra/mcp-server config --codex
50
50
  ```
51
51
 
52
- Generated user config:
52
+ Generated project config:
53
53
 
54
54
  ```toml
55
55
  [mcp_servers.enfyra]
@@ -61,9 +61,9 @@ ENFYRA_API_URL = "http://localhost:3000/api"
61
61
  ENFYRA_API_TOKEN = "efy_pat_your-token"
62
62
  ```
63
63
 
64
- The writer replaces only `[mcp_servers.enfyra]` and `[mcp_servers.enfyra.env]` in the user-level Codex config. Other Codex config and other MCP servers are preserved.
64
+ The writer replaces only `[mcp_servers.enfyra]` and `[mcp_servers.enfyra.env]`. Other Codex config and other MCP servers are preserved.
65
65
 
66
- Restart Codex or start a new Codex session so user MCP config is loaded. The setup command does not create project `.codex/config.toml`, because project-scoped executable MCP config can trigger Codex workspace safety checks.
66
+ Open this folder in a new Codex session and approve the project MCP config if prompted. The setup command only writes `.codex/config.toml`; it does not ship or create `.codex/skills`.
67
67
 
68
68
  Official reference: [Codex config](https://developers.openai.com/codex/config-reference).
69
69
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enfyra/mcp-server",
3
- "version": "0.0.83",
3
+ "version": "0.0.84",
4
4
  "description": "MCP server for Enfyra - manage Enfyra instances from MCP-compatible coding tools",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -23,7 +23,7 @@ const style = {
23
23
  const clients = {
24
24
  codex: {
25
25
  label: 'Codex',
26
- path: '~/.codex/config.toml',
26
+ path: './.codex/config.toml',
27
27
  color: style.green,
28
28
  },
29
29
  claude: {
@@ -61,7 +61,7 @@ ${style.bold('Usage')}
61
61
  npx @enfyra/mcp-server config [options]
62
62
 
63
63
  ${style.bold('Supported clients')}
64
- Codex ~/.codex/config.toml
64
+ Codex ./.codex/config.toml
65
65
  Claude Code ./.mcp.json
66
66
  Cursor ./.cursor/mcp.json
67
67
  Other MCP hosts can use the shared stdio JSON from the README.
@@ -69,7 +69,7 @@ ${style.bold('Supported clients')}
69
69
  ${style.bold('Options')}
70
70
  --app-url <url> Enfyra app/admin URL, for example https://demo.enfyra.io
71
71
  --api-token, -t <secret> ENFYRA_API_TOKEN
72
- --global Write Claude Code/Cursor global config instead of project config; Codex is always user-level
72
+ --global Write global/user config for selected clients instead of project config
73
73
  --reconfig Always choose target again in interactive mode and replace the old enfyra config for that target
74
74
  --yes Non-interactive: no prompts (CI / scripts); use CLI, env, existing file, then defaults
75
75
 
@@ -78,7 +78,7 @@ ${style.bold('Client selection')}
78
78
 
79
79
  --claude-code, --claude, --claude-only Only ./.mcp.json (Claude Code project scope)
80
80
  --cursor, --cursor-only Only ./.cursor/mcp.json (Cursor)
81
- --codex, --codex-only Only ~/.codex/config.toml (Codex user scope)
81
+ --codex, --codex-only Only ./.codex/config.toml (Codex project scope)
82
82
  Passing multiple target flags writes each selected target.
83
83
 
84
84
  -h, --help Show this help
@@ -287,7 +287,7 @@ async function readCodexEnfyraEnv(absPath) {
287
287
  }
288
288
 
289
289
  function getCodexConfigPath(root, globalScope) {
290
- return join(homedir(), '.codex', 'config.toml');
290
+ return globalScope ? join(homedir(), '.codex', 'config.toml') : join(root, '.codex', 'config.toml');
291
291
  }
292
292
 
293
293
  function getClaudeConfigPath(root, globalScope) {
@@ -361,7 +361,7 @@ async function promptTargetChoice() {
361
361
  const rl = createInterface({ input, output });
362
362
  const line = (await rl.question(
363
363
  'Where should Enfyra MCP config be written?\n'
364
- + ' [1] Codex ~/.codex/config.toml\n'
364
+ + ' [1] Codex ./.codex/config.toml\n'
365
365
  + ' [2] Claude Code ./.mcp.json\n'
366
366
  + ' [3] Cursor ./.cursor/mcp.json\n'
367
367
  + ' [4] All [default]\n'
@@ -595,14 +595,7 @@ export async function runLocalConfig(argv) {
595
595
  written.push({ client: 'cursor', path: p });
596
596
  }
597
597
 
598
- const hasProjectConfig = writeClaude || writeCursor;
599
- const scopeLabel = opts.global
600
- ? 'global/user'
601
- : writeCodex && hasProjectConfig
602
- ? 'project + Codex user'
603
- : writeCodex
604
- ? 'Codex user'
605
- : 'project';
598
+ const scopeLabel = opts.global ? 'global/user' : 'project';
606
599
  console.log(`${statusIcon('success')} ${style.bold(style.green('Enfyra MCP config updated'))} ${style.dim(`(${scopeLabel})`)}\n`);
607
600
  for (const entry of written) {
608
601
  const meta = clients[entry.client];
@@ -613,7 +606,7 @@ export async function runLocalConfig(argv) {
613
606
  const selectedClients = new Set(written.map(entry => entry.client));
614
607
  console.log(`\n${style.bold(style.blue('Next steps'))}`);
615
608
  if (selectedClients.has('codex')) {
616
- console.log(' - Codex: restart Codex or start a new Codex session so user MCP config is loaded.');
609
+ console.log(' - Codex: open this folder in a new Codex session and approve the project MCP config if prompted.');
617
610
  }
618
611
  if (selectedClients.has('claude')) {
619
612
  console.log(' - Claude Code: open this folder; approve project MCP if prompted.');