create-academic-research 0.1.1 → 0.1.2

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
@@ -14,6 +14,9 @@ Equivalent explicit form:
14
14
  npx create-academic-research@latest my-project
15
15
  ```
16
16
 
17
+ Prefer the explicit `@latest` form. Some npm/npx versions reuse an older
18
+ cached creator when the version is omitted.
19
+
17
20
  From GitHub:
18
21
 
19
22
  ```bash
@@ -112,10 +115,10 @@ MCP commands are split by side-effect:
112
115
  | `mcp list` | List known MCP servers with enabled/available status. |
113
116
  | `mcp enabled` | List only enabled MCP server ids. |
114
117
  | `mcp available` | List the local MCP catalog. |
115
- | `mcp commands` | Print external install commands without running them. |
118
+ | `mcp commands` | Print finite external install commands without running them. Runtime-only `uvx`/`npx` servers may have no install command. |
116
119
  | `mcp enable` | Enable an MCP server in project records and generated snippets. |
117
120
  | `mcp disable` | Remove an MCP server from project records and generated snippets. |
118
- | `mcp install` | Run the external tool install command for selected MCP servers. |
121
+ | `mcp install` | Run finite external tool install commands for selected MCP servers. It must not launch stdio MCP servers. |
119
122
  | `mcp uninstall` | Run the external uninstall command when one exists. |
120
123
  | `mcp doctor` | Validate enabled MCP records and generated snippets. |
121
124
 
@@ -161,8 +164,8 @@ Releases are tag-driven. Update `package.json` and `package-lock.json`, commit
161
164
  the change, create `vX.Y.Z`, and push the tag:
162
165
 
163
166
  ```bash
164
- git tag -a v0.1.1 -m "v0.1.1"
165
- git push origin main v0.1.1
167
+ git tag -a v0.1.2 -m "v0.1.2"
168
+ git push origin main v0.1.2
166
169
  ```
167
170
 
168
171
  Once the GitHub repository is public, the release workflow validates the tag
