@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.
Files changed (141) hide show
  1. package/catalog/frontmcp-authorities/SKILL.md +272 -0
  2. package/catalog/frontmcp-authorities/references/authority-profiles.md +262 -0
  3. package/catalog/frontmcp-authorities/references/claims-mapping.md +266 -0
  4. package/catalog/frontmcp-authorities/references/custom-evaluators.md +420 -0
  5. package/catalog/frontmcp-authorities/references/rbac-abac-rebac.md +391 -0
  6. package/catalog/frontmcp-channels/SKILL.md +122 -0
  7. package/catalog/frontmcp-channels/examples/channel-sources/agent-notify.md +70 -0
  8. package/catalog/frontmcp-channels/examples/channel-sources/app-errors.md +71 -0
  9. package/catalog/frontmcp-channels/examples/channel-sources/file-watcher.md +102 -0
  10. package/catalog/frontmcp-channels/examples/channel-sources/job-completion.md +79 -0
  11. package/catalog/frontmcp-channels/examples/channel-sources/replay-buffer.md +106 -0
  12. package/catalog/frontmcp-channels/examples/channel-sources/service-connector.md +136 -0
  13. package/catalog/frontmcp-channels/examples/channel-sources/webhook-github.md +85 -0
  14. package/catalog/frontmcp-channels/examples/channel-two-way/whatsapp-bridge.md +133 -0
  15. package/catalog/frontmcp-channels/references/channel-sources.md +214 -0
  16. package/catalog/frontmcp-channels/references/channel-two-way.md +195 -0
  17. package/catalog/frontmcp-config/SKILL.md +20 -18
  18. package/catalog/frontmcp-config/examples/configure-auth/multi-app-auth.md +1 -2
  19. package/catalog/frontmcp-config/examples/configure-auth/public-mode-setup.md +1 -2
  20. package/catalog/frontmcp-config/examples/configure-auth/remote-oauth-with-vault.md +1 -2
  21. package/catalog/frontmcp-config/examples/configure-auth-modes/local-self-signed-tokens.md +1 -2
  22. package/catalog/frontmcp-config/examples/configure-auth-modes/remote-enterprise-oauth.md +1 -2
  23. package/catalog/frontmcp-config/examples/configure-auth-modes/transparent-jwt-validation.md +1 -2
  24. package/catalog/frontmcp-config/examples/configure-deployment-targets/distributed-ha-config.md +121 -0
  25. package/catalog/frontmcp-config/examples/configure-deployment-targets/json-schema-ide-support.md +64 -0
  26. package/catalog/frontmcp-config/examples/configure-deployment-targets/multi-target-with-security.md +113 -0
  27. package/catalog/frontmcp-config/examples/configure-elicitation/basic-confirmation-gate.md +1 -2
  28. package/catalog/frontmcp-config/examples/configure-elicitation/distributed-elicitation-redis.md +1 -2
  29. package/catalog/frontmcp-config/examples/configure-http/entry-path-reverse-proxy.md +1 -2
  30. package/catalog/frontmcp-config/examples/configure-http/unix-socket-local.md +1 -2
  31. package/catalog/frontmcp-config/examples/configure-security-headers/csp-report-only.md +69 -0
  32. package/catalog/frontmcp-config/examples/configure-security-headers/full-production-headers.md +91 -0
  33. package/catalog/frontmcp-config/examples/configure-throttle/distributed-redis-throttle.md +1 -2
  34. package/catalog/frontmcp-config/examples/configure-throttle/per-tool-rate-limit.md +1 -2
  35. package/catalog/frontmcp-config/examples/configure-throttle/server-level-rate-limit.md +1 -2
  36. package/catalog/frontmcp-config/examples/configure-transport/custom-protocol-flags.md +1 -2
  37. package/catalog/frontmcp-config/examples/configure-transport/distributed-sessions-redis.md +1 -2
  38. package/catalog/frontmcp-config/examples/configure-transport/stateless-serverless.md +1 -2
  39. package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/legacy-preset-nodejs.md +1 -2
  40. package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/stateless-api-serverless.md +1 -2
  41. package/catalog/frontmcp-config/references/configure-deployment-targets.md +214 -0
  42. package/catalog/frontmcp-config/references/configure-elicitation.md +1 -2
  43. package/catalog/frontmcp-config/references/configure-security-headers.md +198 -0
  44. package/catalog/frontmcp-deployment/SKILL.md +1 -0
  45. package/catalog/frontmcp-deployment/examples/build-for-cli/cli-binary-build.md +1 -2
  46. package/catalog/frontmcp-deployment/examples/build-for-cli/unix-socket-daemon.md +1 -2
  47. package/catalog/frontmcp-deployment/examples/build-for-mcpb/mcpb-bundle-build.md +117 -0
  48. package/catalog/frontmcp-deployment/examples/build-for-sdk/connect-openai.md +1 -3
  49. package/catalog/frontmcp-deployment/examples/build-for-sdk/create-flat-config.md +1 -2
  50. package/catalog/frontmcp-deployment/examples/build-for-sdk/multi-platform-connect.md +3 -3
  51. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/basic-worker-deploy.md +1 -2
  52. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-custom-domain.md +1 -2
  53. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-with-kv-storage.md +1 -2
  54. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/lambda-handler-with-cors.md +1 -2
  55. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-kv.md +1 -2
  56. package/catalog/frontmcp-deployment/examples/mcp-client-integration/http-remote.md +106 -0
  57. package/catalog/frontmcp-deployment/examples/mcp-client-integration/stdio-binary-with-env.md +107 -0
  58. package/catalog/frontmcp-deployment/examples/mcp-client-integration/stdio-npx.md +89 -0
  59. package/catalog/frontmcp-deployment/references/build-for-mcpb.md +209 -0
  60. package/catalog/frontmcp-deployment/references/build-for-sdk.md +1 -2
  61. package/catalog/frontmcp-deployment/references/mcp-client-integration.md +225 -0
  62. package/catalog/frontmcp-development/SKILL.md +4 -3
  63. package/catalog/frontmcp-development/examples/create-agent/basic-agent-with-tools.md +3 -6
  64. package/catalog/frontmcp-development/examples/create-agent/custom-multi-pass-agent.md +1 -2
  65. package/catalog/frontmcp-development/examples/create-agent/nested-agents-with-swarm.md +2 -4
  66. package/catalog/frontmcp-development/examples/create-agent-llm-config/anthropic-config.md +1 -2
  67. package/catalog/frontmcp-development/examples/create-agent-llm-config/openai-config.md +1 -2
  68. package/catalog/frontmcp-development/examples/create-job/basic-report-job.md +1 -2
  69. package/catalog/frontmcp-development/examples/create-job/job-with-permissions.md +2 -3
  70. package/catalog/frontmcp-development/examples/create-job/job-with-retry.md +1 -2
  71. package/catalog/frontmcp-development/examples/create-plugin-hooks/tool-level-hooks-and-stage-replacement.md +2 -5
  72. package/catalog/frontmcp-development/examples/create-provider/basic-database-provider.md +4 -3
  73. package/catalog/frontmcp-development/examples/create-skill-with-tools/directory-skill-with-tools.md +2 -3
  74. package/catalog/frontmcp-development/examples/create-tool/basic-class-tool.md +1 -2
  75. package/catalog/frontmcp-development/examples/create-tool/tool-with-di-and-errors.md +2 -2
  76. package/catalog/frontmcp-development/examples/create-tool/tool-with-rate-limiting-and-progress.md +1 -2
  77. package/catalog/frontmcp-development/examples/create-tool-annotations/destructive-delete-tool.md +2 -4
  78. package/catalog/frontmcp-development/examples/create-tool-annotations/readonly-query-tool.md +1 -2
  79. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/primitive-and-media-outputs.md +3 -6
  80. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-raw-shape-output.md +1 -2
  81. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-schema-advanced-output.md +2 -4
  82. package/catalog/frontmcp-development/examples/decorators-guide/agent-skill-job-workflow.md +3 -5
  83. package/catalog/frontmcp-development/examples/decorators-guide/basic-server-with-app-and-tools.md +5 -5
  84. package/catalog/frontmcp-development/examples/decorators-guide/multi-app-with-plugins-and-providers.md +4 -6
  85. package/catalog/frontmcp-development/examples/official-plugins/cache-and-feature-flags.md +3 -5
  86. package/catalog/frontmcp-development/examples/official-plugins/production-multi-plugin-setup.md +4 -5
  87. package/catalog/frontmcp-development/examples/official-plugins/remember-plugin-session-memory.md +3 -5
  88. package/catalog/frontmcp-development/examples/{official-adapters → openapi-adapter}/authenticated-adapter-with-polling.md +2 -2
  89. package/catalog/frontmcp-development/examples/{official-adapters → openapi-adapter}/basic-openapi-adapter.md +2 -2
  90. package/catalog/frontmcp-development/examples/openapi-adapter/format-resolution-and-custom-resolvers.md +108 -0
  91. package/catalog/frontmcp-development/examples/{official-adapters → openapi-adapter}/multi-api-hub-with-inline-spec.md +2 -2
  92. package/catalog/frontmcp-development/examples/openapi-adapter/ref-security-and-filtering.md +111 -0
  93. package/catalog/frontmcp-development/references/create-agent.md +4 -7
  94. package/catalog/frontmcp-development/references/create-job.md +3 -6
  95. package/catalog/frontmcp-development/references/create-plugin-hooks.md +12 -16
  96. package/catalog/frontmcp-development/references/create-skill-with-tools.md +2 -3
  97. package/catalog/frontmcp-development/references/create-tool.md +93 -23
  98. package/catalog/frontmcp-development/references/create-workflow.md +2 -3
  99. package/catalog/frontmcp-development/references/decorators-guide.md +32 -36
  100. package/catalog/frontmcp-development/references/official-adapters.md +24 -153
  101. package/catalog/frontmcp-development/references/openapi-adapter.md +431 -0
  102. package/catalog/frontmcp-extensibility/examples/vectoriadb/product-catalog-search.md +4 -4
  103. package/catalog/frontmcp-extensibility/examples/vectoriadb/semantic-search-with-persistence.md +4 -4
  104. package/catalog/frontmcp-extensibility/examples/vectoriadb/tfidf-keyword-search.md +4 -3
  105. package/catalog/frontmcp-guides/SKILL.md +3 -3
  106. package/catalog/frontmcp-guides/examples/example-knowledge-base/agent-and-plugin.md +4 -5
  107. package/catalog/frontmcp-guides/examples/example-knowledge-base/vector-search-and-resources.md +4 -3
  108. package/catalog/frontmcp-guides/examples/example-task-manager/auth-and-crud-tools.md +4 -4
  109. package/catalog/frontmcp-guides/examples/example-weather-api/weather-tool-with-schemas.md +1 -2
  110. package/catalog/frontmcp-guides/references/example-knowledge-base.md +22 -17
  111. package/catalog/frontmcp-guides/references/example-task-manager.md +16 -11
  112. package/catalog/frontmcp-guides/references/example-weather-api.md +6 -3
  113. package/catalog/frontmcp-observability/examples/telemetry-api/tool-custom-spans.md +2 -3
  114. package/catalog/frontmcp-observability/examples/tracing-setup/basic-tracing.md +4 -3
  115. package/catalog/frontmcp-observability/references/telemetry-api.md +2 -3
  116. package/catalog/frontmcp-production-readiness/examples/common-checklist/observability-setup.md +1 -2
  117. package/catalog/frontmcp-production-readiness/examples/common-checklist/security-hardening.md +3 -4
  118. package/catalog/frontmcp-production-readiness/examples/distributed-ha/ha-kubernetes-3-replicas.md +229 -0
  119. package/catalog/frontmcp-production-readiness/examples/production-browser/cross-platform-crypto.md +2 -3
  120. package/catalog/frontmcp-production-readiness/examples/production-cli-binary/stdio-transport-error-handling.md +1 -2
  121. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/durable-objects-state.md +2 -4
  122. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/workers-runtime-constraints.md +2 -3
  123. package/catalog/frontmcp-production-readiness/examples/production-lambda/cold-start-connection-reuse.md +3 -2
  124. package/catalog/frontmcp-production-readiness/examples/production-vercel/cold-start-optimization.md +2 -2
  125. package/catalog/frontmcp-production-readiness/examples/production-vercel/stateless-serverless-design.md +3 -3
  126. package/catalog/frontmcp-production-readiness/references/distributed-ha.md +194 -0
  127. package/catalog/frontmcp-setup/SKILL.md +11 -11
  128. package/catalog/frontmcp-setup/examples/project-structure-standalone/feature-folder-organization.md +5 -3
  129. package/catalog/frontmcp-setup/examples/project-structure-standalone/minimal-standalone-layout.md +4 -2
  130. package/catalog/frontmcp-setup/examples/setup-project/basic-node-server.md +4 -2
  131. package/catalog/frontmcp-setup/examples/setup-project/vercel-serverless-server.md +4 -2
  132. package/catalog/frontmcp-setup/examples/setup-redis/hybrid-vercel-kv-with-pubsub.md +8 -7
  133. package/catalog/frontmcp-setup/references/setup-project.md +10 -9
  134. package/catalog/frontmcp-setup/references/setup-redis.md +19 -16
  135. package/catalog/frontmcp-testing/examples/test-direct-client/basic-create-test.md +1 -3
  136. package/catalog/frontmcp-testing/examples/test-direct-client/openai-claude-format-test.md +1 -3
  137. package/catalog/frontmcp-testing/examples/test-tool-unit/schema-validation-test.md +2 -2
  138. package/catalog/frontmcp-testing/references/test-direct-client.md +1 -3
  139. package/catalog/frontmcp-testing/references/test-tool-unit.md +2 -2
  140. package/catalog/skills-manifest.json +364 -12
  141. 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
- | Integrate an external API via OpenAPI spec | `official-adapters` | OpenapiAdapter with auth, polling, inline specs, and multiple API composition |
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, job } from '@frontmcp/sdk';
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 { FrontMcp, App } from '@frontmcp/sdk';
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
- import { z } from 'zod';
65
+ import { Tool, ToolContext, z } from '@frontmcp/sdk';
66
+
66
67
  import { DB_TOKEN } from '../tokens';
67
68
 
68
69
  @Tool({
@@ -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 { FrontMcp, App } from '@frontmcp/sdk';
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, ResourceNotFoundError } from '@frontmcp/sdk';
34
- import { z } from 'zod';
33
+ import { ResourceNotFoundError, Tool, ToolContext, z } from '@frontmcp/sdk';
34
+
35
35
  import { DATABASE } from '../tokens';
36
36
 
37
37
  @Tool({
@@ -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',
@@ -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',
@@ -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 { FrontMcp, App } from '@frontmcp/sdk';
111
+ import { App, FrontMcp } from '@frontmcp/sdk';
114
112
 
115
113
  @App({
116
114
  name: 'platform',
@@ -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 { FrontMcp, App } from '@frontmcp/sdk';
92
- import { SearchUsersTool } from './tools/search-users.tool';
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',