@granoflow/mcp-server 0.1.1 → 0.1.3

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
@@ -42,6 +42,12 @@ 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
+
45
51
  For local development:
46
52
 
47
53
  ```bash
@@ -1,2 +1,2 @@
1
1
  export declare const SERVER_NAME = "granoflow-mcp-server";
2
- export declare const SERVER_VERSION = "0.1.0";
2
+ export declare const SERVER_VERSION = "0.1.3";
package/dist/metadata.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export const SERVER_NAME = "granoflow-mcp-server";
2
- export const SERVER_VERSION = "0.1.0";
2
+ export const SERVER_VERSION = "0.1.3";
3
3
  //# sourceMappingURL=metadata.js.map
@@ -0,0 +1,144 @@
1
+ # Granoflow MCP Release Checklist
2
+
3
+ Use this checklist before publishing a new `@granoflow/mcp-server` version.
4
+
5
+ ## 1. Source State
6
+
7
+ - Confirm the worktree is clean or only contains intended release changes:
8
+
9
+ ```bash
10
+ git status --short --branch
11
+ ```
12
+
13
+ - Confirm the package version, runtime metadata, and tests agree:
14
+
15
+ ```bash
16
+ node -p "require('./package.json').version"
17
+ npm run check
18
+ node dist/index.js --version
19
+ ```
20
+
21
+ ## 2. Static Gates
22
+
23
+ Run the project gate:
24
+
25
+ ```bash
26
+ npm run check
27
+ ```
28
+
29
+ The gate must pass:
30
+
31
+ - Prettier
32
+ - ESLint
33
+ - TypeScript build
34
+ - Vitest
35
+
36
+ ## 3. Package Contents
37
+
38
+ Inspect the packed files:
39
+
40
+ ```bash
41
+ npm pack --json
42
+ ```
43
+
44
+ Verify:
45
+
46
+ - `dist/index.js` is present.
47
+ - `dist/index.js` mode is executable, for example `493`.
48
+ - `README.md` is present.
49
+ - `docs/` files are present when documentation changed.
50
+ - no obsolete `dist/cli.*` files are present.
51
+ - no local config, token, recovery code, or temporary file is present.
52
+
53
+ Remove the generated `.tgz` after inspection unless you intentionally need it:
54
+
55
+ ```bash
56
+ rm -f granoflow-mcp-server-*.tgz
57
+ ```
58
+
59
+ ## 4. Local MCP Smoke
60
+
61
+ Start the package through stdio and list tools. The smoke should prove:
62
+
63
+ - expected tool count is returned.
64
+ - `granoflow_health` returns `code: "ok"` when Granoflow is running.
65
+ - resource tools such as project, milestone, and structured task tools exist.
66
+ - write tools can return `code: "dry_run"` without creating real data.
67
+
68
+ ## 5. App Runtime Evidence
69
+
70
+ Verify the running Granoflow app:
71
+
72
+ ```bash
73
+ curl -s http://127.0.0.1:56789/v1/health
74
+ ```
75
+
76
+ For macOS production app verification, `granoflow_setup_status` should show a
77
+ process path like:
78
+
79
+ ```text
80
+ /Applications/granoflow.app/Contents/MacOS/granoflow
81
+ ```
82
+
83
+ ## 6. Client Config Examples
84
+
85
+ Confirm README and docs show the same command shape:
86
+
87
+ ```text
88
+ command = "npx"
89
+ args = ["-y", "@granoflow/mcp-server"]
90
+ ```
91
+
92
+ Cursor and Codex examples should set:
93
+
94
+ ```text
95
+ GRANOFLOW_API_BASE_URL=http://127.0.0.1:56789
96
+ ```
97
+
98
+ Do not add API tokens to checked-in examples.
99
+
100
+ ## 7. Secret And Drift Checks
101
+
102
+ Search for obsolete command-wrapper references and secret-like values:
103
+
104
+ ```bash
105
+ rg -n "granoflow-cli|GRANOFLOW_CLI|cliPath|granoflow_cli" README.md docs src tests package.json AGENTS.md
106
+ rg -n "recovery code|_authToken|secret-token|npm password" README.md docs src tests package.json AGENTS.md
107
+ ```
108
+
109
+ Expected result:
110
+
111
+ - no obsolete command-wrapper dependency.
112
+ - no real token, OTP, password, or recovery code.
113
+ - test fixtures may use fake values only when they assert redaction.
114
+
115
+ ## 8. Publish
116
+
117
+ Publish only after all previous checks pass:
118
+
119
+ ```bash
120
+ npm publish --access public
121
+ ```
122
+
123
+ If npm requires two-factor authentication, provide an OTP through the command
124
+ line without printing it in logs. Do not paste OTPs or recovery codes into issue
125
+ reports, docs, screenshots, or chat transcripts.
126
+
127
+ ## 9. Post-Publish Verification
128
+
129
+ Verify the published package:
130
+
131
+ ```bash
132
+ npm access get status @granoflow/mcp-server
133
+ npm dist-tag ls @granoflow/mcp-server
134
+ npx -y @granoflow/mcp-server@<version> --version
135
+ npx -y @granoflow/mcp-server --version
136
+ ```
137
+
138
+ Run one MCP stdio smoke against the published version:
139
+
140
+ - list tools
141
+ - call `granoflow_health`
142
+ - call one dry-run write tool
143
+
144
+ 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.1",
3
+ "version": "0.1.3",
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
  ],