@granoflow/mcp-server 0.1.2 → 0.1.4
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 +26 -4
- package/dist/metadata.d.ts +1 -1
- package/dist/metadata.js +1 -1
- package/dist/setup.d.ts +10 -0
- package/dist/setup.js +37 -0
- package/dist/setup.js.map +1 -1
- package/dist/tools.js +325 -0
- package/dist/tools.js.map +1 -1
- package/docs/release-checklist.md +161 -0
- package/docs/user-install-demo.md +140 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -42,6 +42,20 @@ file; keep `GRANOFLOW_API_TOKEN` in the MCP client environment.
|
|
|
42
42
|
npm install -g @granoflow/mcp-server
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
+
For a user-facing setup walkthrough, see
|
|
46
|
+
[Granoflow MCP User Install And Demo Guide](docs/user-install-demo.md).
|
|
47
|
+
|
|
48
|
+
For maintainers, see
|
|
49
|
+
[Granoflow MCP Release Checklist](docs/release-checklist.md).
|
|
50
|
+
|
|
51
|
+
## Release Branch Policy
|
|
52
|
+
|
|
53
|
+
- `develop` is the active integration branch. It may contain unverified or
|
|
54
|
+
unreleased changes.
|
|
55
|
+
- `main` is the npm release branch. Publish `@granoflow/mcp-server` latest only
|
|
56
|
+
from `main`.
|
|
57
|
+
- Merge or fast-forward `develop` into `main` only after release preflight passes.
|
|
58
|
+
|
|
45
59
|
For local development:
|
|
46
60
|
|
|
47
61
|
```bash
|
|
@@ -60,8 +74,7 @@ npx -y @granoflow/mcp-server --help
|
|
|
60
74
|
Before publishing a release, verify the package contents:
|
|
61
75
|
|
|
62
76
|
```bash
|
|
63
|
-
npm run
|
|
64
|
-
npm pack --dry-run
|
|
77
|
+
npm run release:preflight
|
|
65
78
|
```
|
|
66
79
|
|
|
67
80
|
## Tools
|
|
@@ -86,12 +99,18 @@ Initial tools:
|
|
|
86
99
|
- `granoflow_task_update`
|
|
87
100
|
- `granoflow_task_update_structured`
|
|
88
101
|
- `granoflow_task_complete`
|
|
102
|
+
- `granoflow_task_finish`
|
|
103
|
+
- `granoflow_task_resolve`
|
|
89
104
|
- `granoflow_project_list`
|
|
105
|
+
- `granoflow_project_resolve`
|
|
90
106
|
- `granoflow_project_create`
|
|
91
107
|
- `granoflow_project_update`
|
|
108
|
+
- `granoflow_project_delete`
|
|
92
109
|
- `granoflow_milestone_list`
|
|
110
|
+
- `granoflow_milestone_resolve`
|
|
93
111
|
- `granoflow_milestone_create`
|
|
94
112
|
- `granoflow_milestone_update`
|
|
113
|
+
- `granoflow_milestone_delete`
|
|
95
114
|
- `granoflow_review_day_show`
|
|
96
115
|
- `granoflow_api_request`
|
|
97
116
|
|
|
@@ -101,6 +120,8 @@ running app exposes newer fields before this package has first-class schemas.
|
|
|
101
120
|
|
|
102
121
|
Write tools default to dry-run behavior. Ask the tool to write only after you
|
|
103
122
|
have reviewed the preview or the user has explicitly requested a write.
|
|
123
|
+
Delete tools also require the current resource title before writing, and refuse
|
|
124
|
+
linked tasks unless the caller explicitly accepts that impact.
|
|
104
125
|
|
|
105
126
|
## Setup Diagnostics
|
|
106
127
|
|
|
@@ -108,8 +129,9 @@ Use the setup tools when an agent or MCP client needs to connect to a local
|
|
|
108
129
|
Granoflow app without hand-editing every setting first:
|
|
109
130
|
|
|
110
131
|
- `granoflow_setup_status` reports config path, env/config precedence, token
|
|
111
|
-
presence, Local HTTP API health, version metadata,
|
|
112
|
-
evidence without printing
|
|
132
|
+
presence, MCP server version, Local HTTP API health, version metadata,
|
|
133
|
+
capability summary, and local Granoflow process evidence without printing
|
|
134
|
+
secrets.
|
|
113
135
|
- `granoflow_setup_detect_local_api` probes a small bounded localhost port list
|
|
114
136
|
only.
|
|
115
137
|
- `granoflow_setup_write_config` previews or writes non-secret config. It
|
package/dist/metadata.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const SERVER_NAME = "granoflow-mcp-server";
|
|
2
|
-
export declare const SERVER_VERSION = "0.1.
|
|
2
|
+
export declare const SERVER_VERSION = "0.1.4";
|
package/dist/metadata.js
CHANGED
package/dist/setup.d.ts
CHANGED
|
@@ -29,6 +29,10 @@ export declare function getSetupStatus(options?: SetupOptions): Promise<{
|
|
|
29
29
|
present: boolean;
|
|
30
30
|
source: "env" | "none";
|
|
31
31
|
};
|
|
32
|
+
mcp: {
|
|
33
|
+
serverName: string;
|
|
34
|
+
serverVersion: string;
|
|
35
|
+
};
|
|
32
36
|
health: {
|
|
33
37
|
appProcess: Record<string, unknown>;
|
|
34
38
|
ok: boolean;
|
|
@@ -48,6 +52,7 @@ export declare function getSetupStatus(options?: SetupOptions): Promise<{
|
|
|
48
52
|
};
|
|
49
53
|
};
|
|
50
54
|
version: import("./api.js").ApiResult;
|
|
55
|
+
capabilities: Record<string, unknown>;
|
|
51
56
|
warnings: Record<string, unknown>[];
|
|
52
57
|
nextActions: string[];
|
|
53
58
|
appProcess?: undefined;
|
|
@@ -61,8 +66,13 @@ export declare function getSetupStatus(options?: SetupOptions): Promise<{
|
|
|
61
66
|
present: boolean;
|
|
62
67
|
source: "env" | "none";
|
|
63
68
|
};
|
|
69
|
+
mcp: {
|
|
70
|
+
serverName: string;
|
|
71
|
+
serverVersion: string;
|
|
72
|
+
};
|
|
64
73
|
health: import("./api.js").ApiResult;
|
|
65
74
|
version: import("./api.js").ApiResult;
|
|
75
|
+
capabilities: Record<string, unknown>;
|
|
66
76
|
appProcess: Record<string, unknown>;
|
|
67
77
|
warnings: Record<string, unknown>[];
|
|
68
78
|
nextActions: string[];
|
package/dist/setup.js
CHANGED
|
@@ -3,6 +3,7 @@ import { mkdir, writeFile } from "node:fs/promises";
|
|
|
3
3
|
import { dirname } from "node:path";
|
|
4
4
|
import { requestGranoflowApi } from "./api.js";
|
|
5
5
|
import { configFileExists, getMcpConfigPath, readMcpConfig, resolveMcpRuntime, writeMcpConfig, } from "./config.js";
|
|
6
|
+
import { SERVER_NAME, SERVER_VERSION } from "./metadata.js";
|
|
6
7
|
const DEFAULT_PORTS = [56789, 47631, 38080];
|
|
7
8
|
const MAX_PORT_CANDIDATES = 20;
|
|
8
9
|
const PROBE_PATHS = ["/health", "/api/capabilities", "/v1/health"];
|
|
@@ -115,12 +116,44 @@ async function checkGranoflowProcess(runCommandImpl) {
|
|
|
115
116
|
};
|
|
116
117
|
}
|
|
117
118
|
}
|
|
119
|
+
function summarizeCapabilities(value) {
|
|
120
|
+
const data = isObject(value) ? value.data : null;
|
|
121
|
+
const payload = isObject(data) && isObject(data.data) ? data.data : data;
|
|
122
|
+
if (!isObject(payload)) {
|
|
123
|
+
return {
|
|
124
|
+
available: false,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
const tools = Array.isArray(payload.tools) ? payload.tools : [];
|
|
128
|
+
const aiAgent = isObject(payload.aiAgent) ? payload.aiAgent : {};
|
|
129
|
+
const aiAgentTools = Array.isArray(aiAgent.tools) ? aiAgent.tools : [];
|
|
130
|
+
const capabilities = Array.isArray(payload.capabilities) ? payload.capabilities : [];
|
|
131
|
+
const resources = isObject(payload.resources) ? Object.keys(payload.resources) : [];
|
|
132
|
+
return {
|
|
133
|
+
available: true,
|
|
134
|
+
apiVersion: payload.apiVersion,
|
|
135
|
+
appVersion: payload.appVersion,
|
|
136
|
+
resourceCount: resources.length,
|
|
137
|
+
resources,
|
|
138
|
+
toolCount: tools.length + aiAgentTools.length,
|
|
139
|
+
capabilityCount: capabilities.length,
|
|
140
|
+
tools: [...tools, ...aiAgentTools].slice(0, 20),
|
|
141
|
+
truncated: tools.length + aiAgentTools.length > 20,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function mcpRuntimeSummary() {
|
|
145
|
+
return {
|
|
146
|
+
serverName: SERVER_NAME,
|
|
147
|
+
serverVersion: SERVER_VERSION,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
118
150
|
export async function getSetupStatus(options = {}) {
|
|
119
151
|
const env = options.env ?? process.env;
|
|
120
152
|
const runCommandImpl = options.runCommand ?? runCommand;
|
|
121
153
|
const runtime = await resolveMcpRuntime(env);
|
|
122
154
|
const health = await requestGranoflowApi({ path: "/v1/health" }, env);
|
|
123
155
|
const version = await requestGranoflowApi({ path: "/v1/version" }, env);
|
|
156
|
+
const capabilities = await requestGranoflowApi({ path: "/v1/capabilities" }, env);
|
|
124
157
|
const warnings = [];
|
|
125
158
|
const appProcess = isLocalApiBaseUrl(runtime.apiBaseUrl)
|
|
126
159
|
? await checkGranoflowProcess(runCommandImpl)
|
|
@@ -162,11 +195,13 @@ export async function getSetupStatus(options = {}) {
|
|
|
162
195
|
present: runtime.hasApiToken,
|
|
163
196
|
source: runtime.apiTokenSource,
|
|
164
197
|
},
|
|
198
|
+
mcp: mcpRuntimeSummary(),
|
|
165
199
|
health: {
|
|
166
200
|
...health,
|
|
167
201
|
appProcess,
|
|
168
202
|
},
|
|
169
203
|
version,
|
|
204
|
+
capabilities: summarizeCapabilities(capabilities),
|
|
170
205
|
warnings,
|
|
171
206
|
nextActions: warnings.some((warning) => warning.code === "granoflow_app_not_running")
|
|
172
207
|
? [
|
|
@@ -189,8 +224,10 @@ export async function getSetupStatus(options = {}) {
|
|
|
189
224
|
present: runtime.hasApiToken,
|
|
190
225
|
source: runtime.apiTokenSource,
|
|
191
226
|
},
|
|
227
|
+
mcp: mcpRuntimeSummary(),
|
|
192
228
|
health,
|
|
193
229
|
version,
|
|
230
|
+
capabilities: summarizeCapabilities(capabilities),
|
|
194
231
|
appProcess,
|
|
195
232
|
warnings,
|
|
196
233
|
nextActions: health.ok
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.js
CHANGED
|
@@ -5,6 +5,7 @@ const jsonInputSchema = z
|
|
|
5
5
|
.record(z.string(), z.unknown())
|
|
6
6
|
.describe("JSON object sent to the Granoflow Local HTTP API.");
|
|
7
7
|
const resourceStatusSchema = z.string().min(1).optional();
|
|
8
|
+
const resolveMatchModeSchema = z.enum(["exact", "contains"]).default("exact");
|
|
8
9
|
function compactRecord(record) {
|
|
9
10
|
return Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
|
|
10
11
|
}
|
|
@@ -19,6 +20,259 @@ function jsonTextResult(value) {
|
|
|
19
20
|
async function apiTool(options) {
|
|
20
21
|
return jsonTextResult(await requestGranoflowApi(options));
|
|
21
22
|
}
|
|
23
|
+
function isObject(value) {
|
|
24
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
25
|
+
}
|
|
26
|
+
function unwrapApiData(value) {
|
|
27
|
+
if (!isObject(value)) {
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
const outerData = value.data;
|
|
31
|
+
if (isObject(outerData) && "items" in outerData) {
|
|
32
|
+
return outerData;
|
|
33
|
+
}
|
|
34
|
+
if (isObject(outerData) && isObject(outerData.data) && "items" in outerData.data) {
|
|
35
|
+
return outerData.data;
|
|
36
|
+
}
|
|
37
|
+
return outerData ?? value;
|
|
38
|
+
}
|
|
39
|
+
function extractItems(value) {
|
|
40
|
+
const data = unwrapApiData(value);
|
|
41
|
+
if (isObject(data) && Array.isArray(data.items)) {
|
|
42
|
+
return data.items.filter(isObject);
|
|
43
|
+
}
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
function compactResource(record) {
|
|
47
|
+
return compactRecord({
|
|
48
|
+
id: record.id,
|
|
49
|
+
title: record.title,
|
|
50
|
+
status: record.status,
|
|
51
|
+
projectId: record.projectId,
|
|
52
|
+
milestoneId: record.milestoneId,
|
|
53
|
+
dueAt: record.dueAt,
|
|
54
|
+
startedAt: record.startedAt,
|
|
55
|
+
endedAt: record.endedAt,
|
|
56
|
+
description: record.description,
|
|
57
|
+
taskReview: record.taskReview,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function titleMatches(title, query, matchMode) {
|
|
61
|
+
if (typeof title !== "string") {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
const normalizedTitle = title.trim().toLowerCase();
|
|
65
|
+
const normalizedQuery = query.trim().toLowerCase();
|
|
66
|
+
return matchMode === "exact"
|
|
67
|
+
? normalizedTitle === normalizedQuery
|
|
68
|
+
: normalizedTitle.includes(normalizedQuery);
|
|
69
|
+
}
|
|
70
|
+
function listPathFor(kind) {
|
|
71
|
+
return `/v1/${kind}s`;
|
|
72
|
+
}
|
|
73
|
+
async function resolveResource(kind, input) {
|
|
74
|
+
const matchMode = input.matchMode ?? "exact";
|
|
75
|
+
const result = await requestGranoflowApi({ path: listPathFor(kind) });
|
|
76
|
+
if (!result.ok) {
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
const matches = extractItems(result).filter((item) => {
|
|
80
|
+
if (!titleMatches(item.title, input.query, matchMode)) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
if (input.projectId && item.projectId !== input.projectId) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
if (input.milestoneId && item.milestoneId !== input.milestoneId) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
if (!input.includeDone && item.status === "done") {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
});
|
|
94
|
+
return {
|
|
95
|
+
ok: true,
|
|
96
|
+
code: "resolved",
|
|
97
|
+
data: {
|
|
98
|
+
entityType: kind,
|
|
99
|
+
query: input.query,
|
|
100
|
+
matchMode,
|
|
101
|
+
count: matches.length,
|
|
102
|
+
ambiguous: matches.length > 1,
|
|
103
|
+
matches: matches.map(compactResource),
|
|
104
|
+
},
|
|
105
|
+
runtime: result.runtime,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
async function safeDeleteResource(kind, input) {
|
|
109
|
+
const listResult = await requestGranoflowApi({ path: listPathFor(kind) });
|
|
110
|
+
if (!listResult.ok) {
|
|
111
|
+
return listResult;
|
|
112
|
+
}
|
|
113
|
+
const resource = extractItems(listResult).find((item) => item.id === input.id);
|
|
114
|
+
if (!resource) {
|
|
115
|
+
return {
|
|
116
|
+
ok: false,
|
|
117
|
+
code: `${kind}_not_found`,
|
|
118
|
+
error: { message: `Granoflow ${kind} was not found.` },
|
|
119
|
+
runtime: listResult.runtime,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
const tasksResult = await requestGranoflowApi({ path: "/v1/tasks" });
|
|
123
|
+
const linkedTasks = tasksResult.ok && kind === "project"
|
|
124
|
+
? extractItems(tasksResult).filter((task) => task.projectId === input.id)
|
|
125
|
+
: tasksResult.ok
|
|
126
|
+
? extractItems(tasksResult).filter((task) => task.milestoneId === input.id)
|
|
127
|
+
: [];
|
|
128
|
+
const impact = {
|
|
129
|
+
resource: compactResource(resource),
|
|
130
|
+
linkedTaskCount: linkedTasks.length,
|
|
131
|
+
linkedTasks: linkedTasks.map(compactResource),
|
|
132
|
+
};
|
|
133
|
+
if (input.dryRun !== false) {
|
|
134
|
+
return {
|
|
135
|
+
ok: true,
|
|
136
|
+
code: "dry_run",
|
|
137
|
+
data: {
|
|
138
|
+
method: "DELETE",
|
|
139
|
+
path: `/v1/${kind}s/${input.id}`,
|
|
140
|
+
impact,
|
|
141
|
+
previewMode: "local_request_only",
|
|
142
|
+
nextActions: [
|
|
143
|
+
"Review the impact preview.",
|
|
144
|
+
"Call again with dryRun=false, confirmTitle matching the current title, and allowLinkedTasks=true only if linked tasks may be affected.",
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
runtime: listResult.runtime,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
if (typeof resource.title === "string" && input.confirmTitle !== resource.title) {
|
|
151
|
+
return {
|
|
152
|
+
ok: false,
|
|
153
|
+
code: "confirmation_required",
|
|
154
|
+
data: {
|
|
155
|
+
expectedConfirmTitle: resource.title,
|
|
156
|
+
impact,
|
|
157
|
+
},
|
|
158
|
+
error: { message: "confirmTitle must match the current resource title before deletion." },
|
|
159
|
+
runtime: listResult.runtime,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
if (linkedTasks.length > 0 && input.allowLinkedTasks !== true) {
|
|
163
|
+
return {
|
|
164
|
+
ok: false,
|
|
165
|
+
code: "linked_tasks_present",
|
|
166
|
+
data: impact,
|
|
167
|
+
error: {
|
|
168
|
+
message: "This resource has linked tasks. Re-run with allowLinkedTasks=true only after reviewing the impact.",
|
|
169
|
+
},
|
|
170
|
+
runtime: listResult.runtime,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
const deleteResult = await requestGranoflowApi({
|
|
174
|
+
method: "DELETE",
|
|
175
|
+
path: `/v1/${kind}s/${input.id}`,
|
|
176
|
+
});
|
|
177
|
+
if (!deleteResult.ok) {
|
|
178
|
+
return deleteResult;
|
|
179
|
+
}
|
|
180
|
+
const readback = await requestGranoflowApi({ path: listPathFor(kind) });
|
|
181
|
+
const stillPresent = readback.ok
|
|
182
|
+
? extractItems(readback).some((item) => item.id === input.id)
|
|
183
|
+
: null;
|
|
184
|
+
return {
|
|
185
|
+
ok: stillPresent === false,
|
|
186
|
+
code: stillPresent === false ? "deleted" : "delete_unverified",
|
|
187
|
+
data: {
|
|
188
|
+
deleted: stillPresent === false,
|
|
189
|
+
impact,
|
|
190
|
+
deleteResult,
|
|
191
|
+
readback: readback.ok ? { stillPresent } : readback,
|
|
192
|
+
},
|
|
193
|
+
runtime: deleteResult.runtime,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
async function finishTask(input) {
|
|
197
|
+
const updateBody = compactRecord({
|
|
198
|
+
taskReview: input.taskReview,
|
|
199
|
+
endedAt: input.endedAt,
|
|
200
|
+
});
|
|
201
|
+
const steps = [
|
|
202
|
+
...(Object.keys(updateBody).length > 0
|
|
203
|
+
? [{ method: "PATCH", path: `/v1/tasks/${input.taskId}`, body: updateBody }]
|
|
204
|
+
: []),
|
|
205
|
+
{
|
|
206
|
+
method: "POST",
|
|
207
|
+
path: `/v1/tasks/${input.taskId}/complete`,
|
|
208
|
+
body: compactRecord({ endedAt: input.endedAt }),
|
|
209
|
+
},
|
|
210
|
+
{ method: "GET", path: "/v1/tasks", verify: "status=done and endedAt present when available" },
|
|
211
|
+
];
|
|
212
|
+
if (input.dryRun !== false) {
|
|
213
|
+
const preview = await requestGranoflowApi({
|
|
214
|
+
method: "POST",
|
|
215
|
+
path: `/v1/tasks/${input.taskId}/complete`,
|
|
216
|
+
body: compactRecord({ taskReview: input.taskReview, endedAt: input.endedAt }),
|
|
217
|
+
dryRun: true,
|
|
218
|
+
});
|
|
219
|
+
return {
|
|
220
|
+
...preview,
|
|
221
|
+
data: {
|
|
222
|
+
steps,
|
|
223
|
+
previewMode: "local_request_sequence_only",
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
if (input.confirmComplete !== true) {
|
|
228
|
+
const runtime = await requestGranoflowApi({ path: "/v1/health", dryRun: true });
|
|
229
|
+
return {
|
|
230
|
+
ok: false,
|
|
231
|
+
code: "confirmation_required",
|
|
232
|
+
data: {
|
|
233
|
+
steps,
|
|
234
|
+
requiredInput: { confirmComplete: true },
|
|
235
|
+
},
|
|
236
|
+
error: { message: "Set confirmComplete=true to finish a Granoflow task." },
|
|
237
|
+
runtime: runtime.runtime,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
const applied = [];
|
|
241
|
+
if (Object.keys(updateBody).length > 0) {
|
|
242
|
+
const updateResult = await requestGranoflowApi({
|
|
243
|
+
method: "PATCH",
|
|
244
|
+
path: `/v1/tasks/${input.taskId}`,
|
|
245
|
+
body: updateBody,
|
|
246
|
+
});
|
|
247
|
+
applied.push({ step: "update_task", result: updateResult });
|
|
248
|
+
if (!updateResult.ok) {
|
|
249
|
+
return updateResult;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
const completeResult = await requestGranoflowApi({
|
|
253
|
+
method: "POST",
|
|
254
|
+
path: `/v1/tasks/${input.taskId}/complete`,
|
|
255
|
+
body: compactRecord({ endedAt: input.endedAt }),
|
|
256
|
+
});
|
|
257
|
+
applied.push({ step: "complete_task", result: completeResult });
|
|
258
|
+
if (!completeResult.ok) {
|
|
259
|
+
return completeResult;
|
|
260
|
+
}
|
|
261
|
+
const readback = await requestGranoflowApi({ path: "/v1/tasks" });
|
|
262
|
+
const task = extractItems(readback).find((item) => item.id === input.taskId);
|
|
263
|
+
const verified = task?.status === "done";
|
|
264
|
+
return {
|
|
265
|
+
ok: verified,
|
|
266
|
+
code: verified ? "task_finished" : "finish_unverified",
|
|
267
|
+
data: {
|
|
268
|
+
task: task ? compactResource(task) : null,
|
|
269
|
+
verified,
|
|
270
|
+
applied,
|
|
271
|
+
readback: readback.ok ? { found: Boolean(task) } : readback,
|
|
272
|
+
},
|
|
273
|
+
runtime: completeResult.runtime,
|
|
274
|
+
};
|
|
275
|
+
}
|
|
22
276
|
export function registerGranoflowTools(server) {
|
|
23
277
|
server.tool("granoflow_setup_status", "Inspect Granoflow MCP config and Local HTTP API health without printing secrets.", {}, async () => jsonTextResult(await getSetupStatus()));
|
|
24
278
|
server.tool("granoflow_setup_detect_local_api", "Probe a bounded localhost port list for a running Granoflow Local HTTP API.", {
|
|
@@ -161,7 +415,45 @@ export function registerGranoflowTools(server) {
|
|
|
161
415
|
body: input,
|
|
162
416
|
dryRun: dryRun !== false,
|
|
163
417
|
}));
|
|
418
|
+
server.tool("granoflow_task_finish", "Write a task review, complete a Granoflow task, and read back status=done verification.", {
|
|
419
|
+
taskId: z.string().min(1).describe("Granoflow task id."),
|
|
420
|
+
taskReview: z.string().optional(),
|
|
421
|
+
endedAt: z.string().optional(),
|
|
422
|
+
confirmComplete: z.boolean().default(false).describe("Must be true when dryRun=false."),
|
|
423
|
+
dryRun: z
|
|
424
|
+
.boolean()
|
|
425
|
+
.default(true)
|
|
426
|
+
.describe("When true, previews the update/complete/readback sequence."),
|
|
427
|
+
}, async ({ taskId, taskReview, endedAt, confirmComplete, dryRun }) => jsonTextResult(await finishTask({
|
|
428
|
+
taskId: String(taskId),
|
|
429
|
+
taskReview: typeof taskReview === "string" ? taskReview : undefined,
|
|
430
|
+
endedAt: typeof endedAt === "string" ? endedAt : undefined,
|
|
431
|
+
confirmComplete: confirmComplete === true,
|
|
432
|
+
dryRun: dryRun !== false,
|
|
433
|
+
})));
|
|
434
|
+
server.tool("granoflow_task_resolve", "Resolve Granoflow task candidates by title without creating or updating data.", {
|
|
435
|
+
query: z.string().min(1),
|
|
436
|
+
matchMode: resolveMatchModeSchema,
|
|
437
|
+
projectId: z.string().min(1).optional(),
|
|
438
|
+
milestoneId: z.string().min(1).optional(),
|
|
439
|
+
includeDone: z.boolean().default(false),
|
|
440
|
+
}, async ({ query, matchMode, projectId, milestoneId, includeDone }) => jsonTextResult(await resolveResource("task", {
|
|
441
|
+
query: String(query),
|
|
442
|
+
matchMode: matchMode,
|
|
443
|
+
projectId: typeof projectId === "string" ? projectId : undefined,
|
|
444
|
+
milestoneId: typeof milestoneId === "string" ? milestoneId : undefined,
|
|
445
|
+
includeDone: includeDone === true,
|
|
446
|
+
})));
|
|
164
447
|
server.tool("granoflow_project_list", "List Granoflow projects.", {}, async () => apiTool({ path: "/v1/projects" }));
|
|
448
|
+
server.tool("granoflow_project_resolve", "Resolve Granoflow project candidates by title without creating or updating data.", {
|
|
449
|
+
query: z.string().min(1),
|
|
450
|
+
matchMode: resolveMatchModeSchema,
|
|
451
|
+
includeDone: z.boolean().default(false),
|
|
452
|
+
}, async ({ query, matchMode, includeDone }) => jsonTextResult(await resolveResource("project", {
|
|
453
|
+
query: String(query),
|
|
454
|
+
matchMode: matchMode,
|
|
455
|
+
includeDone: includeDone === true,
|
|
456
|
+
})));
|
|
165
457
|
server.tool("granoflow_project_create", "Create a Granoflow project with common structured fields. Defaults to dry-run.", {
|
|
166
458
|
title: z.string().min(1),
|
|
167
459
|
description: z.string().optional(),
|
|
@@ -203,7 +495,29 @@ export function registerGranoflowTools(server) {
|
|
|
203
495
|
}),
|
|
204
496
|
dryRun: dryRun !== false,
|
|
205
497
|
}));
|
|
498
|
+
server.tool("granoflow_project_delete", "Safely delete a Granoflow project. Defaults to dry-run and requires confirmTitle for writes.", {
|
|
499
|
+
projectId: z.string().min(1).describe("Granoflow project id."),
|
|
500
|
+
confirmTitle: z.string().min(1).optional(),
|
|
501
|
+
allowLinkedTasks: z.boolean().default(false),
|
|
502
|
+
dryRun: z.boolean().default(true),
|
|
503
|
+
}, async ({ projectId, confirmTitle, allowLinkedTasks, dryRun }) => jsonTextResult(await safeDeleteResource("project", {
|
|
504
|
+
id: String(projectId),
|
|
505
|
+
confirmTitle: typeof confirmTitle === "string" ? confirmTitle : undefined,
|
|
506
|
+
allowLinkedTasks: allowLinkedTasks === true,
|
|
507
|
+
dryRun: dryRun !== false,
|
|
508
|
+
})));
|
|
206
509
|
server.tool("granoflow_milestone_list", "List Granoflow milestones.", {}, async () => apiTool({ path: "/v1/milestones" }));
|
|
510
|
+
server.tool("granoflow_milestone_resolve", "Resolve Granoflow milestone candidates by title without creating or updating data.", {
|
|
511
|
+
query: z.string().min(1),
|
|
512
|
+
matchMode: resolveMatchModeSchema,
|
|
513
|
+
projectId: z.string().min(1).optional(),
|
|
514
|
+
includeDone: z.boolean().default(false),
|
|
515
|
+
}, async ({ query, matchMode, projectId, includeDone }) => jsonTextResult(await resolveResource("milestone", {
|
|
516
|
+
query: String(query),
|
|
517
|
+
matchMode: matchMode,
|
|
518
|
+
projectId: typeof projectId === "string" ? projectId : undefined,
|
|
519
|
+
includeDone: includeDone === true,
|
|
520
|
+
})));
|
|
207
521
|
server.tool("granoflow_milestone_create", "Create a Granoflow milestone with common structured fields. Defaults to dry-run.", {
|
|
208
522
|
projectId: z.string().min(1).describe("Granoflow project id."),
|
|
209
523
|
title: z.string().min(1),
|
|
@@ -226,6 +540,17 @@ export function registerGranoflowTools(server) {
|
|
|
226
540
|
}),
|
|
227
541
|
dryRun: dryRun !== false,
|
|
228
542
|
}));
|
|
543
|
+
server.tool("granoflow_milestone_delete", "Safely delete a Granoflow milestone. Defaults to dry-run and requires confirmTitle for writes.", {
|
|
544
|
+
milestoneId: z.string().min(1).describe("Granoflow milestone id."),
|
|
545
|
+
confirmTitle: z.string().min(1).optional(),
|
|
546
|
+
allowLinkedTasks: z.boolean().default(false),
|
|
547
|
+
dryRun: z.boolean().default(true),
|
|
548
|
+
}, async ({ milestoneId, confirmTitle, allowLinkedTasks, dryRun }) => jsonTextResult(await safeDeleteResource("milestone", {
|
|
549
|
+
id: String(milestoneId),
|
|
550
|
+
confirmTitle: typeof confirmTitle === "string" ? confirmTitle : undefined,
|
|
551
|
+
allowLinkedTasks: allowLinkedTasks === true,
|
|
552
|
+
dryRun: dryRun !== false,
|
|
553
|
+
})));
|
|
229
554
|
server.tool("granoflow_milestone_update", "Update a Granoflow milestone with common structured fields. Defaults to dry-run.", {
|
|
230
555
|
milestoneId: z.string().min(1).describe("Granoflow milestone id."),
|
|
231
556
|
projectId: z.string().min(1).optional(),
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Granoflow MCP Release Checklist
|
|
2
|
+
|
|
3
|
+
Use this checklist before publishing a new `@granoflow/mcp-server` version.
|
|
4
|
+
|
|
5
|
+
## 0. Release Branch Policy
|
|
6
|
+
|
|
7
|
+
Publish npm `latest` only from `main`.
|
|
8
|
+
|
|
9
|
+
- `develop` is for active integration and may be unstable.
|
|
10
|
+
- `main` is the release branch users should associate with npm `latest`.
|
|
11
|
+
- Before publishing, merge or fast-forward the intended `develop` commit into
|
|
12
|
+
`main`, then run this checklist on `main`.
|
|
13
|
+
- Do not run `npm publish --access public` from `develop` unless the user
|
|
14
|
+
explicitly overrides this policy for an emergency release.
|
|
15
|
+
|
|
16
|
+
## 1. Source State
|
|
17
|
+
|
|
18
|
+
- Confirm the worktree is clean or only contains intended release changes:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
git status --short --branch
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- Confirm the current branch is `main` before publish:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
git branch --show-current
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- Confirm the package version, runtime metadata, and tests agree:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
node -p "require('./package.json').version"
|
|
34
|
+
npm run release:preflight
|
|
35
|
+
node dist/index.js --version
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 2. Static Gates
|
|
39
|
+
|
|
40
|
+
Run the project gate:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm run release:preflight
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The preflight includes `npm run check`, so these gates must pass:
|
|
47
|
+
|
|
48
|
+
- Prettier
|
|
49
|
+
- ESLint
|
|
50
|
+
- TypeScript build
|
|
51
|
+
- Vitest
|
|
52
|
+
|
|
53
|
+
## 3. Package Contents
|
|
54
|
+
|
|
55
|
+
Inspect the packed files:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm run release:preflight
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Verify:
|
|
62
|
+
|
|
63
|
+
- `dist/index.js` is present.
|
|
64
|
+
- `dist/index.js` mode is executable, for example `493`.
|
|
65
|
+
- `README.md` is present.
|
|
66
|
+
- `docs/` files are present when documentation changed.
|
|
67
|
+
- no obsolete `dist/cli.*` files are present.
|
|
68
|
+
- no local config, token, recovery code, or temporary file is present.
|
|
69
|
+
|
|
70
|
+
Remove the generated `.tgz` after inspection unless you intentionally need it:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
rm -f granoflow-mcp-server-*.tgz
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 4. Local MCP Smoke
|
|
77
|
+
|
|
78
|
+
Start the package through stdio and list tools. The smoke should prove:
|
|
79
|
+
|
|
80
|
+
- expected tool count is returned.
|
|
81
|
+
- `granoflow_health` returns `code: "ok"` when Granoflow is running.
|
|
82
|
+
- resource tools such as project, milestone, and structured task tools exist.
|
|
83
|
+
- write tools can return `code: "dry_run"` without creating real data.
|
|
84
|
+
|
|
85
|
+
## 5. App Runtime Evidence
|
|
86
|
+
|
|
87
|
+
Verify the running Granoflow app:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
curl -s http://127.0.0.1:56789/v1/health
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
For macOS production app verification, `granoflow_setup_status` should show a
|
|
94
|
+
process path like:
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
/Applications/granoflow.app/Contents/MacOS/granoflow
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## 6. Client Config Examples
|
|
101
|
+
|
|
102
|
+
Confirm README and docs show the same command shape:
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
command = "npx"
|
|
106
|
+
args = ["-y", "@granoflow/mcp-server"]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Cursor and Codex examples should set:
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
GRANOFLOW_API_BASE_URL=http://127.0.0.1:56789
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Do not add API tokens to checked-in examples.
|
|
116
|
+
|
|
117
|
+
## 7. Secret And Drift Checks
|
|
118
|
+
|
|
119
|
+
Search for obsolete command-wrapper references and secret-like values:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
rg -n "granoflow-cli|GRANOFLOW_CLI|cliPath|granoflow_cli" README.md docs src tests package.json AGENTS.md
|
|
123
|
+
rg -n "recovery code|_authToken|secret-token|npm password" README.md docs src tests package.json AGENTS.md
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Expected result:
|
|
127
|
+
|
|
128
|
+
- no obsolete command-wrapper dependency.
|
|
129
|
+
- no real token, OTP, password, or recovery code.
|
|
130
|
+
- test fixtures may use fake values only when they assert redaction.
|
|
131
|
+
|
|
132
|
+
## 8. Publish
|
|
133
|
+
|
|
134
|
+
Publish only after all previous checks pass:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
npm publish --access public
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
If npm requires two-factor authentication, provide an OTP through the command
|
|
141
|
+
line without printing it in logs. Do not paste OTPs or recovery codes into issue
|
|
142
|
+
reports, docs, screenshots, or chat transcripts.
|
|
143
|
+
|
|
144
|
+
## 9. Post-Publish Verification
|
|
145
|
+
|
|
146
|
+
Verify the published package:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
npm access get status @granoflow/mcp-server
|
|
150
|
+
npm dist-tag ls @granoflow/mcp-server
|
|
151
|
+
npx -y @granoflow/mcp-server@<version> --version
|
|
152
|
+
npx -y @granoflow/mcp-server --version
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Run one MCP stdio smoke against the published version:
|
|
156
|
+
|
|
157
|
+
- list tools
|
|
158
|
+
- call `granoflow_health`
|
|
159
|
+
- call one dry-run write tool
|
|
160
|
+
|
|
161
|
+
Only then write release notes or mark the release task done.
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Granoflow MCP User Install And Demo Guide
|
|
2
|
+
|
|
3
|
+
This guide helps you connect Codex or Cursor to the Granoflow desktop app
|
|
4
|
+
through the Granoflow Local HTTP API.
|
|
5
|
+
|
|
6
|
+
## 1. Start Granoflow
|
|
7
|
+
|
|
8
|
+
Open the installed Granoflow desktop app. On macOS the production app is usually:
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
/Applications/granoflow.app
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
In Granoflow, open the local interface service page and turn on the Local HTTP
|
|
15
|
+
API. The default local address is:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
http://127.0.0.1:56789
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Verify the app is reachable:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
curl -s http://127.0.0.1:56789/v1/health
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
A healthy response includes `status`, `apiEnabled`, `running`, and `version`.
|
|
28
|
+
|
|
29
|
+
## 2. Check The MCP Package
|
|
30
|
+
|
|
31
|
+
Verify the npm package can run:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx -y @granoflow/mcp-server --version
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The command should print the package version.
|
|
38
|
+
|
|
39
|
+
## 3. Configure Codex
|
|
40
|
+
|
|
41
|
+
Add this to `~/.codex/config.toml`:
|
|
42
|
+
|
|
43
|
+
```toml
|
|
44
|
+
[mcp_servers.granoflow]
|
|
45
|
+
type = "stdio"
|
|
46
|
+
command = "npx"
|
|
47
|
+
args = ["-y", "@granoflow/mcp-server"]
|
|
48
|
+
|
|
49
|
+
[mcp_servers.granoflow.env]
|
|
50
|
+
GRANOFLOW_API_BASE_URL = "http://127.0.0.1:56789"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Restart Codex or reload MCP servers after changing the file.
|
|
54
|
+
|
|
55
|
+
## 4. Configure Cursor
|
|
56
|
+
|
|
57
|
+
Add this to `~/.cursor/mcp.json`:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"mcpServers": {
|
|
62
|
+
"granoflow": {
|
|
63
|
+
"command": "npx",
|
|
64
|
+
"args": ["-y", "@granoflow/mcp-server"],
|
|
65
|
+
"env": {
|
|
66
|
+
"GRANOFLOW_API_BASE_URL": "http://127.0.0.1:56789"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Restart Cursor or reload MCP servers after changing the file.
|
|
74
|
+
|
|
75
|
+
## 5. First Demo
|
|
76
|
+
|
|
77
|
+
Ask your MCP client to call:
|
|
78
|
+
|
|
79
|
+
- `granoflow_health`
|
|
80
|
+
- `granoflow_version`
|
|
81
|
+
- `granoflow_task_list`
|
|
82
|
+
|
|
83
|
+
Expected result:
|
|
84
|
+
|
|
85
|
+
- health returns `code: "ok"`
|
|
86
|
+
- version returns Granoflow app version metadata
|
|
87
|
+
- task list returns your current Granoflow tasks
|
|
88
|
+
|
|
89
|
+
## 6. Dry-Run Write Demo
|
|
90
|
+
|
|
91
|
+
Use a dry-run before any write. For example, ask the MCP client to call
|
|
92
|
+
`granoflow_task_create_structured` with:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"title": "MCP dry-run test",
|
|
97
|
+
"description": "This request should preview only.",
|
|
98
|
+
"dryRun": true
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Expected result:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"code": "dry_run"
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
The dry-run preview should not create a real task.
|
|
111
|
+
|
|
112
|
+
## Troubleshooting
|
|
113
|
+
|
|
114
|
+
### The health check cannot connect
|
|
115
|
+
|
|
116
|
+
Check that Granoflow is open and that the Local HTTP API is enabled in the app.
|
|
117
|
+
If you changed the port in Granoflow, update `GRANOFLOW_API_BASE_URL` in your MCP
|
|
118
|
+
client config.
|
|
119
|
+
|
|
120
|
+
### The MCP client does not show Granoflow tools
|
|
121
|
+
|
|
122
|
+
Restart Codex or Cursor after editing the MCP config. Also verify:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npx -y @granoflow/mcp-server --version
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### The MCP client connects to the wrong app
|
|
129
|
+
|
|
130
|
+
Call `granoflow_setup_status`. On macOS, the process evidence should point to
|
|
131
|
+
the production app when that is what you intended:
|
|
132
|
+
|
|
133
|
+
```text
|
|
134
|
+
/Applications/granoflow.app/Contents/MacOS/granoflow
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### You enabled an API token
|
|
138
|
+
|
|
139
|
+
Keep the token in the MCP client environment. Do not paste real tokens into
|
|
140
|
+
docs, screenshots, issue reports, or chat transcripts.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@granoflow/mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "MCP server for Granoflow: exposes the Local HTTP API as tools for AI agents, IDEs, and automation.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"files": [
|
|
22
22
|
"dist",
|
|
23
|
+
"docs",
|
|
23
24
|
"README.md",
|
|
24
25
|
"LICENSE"
|
|
25
26
|
],
|
|
@@ -32,6 +33,7 @@
|
|
|
32
33
|
"format:write": "prettier --write .",
|
|
33
34
|
"test": "vitest run",
|
|
34
35
|
"check": "npm run format && npm run lint && npm run build && npm run test",
|
|
36
|
+
"release:preflight": "node scripts/release-preflight.mjs",
|
|
35
37
|
"prepublishOnly": "npm run check"
|
|
36
38
|
},
|
|
37
39
|
"engines": {
|