@jam-mcp/server 1.0.0 → 1.0.1
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
|
@@ -38,22 +38,29 @@ source, that source is what settles the question.
|
|
|
38
38
|
|
|
39
39
|
## Running it
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Don't install this package to use JAM. Your coding agent launches
|
|
42
42
|
[`@jam-mcp/launcher`](https://www.npmjs.com/package/@jam-mcp/launcher), which
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
reads your `~/.jam/config.yaml`, decides which JAM build this machine should
|
|
44
|
+
run, and dispatches here. Naming the server directly instead pins one machine
|
|
45
|
+
to one build and bypasses that choice — and it is what keeps a committed
|
|
46
|
+
`.mcp.json` free of machine-specific paths.
|
|
46
47
|
|
|
47
|
-
The
|
|
48
|
+
The same binary carries the CLI, and every command below is reachable through
|
|
49
|
+
the launcher:
|
|
48
50
|
|
|
49
51
|
```text
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
serve Run the MCP server over stdio
|
|
53
|
+
doctor Diagnose config, credentials and Jira connectivity
|
|
54
|
+
setup Wire up JAM and verify (personal by default; --shared for the team)
|
|
55
|
+
auth login Store Jira credentials in this user's OS secret store
|
|
56
|
+
runtime Show or change which JAM build this machine runs
|
|
55
57
|
```
|
|
56
58
|
|
|
59
|
+
Written out, that is `npx --yes @jam-mcp/launcher@1.0.1 doctor`, or just `jam
|
|
60
|
+
doctor` if you took the launcher's optional global install. Starting from
|
|
61
|
+
nothing — no install, no runtime chosen yet — use
|
|
62
|
+
`npx --yes @jam-mcp/bootstrap@1.0.1 init` instead.
|
|
63
|
+
|
|
57
64
|
Credentials come from the process environment or this user's OS secret store —
|
|
58
65
|
never from a repository file — and never appear in logs, telemetry, or tool
|
|
59
66
|
results. `stdout` is reserved for the MCP protocol and for JSON output;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LAUNCHER_PACKAGE_SPEC } from "@jam-mcp/launcher";
|
|
1
2
|
/**
|
|
2
3
|
* The canonical jam entry for a project's `.mcp.json`.
|
|
3
4
|
*
|
|
@@ -9,10 +10,10 @@
|
|
|
9
10
|
* Pinned to an exact version. A floating tag would silently change what a
|
|
10
11
|
* teammate's editor launches.
|
|
11
12
|
*/
|
|
12
|
-
export
|
|
13
|
+
export { LAUNCHER_PACKAGE_SPEC };
|
|
13
14
|
export declare const JAM_MCP_ENTRY: {
|
|
14
15
|
readonly command: "npx";
|
|
15
|
-
readonly args: readonly ["--yes", "@jam-mcp/launcher@1.0.
|
|
16
|
+
readonly args: readonly ["--yes", "@jam-mcp/launcher@1.0.1", "serve"];
|
|
16
17
|
};
|
|
17
18
|
/**
|
|
18
19
|
* Recognise wiring from before the launcher existed: a hard-coded path to one
|
|
@@ -48,11 +49,11 @@ export declare function inspectMcpConfig(root: string): McpInspection;
|
|
|
48
49
|
*/
|
|
49
50
|
export declare function writeJamMcpEntry(root: string, entry?: unknown): string;
|
|
50
51
|
/**
|
|
51
|
-
* Merge
|
|
52
|
+
* Merge the launcher entry into `.mcp.json`, preserving everything else.
|
|
52
53
|
*
|
|
53
|
-
* Deliberately
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
54
|
+
* Deliberately records neither an absolute path to a JAM checkout nor a bare
|
|
55
|
+
* `jam` - the first breaks the moment a teammate clones somewhere else, and
|
|
56
|
+
* the second assumes an optional global install every teammate would have to
|
|
57
|
+
* have made. `npx` at an exact launcher version assumes only npm.
|
|
57
58
|
*/
|
|
58
59
|
export declare function mergeMcpConfig(root: string): McpMergeResult;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import {
|
|
3
|
+
import { LAUNCHER_PACKAGE_SPEC } from "@jam-mcp/launcher";
|
|
4
4
|
/**
|
|
5
5
|
* The canonical jam entry for a project's `.mcp.json`.
|
|
6
6
|
*
|
|
@@ -12,7 +12,7 @@ import { SERVER_VERSION } from "@jam-mcp/launcher";
|
|
|
12
12
|
* Pinned to an exact version. A floating tag would silently change what a
|
|
13
13
|
* teammate's editor launches.
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
15
|
+
export { LAUNCHER_PACKAGE_SPEC };
|
|
16
16
|
export const JAM_MCP_ENTRY = {
|
|
17
17
|
command: "npx",
|
|
18
18
|
args: ["--yes", LAUNCHER_PACKAGE_SPEC, "serve"],
|
|
@@ -86,12 +86,12 @@ export function writeJamMcpEntry(root, entry = JAM_MCP_ENTRY) {
|
|
|
86
86
|
return path;
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
-
* Merge
|
|
89
|
+
* Merge the launcher entry into `.mcp.json`, preserving everything else.
|
|
90
90
|
*
|
|
91
|
-
* Deliberately
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
91
|
+
* Deliberately records neither an absolute path to a JAM checkout nor a bare
|
|
92
|
+
* `jam` - the first breaks the moment a teammate clones somewhere else, and
|
|
93
|
+
* the second assumes an optional global install every teammate would have to
|
|
94
|
+
* have made. `npx` at an exact launcher version assumes only npm.
|
|
95
95
|
*/
|
|
96
96
|
export function mergeMcpConfig(root) {
|
|
97
97
|
const path = join(root, ".mcp.json");
|
|
@@ -57,6 +57,14 @@ export type SetupPlan = {
|
|
|
57
57
|
}[];
|
|
58
58
|
/** Why a requested migration was refused, when status is JAM_MIGRATION_TARGET_UNAVAILABLE. */
|
|
59
59
|
migrationTarget?: MigrationTarget;
|
|
60
|
+
/**
|
|
61
|
+
* What a person or an agent has to do next.
|
|
62
|
+
*
|
|
63
|
+
* `command` is executable on a machine with nothing installed and no runtime
|
|
64
|
+
* configured - so it is an `npx` bootstrap invocation, never a bare `jam`.
|
|
65
|
+
* A human interface is free to render the short form; this field is the one
|
|
66
|
+
* a script runs, and a script has no PATH to rely on.
|
|
67
|
+
*/
|
|
60
68
|
nextAction?: {
|
|
61
69
|
type: "authenticate" | "select_project" | "configure_runtime";
|
|
62
70
|
command?: string;
|
|
@@ -3,6 +3,7 @@ import { CONFIG_RELATIVE_PATH } from "../config/load-config.js";
|
|
|
3
3
|
import { hostRegistration } from "./host-mcp.js";
|
|
4
4
|
import { projectBindingsPath } from "./project-bindings.js";
|
|
5
5
|
import { decideProjectKey } from "./project-config-bootstrapper.js";
|
|
6
|
+
import { portableBootstrapCommand } from "@jam-mcp/launcher";
|
|
6
7
|
/**
|
|
7
8
|
* Decide what setup would do, changing nothing.
|
|
8
9
|
*
|
|
@@ -47,7 +48,7 @@ export function computeSetupPlan(state, options = {}) {
|
|
|
47
48
|
code: "JAM_PROJECT_SELECTION_REQUIRED",
|
|
48
49
|
changes: [],
|
|
49
50
|
requiresUserAction: true,
|
|
50
|
-
nextAction: { type: "select_project", command: "
|
|
51
|
+
nextAction: { type: "select_project", command: portableBootstrapCommand("setup --project <KEY>") },
|
|
51
52
|
project: { root: state.project.root },
|
|
52
53
|
};
|
|
53
54
|
}
|
|
@@ -122,7 +123,7 @@ function finish(changes, state, project) {
|
|
|
122
123
|
code: "JAM_RUNTIME_CONFIG_MISSING",
|
|
123
124
|
changes,
|
|
124
125
|
requiresUserAction: true,
|
|
125
|
-
nextAction: { type: "configure_runtime", command: "
|
|
126
|
+
nextAction: { type: "configure_runtime", command: portableBootstrapCommand("runtime use package") },
|
|
126
127
|
project,
|
|
127
128
|
};
|
|
128
129
|
}
|
package/dist/cli/setup-wizard.js
CHANGED
|
@@ -133,7 +133,7 @@ async function chooseRuntime(ui, options) {
|
|
|
133
133
|
{
|
|
134
134
|
value: "package",
|
|
135
135
|
label: "Use JAM",
|
|
136
|
-
hint: "Run the
|
|
136
|
+
hint: "Run the published JAM release. Recommended for most users.",
|
|
137
137
|
},
|
|
138
138
|
{ value: "development", label: "Develop JAM", hint: "Run a local source checkout." },
|
|
139
139
|
], "Run: jam runtime use package");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jam-mcp/server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "JAM (Jira Agent MCP) - agent-facing Jira access layer: MCP server, setup core, and CLI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jira",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"author": "colosair (https://github.com/colosair)",
|
|
23
23
|
"type": "module",
|
|
24
24
|
"bin": {
|
|
25
|
-
"jam": "dist/index.js"
|
|
25
|
+
"jam-server": "dist/index.js"
|
|
26
26
|
},
|
|
27
27
|
"main": "dist/index.js",
|
|
28
28
|
"types": "dist/index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"test:watch": "vitest"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@jam-mcp/launcher": "1.0.
|
|
44
|
+
"@jam-mcp/launcher": "1.0.1",
|
|
45
45
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
46
46
|
"yaml": "^2.9.0",
|
|
47
47
|
"zod": "^4.4.3"
|