@frontmcp/skills 1.0.0-beta.10 → 1.0.0-beta.12

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 (81) hide show
  1. package/catalog/frontmcp-config/SKILL.md +31 -18
  2. package/catalog/frontmcp-config/references/configure-auth-modes.md +5 -0
  3. package/catalog/frontmcp-config/references/configure-auth.md +5 -0
  4. package/catalog/frontmcp-config/references/configure-elicitation.md +5 -0
  5. package/catalog/frontmcp-config/references/configure-http.md +5 -0
  6. package/catalog/frontmcp-config/references/configure-session.md +5 -0
  7. package/catalog/frontmcp-config/references/configure-throttle-guard-config.md +5 -0
  8. package/catalog/frontmcp-config/references/configure-throttle.md +5 -0
  9. package/catalog/frontmcp-config/references/configure-transport-protocol-presets.md +5 -0
  10. package/catalog/frontmcp-config/references/configure-transport.md +5 -0
  11. package/catalog/frontmcp-config/references/setup-redis.md +5 -0
  12. package/catalog/frontmcp-config/references/setup-sqlite.md +5 -0
  13. package/catalog/frontmcp-deployment/SKILL.md +34 -9
  14. package/catalog/frontmcp-deployment/references/build-for-browser.md +5 -0
  15. package/catalog/frontmcp-deployment/references/build-for-cli.md +53 -0
  16. package/catalog/frontmcp-deployment/references/build-for-sdk.md +5 -0
  17. package/catalog/frontmcp-deployment/references/deploy-to-cloudflare.md +5 -0
  18. package/catalog/frontmcp-deployment/references/deploy-to-lambda.md +5 -0
  19. package/catalog/frontmcp-deployment/references/deploy-to-node-dockerfile.md +5 -0
  20. package/catalog/frontmcp-deployment/references/deploy-to-node.md +5 -0
  21. package/catalog/frontmcp-deployment/references/deploy-to-vercel-config.md +5 -0
  22. package/catalog/frontmcp-deployment/references/deploy-to-vercel.md +5 -0
  23. package/catalog/frontmcp-development/SKILL.md +19 -14
  24. package/catalog/frontmcp-development/references/create-adapter.md +5 -0
  25. package/catalog/frontmcp-development/references/create-agent-llm-config.md +5 -0
  26. package/catalog/frontmcp-development/references/create-agent.md +5 -0
  27. package/catalog/frontmcp-development/references/create-job.md +5 -0
  28. package/catalog/frontmcp-development/references/create-plugin-hooks.md +41 -0
  29. package/catalog/frontmcp-development/references/create-plugin.md +176 -11
  30. package/catalog/frontmcp-development/references/create-prompt.md +7 -0
  31. package/catalog/frontmcp-development/references/create-provider.md +5 -0
  32. package/catalog/frontmcp-development/references/create-resource.md +90 -0
  33. package/catalog/frontmcp-development/references/create-skill-with-tools.md +116 -7
  34. package/catalog/frontmcp-development/references/create-skill.md +22 -10
  35. package/catalog/frontmcp-development/references/create-tool-annotations.md +5 -0
  36. package/catalog/frontmcp-development/references/create-tool-output-schema-types.md +5 -0
  37. package/catalog/frontmcp-development/references/create-tool.md +114 -1
  38. package/catalog/frontmcp-development/references/create-workflow.md +5 -0
  39. package/catalog/frontmcp-development/references/decorators-guide.md +145 -78
  40. package/catalog/frontmcp-development/references/official-adapters.md +5 -0
  41. package/catalog/frontmcp-development/references/official-plugins.md +5 -0
  42. package/catalog/frontmcp-extensibility/SKILL.md +103 -0
  43. package/catalog/frontmcp-extensibility/references/vectoriadb.md +289 -0
  44. package/catalog/frontmcp-guides/references/example-knowledge-base.md +5 -0
  45. package/catalog/frontmcp-guides/references/example-task-manager.md +5 -0
  46. package/catalog/frontmcp-guides/references/example-weather-api.md +5 -0
  47. package/catalog/frontmcp-production-readiness/SKILL.md +42 -197
  48. package/catalog/frontmcp-production-readiness/references/common-checklist.md +156 -0
  49. package/catalog/frontmcp-production-readiness/references/production-browser.md +46 -0
  50. package/catalog/frontmcp-production-readiness/references/production-cli-binary.md +62 -0
  51. package/catalog/frontmcp-production-readiness/references/production-cli-daemon.md +61 -0
  52. package/catalog/frontmcp-production-readiness/references/production-cloudflare.md +52 -0
  53. package/catalog/frontmcp-production-readiness/references/production-lambda.md +53 -0
  54. package/catalog/frontmcp-production-readiness/references/production-node-sdk.md +66 -0
  55. package/catalog/frontmcp-production-readiness/references/production-node-server.md +61 -0
  56. package/catalog/frontmcp-production-readiness/references/production-vercel.md +52 -0
  57. package/catalog/frontmcp-setup/SKILL.md +12 -10
  58. package/catalog/frontmcp-setup/references/frontmcp-skills-usage.md +24 -9
  59. package/catalog/frontmcp-setup/references/multi-app-composition.md +5 -0
  60. package/catalog/frontmcp-setup/references/nx-workflow.md +5 -0
  61. package/catalog/frontmcp-setup/references/project-structure-nx.md +5 -0
  62. package/catalog/frontmcp-setup/references/project-structure-standalone.md +5 -0
  63. package/catalog/frontmcp-setup/references/readme-guide.md +226 -0
  64. package/catalog/frontmcp-setup/references/setup-project.md +5 -0
  65. package/catalog/frontmcp-setup/references/setup-redis.md +5 -0
  66. package/catalog/frontmcp-setup/references/setup-sqlite.md +5 -0
  67. package/catalog/frontmcp-testing/SKILL.md +25 -17
  68. package/catalog/frontmcp-testing/references/setup-testing.md +5 -0
  69. package/catalog/frontmcp-testing/references/test-auth.md +5 -0
  70. package/catalog/frontmcp-testing/references/test-browser-build.md +5 -0
  71. package/catalog/frontmcp-testing/references/test-cli-binary.md +5 -0
  72. package/catalog/frontmcp-testing/references/test-direct-client.md +5 -0
  73. package/catalog/frontmcp-testing/references/test-e2e-handler.md +5 -0
  74. package/catalog/frontmcp-testing/references/test-tool-unit.md +5 -0
  75. package/catalog/skills-manifest.json +302 -8
  76. package/package.json +1 -1
  77. package/src/index.d.ts +1 -1
  78. package/src/index.js.map +1 -1
  79. package/src/manifest.d.ts +13 -1
  80. package/src/manifest.js +1 -0
  81. package/src/manifest.js.map +1 -1
