@frontmcp/skills 1.0.3 → 1.1.0-beta.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.
- package/catalog/frontmcp-authorities/SKILL.md +272 -0
- package/catalog/frontmcp-authorities/references/authority-profiles.md +262 -0
- package/catalog/frontmcp-authorities/references/claims-mapping.md +266 -0
- package/catalog/frontmcp-authorities/references/custom-evaluators.md +420 -0
- package/catalog/frontmcp-authorities/references/rbac-abac-rebac.md +391 -0
- package/catalog/frontmcp-channels/SKILL.md +122 -0
- package/catalog/frontmcp-channels/examples/channel-sources/agent-notify.md +70 -0
- package/catalog/frontmcp-channels/examples/channel-sources/app-errors.md +71 -0
- package/catalog/frontmcp-channels/examples/channel-sources/file-watcher.md +102 -0
- package/catalog/frontmcp-channels/examples/channel-sources/job-completion.md +79 -0
- package/catalog/frontmcp-channels/examples/channel-sources/replay-buffer.md +106 -0
- package/catalog/frontmcp-channels/examples/channel-sources/service-connector.md +136 -0
- package/catalog/frontmcp-channels/examples/channel-sources/webhook-github.md +85 -0
- package/catalog/frontmcp-channels/examples/channel-two-way/whatsapp-bridge.md +133 -0
- package/catalog/frontmcp-channels/references/channel-sources.md +214 -0
- package/catalog/frontmcp-channels/references/channel-two-way.md +195 -0
- package/catalog/frontmcp-config/SKILL.md +20 -18
- package/catalog/frontmcp-config/examples/configure-auth/multi-app-auth.md +1 -2
- package/catalog/frontmcp-config/examples/configure-auth/public-mode-setup.md +1 -2
- package/catalog/frontmcp-config/examples/configure-auth/remote-oauth-with-vault.md +1 -2
- package/catalog/frontmcp-config/examples/configure-auth-modes/local-self-signed-tokens.md +1 -2
- package/catalog/frontmcp-config/examples/configure-auth-modes/remote-enterprise-oauth.md +1 -2
- package/catalog/frontmcp-config/examples/configure-auth-modes/transparent-jwt-validation.md +1 -2
- package/catalog/frontmcp-config/examples/configure-deployment-targets/distributed-ha-config.md +121 -0
- package/catalog/frontmcp-config/examples/configure-deployment-targets/json-schema-ide-support.md +64 -0
- package/catalog/frontmcp-config/examples/configure-deployment-targets/multi-target-with-security.md +113 -0
- package/catalog/frontmcp-config/examples/configure-elicitation/basic-confirmation-gate.md +1 -2
- package/catalog/frontmcp-config/examples/configure-elicitation/distributed-elicitation-redis.md +1 -2
- package/catalog/frontmcp-config/examples/configure-http/entry-path-reverse-proxy.md +1 -2
- package/catalog/frontmcp-config/examples/configure-http/unix-socket-local.md +1 -2
- package/catalog/frontmcp-config/examples/configure-security-headers/csp-report-only.md +69 -0
- package/catalog/frontmcp-config/examples/configure-security-headers/full-production-headers.md +91 -0
- package/catalog/frontmcp-config/examples/configure-throttle/distributed-redis-throttle.md +1 -2
- package/catalog/frontmcp-config/examples/configure-throttle/per-tool-rate-limit.md +1 -2
- package/catalog/frontmcp-config/examples/configure-throttle/server-level-rate-limit.md +1 -2
- package/catalog/frontmcp-config/examples/configure-transport/custom-protocol-flags.md +1 -2
- package/catalog/frontmcp-config/examples/configure-transport/distributed-sessions-redis.md +1 -2
- package/catalog/frontmcp-config/examples/configure-transport/stateless-serverless.md +1 -2
- package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/legacy-preset-nodejs.md +1 -2
- package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/stateless-api-serverless.md +1 -2
- package/catalog/frontmcp-config/references/configure-deployment-targets.md +214 -0
- package/catalog/frontmcp-config/references/configure-elicitation.md +1 -2
- package/catalog/frontmcp-config/references/configure-security-headers.md +198 -0
- package/catalog/frontmcp-deployment/SKILL.md +1 -0
- package/catalog/frontmcp-deployment/examples/build-for-cli/cli-binary-build.md +1 -2
- package/catalog/frontmcp-deployment/examples/build-for-cli/unix-socket-daemon.md +1 -2
- package/catalog/frontmcp-deployment/examples/build-for-mcpb/mcpb-bundle-build.md +117 -0
- package/catalog/frontmcp-deployment/examples/build-for-sdk/connect-openai.md +1 -3
- package/catalog/frontmcp-deployment/examples/build-for-sdk/create-flat-config.md +1 -2
- package/catalog/frontmcp-deployment/examples/build-for-sdk/multi-platform-connect.md +3 -3
- package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/basic-worker-deploy.md +1 -2
- package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-custom-domain.md +1 -2
- package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-with-kv-storage.md +1 -2
- package/catalog/frontmcp-deployment/examples/deploy-to-lambda/lambda-handler-with-cors.md +1 -2
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-kv.md +1 -2
- package/catalog/frontmcp-deployment/examples/mcp-client-integration/http-remote.md +106 -0
- package/catalog/frontmcp-deployment/examples/mcp-client-integration/stdio-binary-with-env.md +107 -0
- package/catalog/frontmcp-deployment/examples/mcp-client-integration/stdio-npx.md +89 -0
- package/catalog/frontmcp-deployment/references/build-for-mcpb.md +209 -0
- package/catalog/frontmcp-deployment/references/build-for-sdk.md +1 -2
- package/catalog/frontmcp-deployment/references/mcp-client-integration.md +225 -0
- package/catalog/frontmcp-development/SKILL.md +4 -3
- package/catalog/frontmcp-development/examples/create-agent/basic-agent-with-tools.md +3 -6
- package/catalog/frontmcp-development/examples/create-agent/custom-multi-pass-agent.md +1 -2
- package/catalog/frontmcp-development/examples/create-agent/nested-agents-with-swarm.md +2 -4
- package/catalog/frontmcp-development/examples/create-agent-llm-config/anthropic-config.md +1 -2
- package/catalog/frontmcp-development/examples/create-agent-llm-config/openai-config.md +1 -2
- package/catalog/frontmcp-development/examples/create-job/basic-report-job.md +1 -2
- package/catalog/frontmcp-development/examples/create-job/job-with-permissions.md +2 -3
- package/catalog/frontmcp-development/examples/create-job/job-with-retry.md +1 -2
- package/catalog/frontmcp-development/examples/create-plugin-hooks/tool-level-hooks-and-stage-replacement.md +2 -5
- package/catalog/frontmcp-development/examples/create-provider/basic-database-provider.md +4 -3
- package/catalog/frontmcp-development/examples/create-skill-with-tools/directory-skill-with-tools.md +2 -3
- package/catalog/frontmcp-development/examples/create-tool/basic-class-tool.md +1 -2
- package/catalog/frontmcp-development/examples/create-tool/tool-with-di-and-errors.md +2 -2
- package/catalog/frontmcp-development/examples/create-tool/tool-with-rate-limiting-and-progress.md +1 -2
- package/catalog/frontmcp-development/examples/create-tool-annotations/destructive-delete-tool.md +2 -4
- package/catalog/frontmcp-development/examples/create-tool-annotations/readonly-query-tool.md +1 -2
- package/catalog/frontmcp-development/examples/create-tool-output-schema-types/primitive-and-media-outputs.md +3 -6
- package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-raw-shape-output.md +1 -2
- package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-schema-advanced-output.md +2 -4
- package/catalog/frontmcp-development/examples/decorators-guide/agent-skill-job-workflow.md +3 -5
- package/catalog/frontmcp-development/examples/decorators-guide/basic-server-with-app-and-tools.md +5 -5
- package/catalog/frontmcp-development/examples/decorators-guide/multi-app-with-plugins-and-providers.md +4 -6
- package/catalog/frontmcp-development/examples/official-plugins/cache-and-feature-flags.md +3 -5
- package/catalog/frontmcp-development/examples/official-plugins/production-multi-plugin-setup.md +4 -5
- package/catalog/frontmcp-development/examples/official-plugins/remember-plugin-session-memory.md +3 -5
- package/catalog/frontmcp-development/examples/{official-adapters → openapi-adapter}/authenticated-adapter-with-polling.md +2 -2
- package/catalog/frontmcp-development/examples/{official-adapters → openapi-adapter}/basic-openapi-adapter.md +2 -2
- package/catalog/frontmcp-development/examples/openapi-adapter/format-resolution-and-custom-resolvers.md +108 -0
- package/catalog/frontmcp-development/examples/{official-adapters → openapi-adapter}/multi-api-hub-with-inline-spec.md +2 -2
- package/catalog/frontmcp-development/examples/openapi-adapter/ref-security-and-filtering.md +111 -0
- package/catalog/frontmcp-development/references/create-agent.md +4 -7
- package/catalog/frontmcp-development/references/create-job.md +3 -6
- package/catalog/frontmcp-development/references/create-plugin-hooks.md +12 -16
- package/catalog/frontmcp-development/references/create-skill-with-tools.md +2 -3
- package/catalog/frontmcp-development/references/create-tool.md +93 -23
- package/catalog/frontmcp-development/references/create-workflow.md +2 -3
- package/catalog/frontmcp-development/references/decorators-guide.md +32 -36
- package/catalog/frontmcp-development/references/official-adapters.md +24 -153
- package/catalog/frontmcp-development/references/openapi-adapter.md +431 -0
- package/catalog/frontmcp-extensibility/examples/vectoriadb/product-catalog-search.md +4 -4
- package/catalog/frontmcp-extensibility/examples/vectoriadb/semantic-search-with-persistence.md +4 -4
- package/catalog/frontmcp-extensibility/examples/vectoriadb/tfidf-keyword-search.md +4 -3
- package/catalog/frontmcp-guides/SKILL.md +3 -3
- package/catalog/frontmcp-guides/examples/example-knowledge-base/agent-and-plugin.md +4 -5
- package/catalog/frontmcp-guides/examples/example-knowledge-base/vector-search-and-resources.md +4 -3
- package/catalog/frontmcp-guides/examples/example-task-manager/auth-and-crud-tools.md +4 -4
- package/catalog/frontmcp-guides/examples/example-weather-api/weather-tool-with-schemas.md +1 -2
- package/catalog/frontmcp-guides/references/example-knowledge-base.md +22 -17
- package/catalog/frontmcp-guides/references/example-task-manager.md +16 -11
- package/catalog/frontmcp-guides/references/example-weather-api.md +6 -3
- package/catalog/frontmcp-observability/examples/telemetry-api/tool-custom-spans.md +2 -3
- package/catalog/frontmcp-observability/examples/tracing-setup/basic-tracing.md +4 -3
- package/catalog/frontmcp-observability/references/telemetry-api.md +2 -3
- package/catalog/frontmcp-production-readiness/examples/common-checklist/observability-setup.md +1 -2
- package/catalog/frontmcp-production-readiness/examples/common-checklist/security-hardening.md +3 -4
- package/catalog/frontmcp-production-readiness/examples/distributed-ha/ha-kubernetes-3-replicas.md +229 -0
- package/catalog/frontmcp-production-readiness/examples/production-browser/cross-platform-crypto.md +2 -3
- package/catalog/frontmcp-production-readiness/examples/production-cli-binary/stdio-transport-error-handling.md +1 -2
- package/catalog/frontmcp-production-readiness/examples/production-cloudflare/durable-objects-state.md +2 -4
- package/catalog/frontmcp-production-readiness/examples/production-cloudflare/workers-runtime-constraints.md +2 -3
- package/catalog/frontmcp-production-readiness/examples/production-lambda/cold-start-connection-reuse.md +3 -2
- package/catalog/frontmcp-production-readiness/examples/production-vercel/cold-start-optimization.md +2 -2
- package/catalog/frontmcp-production-readiness/examples/production-vercel/stateless-serverless-design.md +3 -3
- package/catalog/frontmcp-production-readiness/references/distributed-ha.md +194 -0
- package/catalog/frontmcp-setup/SKILL.md +11 -11
- package/catalog/frontmcp-setup/examples/project-structure-standalone/feature-folder-organization.md +5 -3
- package/catalog/frontmcp-setup/examples/project-structure-standalone/minimal-standalone-layout.md +4 -2
- package/catalog/frontmcp-setup/examples/setup-project/basic-node-server.md +4 -2
- package/catalog/frontmcp-setup/examples/setup-project/vercel-serverless-server.md +4 -2
- package/catalog/frontmcp-setup/examples/setup-redis/hybrid-vercel-kv-with-pubsub.md +8 -7
- package/catalog/frontmcp-setup/references/setup-project.md +10 -9
- package/catalog/frontmcp-setup/references/setup-redis.md +19 -16
- package/catalog/frontmcp-testing/examples/test-direct-client/basic-create-test.md +1 -3
- package/catalog/frontmcp-testing/examples/test-direct-client/openai-claude-format-test.md +1 -3
- package/catalog/frontmcp-testing/examples/test-tool-unit/schema-validation-test.md +2 -2
- package/catalog/frontmcp-testing/references/test-direct-client.md +1 -3
- package/catalog/frontmcp-testing/references/test-tool-unit.md +2 -2
- package/catalog/skills-manifest.json +364 -12
- package/package.json +1 -1
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mcp-client-integration
|
|
3
|
+
description: Configure MCP clients (Claude Desktop, Claude Code, Cursor, VS Code) to connect to a FrontMCP server via stdio, HTTP, or Unix socket
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# MCP Client Integration
|
|
7
|
+
|
|
8
|
+
Configure MCP clients to connect to your FrontMCP server. Covers all transport types (stdio, HTTP, Unix socket) and all major clients (Claude Desktop, Claude Code, Cursor, VS Code).
|
|
9
|
+
|
|
10
|
+
## When to Use This Skill
|
|
11
|
+
|
|
12
|
+
### Must Use
|
|
13
|
+
|
|
14
|
+
- Configuring `.mcp.json`, `claude_desktop_config.json`, or any MCP client config file to point at a FrontMCP server
|
|
15
|
+
- Publishing a FrontMCP server to npm for use with `npx` and `--stdio`
|
|
16
|
+
- Setting up a local daemon for IDE integration
|
|
17
|
+
|
|
18
|
+
### Recommended
|
|
19
|
+
|
|
20
|
+
- Choosing between stdio, HTTP, and Unix socket transport for your deployment scenario
|
|
21
|
+
- Passing environment variables or auth tokens to your server from the MCP client config
|
|
22
|
+
|
|
23
|
+
### Skip When
|
|
24
|
+
|
|
25
|
+
- Building the server itself (see `frontmcp-development`)
|
|
26
|
+
- Configuring server-side transport options (see `frontmcp-config` → `configure-transport`)
|
|
27
|
+
- Deploying to cloud platforms (see `deploy-to-vercel`, `deploy-to-lambda`)
|
|
28
|
+
|
|
29
|
+
> **Decision:** Use this skill when you have a working FrontMCP server and need to connect an MCP client to it.
|
|
30
|
+
|
|
31
|
+
## Transport Selection
|
|
32
|
+
|
|
33
|
+
| Scenario | Transport | Server Command | Config Key |
|
|
34
|
+
| ------------------------------------- | ----------- | -------------------------------- | ----------------------------------- |
|
|
35
|
+
| npm package for public distribution | Stdio | `npx my-server --stdio` | `command` + `args` |
|
|
36
|
+
| Local CLI binary for personal use | Stdio | `./my-server --stdio` | `command` + `args` |
|
|
37
|
+
| Remote/cloud server | HTTP | `my-server serve -p 3000` | `type: "http"`, `url` |
|
|
38
|
+
| Local persistent daemon (low latency) | Unix Socket | `my-server daemon start` | `type: "http"`, `url`, `socketPath` |
|
|
39
|
+
| Background daemon on specific port | HTTP | `my-server daemon start -p 4000` | `type: "http"`, `url` |
|
|
40
|
+
| Vibe coding with AI agent (dev mode) | HTTP | `frontmcp dev` | `type: "http"`, `url` |
|
|
41
|
+
|
|
42
|
+
## Development with AI Coding Agents
|
|
43
|
+
|
|
44
|
+
When building a FrontMCP server with a coding agent (Claude Code, Cursor, Windsurf), use **HTTP transport with `frontmcp dev`** for live hot reload. The agent edits code, the server auto-restarts, and the MCP client reconnects — no manual restart needed.
|
|
45
|
+
|
|
46
|
+
### Setup
|
|
47
|
+
|
|
48
|
+
1. Start the dev server: `npm run dev` (or `frontmcp dev`)
|
|
49
|
+
2. Register in `.mcp.json`:
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"mcpServers": {
|
|
53
|
+
"my-server": {
|
|
54
|
+
"type": "http",
|
|
55
|
+
"url": "http://localhost:3000/mcp"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
3. Code and iterate — every file save triggers a server reload
|
|
61
|
+
|
|
62
|
+
### Why HTTP for development (not stdio)
|
|
63
|
+
|
|
64
|
+
- **Hot reload:** Server restarts on file change (~200ms), client reconnects automatically
|
|
65
|
+
- **Multiple clients:** Agent + MCP Inspector + you can all connect simultaneously
|
|
66
|
+
- **Debugging:** Logs visible in terminal, Inspector UI available via `npm run inspect`
|
|
67
|
+
- **Persistence:** Server stays running across edits, no new process per connection
|
|
68
|
+
|
|
69
|
+
## Stdio Transport
|
|
70
|
+
|
|
71
|
+
The most common transport. The MCP client spawns your server as a child process and communicates via stdin/stdout JSON-RPC.
|
|
72
|
+
|
|
73
|
+
**Key points:**
|
|
74
|
+
|
|
75
|
+
- Pass `--stdio` flag to the binary (detected before CLI framework loads)
|
|
76
|
+
- All logs are automatically redirected to stderr and `~/.frontmcp/logs/`
|
|
77
|
+
- stdout contains ONLY MCP JSON-RPC protocol messages
|
|
78
|
+
- One client per process (no multiplexing)
|
|
79
|
+
|
|
80
|
+
### npx (published npm package)
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"my-server": {
|
|
86
|
+
"command": "npx",
|
|
87
|
+
"args": ["-y", "my-frontmcp-server", "--stdio"],
|
|
88
|
+
"env": {
|
|
89
|
+
"API_KEY": "sk-xxxxx"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Local binary
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"mcpServers": {
|
|
101
|
+
"my-server": {
|
|
102
|
+
"command": "/path/to/my-server",
|
|
103
|
+
"args": ["--stdio"]
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Node.js bundle
|
|
110
|
+
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"mcpServers": {
|
|
114
|
+
"my-server": {
|
|
115
|
+
"command": "node",
|
|
116
|
+
"args": ["/path/to/my-server.bundle.js", "--stdio"]
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## HTTP Transport
|
|
123
|
+
|
|
124
|
+
Connect to a running FrontMCP HTTP server. The server must be started separately.
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"mcpServers": {
|
|
129
|
+
"my-server": {
|
|
130
|
+
"type": "http",
|
|
131
|
+
"url": "http://localhost:3005/mcp"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
With authentication:
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
{
|
|
141
|
+
"mcpServers": {
|
|
142
|
+
"my-server": {
|
|
143
|
+
"type": "http",
|
|
144
|
+
"url": "https://my-server.example.com/mcp",
|
|
145
|
+
"headers": {
|
|
146
|
+
"Authorization": "Bearer token-here"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Unix Socket Transport
|
|
154
|
+
|
|
155
|
+
Connect to a FrontMCP daemon running on a Unix socket. Start the daemon first with `my-server daemon start`.
|
|
156
|
+
|
|
157
|
+
```json
|
|
158
|
+
{
|
|
159
|
+
"mcpServers": {
|
|
160
|
+
"my-server": {
|
|
161
|
+
"type": "http",
|
|
162
|
+
"url": "http://localhost/mcp",
|
|
163
|
+
"socketPath": "/Users/you/.frontmcp/sockets/my-server.sock"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
The `url` hostname is ignored for Unix sockets; only the path (`/mcp`) is used for HTTP routing.
|
|
170
|
+
|
|
171
|
+
## Publishing to npm
|
|
172
|
+
|
|
173
|
+
1. Build: `frontmcp build --target cli --js`
|
|
174
|
+
2. Set `bin` in `package.json`:
|
|
175
|
+
```json
|
|
176
|
+
{ "bin": { "my-server": "./dist/my-server-cli.bundle.js" } }
|
|
177
|
+
```
|
|
178
|
+
3. Publish: `npm publish`
|
|
179
|
+
4. Users configure: `{ "command": "npx", "args": ["-y", "my-server", "--stdio"] }`
|
|
180
|
+
|
|
181
|
+
## Client Config File Locations
|
|
182
|
+
|
|
183
|
+
| Client | File | Location |
|
|
184
|
+
| -------------- | ---------------------------- | ----------------------------------------------- |
|
|
185
|
+
| Claude Code | `.mcp.json` | Project root or `~/.claude/.mcp.json` |
|
|
186
|
+
| Claude Desktop | `claude_desktop_config.json` | `~/Library/Application Support/Claude/` (macOS) |
|
|
187
|
+
| Cursor | `.cursor/mcp.json` | Project root |
|
|
188
|
+
| VS Code | `.vscode/mcp.json` | Project root |
|
|
189
|
+
| Windsurf | `mcp_config.json` | `~/.codeium/windsurf/` |
|
|
190
|
+
|
|
191
|
+
## Common Patterns
|
|
192
|
+
|
|
193
|
+
| Pattern | Correct | Incorrect | Why |
|
|
194
|
+
| ----------- | ----------------------------- | ---------------------- | --------------------------------------------------- |
|
|
195
|
+
| Stdio flag | `["--stdio"]` as arg | `"--stdio"` in env var | Flag must be in process argv |
|
|
196
|
+
| HTTP path | `url` ends with `/mcp` | `url` ends with `/` | FrontMCP serves MCP protocol at `/mcp` by default |
|
|
197
|
+
| Socket URL | Include `url` field with path | Only `socketPath` | HTTP routing needs the URL path even for sockets |
|
|
198
|
+
| npx flag | `"-y"` to auto-confirm | Omit `-y` | Without `-y`, npx prompts and blocks the MCP client |
|
|
199
|
+
| Env secrets | Use `env` in config | Hardcode in args | Env vars are not visible in process listings |
|
|
200
|
+
|
|
201
|
+
## Troubleshooting
|
|
202
|
+
|
|
203
|
+
| Problem | Cause | Solution |
|
|
204
|
+
| ------------------------------ | ------------------------- | ------------------------------------------------------ |
|
|
205
|
+
| "Connection failed" with stdio | Server crashes on startup | Check `~/.frontmcp/logs/` for stack traces |
|
|
206
|
+
| Garbled protocol in stdio | Logs leaking to stdout | Ensure `--stdio` flag is passed (auto-redirects logs) |
|
|
207
|
+
| `ENOENT` for command | Binary not found | Use absolute path or ensure it's in PATH |
|
|
208
|
+
| `ECONNREFUSED` for HTTP | Server not running | Start server first: `my-server serve -p PORT` |
|
|
209
|
+
| Socket not found | Daemon not started | Run `my-server daemon start` |
|
|
210
|
+
| npx timeout | Package download slow | Run `npx -y my-server --stdio` manually first to cache |
|
|
211
|
+
|
|
212
|
+
## Examples
|
|
213
|
+
|
|
214
|
+
| Example | Level | Description |
|
|
215
|
+
| -------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------ |
|
|
216
|
+
| [`stdio-npx`](../examples/mcp-client-integration/stdio-npx.md) | Basic | Publish a FrontMCP server to npm and configure MCP clients to use it with npx --stdio. |
|
|
217
|
+
| [`http-remote`](../examples/mcp-client-integration/http-remote.md) | Basic | Connect an MCP client to a FrontMCP server running as an HTTP server, locally or remotely. |
|
|
218
|
+
| [`stdio-binary-with-env`](../examples/mcp-client-integration/stdio-binary-with-env.md) | Intermediate | Configure a local FrontMCP CLI binary with environment variables and custom arguments in MCP client configs. |
|
|
219
|
+
|
|
220
|
+
> See all examples in [`examples/mcp-client-integration/`](../examples/mcp-client-integration/)
|
|
221
|
+
|
|
222
|
+
## Reference
|
|
223
|
+
|
|
224
|
+
- **Docs:** <https://docs.agentfront.dev/frontmcp/deployment/mcp-clients>
|
|
225
|
+
- **Related skills:** `build-for-cli`, `deploy-to-node`, `frontmcp-config`
|
|
@@ -52,7 +52,8 @@ Entry point for building MCP server components. This skill helps you find the ri
|
|
|
52
52
|
| Write instruction-only AI guidance (no code execution) | `create-skill` | Skill entries with markdown instructions from files, strings, or URLs |
|
|
53
53
|
| Write AI guidance that also orchestrates tools | `create-skill-with-tools` | Skill entries that combine instructions with registered tools |
|
|
54
54
|
| Look up any decorator signature or option | `decorators-guide` | Complete reference for @Tool, @Resource, @Prompt, @Agent, @App, @FrontMcp, and more |
|
|
55
|
-
|
|
|
55
|
+
| Overview of all official adapters | `official-adapters` | Router to all adapter types; adapter vs plugin comparison |
|
|
56
|
+
| Integrate an external API via OpenAPI spec | `openapi-adapter` | OpenapiAdapter with auth, polling, filtering, transforms, format resolution, $ref security |
|
|
56
57
|
| Use official plugins (caching, remember, feature flags) | `official-plugins` | Built-in plugins for caching, session memory, approval, and feature flags (dashboard is beta) |
|
|
57
58
|
| Connect to an external data source via a custom adapter | `create-adapter` | Create custom adapters for external data sources |
|
|
58
59
|
| Configure LLM settings for an agent component | `create-agent-llm-config` | Configure LLM settings for agent components |
|
|
@@ -70,7 +71,7 @@ Entry point for building MCP server components. This skill helps you find the ri
|
|
|
70
71
|
6. **`create-agent`** — Build autonomous AI loops (advanced)
|
|
71
72
|
7. **`create-job`** / **`create-workflow`** — Background processing (advanced)
|
|
72
73
|
8. **`create-skill`** / **`create-skill-with-tools`** — Author your own skills (meta)
|
|
73
|
-
9. **`official-adapters`** — Integrate external APIs via OpenAPI specs
|
|
74
|
+
9. **`official-adapters`** / **`openapi-adapter`** — Integrate external APIs via OpenAPI specs
|
|
74
75
|
10. **`official-plugins`** — Add caching, session memory, feature flags, and more
|
|
75
76
|
|
|
76
77
|
## Cross-Cutting Patterns
|
|
@@ -123,4 +124,4 @@ Entry point for building MCP server components. This skill helps you find the ri
|
|
|
123
124
|
## Reference
|
|
124
125
|
|
|
125
126
|
- [FrontMCP Overview](https://docs.agentfront.dev/frontmcp/fundamentals/overview)
|
|
126
|
-
- Related skills: `create-tool`, `create-resource`, `create-prompt`, `create-agent`, `create-provider`, `create-job`, `create-workflow`, `create-skill`, `create-skill-with-tools`, `decorators-guide`, `official-adapters`, `official-plugins`
|
|
127
|
+
- Related skills: `create-tool`, `create-resource`, `create-prompt`, `create-agent`, `create-provider`, `create-job`, `create-workflow`, `create-skill`, `create-skill-with-tools`, `decorators-guide`, `official-adapters`, `openapi-adapter`, `official-plugins`
|
|
@@ -20,8 +20,7 @@ An autonomous agent that uses inner tools to review GitHub pull requests.
|
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
22
|
// src/apps/review/tools/fetch-pr.tool.ts
|
|
23
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
24
|
-
import { z } from 'zod';
|
|
23
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
25
24
|
|
|
26
25
|
@Tool({
|
|
27
26
|
name: 'fetch_pr',
|
|
@@ -44,8 +43,7 @@ class FetchPRTool extends ToolContext {
|
|
|
44
43
|
|
|
45
44
|
```typescript
|
|
46
45
|
// src/apps/review/tools/post-review.tool.ts
|
|
47
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
48
|
-
import { z } from 'zod';
|
|
46
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
49
47
|
|
|
50
48
|
@Tool({
|
|
51
49
|
name: 'post_review_comment',
|
|
@@ -70,8 +68,7 @@ class PostReviewCommentTool extends ToolContext {
|
|
|
70
68
|
|
|
71
69
|
```typescript
|
|
72
70
|
// src/apps/review/agents/pr-reviewer.agent.ts
|
|
73
|
-
import { Agent, AgentContext } from '@frontmcp/sdk';
|
|
74
|
-
import { z } from 'zod';
|
|
71
|
+
import { Agent, AgentContext, z } from '@frontmcp/sdk';
|
|
75
72
|
|
|
76
73
|
@Agent({
|
|
77
74
|
name: 'pr_reviewer',
|
|
@@ -19,8 +19,7 @@ An agent that overrides `execute()` to perform multi-pass LLM reasoning with `th
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
// src/apps/review/agents/structured-reviewer.agent.ts
|
|
22
|
-
import { Agent, AgentContext } from '@frontmcp/sdk';
|
|
23
|
-
import { z } from 'zod';
|
|
22
|
+
import { Agent, AgentContext, z } from '@frontmcp/sdk';
|
|
24
23
|
|
|
25
24
|
@Agent({
|
|
26
25
|
name: 'structured_reviewer',
|
|
@@ -19,8 +19,7 @@ Composing specialized sub-agents and configuring swarm-based handoff between age
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
// src/apps/support/agents/billing.agent.ts
|
|
22
|
-
import { Agent, AgentContext, Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
-
import { z } from 'zod';
|
|
22
|
+
import { Agent, AgentContext, Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
24
23
|
|
|
25
24
|
@Tool({
|
|
26
25
|
name: 'lookup_invoice',
|
|
@@ -65,8 +64,7 @@ class TechnicalAgent extends AgentContext {}
|
|
|
65
64
|
|
|
66
65
|
```typescript
|
|
67
66
|
// src/apps/support/agents/triage.agent.ts
|
|
68
|
-
import { Agent, AgentContext } from '@frontmcp/sdk';
|
|
69
|
-
import { z } from 'zod';
|
|
67
|
+
import { Agent, AgentContext, z } from '@frontmcp/sdk';
|
|
70
68
|
|
|
71
69
|
@Agent({
|
|
72
70
|
name: 'triage_agent',
|
|
@@ -19,8 +19,7 @@ Configuring an agent with the Anthropic provider and common model options.
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
// src/apps/main/agents/summarizer.agent.ts
|
|
22
|
-
import { Agent, AgentContext } from '@frontmcp/sdk';
|
|
23
|
-
import { z } from 'zod';
|
|
22
|
+
import { Agent, AgentContext, z } from '@frontmcp/sdk';
|
|
24
23
|
|
|
25
24
|
@Agent({
|
|
26
25
|
name: 'summarizer',
|
|
@@ -19,8 +19,7 @@ Configuring an agent with the OpenAI provider and different model options.
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
// src/apps/main/agents/data-pipeline.agent.ts
|
|
22
|
-
import { Agent, AgentContext, Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
-
import { z } from 'zod';
|
|
22
|
+
import { Agent, AgentContext, Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
24
23
|
|
|
25
24
|
@Tool({
|
|
26
25
|
name: 'extract_data',
|
|
@@ -18,8 +18,7 @@ A minimal job that generates a report with progress tracking and structured outp
|
|
|
18
18
|
|
|
19
19
|
```typescript
|
|
20
20
|
// src/jobs/generate-report.job.ts
|
|
21
|
-
import { Job, JobContext } from '@frontmcp/sdk';
|
|
22
|
-
import { z } from 'zod';
|
|
21
|
+
import { Job, JobContext, z } from '@frontmcp/sdk';
|
|
23
22
|
|
|
24
23
|
@Job({
|
|
25
24
|
name: 'generate-report',
|
|
@@ -19,8 +19,7 @@ A data export job with declarative permission controls, plus a function-style jo
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
// src/jobs/data-export.job.ts
|
|
22
|
-
import { Job, JobContext,
|
|
23
|
-
import { z } from 'zod';
|
|
22
|
+
import { Job, job, JobContext, z } from '@frontmcp/sdk';
|
|
24
23
|
|
|
25
24
|
@Job({
|
|
26
25
|
name: 'data-export',
|
|
@@ -79,7 +78,7 @@ const CleanupTempFiles = job({
|
|
|
79
78
|
|
|
80
79
|
```typescript
|
|
81
80
|
// src/server.ts
|
|
82
|
-
import {
|
|
81
|
+
import { App, FrontMcp } from '@frontmcp/sdk';
|
|
83
82
|
|
|
84
83
|
@App({
|
|
85
84
|
name: 'data-app',
|
|
@@ -19,8 +19,7 @@ A job that syncs data from an external API with automatic retry, exponential bac
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
// src/jobs/sync-external-api.job.ts
|
|
22
|
-
import { Job, JobContext } from '@frontmcp/sdk';
|
|
23
|
-
import { z } from 'zod';
|
|
22
|
+
import { Job, JobContext, z } from '@frontmcp/sdk';
|
|
24
23
|
|
|
25
24
|
@Job({
|
|
26
25
|
name: 'sync-external-api',
|
|
@@ -20,9 +20,7 @@ Demonstrates two advanced patterns: adding `@Will`/`@Did` hooks directly on a `@
|
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
22
|
// src/tools/process-order.tool.ts
|
|
23
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
24
|
-
import { ToolHook } from '@frontmcp/sdk';
|
|
25
|
-
import { z } from 'zod';
|
|
23
|
+
import { Tool, ToolContext, ToolHook, z } from '@frontmcp/sdk';
|
|
26
24
|
|
|
27
25
|
const { Will, Did } = ToolHook;
|
|
28
26
|
|
|
@@ -70,8 +68,7 @@ class ProcessOrderTool extends ToolContext {
|
|
|
70
68
|
|
|
71
69
|
```typescript
|
|
72
70
|
// src/plugins/mock.plugin.ts
|
|
73
|
-
import { Plugin } from '@frontmcp/sdk';
|
|
74
|
-
import { ToolHook } from '@frontmcp/sdk';
|
|
71
|
+
import { Plugin, ToolHook } from '@frontmcp/sdk';
|
|
75
72
|
|
|
76
73
|
const { Stage } = ToolHook;
|
|
77
74
|
|
|
@@ -31,9 +31,10 @@ export const DB_TOKEN: Token<DatabaseService> = Symbol('DatabaseService');
|
|
|
31
31
|
|
|
32
32
|
```typescript
|
|
33
33
|
// src/apps/main/providers/database.provider.ts
|
|
34
|
-
import { Provider } from '@frontmcp/sdk';
|
|
35
34
|
import { createPool, Pool } from 'your-db-driver';
|
|
36
35
|
|
|
36
|
+
import { Provider } from '@frontmcp/sdk';
|
|
37
|
+
|
|
37
38
|
@Provider({ name: 'DatabaseProvider' })
|
|
38
39
|
class DatabaseProvider implements DatabaseService {
|
|
39
40
|
private pool!: Pool;
|
|
@@ -61,8 +62,8 @@ class DatabaseProvider implements DatabaseService {
|
|
|
61
62
|
|
|
62
63
|
```typescript
|
|
63
64
|
// src/apps/main/tools/query-users.tool.ts
|
|
64
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
65
|
-
|
|
65
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
66
|
+
|
|
66
67
|
import { DB_TOKEN } from '../tokens';
|
|
67
68
|
|
|
68
69
|
@Tool({
|
package/catalog/frontmcp-development/examples/create-skill-with-tools/directory-skill-with-tools.md
CHANGED
|
@@ -74,8 +74,7 @@ const DeployServiceSkill = await skillDir('./skills/deploy-service');
|
|
|
74
74
|
|
|
75
75
|
```typescript
|
|
76
76
|
// src/skills/audit.skill.ts
|
|
77
|
-
import { Skill, SkillContext, Tool, ToolContext } from '@frontmcp/sdk';
|
|
78
|
-
import { z } from 'zod';
|
|
77
|
+
import { Skill, SkillContext, Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
79
78
|
|
|
80
79
|
@Tool({
|
|
81
80
|
name: 'analyze_codebase',
|
|
@@ -120,7 +119,7 @@ class CodebaseAuditSkill extends SkillContext {}
|
|
|
120
119
|
|
|
121
120
|
```typescript
|
|
122
121
|
// src/server.ts
|
|
123
|
-
import {
|
|
122
|
+
import { App, FrontMcp } from '@frontmcp/sdk';
|
|
124
123
|
|
|
125
124
|
@App({
|
|
126
125
|
name: 'audit-app',
|
|
@@ -19,8 +19,7 @@ A minimal tool using the class-based pattern with Zod input validation and outpu
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
// src/apps/main/tools/greet-user.tool.ts
|
|
22
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
-
import { z } from 'zod';
|
|
22
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
24
23
|
|
|
25
24
|
@Tool({
|
|
26
25
|
name: 'greet_user',
|
|
@@ -30,8 +30,8 @@ export const DATABASE: Token<DatabaseService> = Symbol('database');
|
|
|
30
30
|
|
|
31
31
|
```typescript
|
|
32
32
|
// src/apps/main/tools/delete-record.tool.ts
|
|
33
|
-
import { Tool, ToolContext,
|
|
34
|
-
|
|
33
|
+
import { ResourceNotFoundError, Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
34
|
+
|
|
35
35
|
import { DATABASE } from '../tokens';
|
|
36
36
|
|
|
37
37
|
@Tool({
|
package/catalog/frontmcp-development/examples/create-tool/tool-with-rate-limiting-and-progress.md
CHANGED
|
@@ -20,8 +20,7 @@ A batch processing tool that uses rate limiting, concurrency control, progress n
|
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
22
|
// src/apps/main/tools/batch-process.tool.ts
|
|
23
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
24
|
-
import { z } from 'zod';
|
|
23
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
25
24
|
|
|
26
25
|
@Tool({
|
|
27
26
|
name: 'batch_process',
|
package/catalog/frontmcp-development/examples/create-tool-annotations/destructive-delete-tool.md
CHANGED
|
@@ -20,8 +20,7 @@ Demonstrates annotating a tool that deletes data, enabling MCP clients to warn u
|
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
22
|
// src/tools/delete-user.tool.ts
|
|
23
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
24
|
-
import { z } from 'zod';
|
|
23
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
25
24
|
|
|
26
25
|
@Tool({
|
|
27
26
|
name: 'delete_user',
|
|
@@ -52,8 +51,7 @@ class DeleteUserTool extends ToolContext {
|
|
|
52
51
|
|
|
53
52
|
```typescript
|
|
54
53
|
// src/tools/send-email.tool.ts
|
|
55
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
56
|
-
import { z } from 'zod';
|
|
54
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
57
55
|
|
|
58
56
|
@Tool({
|
|
59
57
|
name: 'send_email',
|
package/catalog/frontmcp-development/examples/create-tool-annotations/readonly-query-tool.md
CHANGED
|
@@ -20,8 +20,7 @@ Demonstrates annotating a tool that only reads data, signaling to MCP clients th
|
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
22
|
// src/tools/search-users.tool.ts
|
|
23
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
24
|
-
import { z } from 'zod';
|
|
23
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
25
24
|
|
|
26
25
|
@Tool({
|
|
27
26
|
name: 'search_users',
|
|
@@ -20,8 +20,7 @@ Demonstrates using primitive string literals and media types as `outputSchema` f
|
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
22
|
// src/tools/summarize.tool.ts
|
|
23
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
24
|
-
import { z } from 'zod';
|
|
23
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
25
24
|
|
|
26
25
|
// Primitive literal: returns plain text
|
|
27
26
|
@Tool({
|
|
@@ -42,8 +41,7 @@ class SummarizeTextTool extends ToolContext {
|
|
|
42
41
|
|
|
43
42
|
```typescript
|
|
44
43
|
// src/tools/generate-chart.tool.ts
|
|
45
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
46
|
-
import { z } from 'zod';
|
|
44
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
47
45
|
|
|
48
46
|
// Media type: returns base64 image data
|
|
49
47
|
@Tool({
|
|
@@ -66,8 +64,7 @@ class GenerateChartTool extends ToolContext {
|
|
|
66
64
|
|
|
67
65
|
```typescript
|
|
68
66
|
// src/tools/analyze-document.tool.ts
|
|
69
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
70
|
-
import { z } from 'zod';
|
|
67
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
71
68
|
|
|
72
69
|
// Multi-content array: returns text + image
|
|
73
70
|
@Tool({
|
|
@@ -19,8 +19,7 @@ Demonstrates the recommended approach of using a Zod raw shape as `outputSchema`
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
// src/tools/get-user-profile.tool.ts
|
|
22
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
-
import { z } from 'zod';
|
|
22
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
24
23
|
|
|
25
24
|
@Tool({
|
|
26
25
|
name: 'get_user_profile',
|
|
@@ -19,8 +19,7 @@ Demonstrates using full Zod schema objects (not raw shapes) as `outputSchema`, i
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
// src/tools/list-products.tool.ts
|
|
22
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
-
import { z } from 'zod';
|
|
22
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
24
23
|
|
|
25
24
|
// z.object() -- structured object output
|
|
26
25
|
@Tool({
|
|
@@ -56,8 +55,7 @@ class GetOrderStatusTool extends ToolContext {
|
|
|
56
55
|
|
|
57
56
|
```typescript
|
|
58
57
|
// src/tools/search-catalog.tool.ts
|
|
59
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
60
|
-
import { z } from 'zod';
|
|
58
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
61
59
|
|
|
62
60
|
// z.discriminatedUnion() -- different shapes based on a type field
|
|
63
61
|
const ProductResult = z.discriminatedUnion('type', [
|
|
@@ -21,8 +21,7 @@ Demonstrates the advanced decorator types: `@Agent` for autonomous AI agents, `@
|
|
|
21
21
|
|
|
22
22
|
```typescript
|
|
23
23
|
// src/agents/research.agent.ts
|
|
24
|
-
import { Agent, AgentContext } from '@frontmcp/sdk';
|
|
25
|
-
import { z } from 'zod';
|
|
24
|
+
import { Agent, AgentContext, z } from '@frontmcp/sdk';
|
|
26
25
|
|
|
27
26
|
@Agent({
|
|
28
27
|
name: 'research_agent',
|
|
@@ -61,8 +60,7 @@ class CodeMigrationSkill {}
|
|
|
61
60
|
|
|
62
61
|
```typescript
|
|
63
62
|
// src/jobs/sync-data.job.ts
|
|
64
|
-
import { Job, JobContext } from '@frontmcp/sdk';
|
|
65
|
-
import { z } from 'zod';
|
|
63
|
+
import { Job, JobContext, z } from '@frontmcp/sdk';
|
|
66
64
|
|
|
67
65
|
@Job({
|
|
68
66
|
name: 'sync_data',
|
|
@@ -110,7 +108,7 @@ class DeployPipeline {}
|
|
|
110
108
|
|
|
111
109
|
```typescript
|
|
112
110
|
// src/server.ts
|
|
113
|
-
import {
|
|
111
|
+
import { App, FrontMcp } from '@frontmcp/sdk';
|
|
114
112
|
|
|
115
113
|
@App({
|
|
116
114
|
name: 'platform',
|
package/catalog/frontmcp-development/examples/decorators-guide/basic-server-with-app-and-tools.md
CHANGED
|
@@ -20,8 +20,7 @@ Demonstrates the minimal decorator hierarchy to create a working FrontMCP server
|
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
22
|
// src/tools/search-users.tool.ts
|
|
23
|
-
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
24
|
-
import { z } from 'zod';
|
|
23
|
+
import { Tool, ToolContext, z } from '@frontmcp/sdk';
|
|
25
24
|
|
|
26
25
|
@Tool({
|
|
27
26
|
name: 'search_users',
|
|
@@ -88,10 +87,11 @@ class CodeReviewPrompt extends PromptContext {
|
|
|
88
87
|
|
|
89
88
|
```typescript
|
|
90
89
|
// src/server.ts
|
|
91
|
-
import {
|
|
92
|
-
|
|
93
|
-
import { AppConfigResource } from './resources/app-config.resource';
|
|
90
|
+
import { App, FrontMcp } from '@frontmcp/sdk';
|
|
91
|
+
|
|
94
92
|
import { CodeReviewPrompt } from './prompts/code-review.prompt';
|
|
93
|
+
import { AppConfigResource } from './resources/app-config.resource';
|
|
94
|
+
import { SearchUsersTool } from './tools/search-users.tool';
|
|
95
95
|
|
|
96
96
|
@App({
|
|
97
97
|
name: 'analytics',
|