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.
- package/.env.example +14 -0
- package/CHANGELOG.md +32 -0
- package/LICENSE +184 -0
- package/README.md +158 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cli-runner.d.ts +7 -0
- package/dist/lib/cli-runner.js +107 -0
- package/dist/lib/cli-runner.js.map +1 -0
- package/dist/lib/context.d.ts +17 -0
- package/dist/lib/context.js +109 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/errors.d.ts +15 -0
- package/dist/lib/errors.js +17 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/golutra-client.d.ts +54 -0
- package/dist/lib/golutra-client.js +131 -0
- package/dist/lib/golutra-client.js.map +1 -0
- package/dist/lib/project-skills.d.ts +6 -0
- package/dist/lib/project-skills.js +22 -0
- package/dist/lib/project-skills.js.map +1 -0
- package/dist/lib/tool-results.d.ts +15 -0
- package/dist/lib/tool-results.js +58 -0
- package/dist/lib/tool-results.js.map +1 -0
- package/dist/lib/toolkit.d.ts +4 -0
- package/dist/lib/toolkit.js +354 -0
- package/dist/lib/toolkit.js.map +1 -0
- package/dist/lib/types.d.ts +116 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/package.json +71 -0
- package/startup_processmd.md +216 -0
|
@@ -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
|