@@ -52,16 +52,24 @@ Entry point for configuring FrontMCP servers. This skill helps you find the righ
52
52
 
53
53
  ## Scenario Routing Table
54
54
 
55
- | Scenario | Skill | Description |
56
- | ---------------------------------------------------------- | ----------------------- | ------------------------------------------------------------- |
57
- | Choose between SSE, Streamable HTTP, or stdio | `configure-transport` | Transport protocol selection with distributed session options |
58
- | Set up CORS, port, base path, or request limits | `configure-http` | HTTP server options for Streamable HTTP and SSE transports |
59
- | Add rate limiting, concurrency, or IP filtering | `configure-throttle` | Server-level and per-tool throttle configuration |
60
- | Enable tools to ask users for input | `configure-elicitation` | Elicitation schemas, stores, and multi-step flows |
61
- | Set up authentication (public, transparent, local, remote) | `configure-auth` | OAuth flows, credential vault, multi-app auth |
62
- | Configure session storage backends | `configure-session` | Memory, Redis, Vercel KV, and custom session stores |
63
- | Add Redis for production storage | `setup-redis` | Docker Redis, Vercel KV, pub/sub for subscriptions |
64
- | Add SQLite for local development | `setup-sqlite` | SQLite with WAL mode, migration helpers |
55
+ | Scenario | Skill | Description |
56
+ | -------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------- |
57
+ | Choose between SSE, Streamable HTTP, or stdio | `configure-transport` | Transport protocol selection with distributed session options |
58
+ | Set up CORS, port, base path, or request limits | `configure-http` | HTTP server options for Streamable HTTP and SSE transports |
59
+ | Add rate limiting, concurrency, or IP filtering | `configure-throttle` | Server-level and per-tool throttle configuration |
60
+ | Enable tools to ask users for input | `configure-elicitation` | Elicitation schemas, stores, and multi-step flows |
61
+ | Set up authentication (public, transparent, local, remote) | `configure-auth` | OAuth flows, credential vault, multi-app auth |
62
+ | Configure session storage backends | `configure-session` | Memory, Redis, Vercel KV, and custom session stores |
63
+ | Add Redis for production storage | `setup-redis` | Docker Redis, Vercel KV, pub/sub for subscriptions |
64
+ | Add SQLite for local development | `setup-sqlite` | SQLite with WAL mode, migration helpers |
65
+ | Understand auth mode details (public/transparent/local/remote) | `configure-auth-modes` | Authentication mode details (public, transparent, local, remote) |
66
+ | Fine-tune guard configuration for throttling | `configure-throttle-guard-config` | Advanced guard configuration for throttling |
67
+ | Use transport protocol presets | `configure-transport-protocol-presets` | Transport protocol preset configurations |
68
+ | Split apps into separate scopes (`splitByApp`) | `decorators-guide` | Per-app scope and basePath isolation on `@FrontMcp` |
69
+ | Enable widget-to-host communication (ext-apps) | `decorators-guide` | `extApps` host capabilities, session validation, widget comms |
70
+ | Enable background jobs and workflows | `decorators-guide` | `jobs: { enabled: true, store? }` on `@FrontMcp` |
71
+ | Configure pagination for list operations | `decorators-guide` | `pagination` defaults for `tools/list` endpoint |
72
+ | Configure npm/ESM package loader for remote apps | `decorators-guide` | `loader` config for `App.esm()` / `App.remote()` resolution |
65
73
 
