golutra-mcp 0.1.0

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.
@@ -0,0 +1,216 @@
1
+ # startup_processmd
2
+
3
+ This document contains the setup, startup, build, validation, local integration steps, and the detailed operational notes previously kept in `README.md`.
4
+
5
+ ## Project Reference
6
+
7
+ ### Integration Boundary
8
+
9
+ - MCP clients talk to `golutra-mcp` over `stdio`
10
+ - `golutra-mcp` talks to `golutra-cli` using structured JSON commands
11
+ - `golutra-cli` talks to the running Golutra desktop instance through local IPC
12
+
13
+ This repository focuses on protocol translation, context management, diagnostics, and tool ergonomics instead of duplicating Golutra transport logic.
14
+
15
+ ### Current Tool Surface
16
+
17
+ - `golutra-get-context`
18
+ - `golutra-set-context`
19
+ - `golutra-reset-context`
20
+ - `golutra-diagnose`
21
+ - `golutra-list-conversations`
22
+ - `golutra-list-messages`
23
+ - `golutra-send-message`
24
+ - `golutra-read-roadmap`
25
+ - `golutra-update-roadmap`
26
+ - `golutra-list-skills`
27
+ - `golutra-get-skill`
28
+ - `golutra-validate-skill`
29
+ - `golutra-list-project-skills`
30
+ - `golutra-read-project-skill`
31
+
32
+ ### Design Principles
33
+
34
+ - Do not call Golutra local socket IPC directly from the MCP layer
35
+ - Do not rely on CLI argv fallback for programmatic behavior
36
+ - Keep tool inputs explicit even when defaults exist
37
+ - Keep diagnostics side-effect free where possible
38
+ - Prefer thin wrappers over Golutra's existing stable commands instead of inventing a parallel command model
39
+
40
+ ### Diagnostics Notes
41
+
42
+ - `golutra-get-context` reads the currently stored defaults
43
+ - `golutra-set-context` updates defaults for later tool calls
44
+ - `golutra-reset-context` restores defaults from the process environment used at startup
45
+ - `golutra-diagnose` verifies `golutra-cli` reachability and, when both `workspacePath` and `userId` are available, probes app connectivity with `chat.conversations.list`
46
+
47
+ ### Current Limitations
48
+
49
+ - `workspacePath` must be provided either in the tool call or through `golutra-set-context`
50
+ - Golutra-specific permissions, workflow semantics, and mention rules still come from the desktop app and `golutra-cli`
51
+ - This server currently exposes the stable Golutra commands that already exist today:
52
+ `chat.send`, `chat.conversations.list`, `chat.messages.list`, `roadmap.read`, and `roadmap.update`
53
+ - `golutra-diagnose` uses `skills` as a CLI-level probe and `chat.conversations.list` as an app-level probe; it is not a full health API
54
+
55
+ ## Prerequisites
56
+
57
+ - Node.js 20.11 or later
58
+ - A runnable `golutra-cli`
59
+ - A running Golutra desktop app for IPC-backed commands such as chat and roadmap operations
60
+
61
+ `golutra-list-skills` and `golutra-get-skill` can still work when the desktop app is not running, as long as `golutra-cli` is available.
62
+
63
+ ## Maturity Status
64
+
65
+ The current project is ready for download and evaluation, but it should still be treated as an engineering preview instead of a fully battle-tested public MCP distribution.
66
+
67
+ Today it already has:
68
+
69
+ - installable package metadata
70
+ - validated build, test, and lint flow
71
+ - npm packaging verification
72
+ - a working stdio MCP server entrypoint
73
+
74
+ It still needs more real-world validation across MCP hosts, operating systems, and Golutra app or CLI versions before it should be treated as fully mature.
75
+
76
+ ## Environment Variables
77
+
78
+ - `GOLUTRA_CLI_PATH`
79
+ Default: auto-discover the macOS app-bundled CLI when available, otherwise `golutra-cli`
80
+ - `GOLUTRA_PROFILE`
81
+ Optional Golutra runtime profile: `dev`, `canary`, or `stable`
82
+ - `GOLUTRA_WORKSPACE_PATH`
83
+ Optional default workspace path used by tools that require a workspace
84
+ - `GOLUTRA_COMMAND_TIMEOUT_MS`
85
+ Default: `30000`
86
+
87
+ Use [.env.example](./.env.example) as the minimal local template.
88
+
89
+ ## Install Dependencies
90
+
91
+ ```bash
92
+ npm install
93
+ ```
94
+
95
+ ## Global Installation
96
+
97
+ If you want to install it like a normal downloadable MCP package:
98
+
99
+ ```bash
100
+ npm install -g golutra-mcp
101
+ ```
102
+
103
+ Then configure your MCP client to launch `golutra-mcp` directly.
104
+
105
+ ## Local Development
106
+
107
+ Start the MCP server directly from source:
108
+
109
+ ```bash
110
+ npm run dev
111
+ ```
112
+
113
+ ## Build
114
+
115
+ Build the distributable output:
116
+
117
+ ```bash
118
+ npm run build
119
+ ```
120
+
121
+ ## Validation
122
+
123
+ Run the full project checks:
124
+
125
+ ```bash
126
+ npm run check
127
+ ```
128
+
129
+ Available scripts:
130
+
131
+ - `npm run build`
132
+ - `npm run lint`
133
+ - `npm run typecheck`
134
+ - `npm run test`
135
+ - `npm run test:e2e`
136
+ - `npm run check`
137
+ - `npm run package:check`
138
+ - `npm run clean`
139
+
140
+ Real MCP smoke test:
141
+
142
+ ```bash
143
+ export GOLUTRA_E2E_CLI_PATH=/absolute/path/to/golutra-cli
144
+ export GOLUTRA_E2E_WORKSPACE_PATH=/absolute/path/to/workspace
145
+ npm run test:e2e
146
+ ```
147
+
148
+ Optional app-backed probe:
149
+
150
+ ```bash
151
+ export GOLUTRA_E2E_USER_ID=<workspace-member-id>
152
+ npm run test:e2e
153
+ ```
154
+
155
+ When `GOLUTRA_E2E_USER_ID` is set, the smoke test also requires a running Golutra desktop app and verifies `chat.conversations.list` through `golutra-diagnose`.
156
+
157
+ ## Example MCP Client Configuration
158
+
159
+ Example for a local `stdio` client:
160
+
161
+ ```json
162
+ {
163
+ "mcpServers": {
164
+ "golutra": {
165
+ "command": "node",
166
+ "args": ["/absolute/path/to/golutra-mcp/dist/index.js"],
167
+ "env": {
168
+ "GOLUTRA_CLI_PATH": "/absolute/path/to/golutra-cli",
169
+ "GOLUTRA_PROFILE": "stable",
170
+ "GOLUTRA_WORKSPACE_PATH": "/absolute/path/to/workspace"
171
+ }
172
+ }
173
+ }
174
+ }
175
+ ```
176
+
177
+ If you publish the package globally, the command can be changed to `golutra-mcp`.
178
+
179
+ ## Packaging
180
+
181
+ Before packaging or publishing:
182
+
183
+ ```bash
184
+ npm run build
185
+ npm pack --dry-run
186
+ ```
187
+
188
+ `prepack` is configured to build the project before npm packaging.
189
+
190
+ ## Self-Hosted E2E CI
191
+
192
+ The repository includes a dedicated GitHub Actions workflow for real MCP smoke tests on a macOS self-hosted runner:
193
+
194
+ - Workflow file: `.github/workflows/e2e-self-hosted.yml`
195
+ - Trigger: manual `workflow_dispatch`
196
+ - Goal: verify `golutra-mcp -> golutra-cli -> Golutra app/skills` against a real local environment
197
+
198
+ Recommended runner prerequisites:
199
+
200
+ - macOS runner with a logged-in desktop session when app-backed checks are needed
201
+ - Runnable Golutra desktop app and bundled `golutra-cli`
202
+ - Node.js available or installable through `actions/setup-node`
203
+ - A stable local workspace path that contains the expected `.golutra` metadata
204
+
205
+ Repository variables:
206
+
207
+ - `GOLUTRA_E2E_WORKSPACE_PATH`: required unless provided as a workflow input
208
+ - `GOLUTRA_E2E_CLI_PATH`: optional, defaults to `/Applications/Golutra.app/Contents/MacOS/golutra-cli`
209
+ - `GOLUTRA_E2E_PROFILE`: optional, defaults to `stable`
210
+ - `GOLUTRA_E2E_USER_ID`: required only when the workflow is run with `app_probe=true`
211
+
212
+ Suggested operating model:
213
+
214
+ - Keep `ci.yml` fast and environment-agnostic for ordinary PRs
215
+ - Use `e2e-self-hosted.yml` as the release gate or pre-publish smoke test
216
+ - Enable `app_probe=true` only on runners where the Golutra desktop app is already running and signed in