원클릭으로
report-issue-local
// 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.
// 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.
| name | report-issue-local |
| description | 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. |
| metadata | {"author":"cyanheads","version":"1.5","audience":"external","type":"workflow"} |
The bug is in this server's code, not in @cyanheads/mcp-ts-core. Typical triggers:
server-config.ts) rejects valid env vars or has wrong defaults.describe() on schema fields causing poor LLM tool useIf the issue is in the framework itself (builders, Context, utilities, type exports, linter), use report-issue-framework instead.
For general gh CLI workflows outside issue filing (PRs, workflows, API access), see the github-cli skill.
gh repo view --json nameWithOwner -q '.nameWithOwner'
gh issue list --search "your error message or keyword"
Reproduce the issue — confirm it's reproducible. Note the exact input, transport mode, and any relevant env vars.
Check logs — review ctx.log output and any framework telemetry for clues. If running HTTP, check the response body for structured error details.
Good issues are scannable, concrete, and self-contained — terse and fact-dense. Default to one or two sentences per bullet; if a bullet runs long, split it or cut it. These patterns apply to both bugs and features — the guidance targets any prose block (Description, Additional context, feature proposals).
search_docs returns an empty array for queries containing &" beats "Search is broken." A reader should know what's wrong before the end of the first sentence.[Hono](https://hono.dev/), [Supabase](https://supabase.com/). Link to the canonical repo or homepage so readers can verify the dependency and reach docs in one click.owner/repo#N for cross-repo issue references. GitHub auto-renders them as linked references (e.g. cyanheads/mcp-ts-core#46). Bare #N only works for same-repo issues — useful when the bug depends on or relates to a framework issue.Related: #N line near the top when the issue grows from prior context (discussions, other issues, PRs). Makes provenance clickable.Related:, the description, or Additional context — not all three. The reader sees them all; redundant linking dilutes signal.### Scope from ### Out of scope. The latter is as important as the former — it pre-empts scope-creep debates in comments and signals you've thought about the boundaries.Depends on: owner/repo#N to declare ordering explicitly when implementation is blocked on an upstream framework change or another issue landing first.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.
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.
gh issue create --template "Bug Report" --web
Structure the --body to match the template's form fields:
gh issue create \
--title "bug(tool_name): concise description" \
--label "bug" \
--assignee "@me" \
--body "$(cat <<'ISSUE'
### Server version
0.1.0
### mcp-ts-core version
0.1.29
### Runtime
Bun
### Runtime version
Bun 1.3.x
### Transport
stdio
### Description
What happened and what you expected instead.
### Steps to reproduce
1. Call `tool_name` with input: `{ "key": "value" }`
2. Observe error / wrong output
### Actual behavior
```
Error or incorrect output here
```
### Expected behavior
What should have happened.
### Additional context
Relevant `ctx.log` output, stack traces, or telemetry spans.
ISSUE
)"
Format: type(scope): description
bug, feat, docs, choreconfig, auth, or domain areaExamples:
bug(search_docs): returns empty results for queries with special charactersfeat(analytics): add date range filter to usage_report tooldocs(setup): .env.example missing REDIS_URLEvery issue needs exactly one primary label. Stack secondary labels on top when applicable.
Primary (required — pick one):
| Label | When |
|---|---|
bug | Something broken |
enhancement | New feature or improvement |
documentation | Documentation is wrong, missing, or misleading |
Secondary (optional — stack on top of primary):
| Label | When |
|---|---|
regression | Worked before, broken after a change |
performance | Memory, CPU, latency, or resource usage |
security | Vulnerability, CVE, or hardening work |
breaking-change | Change will break public API; requires a major bump |
surplus-token-idea | Worth exploring when token budget allows |
Combine labels: --label "bug" --label "regression".
Secondary labels are not GitHub defaults — if gh issue create --label "regression" fails with label not found, create it once:
gh label create regression --color e99695 --description "Worked before, broken after a change"
gh label create performance --color 5319e7 --description "Memory, CPU, latency, or resource usage"
gh label create security --color b60205 --description "Vulnerability, CVE, or hardening work"
gh label create breaking-change --color d93f0b --description "Change will break public API; requires a major bump"
gh label create surplus-token-idea --color FF10F0 --description "Worth exploring when token budget allows"
Note: --body-file replaces the entire body — it does not supplement a --body flag. For structured bugs with logs, either embed the log content in the Additional context section of a normal --body, or file the issue first and add the log as a comment:
bun run rebuild && bun run start:stdio 2>&1 | head -200 > /tmp/server-error.log
# As part of a new issue (the log becomes the entire body — no template fields)
gh issue create \
--title "bug(ingest): crashes on large payload" \
--label "bug" \
--assignee "@me" \
--body-file /tmp/server-error.log
# Or as a comment on an existing issue (preferred — keeps the structured body intact)
gh issue comment <number> --body-file /tmp/server-error.log
gh issue create --template "Feature Request" --web
Template below demonstrates the richer structure. Omit sections you don't need — simple requests don't require Flow / Design / Dependencies blocks.
gh issue create \
--title "feat(scope): concise description" \
--label "enhancement" \
--assignee "@me" \
--body "$(cat <<'ISSUE'
Concrete statement of what's currently missing or broken. Name the specific tool, service, resource, or domain area. Two or three sentences — the reader should know the gap before the end of the paragraph.
Related: #N
## Proposal
What you want the server to do, in one paragraph. Link external libraries or services on first mention: [lib name](https://github.com/owner/repo). Include a short justification — what this gives users that they don't have today.
### Proposed behavior
Describe the new behavior or surface. For tool/resource changes, show example input/output or the new schema fields:
```ts
// Example: new input field or output shape
```
### Flow (optional)
Ordered steps — e.g. `request → lookup → fallback → respond`. Useful when the change spans multiple phases or fallbacks.
### Design / Tradeoffs (optional)
Philosophy: **one-line principle in bold.**
| Option | Strengths | Weaknesses |
|:---|:---|:---|
| A | ... | ... |
| B | ... | ... |
### Scope
- Files or modules touched
- New env vars, config keys, or service integrations
- New or modified tools / resources / prompts
### Out of scope
- What we're deliberately not doing
- Adjacent work that belongs in a separate issue
### Dependencies (optional)
- Depends on: cyanheads/mcp-ts-core#N (upstream framework change)
- Depends on: owner/repo#N (other server work)
### Alternatives considered
What you tried or evaluated instead, and why it didn't fit.
ISSUE
)"
Not sure where the bug lives? Quick checks:
| Signal | Likely framework | Likely server |
|---|---|---|
Error originates in node_modules/@cyanheads/mcp-ts-core/ | Yes | |
Error in src/mcp-server/tools/ or src/services/ | Yes | |
Same bug reproduces with a bare tool() definition (no services) | Yes | |
| Bug disappears when you swap in a dummy handler | Yes | |
ctx.state, ctx.log, ctx.elicit behave wrong on any tool | Yes | |
| Only one specific tool/resource is affected | Yes |
When genuinely ambiguous, file against this server's repo and note that it might be a framework issue. The maintainer can transfer it upstream.
# View issue details
gh issue view <number>
# Add context
gh issue comment <number> --body "Additional findings..."
# List your open issues
gh issue list --author @me
# Close if resolved
gh issue close <number> --reason completed --comment "Fixed in <commit or PR>"
type(scope): description formatbug / enhancement / documentation)