66
74
  ## Configuration Layers
67
75
 
@@ -73,14 +81,19 @@ Server (@FrontMcp) ← Global defaults
73
81
  └── Tool (@Tool) ← Per-tool overrides
74
82
  ```
75
83
 
76
- | Setting | Server | App | Tool |
77
- | --------------------- | ------------ | --- | -------------- |
78
- | Transport | Yes | No | No |
79
- | HTTP (CORS, port) | Yes | No | No |
80
- | Throttle (rate limit) | Yes (global) | No | Yes (per-tool) |
81
- | Auth mode | Yes | Yes | No |
82
- | Session store | Yes | No | No |
83
- | Elicitation | No | No | Yes (per-tool) |
84
+ | Setting | Server (`@FrontMcp`) | App (`@App`) | Tool (`@Tool`) |
85
+ | --------------------- | -------------------------------- | --------------------- | ------------------------------------------- |
86
+ | Transport | Yes | No | No |
87
+ | HTTP (CORS, port) | Yes | No | No |
88
+ | Throttle (rate limit) | Yes (`throttle` global defaults) | No | Yes (`rateLimit`, `concurrency`, `timeout`) |
89
+ | Auth mode | Yes | Yes (override) | No |
90
+ | Auth providers | No | Yes (`authProviders`) | Yes (`authProviders`) |
91
+ | Session store | Yes | No | No |
92
+ | Elicitation | Yes (enable: `elicitation`) | No | Yes (usage: `this.elicit()`) |
93
+ | ExtApps | Yes | No | No |
94
+ | Jobs / Workflows | Yes (`jobs: { enabled }`) | No | No |
95
+ | Pagination | Yes | No | No |
96
+ | SplitByApp | Yes | No | No |
84
97
 
85
98
  ## Cross-Cutting Patterns
86
99
 
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: configure-auth-modes
3
+ description: Detailed comparison of public, transparent, remote, and managed auth modes
4
+ ---
5
+
1
6
  # Auth Modes Detailed Comparison
2
7
 
3
8
  ## Public Mode
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: configure-auth
3
+ description: Set up authentication modes, credential vault, and OAuth flows for FrontMCP servers
4
+ ---
5
+
1
6
  # Configure Authentication for FrontMCP
2
7
 
3
8
  This skill covers setting up authentication in a FrontMCP server. FrontMCP supports four auth modes, each suited to different deployment scenarios. All authentication logic lives in the `@frontmcp/auth` library.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: configure-elicitation
3
+ description: Configure interactive user input during tool execution for confirmations, choices, and forms
4
+ ---
5
+
1
6
  # Configuring Elicitation
2
7
 
3
8
  Elicitation allows tools to request interactive input from users mid-execution — confirmations, choices, or structured form data.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: configure-http
3
+ description: Configure HTTP server port, CORS policy, unix sockets, and entry path prefix
4
+ ---
5
+
1
6
  # Configuring HTTP Options
2
7
 
3
8
  Configure the HTTP server — port, CORS policy, unix sockets, and entry path prefix.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: configure-session
3
+ description: Set up session storage with Redis or Vercel KV for persistent user state across requests
4
+ ---
5
+
1
6
  # Configure Session Management
2
7
 
3
8
  This skill covers setting up session storage in FrontMCP. Sessions track authenticated user state, token storage, and request context across MCP interactions.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: configure-throttle-guard-config
3
+ description: Complete GuardConfig interface reference for rate limiting, concurrency, and IP filtering
4
+ ---
5
+
1
6
  # GuardConfig Full Reference
2
7
 
3
8
  ## Complete Configuration
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: configure-throttle
3
+ description: Protect servers with rate limiting, concurrency control, execution timeouts, and IP filtering
4
+ ---
5
+
1
6
  # Configuring Throttle, Rate Limits, and IP Filtering
2
7
 
3
8
  Protect your FrontMCP server with rate limiting, concurrency control, execution timeouts, and IP filtering — at both server and per-tool levels.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: configure-transport-protocol-presets
3
+ description: Reference for legacy, modern, stateless, and minimal transport protocol presets
4
+ ---
5
+
1
6
  # Transport Protocol Presets Reference
2
7
 
3
8
  ## Preset Configurations
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: configure-transport
3
+ description: Configure client transport protocols including SSE, Streamable HTTP, and stateless API modes
4
+ ---
5
+
1
6
  # Configuring Transport
2
7
 
3
8
  Configure how clients connect to your FrontMCP server — SSE, Streamable HTTP, stateless API, or a combination.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: setup-redis
3
+ description: Cross-reference to the full Redis configuration guide in frontmcp-setup
4
+ ---
5
+
1
6
  # Redis Setup Reference
2
7
 
3
8
  > This reference is maintained in `frontmcp-setup/references/setup-redis.md`.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: setup-sqlite
3
+ description: Cross-reference to the full SQLite configuration guide in frontmcp-setup
4
+ ---
5
+
1
6
  # SQLite Setup Reference
2
7
 
3
8
  > This reference is maintained in `frontmcp-setup/references/setup-sqlite.md`.
@@ -53,15 +53,40 @@ Entry point for deploying and building FrontMCP servers. This skill helps you ch
53
53
 
54
54
  ## Scenario Routing Table
55
55
 
56
- | Scenario | Skill | Description |
57
- | ------------------------------------------------- | ---------------------- | ----------------------------------------------------------------------- |
58
- | Long-running server on VPS, Docker, or bare metal | `deploy-to-node` | Node.js with stdio or HTTP transport, PM2/Docker for process management |
59
- | Serverless with zero config and Vercel KV | `deploy-to-vercel` | Vercel Functions with Streamable HTTP, Vercel KV for storage |
60
- | AWS serverless with API Gateway | `deploy-to-lambda` | Lambda + API Gateway with Streamable HTTP, DynamoDB or ElastiCache |
61
- | Edge computing with global distribution | `deploy-to-cloudflare` | Cloudflare Workers with KV or Durable Objects for storage |
62
- | Standalone executable binary for distribution | `build-for-cli` | Single-binary CLI with stdio transport, embedded storage |
63
- | Run MCP in a web browser | `build-for-browser` | Browser-compatible bundle with in-memory transport |
64
- | Embed MCP into an existing Node.js application | `build-for-sdk` | Library build for programmatic usage without standalone server |
56
+ | Scenario | Skill | Description |
57
+ | ------------------------------------------------- | --------------------------- | ----------------------------------------------------------------------- |
58
+ | Long-running server on VPS, Docker, or bare metal | `deploy-to-node` | Node.js with stdio or HTTP transport, PM2/Docker for process management |
59
+ | Serverless with zero config and Vercel KV | `deploy-to-vercel` | Vercel Functions with Streamable HTTP, Vercel KV for storage |
60
+ | AWS serverless with API Gateway | `deploy-to-lambda` | Lambda + API Gateway with Streamable HTTP, DynamoDB or ElastiCache |
61
+ | Edge computing with global distribution | `deploy-to-cloudflare` | Cloudflare Workers with KV or Durable Objects for storage |
62
+ | Standalone executable binary for distribution | `build-for-cli` | Single-binary CLI with stdio transport, embedded storage |
63
+ | Run MCP in a web browser | `build-for-browser` | Browser-compatible bundle with in-memory transport |
64
+ | Embed MCP into an existing Node.js application | `build-for-sdk` | Library build for programmatic usage without standalone server |
65
+ | Write a Dockerfile for Node.js deployment | `deploy-to-node-dockerfile` | Dockerfile configuration for Node.js deployment |
66
+ | Configure Vercel-specific settings (vercel.json) | `deploy-to-vercel-config` | Vercel-specific configuration (vercel.json) |
67
+
68
+ ### CLI Commands for Deployment and Operations
69
+
70
+ Beyond `frontmcp build`, the CLI provides commands for the full deployment lifecycle:
71
+
72
+ | Command | Description |
73
+ | ---------------------------- | ----------------------------------------------------------------------------------- |
74
+ | `frontmcp build -t <target>` | Build for target: `node`, `vercel`, `lambda`, `cloudflare`, `cli`, `browser`, `sdk` |
75
+ | `frontmcp build -t cli --js` | Build CLI as JS bundle (instead of native binary via SEA) |
76
+ | `frontmcp start <name>` | Start a named MCP server with supervisor (process management) |
77
+ | `frontmcp stop <name>` | Stop managed server (`-f` for force kill) |
78
+ | `frontmcp restart <name>` | Restart managed server |
79
+ | `frontmcp status [name]` | Show process status (detail if name given, table if omitted) |
80
+ | `frontmcp list` | List all managed processes |
81
+ | `frontmcp logs <name>` | Tail log output (`-F` follow, `-n` lines) |
82
+ | `frontmcp socket <entry>` | Start Unix socket daemon for local MCP server |
83
+ | `frontmcp service <action>` | Install/uninstall systemd (Linux) or launchd (macOS) service |
84
+ | `frontmcp install <source>` | Install MCP app from npm, local path, or git |
85
+ | `frontmcp uninstall <name>` | Remove installed MCP app |
86
+ | `frontmcp configure <name>` | Re-run setup questionnaire for installed app |
87
+ | `frontmcp doctor` | Check Node.js/npm versions and tsconfig requirements |
88
+ | `frontmcp inspector` | Launch MCP Inspector for debugging |
89
+ | `frontmcp init` | Create or fix tsconfig.json for FrontMCP |
65
90
 
66
91
  ## Target Comparison
67
92
 
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: build-for-browser
3
+ description: Build a FrontMCP server or client for browser environments and frontend frameworks
4
+ ---
5
+
1
6
  # Building for Browser
2
7
 
3
8
  Build your FrontMCP server or client for browser environments.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: build-for-cli
3
+ description: Build a FrontMCP server as a standalone CLI binary using Node.js SEA or bundled JS
4
+ ---
5
+
1
6
  # Building a CLI Binary
2
7
 
3
8
  Build your FrontMCP server as a distributable CLI binary using Node.js Single Executable Applications (SEA) or as a bundled JS file.
@@ -92,6 +97,54 @@ frontmcp build --target cli
92
97
  node dist/my-server.cjs.js
93
98
  ```