package/dist/src/cli.js CHANGED
@@ -224,7 +224,7 @@ async function mcpCommand(argv) {
224
224
  const enabled = new Set(state.mcp_servers ?? []);
225
225
  for (const [name, server] of Object.entries(AGENT_STACK.mcp_servers)) {
226
226
  const status = enabled.has(name) ? "enabled" : "available";
227
- const installer = server.install_command || "manual";
227
+ const installer = mcpInstallMode(server.install_command, server.command);
228
228
  console.log(`${status}\t${name}\t${server.source_need}\t${installer}`);
229
229
  }
230
230
  return 0;
@@ -242,7 +242,7 @@ async function mcpCommand(argv) {
242
242
  assertOnlyOptions(parsed.flags, "mcp available", []);
243
243
  assertNoArguments(parsed.positionals, "mcp available");
244
244
  for (const [name, server] of Object.entries(AGENT_STACK.mcp_servers)) {
245
- const installer = server.install_command || "manual";
245
+ const installer = mcpInstallMode(server.install_command, server.command);
246
246
  console.log(`${name}\t${server.source_need}\t${installer}`);
247
247
  }
248
248
  return 0;
@@ -383,6 +383,11 @@ function assertOnlyOptions(flags, command, allowedOptions) {
383
383
  throw new Error(`${command} does not accept ${unexpected.map((name) => `--${name}`).join(", ")}`);
384
384
  }
385
385
  }
386
+ function mcpInstallMode(installCommand, runtimeCommand) {
387
+ if (installCommand)
388
+ return installCommand;
389
+ return runtimeCommand ? "runtime-only" : "manual";
390
+ }
386
391
  function printCreateHelp() {
387
392
  console.log([
388
393
  "Usage: create-academic-research <project-name> [options]",
@@ -399,7 +404,7 @@ function printCreateHelp() {
399
404
  " --agent <name> Agent target. Default: auto-detect.",
400
405
  " --install-skills Install project-local skills without prompting.",
401
406
  " --no-install-skills Skip project-local skill installation.",
402
- " --install-mcp-tools Run external MCP install commands after creation.",
407
+ " --install-mcp-tools Run finite external MCP install commands after creation.",
403
408
  " -h, --help Show this help.",
404
409
  " -v, --version Show package version."
405
410
  ].join("\n"));
@@ -441,7 +446,7 @@ function printMcpHelp() {
441
446
  console.log([
442
447
  "Usage: academic-research mcp <list|enabled|available|commands|enable|disable|install|uninstall|doctor> [servers...]",
443
448
  "",
444
- "Manage MCP records and explicit external MCP tool installs.",
449
+ "Manage MCP records and finite external MCP tool installs.",
445
450
  "",
446
451
  "Options:",
447
452
  " --root <path> Project root for project-state commands.",
@@ -205,7 +205,7 @@ async function writeGeneratedPackageJson(root, { slug }) {
205
205
  const path = join(root, "package.json");
206
206
  const data = await readJson(path);
207
207
  const existingSpec = data.devDependencies?.["create-academic-research"];
208
- const packageSpec = process.env.CREATE_ACADEMIC_RESEARCH_PACKAGE_SPEC ?? existingSpec ?? "^0.1.1";
208
+ const packageSpec = process.env.CREATE_ACADEMIC_RESEARCH_PACKAGE_SPEC ?? existingSpec ?? "^0.1.2";
209
209
  data.name = slug;
210
210
  data.devDependencies = {
211
211
  ...(data.devDependencies ?? {}),
package/dist/src/stack.js CHANGED
@@ -112,7 +112,7 @@ export const AGENT_STACK = {
112
112
  "semantic-scholar": {
113
113
  priority: "default",
114
114
  source_need: "Semantic Scholar papers, citations, authors, and recommendations.",
115
- install_command: "uvx --from git+https://github.com/akapet00/semantic-scholar-mcp semantic-scholar-mcp --help",
115
+ install_command: "",
116
116
  uninstall_command: "",
117
117
  command: "uvx",
118
118
  args: ["--from", "git+https://github.com/akapet00/semantic-scholar-mcp", "semantic-scholar-mcp"],
@@ -123,7 +123,7 @@ export const AGENT_STACK = {
123
123
  openalex: {
124
124
  priority: "default",
125
125
  source_need: "OpenAlex broad scholarly graph.",
126
- install_command: "npx -y @cyanheads/openalex-mcp-server --help",
126
+ install_command: "",
127
127
  uninstall_command: "",
128
128
  command: "npx",
129
129
  args: ["-y", "@cyanheads/openalex-mcp-server"],
@@ -145,7 +145,7 @@ export const AGENT_STACK = {
145
145
  pubmed: {
146
146
  priority: "domain-specific",
147
147
  source_need: "PubMed and biomedical literature.",
148
- install_command: "npx -y @cyanheads/pubmed-mcp-server --help",
148
+ install_command: "",
149
149
  uninstall_command: "",
150
150
  command: "npx",
151
151
  args: ["-y", "@cyanheads/pubmed-mcp-server"],
@@ -156,7 +156,7 @@ export const AGENT_STACK = {
156
156
  zotero: {
157
157
  priority: "local-library",
158
158
  source_need: "Zotero local library and attachments.",
159
- install_command: "uvx zoty --help",
159
+ install_command: "",
160
160
  uninstall_command: "",
161
161
  command: "uvx",
162
162
  args: ["zoty", "mcp"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-academic-research",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Create and manage agent-ready academic research repositories.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -64,9 +64,9 @@ npx academic-research mcp install arxiv
64
64
 
65
65
  `skills list` reports installed project-local skills. `skills presets` reports
66
66
  available install presets. `mcp enable` changes project records. `mcp commands`
67
- prints external install commands without running them. `mcp install` runs
68
- external tool installation commands and should be used only after reviewing the
69
- selected MCP.
67
+ prints finite external install commands without running them. `mcp install`
68
+ runs only finite tool installation commands; runtime-only `uvx`/`npx` MCP
69
+ servers may have no install step and are started later by the MCP client.
70
70
 
71
71
  `default` installs the companion academic research skill package and keeps the
72
72
  MCP records focused on core scholarly discovery. `enhanced` adds complementary
@@ -12,6 +12,6 @@
12
12
  "mcp:doctor": "academic-research mcp doctor"
13
13
  },
14
14
  "devDependencies": {
15
- "create-academic-research": "^0.1.1"
15
+ "create-academic-research": "^0.1.2"
16
16
  }
17
17
  }