@cyanheads/mcp-ts-core 0.1.29 → 0.2.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.
@@ -0,0 +1,217 @@
1
+ ---
2
+ name: report-issue-local
3
+ description: >
4
+ File a bug or feature request against this MCP server's own repo. Use for server-specific issues — tool logic, service integrations, config problems, or domain bugs that aren't caused by the framework.
5
+ metadata:
6
+ author: cyanheads
7
+ version: "1.1"
8
+ audience: external
9
+ type: workflow
10
+ ---
11
+
12
+ ## When to Use
13
+
14
+ The bug is in this server's code, not in `@cyanheads/mcp-ts-core`. Typical triggers:
15
+
16
+ - A tool handler returns wrong results or throws on valid input
17
+ - A service integration (external API, database, third-party SDK) fails or misbehaves
18
+ - Server-specific config (`server-config.ts`) rejects valid env vars or has wrong defaults
19
+ - Resource handlers return stale, incomplete, or incorrect data
20
+ - Domain logic errors — wrong calculations, missing edge cases, bad state transitions
21
+ - Missing or incorrect `.describe()` on schema fields causing poor LLM tool use
22
+
23
+ **If the issue is in the framework itself** (builders, Context, utilities, type exports, linter), use `report-issue-framework` instead.
24
+
25
+ ## Before Filing
26
+
27
+ 1. **Identify the repo**:
28
+
29
+ ```bash
30
+ gh repo view --json nameWithOwner -q '.nameWithOwner'
31
+ ```
32
+
33
+ 2. **Search existing issues**:
34
+
35
+ ```bash
36
+ gh issue list --search "your error message or keyword"
37
+ ```
38
+
39
+ 3. **Reproduce the issue** — confirm it's reproducible. Note the exact input, transport mode, and any relevant env vars.
40
+
41
+ 4. **Check logs** — review `ctx.log` output and any framework telemetry for clues. If running HTTP, check the response body for structured error details.
42
+
43
+ ## Redact Before Posting
44
+
45
+ GitHub issues are **public**. Do not include secrets, credentials, API keys, or tokens. Redact sensitive values from env vars, headers, and logs before submitting. Replace with obvious placeholders: `REDACTED`, `sk-...REDACTED`. Do not rely on partial masking — partial keys can still be exploited.
46
+
47
+ ## Filing a Bug
48
+
49
+ This repo includes YAML form issue templates (scaffolded from the framework). Use `--web` to open the form in the browser (preferred when available), or pass `--title` + `--body` for non-interactive use.
50
+
51
+ ### Browser (interactive)
52
+
53
+ ```bash
54
+ gh issue create --template "Bug Report" --web
55
+ ```
56
+
57
+ ### CLI (non-interactive)
58
+
59
+ Structure the `--body` to match the template's form fields:
60
+
61
+ ````bash
62
+ gh issue create \
63
+ --title "bug(tool_name): concise description" \
64
+ --label "bug" \
65
+ --body "$(cat <<'ISSUE'
66
+ ### Server version
67
+
68
+ 0.1.0
69
+
70
+ ### mcp-ts-core version
71
+
72
+ 0.1.29
73
+
74
+ ### Runtime
75
+
76
+ Bun
77
+
78
+ ### Runtime version
79
+
80
+ Bun 1.2.x
81
+
82
+ ### Transport
83
+
84
+ stdio
85
+
86
+ ### Description
87
+
88
+ What happened and what you expected instead.
89
+
90
+ ### Steps to reproduce
91
+
92
+ 1. Call `tool_name` with input: `{ "key": "value" }`
93
+ 2. Observe error / wrong output
94
+
95
+ ### Actual behavior
96
+
97
+ ```
98
+ Error or incorrect output here
99
+ ```
100
+
101
+ ### Expected behavior
102
+
103
+ What should have happened.
104
+
105
+ ### Additional context
106
+
107
+ Relevant `ctx.log` output, stack traces, or telemetry spans.
108
+ ISSUE
109
+ )"
110
+ ````
111
+
112
+ ### Title conventions
113
+
114
+ Format: `type(scope): description`
115
+
116
+ - **type:** `bug`, `feat`, `docs`, `chore`
117
+ - **scope:** tool name, service name, resource name, `config`, `auth`, or domain area
118
+
119
+ Examples:
120
+ - `bug(search_docs): returns empty results for queries with special characters`
121
+ - `feat(analytics): add date range filter to usage_report tool`
122
+ - `docs(setup): .env.example missing REDIS_URL`
123
+
124
+ ### Labels
125
+
126
+ | Label | When |
127
+ |:------|:-----|
128
+ | `bug` | Something broken |
129
+ | `enhancement` | New feature or improvement |
130
+ | `docs` | Documentation issue |
131
+ | `config` | Configuration or environment issue |
132
+ | `regression` | Worked before, broken after a change |
133
+
134
+ Combine labels: `--label "bug" --label "regression"`.
135
+
136
+ ### Attaching logs or large output
137
+
138
+ ```bash
139
+ bun run dev:stdio 2>&1 | head -200 > /tmp/server-error.log
140
+
141
+ # As part of a new issue
142
+ gh issue create \
143
+ --title "bug(ingest): crashes on large payload" \
144
+ --label "bug" \
145
+ --body-file /tmp/server-error.log
146
+
147
+ # Or as a comment on an existing issue
148
+ gh issue comment <number> --body-file /tmp/server-error.log
149
+ ```
150
+
151
+ ## Filing a Feature Request
152
+
153
+ ### Browser (interactive)
154
+
155
+ ```bash
156
+ gh issue create --template "Feature Request" --web
157
+ ```
158
+
159
+ ### CLI (non-interactive)
160
+
161
+ ````bash
162
+ gh issue create \
163
+ --title "feat(scope): concise description" \
164
+ --label "enhancement" \
165
+ --body "$(cat <<'ISSUE'
166
+ ### Use case
167
+
168
+ What problem does this solve? Who benefits?
169
+
170
+ ### Proposed behavior
171
+
172
+ Describe the expected behavior or API change.
173
+
174
+ ### Alternatives considered
175
+
176
+ What you tried or considered instead.
177
+ ISSUE
178
+ )"
179
+ ````
180
+
181
+ ## Triage: Framework vs Server
182
+
183
+ Not sure where the bug lives? Quick checks:
184
+
185
+ | Signal | Likely framework | Likely server |
186
+ |:-------|:-----------------|:--------------|
187
+ | Error originates in `node_modules/@cyanheads/mcp-ts-core/` | Yes | |
188
+ | Error in `src/mcp-server/tools/` or `src/services/` | | Yes |
189
+ | Same bug reproduces with a bare `tool()` definition (no services) | Yes | |
190
+ | Bug disappears when you swap in a dummy handler | | Yes |
191
+ | `ctx.state`, `ctx.log`, `ctx.elicit` behave wrong on any tool | Yes | |
192
+ | Only one specific tool/resource is affected | | Yes |
193
+
194
+ When genuinely ambiguous, file against this server's repo and note that it might be a framework issue. The maintainer can transfer it upstream.
195
+
196
+ ## Following Up
197
+
198
+ ```bash
199
+ # View issue details
200
+ gh issue view <number>
201
+
202
+ # Add context
203
+ gh issue comment <number> --body "Additional findings..."
204
+
205
+ # List your open issues
206
+ gh issue list --author @me
207
+
208
+ # Close if resolved
209
+ gh issue close <number> --reason completed --comment "Fixed in <commit or PR>"
210
+ ```
211
+
212
+ ## Checklist
213
+
214
+ - [ ] Confirmed bug is in server code, not the framework
215
+ - [ ] Searched existing issues — no duplicate found
216
+ - [ ] All secrets, credentials, and tokens redacted
217
+ - [ ] Issue filed with: version, runtime, repro steps, actual vs expected behavior
@@ -35,6 +35,7 @@ What `init` actually creates:
35
35
  ```text
36
36
  CLAUDE.md # Agent protocol (project-specific)
37
37
  AGENTS.md # Same content — discard whichever you don't use
38
+ .github/ISSUE_TEMPLATE/ # GitHub issue templates (bug report, feature request)
38
39
  skills/ # Project skills (source of truth)
39
40
  src/
40
41
  index.ts # createApp() entry point
@@ -0,0 +1,106 @@
1
+ name: Bug Report
2
+ description: Report a bug in {{PACKAGE_NAME}}
3
+ labels: ["bug"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ **Do not include secrets, credentials, API keys, or tokens.** Redact sensitive values from env vars, headers, and logs before submitting. GitHub issues are public.
9
+
10
+ - type: input
11
+ id: version
12
+ attributes:
13
+ label: Server version
14
+ placeholder: "0.1.0"
15
+ validations:
16
+ required: true
17
+
18
+ - type: input
19
+ id: framework-version
20
+ attributes:
21
+ label: mcp-ts-core version
22
+ placeholder: "0.1.29"
23
+ validations:
24
+ required: true
25
+
26
+ - type: dropdown
27
+ id: runtime
28
+ attributes:
29
+ label: Runtime
30
+ options:
31
+ - Bun
32
+ - Node.js
33
+ - Cloudflare Workers
34
+ validations:
35
+ required: true
36
+
37
+ - type: input
38
+ id: runtime-version
39
+ attributes:
40
+ label: Runtime version
41
+ placeholder: "Bun 1.2.x / Node 22.x"
42
+ validations:
43
+ required: true
44
+
45
+ - type: dropdown
46
+ id: transport
47
+ attributes:
48
+ label: Transport
49
+ options:
50
+ - stdio
51
+ - HTTP (Streamable HTTP)
52
+ - Worker (Cloudflare)
53
+ validations:
54
+ required: true
55
+
56
+ - type: input
57
+ id: os
58
+ attributes:
59
+ label: OS
60
+ placeholder: "macOS 15.x / Ubuntu 24.04 / etc."
61
+ validations:
62
+ required: false
63
+
64
+ - type: textarea
65
+ id: description
66
+ attributes:
67
+ label: Description
68
+ description: What happened and what you expected instead.
69
+ validations:
70
+ required: true
71
+
72
+ - type: textarea
73
+ id: reproduction
74
+ attributes:
75
+ label: Steps to reproduce
76
+ description: Exact inputs, tool calls, or sequence of actions to trigger the bug.
77
+ placeholder: |
78
+ 1. Call `tool_name` with input: `{ "key": "value" }`
79
+ 2. Observe error / wrong output
80
+ validations:
81
+ required: true
82
+
83
+ - type: textarea
84
+ id: actual
85
+ attributes:
86
+ label: Actual behavior
87
+ description: Error messages, stack traces, or incorrect output.
88
+ render: shell
89
+ validations:
90
+ required: true
91
+
92
+ - type: textarea
93
+ id: expected
94
+ attributes:
95
+ label: Expected behavior
96
+ description: What should have happened.
97
+ validations:
98
+ required: true
99
+
100
+ - type: textarea
101
+ id: context
102
+ attributes:
103
+ label: Additional context
104
+ description: Workarounds, related issues, logs, or anything else relevant.
105
+ validations:
106
+ required: false
@@ -0,0 +1 @@
1
+ blank_issues_enabled: false
@@ -0,0 +1,36 @@
1
+ name: Feature Request
2
+ description: Suggest a new feature or improvement for {{PACKAGE_NAME}}
3
+ labels: ["enhancement"]
4
+ body:
5
+ - type: textarea
6
+ id: use-case
7
+ attributes:
8
+ label: Use case
9
+ description: What problem does this solve? Who benefits?
10
+ validations:
11
+ required: true
12
+
13
+ - type: textarea
14
+ id: proposed-behavior
15
+ attributes:
16
+ label: Proposed behavior
17
+ description: Describe the expected behavior or API change. Include example code if possible.
18
+ render: typescript
19
+ validations:
20
+ required: true
21
+
22
+ - type: textarea
23
+ id: alternatives
24
+ attributes:
25
+ label: Alternatives considered
26
+ description: What you tried or considered instead, and why it fell short.
27
+ validations:
28
+ required: false
29
+
30
+ - type: textarea
31
+ id: context
32
+ attributes:
33
+ label: Additional context
34
+ description: Related issues, prior art, links, or anything else relevant.
35
+ validations:
36
+ required: false
@@ -227,6 +227,8 @@ Available skills:
227
227
  | `devcheck` | Lint, format, typecheck, audit |
228
228
  | `polish-docs-meta` | Finalize docs, README, metadata, and agent protocol for shipping |
229
229
  | `maintenance` | Sync skills and dependencies after updates |
230
+ | `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
231
+ | `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
230
232
  | `api-auth` | Auth modes, scopes, JWT/OAuth |
231
233
  | `api-config` | AppConfig, parseConfig, env vars |
232
234
  | `api-context` | Context interface, logger, state, progress |
@@ -227,6 +227,8 @@ Available skills:
227
227
  | `devcheck` | Lint, format, typecheck, audit |
228
228
  | `polish-docs-meta` | Finalize docs, README, metadata, and agent protocol for shipping |
229
229
  | `maintenance` | Sync skills and dependencies after updates |
230
+ | `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
231
+ | `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
230
232
  | `api-auth` | Auth modes, scopes, JWT/OAuth |
231
233
  | `api-config` | AppConfig, parseConfig, env vars |
232
234
  | `api-context` | Context interface, logger, state, progress |