94
99
 
100
+ ## Unix Socket Daemon Mode
101
+
102
+ Run your MCP server as a local daemon accessible via Unix socket:
103
+
104
+ ```bash
105
+ # Start daemon in foreground
106
+ frontmcp socket ./src/main.ts -s ~/.frontmcp/sockets/my-app.sock
107
+
108
+ # Start daemon in background
109
+ frontmcp socket ./src/main.ts -b --db ~/.my-tool/data.db
110
+
111
+ # Default socket path: ~/.frontmcp/sockets/{app-name}.sock
112
+ ```
113
+
114
+ The daemon accepts JSON-RPC requests over HTTP via the Unix socket, making it ideal for local MCP clients (Claude Code, IDE extensions) that need persistent tool access without a TCP port.
115
+
116
+ ## Process Management
117
+
118
+ Manage long-running MCP server processes with built-in supervisor commands:
119
+
120
+ ```bash
121
+ # Start a named server (auto-restarts on crash)
122
+ frontmcp start my-server -e ./src/main.ts --max-restarts 5
123
+
124
+ # Monitor
125
+ frontmcp status my-server # Detailed status for one server
126
+ frontmcp status # Table of all managed servers
127
+ frontmcp list # List all managed processes
128
+ frontmcp logs my-server -F # Tail logs (follow mode)
129
+
130
+ # Control
131
+ frontmcp restart my-server
132
+ frontmcp stop my-server # Graceful shutdown (SIGTERM)
133
+ frontmcp stop my-server -f # Force kill (SIGKILL)
134
+ ```
135
+
136
+ ## System Service Installation
137
+
138
+ Install your MCP server as a system service for automatic startup:
139
+
140
+ ```bash
141
+ # Install as systemd service (Linux) or launchd service (macOS)
142
+ frontmcp service install my-server
143
+
144
+ # Uninstall service
145
+ frontmcp service uninstall my-server
146
+ ```
147
+
95
148
  ## Common Patterns
