@cyanheads/mcp-ts-core 0.1.4 → 0.1.8
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/CLAUDE.md +5 -1
- package/README.md +1 -1
- package/dist/core/app.d.ts +2 -0
- package/dist/core/app.d.ts.map +1 -1
- package/dist/core/app.js +19 -4
- package/dist/core/app.js.map +1 -1
- package/dist/core/context.d.ts +2 -2
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +9 -5
- package/dist/core/context.js.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +4 -2
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
- package/dist/mcp-server/server.d.ts +6 -0
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +2 -11
- package/dist/mcp-server/server.js.map +1 -1
- package/dist/mcp-server/tasks/core/taskManager.js +1 -1
- package/dist/mcp-server/tasks/core/taskManager.js.map +1 -1
- package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
- package/dist/mcp-server/tools/tool-registration.js +28 -12
- package/dist/mcp-server/tools/tool-registration.js.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +12 -2
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
- package/dist/mcp-server/transports/auth/authMiddleware.js +1 -1
- package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -1
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -1
- package/dist/mcp-server/transports/auth/lib/authUtils.js +3 -2
- package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -1
- package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts.map +1 -1
- package/dist/mcp-server/transports/auth/lib/checkScopes.js +4 -4
- package/dist/mcp-server/transports/auth/lib/checkScopes.js.map +1 -1
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/httpTransport.js +28 -18
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
- package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/sessionStore.js +23 -13
- package/dist/mcp-server/transports/http/sessionStore.js.map +1 -1
- package/dist/services/graph/core/GraphService.js +2 -2
- package/dist/services/graph/core/GraphService.js.map +1 -1
- package/dist/services/llm/providers/openrouter.provider.js +1 -1
- package/dist/services/llm/providers/openrouter.provider.js.map +1 -1
- package/dist/services/speech/core/speechMetrics.js +1 -1
- package/dist/services/speech/core/speechMetrics.js.map +1 -1
- package/dist/services/speech/providers/elevenlabs.provider.js +1 -1
- package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -1
- package/dist/services/speech/providers/whisper.provider.js +1 -1
- package/dist/services/speech/providers/whisper.provider.js.map +1 -1
- package/dist/storage/core/StorageService.js +2 -2
- package/dist/storage/core/StorageService.js.map +1 -1
- package/dist/storage/core/storageValidation.d.ts.map +1 -1
- package/dist/storage/core/storageValidation.js +0 -13
- package/dist/storage/core/storageValidation.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.js +1 -1
- package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
- package/dist/utils/internal/performance.d.ts +10 -19
- package/dist/utils/internal/performance.d.ts.map +1 -1
- package/dist/utils/internal/performance.js +35 -118
- package/dist/utils/internal/performance.js.map +1 -1
- package/dist/utils/internal/requestContext.d.ts.map +1 -1
- package/dist/utils/internal/requestContext.js +13 -10
- package/dist/utils/internal/requestContext.js.map +1 -1
- package/dist/utils/telemetry/{semconv.d.ts → attributes.d.ts} +14 -129
- package/dist/utils/telemetry/attributes.d.ts.map +1 -0
- package/dist/utils/telemetry/{semconv.js → attributes.js} +27 -148
- package/dist/utils/telemetry/attributes.js.map +1 -0
- package/dist/utils/telemetry/index.d.ts +3 -3
- package/dist/utils/telemetry/index.d.ts.map +1 -1
- package/dist/utils/telemetry/index.js +3 -3
- package/dist/utils/telemetry/index.js.map +1 -1
- package/dist/utils/telemetry/instrumentation.d.ts.map +1 -1
- package/dist/utils/telemetry/instrumentation.js +23 -19
- package/dist/utils/telemetry/instrumentation.js.map +1 -1
- package/dist/utils/telemetry/metrics.d.ts +0 -64
- package/dist/utils/telemetry/metrics.d.ts.map +1 -1
- package/dist/utils/telemetry/metrics.js +0 -78
- package/dist/utils/telemetry/metrics.js.map +1 -1
- package/package.json +14 -14
- package/skills/add-test/SKILL.md +216 -0
- package/skills/api-utils/SKILL.md +5 -7
- package/skills/design-mcp-server/SKILL.md +153 -9
- package/skills/polish-docs-meta/SKILL.md +137 -0
- package/skills/polish-docs-meta/references/agent-protocol.md +78 -0
- package/skills/polish-docs-meta/references/package-meta.md +63 -0
- package/skills/polish-docs-meta/references/readme.md +183 -0
- package/skills/polish-docs-meta/references/server-json.md +142 -0
- package/skills/release/SKILL.md +102 -30
- package/skills/setup/SKILL.md +3 -2
- package/templates/.env.example +6 -1
- package/templates/AGENTS.md +3 -1
- package/templates/CLAUDE.md +3 -1
- package/templates/Dockerfile +84 -0
- package/templates/_.gitignore +6 -0
- package/templates/package.json +3 -0
- package/templates/src/mcp-server/tools/definitions/echo.tool.ts +2 -0
- package/dist/utils/telemetry/semconv.d.ts.map +0 -1
- package/dist/utils/telemetry/semconv.js.map +0 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# server.json — MCP Server Manifest
|
|
2
|
+
|
|
3
|
+
Optional metadata file that describes the server for MCP registries, clients, and tooling. Place at the project root.
|
|
4
|
+
|
|
5
|
+
## When to Create
|
|
6
|
+
|
|
7
|
+
Create `server.json` if:
|
|
8
|
+
|
|
9
|
+
- Publishing to npm or a registry
|
|
10
|
+
- The server will be listed in an MCP client's server catalog
|
|
11
|
+
- You want machine-readable metadata beyond what `package.json` provides
|
|
12
|
+
|
|
13
|
+
Skip for internal/private servers where discoverability doesn't matter.
|
|
14
|
+
|
|
15
|
+
## Schema
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"name": "my-mcp-server",
|
|
20
|
+
"version": "0.1.0",
|
|
21
|
+
"description": "MCP server for the Acme API — project management and task tracking.",
|
|
22
|
+
"author": "your-name",
|
|
23
|
+
"license": "Apache-2.0",
|
|
24
|
+
"repository": "https://github.com/your-org/my-mcp-server",
|
|
25
|
+
"transport": {
|
|
26
|
+
"stdio": {
|
|
27
|
+
"command": "npx",
|
|
28
|
+
"args": ["my-mcp-server"]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"env": {
|
|
32
|
+
"ACME_API_KEY": {
|
|
33
|
+
"description": "API key for the Acme service",
|
|
34
|
+
"required": true
|
|
35
|
+
},
|
|
36
|
+
"ACME_BASE_URL": {
|
|
37
|
+
"description": "API base URL",
|
|
38
|
+
"required": false,
|
|
39
|
+
"default": "https://api.acme.com"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"tools": [
|
|
43
|
+
{
|
|
44
|
+
"name": "search_projects",
|
|
45
|
+
"description": "Search projects by name or status"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "create_task",
|
|
49
|
+
"description": "Create a new task in a project"
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"resources": [
|
|
53
|
+
{
|
|
54
|
+
"uriTemplate": "acme://projects/{projectId}",
|
|
55
|
+
"description": "Project details by ID"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"prompts": [
|
|
59
|
+
{
|
|
60
|
+
"name": "project_summary",
|
|
61
|
+
"description": "Summarize a project's status and open tasks"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Field Reference
|
|
68
|
+
|
|
69
|
+
| Field | Required | Description |
|
|
70
|
+
|:------|:---------|:------------|
|
|
71
|
+
| `name` | Yes | Package name, matches `package.json` |
|
|
72
|
+
| `version` | Yes | Semver version, matches `package.json` |
|
|
73
|
+
| `description` | Yes | One-line description of the server |
|
|
74
|
+
| `author` | No | Author name or org |
|
|
75
|
+
| `license` | No | SPDX license identifier |
|
|
76
|
+
| `repository` | No | URL to source repository |
|
|
77
|
+
| `transport` | Yes | How to start the server (see below) |
|
|
78
|
+
| `env` | No | Environment variables the server reads |
|
|
79
|
+
| `tools` | No | Tool name + description pairs |
|
|
80
|
+
| `resources` | No | Resource URI template + description pairs |
|
|
81
|
+
| `prompts` | No | Prompt name + description pairs |
|
|
82
|
+
|
|
83
|
+
### Transport
|
|
84
|
+
|
|
85
|
+
Describes how clients launch the server. At minimum include `stdio`:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
"transport": {
|
|
89
|
+
"stdio": {
|
|
90
|
+
"command": "npx",
|
|
91
|
+
"args": ["my-mcp-server"]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
For HTTP:
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
"transport": {
|
|
100
|
+
"stdio": { "command": "npx", "args": ["my-mcp-server"] },
|
|
101
|
+
"http": {
|
|
102
|
+
"url": "http://localhost:3000/mcp"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Env
|
|
108
|
+
|
|
109
|
+
Each key is the env var name. Value is an object:
|
|
110
|
+
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"description": "Human-readable purpose",
|
|
114
|
+
"required": true,
|
|
115
|
+
"default": "optional-default-value"
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Derive from the server config Zod schema and `.env.example`.
|
|
120
|
+
|
|
121
|
+
### Tools / Resources / Prompts
|
|
122
|
+
|
|
123
|
+
Lightweight summaries — just `name` and `description`. Derive directly from the definition files. Don't include full schemas; this is for discovery, not invocation.
|
|
124
|
+
|
|
125
|
+
## Generating / Updating
|
|
126
|
+
|
|
127
|
+
If `server.json` doesn't exist, create it from the audit in step 1 of the `polish-docs-meta` skill. If it exists, diff it against current state and update stale fields.
|
|
128
|
+
|
|
129
|
+
1. Sync `name`, `version`, `description`, `author`, `license`, `repository` from `package.json`
|
|
130
|
+
2. Set `transport.stdio.command` to `npx` and `args` to `[packageName]` (or `node dist/index.js` for non-published servers)
|
|
131
|
+
3. Sync env vars from server config schema — add missing, remove stale
|
|
132
|
+
4. Sync tools/resources/prompts from the definition barrels
|
|
133
|
+
|
|
134
|
+
## Keeping in Sync
|
|
135
|
+
|
|
136
|
+
`server.json` is a snapshot. Update it when:
|
|
137
|
+
|
|
138
|
+
- Adding or removing tools/resources/prompts
|
|
139
|
+
- Bumping the version
|
|
140
|
+
- Changing required env vars
|
|
141
|
+
|
|
142
|
+
The `polish-docs-meta` skill handles both creation and updates. Between polish runs, treat it like any other metadata file in the release checklist.
|
package/skills/release/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Prepare and publish a core package release. Use when bumping the version, updating the changelog, and publishing to npm/Docker/GitHub. Stops before publish commands for user confirmation.
|
|
5
5
|
metadata:
|
|
6
6
|
author: cyanheads
|
|
7
|
-
version: "1.
|
|
7
|
+
version: "1.1"
|
|
8
8
|
audience: internal
|
|
9
9
|
type: workflow
|
|
10
10
|
---
|
|
@@ -15,23 +15,101 @@ Publishing is a multi-step process with irreversible actions (npm publish, Docke
|
|
|
15
15
|
|
|
16
16
|
## Steps
|
|
17
17
|
|
|
18
|
-
1.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
18
|
+
### 1. Determine Version Bump
|
|
19
|
+
|
|
20
|
+
Ask the user: patch, minor, or major? Use the CHANGELOG diff to guide the recommendation — breaking changes → major, new features → minor, fixes only → patch.
|
|
21
|
+
|
|
22
|
+
### 2. Update Version Strings
|
|
23
|
+
|
|
24
|
+
Update the version in **all** of these locations:
|
|
25
|
+
|
|
26
|
+
| File | What to Update |
|
|
27
|
+
|:-----|:---------------|
|
|
28
|
+
| `package.json` | `version` field |
|
|
29
|
+
| `server.json` | Root `version` + `version` in each `packages[]` entry (3 total) |
|
|
30
|
+
| `CLAUDE.md` | Version in the header (`**Version:** X.Y.Z`) |
|
|
31
|
+
| `README.md` | Version badge (`Version-X.Y.Z-blue`) and any other version references |
|
|
32
|
+
|
|
33
|
+
Search for the old version string across the repo to catch anything else.
|
|
34
|
+
|
|
35
|
+
### 3. Update README.md
|
|
36
|
+
|
|
37
|
+
Beyond the version badge, review and update:
|
|
38
|
+
|
|
39
|
+
- Feature counts (tool count, resource count, etc.) if the surface area changed
|
|
40
|
+
- Descriptions and capability lists if new features were added
|
|
41
|
+
- MCP SDK version badge if the SDK dependency was bumped
|
|
42
|
+
- Code examples if APIs changed
|
|
43
|
+
|
|
44
|
+
### 4. Update Template Files
|
|
45
|
+
|
|
46
|
+
Update version in scaffolded templates so new projects start with the correct version:
|
|
47
|
+
|
|
48
|
+
| File | What to Update |
|
|
49
|
+
|:-----|:---------------|
|
|
50
|
+
| `templates/CLAUDE.md` | `**Version:** X.Y.Z` in the header |
|
|
51
|
+
| `templates/AGENTS.md` | Same — these files are identical |
|
|
52
|
+
|
|
53
|
+
### 5. Bump Modified Skill Versions
|
|
54
|
+
|
|
55
|
+
For any skills whose `SKILL.md` was modified in this release cycle, bump `metadata.version` in their YAML frontmatter. This is how the `maintenance` skill detects updates — if the version doesn't bump, consumers won't get the new content on `bun update`.
|
|
56
|
+
|
|
57
|
+
### 6. Update CHANGELOG.md
|
|
58
|
+
|
|
59
|
+
Add a new entry with:
|
|
60
|
+
|
|
61
|
+
- Concrete version number and date (NEVER use `[Unreleased]`)
|
|
62
|
+
- Grouped changes: Added, Changed, Fixed, Removed
|
|
63
|
+
- Reference relevant PRs or commits
|
|
64
|
+
|
|
65
|
+
### 7. Regenerate `docs/tree.md`
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
bun run tree
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Review the output for accuracy. Skip if no structural changes occurred.
|
|
72
|
+
|
|
73
|
+
### 8. Verify
|
|
74
|
+
|
|
75
|
+
Run all checks — all must pass:
|
|
33
76
|
|
|
34
77
|
```bash
|
|
78
|
+
bun run devcheck
|
|
79
|
+
bun run test
|
|
80
|
+
bun run build
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 9. Commit
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
chore: release v{{VERSION}}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 10. Tag
|
|
90
|
+
|
|
91
|
+
Create an **annotated** git tag with a concise summary of the release:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
git tag -a v{{VERSION}} -m "v{{VERSION}}: <one-line summary of key changes>"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The tag message should capture the most important change(s) — not the full changelog, just enough to orient someone browsing tags. Examples:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
v0.2.0: Cloudflare Workers support, task tools, Graph service
|
|
101
|
+
v0.1.7: OTel instrumentation refactor, lighter semconv
|
|
102
|
+
v0.1.6: Error factory functions, auto-classification patterns
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 11. Stop and Inform the User
|
|
106
|
+
|
|
107
|
+
The following commands are irreversible and require manual execution:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Push commit and tag
|
|
111
|
+
git push && git push --tags
|
|
112
|
+
|
|
35
113
|
# Publish to npm
|
|
36
114
|
bun publish --access public
|
|
37
115
|
|
|
@@ -45,23 +123,17 @@ docker buildx build --platform linux/amd64,linux/arm64 \
|
|
|
45
123
|
mcp-publisher publish
|
|
46
124
|
```
|
|
47
125
|
|
|
48
|
-
## Wrapup Checklist
|
|
49
|
-
|
|
50
|
-
Before committing, verify these files are in sync:
|
|
51
|
-
|
|
52
|
-
- `README.md` — version badge, feature counts, descriptions
|
|
53
|
-
- `package.json` — version
|
|
54
|
-
- `server.json` — root `version` + both `packages[]` version fields (3 total)
|
|
55
|
-
- `CHANGELOG.md` — new entry with concrete version and date
|
|
56
|
-
- `CLAUDE.md` — version reference
|
|
57
|
-
- `docs/tree.md` — updated if structure changed
|
|
58
|
-
|
|
59
126
|
## Checklist
|
|
60
127
|
|
|
61
128
|
- [ ] Version bumped in all locations (package.json, server.json ×3, CLAUDE.md, README.md)
|
|
62
|
-
- [ ]
|
|
129
|
+
- [ ] README.md reviewed — feature counts, badges, descriptions current
|
|
130
|
+
- [ ] Template files updated (templates/CLAUDE.md, templates/AGENTS.md)
|
|
131
|
+
- [ ] Modified skill versions bumped in YAML frontmatter
|
|
132
|
+
- [ ] CHANGELOG.md updated with concrete version and date
|
|
133
|
+
- [ ] `docs/tree.md` regenerated (if structure changed)
|
|
63
134
|
- [ ] `bun run devcheck` passes
|
|
64
135
|
- [ ] `bun run test` passes
|
|
65
136
|
- [ ] `bun run build` succeeds
|
|
66
|
-
- [ ] Release commit created
|
|
67
|
-
- [ ]
|
|
137
|
+
- [ ] Release commit created
|
|
138
|
+
- [ ] Annotated git tag created: `v{{VERSION}}`
|
|
139
|
+
- [ ] User informed of publish commands (push, npm, Docker, mcp-publisher)
|
package/skills/setup/SKILL.md
CHANGED
|
@@ -96,8 +96,9 @@ After the initial copy, use the `maintenance` skill to keep them in sync after p
|
|
|
96
96
|
|
|
97
97
|
After `bun install`, complete these one-time setup tasks:
|
|
98
98
|
|
|
99
|
-
1. **
|
|
100
|
-
2. **
|
|
99
|
+
1. **Update dependencies to latest** — `bun update --latest` (or `npm update` / `npx npm-check-updates -u && npm install` for npm). The scaffolded `package.json` pins minimum versions from when the framework was published; updating ensures you start with the latest compatible releases.
|
|
100
|
+
2. **Initialize git** — `git init && git add -A && git commit -m "chore: scaffold from @cyanheads/mcp-ts-core"`
|
|
101
|
+
3. **Verify agent protocol placeholders** — if the `init` CLI was run without a `[name]` argument, `{{PACKAGE_NAME}}` may remain as a literal in `CLAUDE.md`/`AGENTS.md` and `package.json`. Replace it with the actual server name.
|
|
101
102
|
|
|
102
103
|
## Checklist
|
|
103
104
|
|
package/templates/.env.example
CHANGED
|
@@ -2,16 +2,21 @@
|
|
|
2
2
|
# MCP_TRANSPORT_TYPE=stdio # stdio | http (default: stdio)
|
|
3
3
|
# MCP_HTTP_PORT=3000 # HTTP port (default: 3000)
|
|
4
4
|
# MCP_HTTP_HOST=localhost # HTTP host (default: localhost)
|
|
5
|
+
# MCP_HTTP_ENDPOINT_PATH=/mcp # HTTP endpoint path (default: /mcp)
|
|
5
6
|
|
|
6
7
|
# ── Auth ──────────────────────────────────────────────────────────────
|
|
7
8
|
# MCP_AUTH_MODE=none # none | jwt | oauth (default: none)
|
|
8
9
|
# MCP_AUTH_SECRET_KEY= # JWT secret (required for jwt mode)
|
|
9
10
|
|
|
10
11
|
# ── Storage ───────────────────────────────────────────────────────────
|
|
11
|
-
# STORAGE_PROVIDER_TYPE=in-memory # in-memory | filesystem | supabase
|
|
12
|
+
# STORAGE_PROVIDER_TYPE=in-memory # in-memory | filesystem | supabase | cloudflare-r2 | cloudflare-kv | cloudflare-d1
|
|
12
13
|
|
|
13
14
|
# ── Logging ───────────────────────────────────────────────────────────
|
|
14
15
|
# MCP_LOG_LEVEL=info # debug | info | notice | warning | error
|
|
15
16
|
|
|
17
|
+
# ── Telemetry ─────────────────────────────────────────────────────────
|
|
18
|
+
# OTEL_ENABLED=false # Enable OpenTelemetry (default: false)
|
|
19
|
+
# OTEL_EXPORTER_OTLP_ENDPOINT= # OTLP endpoint URL (e.g., http://localhost:4318)
|
|
20
|
+
|
|
16
21
|
# ── Server-specific ──────────────────────────────────────────────────
|
|
17
22
|
# Add your server's environment variables below
|
package/templates/AGENTS.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Agent Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** {{PACKAGE_NAME}}
|
|
4
|
-
**Version:** 0.1.
|
|
4
|
+
**Version:** 0.1.0
|
|
5
5
|
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
6
6
|
|
|
7
7
|
> **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
|
|
@@ -203,7 +203,9 @@ Available skills:
|
|
|
203
203
|
| `add-resource` | Scaffold a new resource definition |
|
|
204
204
|
| `add-prompt` | Scaffold a new prompt definition |
|
|
205
205
|
| `add-service` | Scaffold a new service integration |
|
|
206
|
+
| `add-test` | Scaffold test file for a tool, resource, or service |
|
|
206
207
|
| `devcheck` | Lint, format, typecheck, audit |
|
|
208
|
+
| `polish-docs-meta` | Finalize docs, README, metadata, and agent protocol for shipping |
|
|
207
209
|
| `maintenance` | Sync skills and dependencies after updates |
|
|
208
210
|
| `migrate-mcp-ts-template` | Migrate legacy template fork to package dependency |
|
|
209
211
|
| `api-auth` | Auth modes, scopes, JWT/OAuth |
|
package/templates/CLAUDE.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Agent Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** {{PACKAGE_NAME}}
|
|
4
|
-
**Version:** 0.1.
|
|
4
|
+
**Version:** 0.1.0
|
|
5
5
|
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
6
6
|
|
|
7
7
|
> **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
|
|
@@ -203,7 +203,9 @@ Available skills:
|
|
|
203
203
|
| `add-resource` | Scaffold a new resource definition |
|
|
204
204
|
| `add-prompt` | Scaffold a new prompt definition |
|
|
205
205
|
| `add-service` | Scaffold a new service integration |
|
|
206
|
+
| `add-test` | Scaffold test file for a tool, resource, or service |
|
|
206
207
|
| `devcheck` | Lint, format, typecheck, audit |
|
|
208
|
+
| `polish-docs-meta` | Finalize docs, README, metadata, and agent protocol for shipping |
|
|
207
209
|
| `maintenance` | Sync skills and dependencies after updates |
|
|
208
210
|
| `migrate-mcp-ts-template` | Migrate legacy template fork to package dependency |
|
|
209
211
|
| `api-auth` | Auth modes, scopes, JWT/OAuth |
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Build Stage
|
|
3
|
+
#
|
|
4
|
+
# This stage installs all dependencies (including dev), builds the TypeScript
|
|
5
|
+
# source code into JavaScript, and prepares the production assets.
|
|
6
|
+
# ==============================================================================
|
|
7
|
+
FROM oven/bun:1 AS build
|
|
8
|
+
|
|
9
|
+
WORKDIR /usr/src/app
|
|
10
|
+
|
|
11
|
+
# Copy dependency manifests for optimized layer caching
|
|
12
|
+
COPY package.json bun.lock ./
|
|
13
|
+
|
|
14
|
+
# Install all dependencies (including dev dependencies for building)
|
|
15
|
+
RUN bun install --frozen-lockfile
|
|
16
|
+
|
|
17
|
+
# Copy the rest of the source code
|
|
18
|
+
COPY . .
|
|
19
|
+
|
|
20
|
+
# Build the application
|
|
21
|
+
RUN bun run build
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# ==============================================================================
|
|
25
|
+
# Production Stage
|
|
26
|
+
#
|
|
27
|
+
# This stage creates a minimal, optimized, and secure image for running the
|
|
28
|
+
# application. It uses a slim base image and only includes production
|
|
29
|
+
# dependencies and build artifacts.
|
|
30
|
+
# ==============================================================================
|
|
31
|
+
FROM oven/bun:1-slim AS production
|
|
32
|
+
|
|
33
|
+
WORKDIR /usr/src/app
|
|
34
|
+
|
|
35
|
+
# Set the environment to production for performance and to ensure only
|
|
36
|
+
# production dependencies are installed.
|
|
37
|
+
ENV NODE_ENV=production
|
|
38
|
+
|
|
39
|
+
# OCI image metadata (https://github.com/opencontainers/image-spec/blob/main/annotations.md)
|
|
40
|
+
LABEL org.opencontainers.image.title="{{PACKAGE_NAME}}"
|
|
41
|
+
LABEL org.opencontainers.image.description=""
|
|
42
|
+
LABEL org.opencontainers.image.licenses="Apache-2.0"
|
|
43
|
+
|
|
44
|
+
# Copy dependency manifests
|
|
45
|
+
COPY package.json bun.lock ./
|
|
46
|
+
|
|
47
|
+
# Install only production dependencies, ignoring any lifecycle scripts (like 'prepare')
|
|
48
|
+
# that are not needed in the final production image.
|
|
49
|
+
# Remove platform-specific bun/rollup binaries pulled as optionalDependencies
|
|
50
|
+
# by @modelcontextprotocol/ext-apps — only needed for its build toolchain, not runtime.
|
|
51
|
+
RUN bun install --production --frozen-lockfile --ignore-scripts \
|
|
52
|
+
&& rm -rf node_modules/@oven node_modules/@rollup
|
|
53
|
+
|
|
54
|
+
# Copy the compiled application code from the build stage
|
|
55
|
+
COPY --from=build /usr/src/app/dist ./dist
|
|
56
|
+
|
|
57
|
+
# The 'oven/bun' image already provides a non-root user named 'bun'.
|
|
58
|
+
# We will use this existing user for enhanced security.
|
|
59
|
+
|
|
60
|
+
# Create and set permissions for the log directory, assigning ownership to the 'bun' user.
|
|
61
|
+
RUN mkdir -p /var/log/{{PACKAGE_NAME}} && chown -R bun:bun /var/log/{{PACKAGE_NAME}}
|
|
62
|
+
|
|
63
|
+
# Switch to the non-root user
|
|
64
|
+
USER bun
|
|
65
|
+
|
|
66
|
+
# Define an argument for the port, allowing it to be overridden at build time.
|
|
67
|
+
# The `PORT` variable is often injected by cloud environments at runtime.
|
|
68
|
+
ARG PORT
|
|
69
|
+
|
|
70
|
+
# Set runtime environment variables
|
|
71
|
+
# Note: PORT is an automatic variable in many cloud environments (e.g., Cloud Run)
|
|
72
|
+
ENV MCP_HTTP_PORT=${PORT:-3010}
|
|
73
|
+
ENV MCP_HTTP_HOST="0.0.0.0"
|
|
74
|
+
ENV MCP_TRANSPORT_TYPE="http"
|
|
75
|
+
ENV MCP_SESSION_MODE="stateless"
|
|
76
|
+
ENV MCP_LOG_LEVEL="info"
|
|
77
|
+
ENV LOGS_DIR="/var/log/{{PACKAGE_NAME}}"
|
|
78
|
+
ENV MCP_FORCE_CONSOLE_LOGGING="true"
|
|
79
|
+
|
|
80
|
+
# Expose the port the server listens on
|
|
81
|
+
EXPOSE ${MCP_HTTP_PORT}
|
|
82
|
+
|
|
83
|
+
# The command to start the server
|
|
84
|
+
CMD ["bun", "run", "dist/index.js"]
|
package/templates/_.gitignore
CHANGED
package/templates/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"semconv.d.ts","sourceRoot":"","sources":["../../../src/utils/telemetry/semconv.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"semconv.js","sourceRoot":"","sources":["../../../src/utils/telemetry/semconv.ts"],"names":[],"mappings":"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"}
|