@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.
- package/catalog/frontmcp-config/SKILL.md +31 -18
- package/catalog/frontmcp-config/references/configure-auth-modes.md +5 -0
- package/catalog/frontmcp-config/references/configure-auth.md +5 -0
- package/catalog/frontmcp-config/references/configure-elicitation.md +5 -0
- package/catalog/frontmcp-config/references/configure-http.md +5 -0
- package/catalog/frontmcp-config/references/configure-session.md +5 -0
- package/catalog/frontmcp-config/references/configure-throttle-guard-config.md +5 -0
- package/catalog/frontmcp-config/references/configure-throttle.md +5 -0
- package/catalog/frontmcp-config/references/configure-transport-protocol-presets.md +5 -0
- package/catalog/frontmcp-config/references/configure-transport.md +5 -0
- package/catalog/frontmcp-config/references/setup-redis.md +5 -0
- package/catalog/frontmcp-config/references/setup-sqlite.md +5 -0
- package/catalog/frontmcp-deployment/SKILL.md +34 -9
- package/catalog/frontmcp-deployment/references/build-for-browser.md +5 -0
- package/catalog/frontmcp-deployment/references/build-for-cli.md +53 -0
- package/catalog/frontmcp-deployment/references/build-for-sdk.md +5 -0
- package/catalog/frontmcp-deployment/references/deploy-to-cloudflare.md +5 -0
- package/catalog/frontmcp-deployment/references/deploy-to-lambda.md +5 -0
- package/catalog/frontmcp-deployment/references/deploy-to-node-dockerfile.md +5 -0
- package/catalog/frontmcp-deployment/references/deploy-to-node.md +5 -0
- package/catalog/frontmcp-deployment/references/deploy-to-vercel-config.md +5 -0
- package/catalog/frontmcp-deployment/references/deploy-to-vercel.md +5 -0
- package/catalog/frontmcp-development/SKILL.md +19 -14
- package/catalog/frontmcp-development/references/create-adapter.md +5 -0
- package/catalog/frontmcp-development/references/create-agent-llm-config.md +5 -0
- package/catalog/frontmcp-development/references/create-agent.md +5 -0
- package/catalog/frontmcp-development/references/create-job.md +5 -0
- package/catalog/frontmcp-development/references/create-plugin-hooks.md +41 -0
- package/catalog/frontmcp-development/references/create-plugin.md +176 -11
- package/catalog/frontmcp-development/references/create-prompt.md +7 -0
- package/catalog/frontmcp-development/references/create-provider.md +5 -0
- package/catalog/frontmcp-development/references/create-resource.md +90 -0
- package/catalog/frontmcp-development/references/create-skill-with-tools.md +116 -7
- package/catalog/frontmcp-development/references/create-skill.md +22 -10
- package/catalog/frontmcp-development/references/create-tool-annotations.md +5 -0
- package/catalog/frontmcp-development/references/create-tool-output-schema-types.md +5 -0
- package/catalog/frontmcp-development/references/create-tool.md +114 -1
- package/catalog/frontmcp-development/references/create-workflow.md +5 -0
- package/catalog/frontmcp-development/references/decorators-guide.md +145 -78
- package/catalog/frontmcp-development/references/official-adapters.md +5 -0
- package/catalog/frontmcp-development/references/official-plugins.md +5 -0
- package/catalog/frontmcp-extensibility/SKILL.md +103 -0
- package/catalog/frontmcp-extensibility/references/vectoriadb.md +289 -0
- package/catalog/frontmcp-guides/references/example-knowledge-base.md +5 -0
- package/catalog/frontmcp-guides/references/example-task-manager.md +5 -0
- package/catalog/frontmcp-guides/references/example-weather-api.md +5 -0
- package/catalog/frontmcp-production-readiness/SKILL.md +42 -197
- package/catalog/frontmcp-production-readiness/references/common-checklist.md +156 -0
- package/catalog/frontmcp-production-readiness/references/production-browser.md +46 -0
- package/catalog/frontmcp-production-readiness/references/production-cli-binary.md +62 -0
- package/catalog/frontmcp-production-readiness/references/production-cli-daemon.md +61 -0
- package/catalog/frontmcp-production-readiness/references/production-cloudflare.md +52 -0
- package/catalog/frontmcp-production-readiness/references/production-lambda.md +53 -0
- package/catalog/frontmcp-production-readiness/references/production-node-sdk.md +66 -0
- package/catalog/frontmcp-production-readiness/references/production-node-server.md +61 -0
- package/catalog/frontmcp-production-readiness/references/production-vercel.md +52 -0
- package/catalog/frontmcp-setup/SKILL.md +12 -10
- package/catalog/frontmcp-setup/references/frontmcp-skills-usage.md +24 -9
- package/catalog/frontmcp-setup/references/multi-app-composition.md +5 -0
- package/catalog/frontmcp-setup/references/nx-workflow.md +5 -0
- package/catalog/frontmcp-setup/references/project-structure-nx.md +5 -0
- package/catalog/frontmcp-setup/references/project-structure-standalone.md +5 -0
- package/catalog/frontmcp-setup/references/readme-guide.md +226 -0
- package/catalog/frontmcp-setup/references/setup-project.md +5 -0
- package/catalog/frontmcp-setup/references/setup-redis.md +5 -0
- package/catalog/frontmcp-setup/references/setup-sqlite.md +5 -0
- package/catalog/frontmcp-testing/SKILL.md +25 -17
- package/catalog/frontmcp-testing/references/setup-testing.md +5 -0
- package/catalog/frontmcp-testing/references/test-auth.md +5 -0
- package/catalog/frontmcp-testing/references/test-browser-build.md +5 -0
- package/catalog/frontmcp-testing/references/test-cli-binary.md +5 -0
- package/catalog/frontmcp-testing/references/test-direct-client.md +5 -0
- package/catalog/frontmcp-testing/references/test-e2e-handler.md +5 -0
- package/catalog/frontmcp-testing/references/test-tool-unit.md +5 -0
- package/catalog/skills-manifest.json +302 -8
- package/package.json +1 -1
- package/src/index.d.ts +1 -1
- package/src/index.js.map +1 -1
- package/src/manifest.d.ts +13 -1
- package/src/manifest.js +1 -0
- 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
|
|
56
|
-
|
|
|
57
|
-
| Choose between SSE, Streamable HTTP, or stdio
|
|
58
|
-
| Set up CORS, port, base path, or request limits
|
|
59
|
-
| Add rate limiting, concurrency, or IP filtering
|
|
60
|
-
| Enable tools to ask users for input
|
|
61
|
-
| Set up authentication (public, transparent, local, remote)
|
|
62
|
-
| Configure session storage backends
|
|
63
|
-
| Add Redis for production storage
|
|
64
|
-
| Add SQLite for local development
|
|
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
|
|
77
|
-
| --------------------- |
|
|
78
|
-
| Transport | Yes
|
|
79
|
-
| HTTP (CORS, port) | Yes
|
|
80
|
-
| Throttle (rate limit) | Yes (global) | No
|
|
81
|
-
| Auth mode | Yes
|
|
82
|
-
|
|
|
83
|
-
|
|
|
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
|
|
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-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
|
|
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
|
|
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.
|
|
@@ -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
|
|
57
|
-
| ------------------------------------------------- |
|
|
58
|
-
| Long-running server on VPS, Docker, or bare metal | `deploy-to-node`
|
|
59
|
-
| Serverless with zero config and Vercel KV | `deploy-to-vercel`
|
|
60
|
-
| AWS serverless with API Gateway | `deploy-to-lambda`
|
|
61
|
-
| Edge computing with global distribution | `deploy-to-cloudflare`
|
|
62
|
-
| Standalone executable binary for distribution | `build-for-cli`
|
|
63
|
-
| Run MCP in a web browser | `build-for-browser`
|
|
64
|
-
| Embed MCP into an existing Node.js application | `build-for-sdk`
|
|
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-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
|
|
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
|
|
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
|
|
44
|
-
| -------------------------------------------------------- |
|
|
45
|
-
| Expose an executable action that AI clients can call | `create-tool`
|
|
46
|
-
| Expose read-only data via a URI | `create-resource`
|
|
47
|
-
| Create a reusable conversation template or system prompt | `create-prompt`
|
|
48
|
-
| Build an autonomous AI loop that orchestrates tools | `create-agent`
|
|
49
|
-
| Register shared services or configuration via DI | `create-provider`
|
|
50
|
-
| Run a background task with progress and retries | `create-job`
|
|
51
|
-
| Chain multiple jobs into a sequential pipeline | `create-workflow`
|
|
52
|
-
| Write instruction-only AI guidance (no code execution) | `create-skill`
|
|
53
|
-
| Write AI guidance that also orchestrates tools | `create-skill-with-tools`
|
|
54
|
-
| Look up any decorator signature or option | `decorators-guide`
|
|
55
|
-
| Integrate an external API via OpenAPI spec | `official-adapters`
|
|
56
|
-
| Use official plugins (caching, remember, feature flags) | `official-plugins`
|
|
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
|
|
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:
|