96
149
 
97
150
  | Pattern | Correct | Incorrect | Why |
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: build-for-sdk
3
+ description: Build a FrontMCP server as an embeddable library with create() and connect() APIs
4
+ ---
5
+
1
6
  # Building as an SDK Library
2
7
 
3
8
  Build your FrontMCP server as an embeddable library that runs without an HTTP server. Use `create()` for flat-config setup or `connect()` for platform-specific tool formatting (OpenAI, Claude, LangChain, Vercel AI).
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: deploy-to-cloudflare
3
+ description: Deploy a FrontMCP server to Cloudflare Workers with KV, D1, and Durable Objects
4
+ ---
5
+
1
6
  # Deploy a FrontMCP Server to Cloudflare Workers
2
7
 
3
8
  This skill guides you through deploying a FrontMCP server to Cloudflare Workers.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: deploy-to-lambda
3
+ description: Deploy a FrontMCP server to AWS Lambda with API Gateway using SAM or CDK
4
+ ---
5
+
1
6
  # Deploy a FrontMCP Server to AWS Lambda
2
7
 
3
8
  This skill walks you through deploying a FrontMCP server to AWS Lambda with API Gateway using SAM or CDK.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: deploy-to-node-dockerfile
3
+ description: Multi-stage Dockerfile for building and running a FrontMCP server in production
4
+ ---
5
+
1
6
  # ---- Build Stage ----
2
7
 
3
8
  FROM node:24-alpine AS builder
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: deploy-to-node
3
+ description: Deploy a FrontMCP server as a standalone Node.js app with Docker and process managers
4
+ ---
5
+
1
6
  # Deploy a FrontMCP Server to Node.js
2
7
 
3
8
  This skill walks you through deploying a FrontMCP server as a standalone Node.js application, optionally containerized with Docker for production use.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: deploy-to-vercel-config
3
+ description: Reference vercel.json configuration for deploying a FrontMCP server to Vercel
4
+ ---
5
+
1
6
  {
2
7
  "$schema": "https://openapi.vercel.sh/vercel.json",
3
8
  "framework": null,
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: deploy-to-vercel
3
+ description: Deploy a FrontMCP server to Vercel serverless functions with Vercel KV storage
4
+ ---
5
+
1
6
  # Deploy a FrontMCP Server to Vercel
2
7
 
3
8
  This skill guides you through deploying a FrontMCP server to Vercel serverless functions with Vercel KV for persistent storage.
@@ -40,20 +40,25 @@ Entry point for building MCP server components. This skill helps you find the ri
40
40
 
41
41
  ## Scenario Routing Table
42
42
 
43
- | Scenario | Skill | Description |
44
- | -------------------------------------------------------- | ------------------------- | --------------------------------------------------------------------------------------------- |
45
- | Expose an executable action that AI clients can call | `create-tool` | Class-based or function-style tools with Zod input/output validation |
46
- | Expose read-only data via a URI | `create-resource` | Static resources or URI template resources for dynamic data |
47
- | Create a reusable conversation template or system prompt | `create-prompt` | Prompt entries with arguments and multi-turn message sequences |
48
- | Build an autonomous AI loop that orchestrates tools | `create-agent` | Agent entries with LLM config, inner tools, and swarm handoff |
49
- | Register shared services or configuration via DI | `create-provider` | Dependency injection tokens, lifecycle hooks, factory providers |
50
- | Run a background task with progress and retries | `create-job` | Job entries with attempt tracking, retry config, and progress |
51
- | Chain multiple jobs into a sequential pipeline | `create-workflow` | Workflow entries that compose jobs with data passing |
52
- | Write instruction-only AI guidance (no code execution) | `create-skill` | Skill entries with markdown instructions from files, strings, or URLs |
53
- | Write AI guidance that also orchestrates tools | `create-skill-with-tools` | Skill entries that combine instructions with registered tools |
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 |
56
- | Use official plugins (caching, remember, feature flags) | `official-plugins` | Built-in plugins for caching, session memory, approval, and feature flags (dashboard is beta) |
43
+ | Scenario | Skill | Description |
44
+ | -------------------------------------------------------- | --------------------------------- | --------------------------------------------------------------------------------------------- |
45
+ | Expose an executable action that AI clients can call | `create-tool` | Class-based or function-style tools with Zod input/output validation |
46
+ | Expose read-only data via a URI | `create-resource` | Static resources or URI template resources for dynamic data |
47
+ | Create a reusable conversation template or system prompt | `create-prompt` | Prompt entries with arguments and multi-turn message sequences |
48
+ | Build an autonomous AI loop that orchestrates tools | `create-agent` | Agent entries with LLM config, inner tools, and swarm handoff |
49
+ | Register shared services or configuration via DI | `create-provider` | Dependency injection tokens, lifecycle hooks, factory providers |
50
+ | Run a background task with progress and retries | `create-job` | Job entries with attempt tracking, retry config, and progress |
51
+ | Chain multiple jobs into a sequential pipeline | `create-workflow` | Workflow entries that compose jobs with data passing |
52
+ | Write instruction-only AI guidance (no code execution) | `create-skill` | Skill entries with markdown instructions from files, strings, or URLs |
53
+ | Write AI guidance that also orchestrates tools | `create-skill-with-tools` | Skill entries that combine instructions with registered tools |
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 |
56
+ | Use official plugins (caching, remember, feature flags) | `official-plugins` | Built-in plugins for caching, session memory, approval, and feature flags (dashboard is beta) |
57
+ | Connect to an external data source via a custom adapter | `create-adapter` | Create custom adapters for external data sources |
58
+ | Configure LLM settings for an agent component | `create-agent-llm-config` | Configure LLM settings for agent components |
59
+ | Add will/did/around lifecycle hooks to a plugin | `create-plugin-hooks` | Add lifecycle hooks to plugins (will/did/around) |
60
+ | Annotate tools with client hints for AI clients | `create-tool-annotations` | Add MCP tool annotations for client hints |
61
+ | Define typed output schemas for tool responses | `create-tool-output-schema-types` | Define typed output schemas for tools |
57
62
 
58
63
  ## Recommended Reading Order
59
64
 
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: create-adapter
3
+ description: Build adapters that generate MCP tools and resources from external sources automatically
4
+ ---
5
+
1
6
  # Creating Custom Adapters
2
7
 
3
8
  Build adapters that automatically generate MCP tools, resources, and prompts from external sources — databases, GraphQL schemas, proprietary APIs, or any definition format.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: create-agent-llm-config
3
+ description: Reference for supported LLM provider configurations including Anthropic and OpenAI
4
+ ---
5
+
1
6
  # Agent LLM Configuration Reference
2
7
 
3
8
  ## Supported Providers
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: create-agent
3
+ description: Create autonomous AI agents that use LLM reasoning to plan and invoke inner tools
4
+ ---
5
+
1
6
  # Creating an Autonomous Agent
2
7
 
3
8
  Agents are autonomous AI entities that use an LLM to reason, plan, and invoke inner tools to accomplish goals. In FrontMCP, agents are TypeScript classes that extend `AgentContext`, decorated with `@Agent`, and registered on a `@FrontMcp` server or inside an `@App`.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: create-job
3
+ description: Create long-running background jobs with retry policies, progress tracking, and permissions
4
+ ---
5
+
1
6
  # Creating Jobs
2
7
 
3
8
  Jobs are long-running background tasks with built-in retry policies, progress tracking, and permission controls. Unlike tools (which execute synchronously within a request), jobs run asynchronously and persist their state across retries and restarts.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: create-plugin-hooks
3
+ description: Intercept and extend FrontMCP flows using before, after, around, and stage hook decorators
4
+ ---
5
+
1
6
  # Creating Plugins with Flow Lifecycle Hooks
2
7
 
3
8
  Plugins intercept and extend FrontMCP flows using lifecycle hook decorators. Every flow (tool calls, resource reads, prompt gets, etc.) is composed of **stages**, and hooks let you run logic before, after, around, or instead of any stage.
@@ -58,6 +63,42 @@ const { Stage, Will, Did, Around } = FlowHooksOf('tools:call-tool');
58
63
  | `http:request` | HTTP request handling |
59
64
  | `agents:call-agent` | Agent invocation |
60
65
 
66
+ ## Server Lifecycle Hooks
67
+
68
+ In addition to flow-based hooks, plugins can register callbacks for server lifecycle events. These are not decorator-based — they use the `scope.onServerStarted()` API.
69
+
70
+ ### `onServerStarted()`
71
+
72
+ Runs after the HTTP server is fully initialized and listening. Use for warming caches, starting background indexing, or logging readiness.
73
+
74
+ ```typescript
75
+ import { Plugin, DynamicPlugin } from '@frontmcp/sdk';
76
+
77
+ @Plugin({
78
+ name: 'cache-warmer',
79
+ description: 'Warms caches when the server starts',
80
+ providers: [CacheService],
81
+ })
82
+ class CacheWarmerPlugin extends DynamicPlugin<{}> {
83
+ constructor(scope: ScopeEntry) {
84
+ super();
85
+ // Register lifecycle callback
86
+ scope.onServerStarted(async () => {
87
+ const cache = this.get(CacheService);
88
+ await cache.warmAll();
89
+ console.log('Cache warmed successfully');
90
+ });
91
+ }
92
+ }
93
+ ```
94
+
95
+ **Signature:** `scope.onServerStarted(callback: () => void | Promise<void>): void`
96
+
97
+ - Callbacks are stored and executed after `server.start()` completes
98
+ - Supports both sync and async callbacks
99
+ - Multiple callbacks are executed in registration order with `await`
100
+ - Typically used in plugin constructors or provider `onInit()` methods
101
+
61
102
  ## Pre-Built Hook Type Exports
62
103
 
63
104
  For convenience, FrontMCP exports typed aliases so you do not need to call `FlowHooksOf` directly: