frontmcp 1.3.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -29
- package/package.json +10 -12
- package/src/commands/build/exec/cli-runtime/generate-cli-entry.js +1 -0
- package/src/commands/build/exec/cli-runtime/generate-cli-entry.js.map +1 -1
- package/src/commands/build/exec/runner-script.js +16 -4
- package/src/commands/build/exec/runner-script.js.map +1 -1
- package/src/commands/dev/dev.d.ts +16 -0
- package/src/commands/dev/dev.js +35 -1
- package/src/commands/dev/dev.js.map +1 -1
- package/src/commands/scaffold/create.js +8 -8
- package/src/commands/scaffold/create.js.map +1 -1
- package/src/core/tsconfig.d.ts +20 -0
- package/src/core/tsconfig.js +41 -2
- package/src/core/tsconfig.js.map +1 -1
package/README.md
CHANGED
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
</picture>
|
|
8
8
|
<hr>
|
|
9
9
|
|
|
10
|
-
**The TypeScript
|
|
10
|
+
**The production-grade, TypeScript-first framework for building MCP servers — decorators, DI, auth, and Streamable HTTP, batteries included.**
|
|
11
11
|
|
|
12
12
|
[](https://www.npmjs.com/package/@frontmcp/sdk)
|
|
13
|
-
[](https://nodejs.org)
|
|
14
14
|
[](https://github.com/agentfront/frontmcp/blob/main/LICENSE)
|
|
15
15
|
[](https://snyk.io/test/github/agentfront/frontmcp)
|
|
16
16
|
|
|
@@ -20,12 +20,17 @@
|
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
FrontMCP
|
|
24
|
-
|
|
23
|
+
FrontMCP turns the [Model Context Protocol](https://modelcontextprotocol.io) into a
|
|
24
|
+
typed, declarative framework. You write clean `@Tool`, `@Resource`, and `@App`
|
|
25
|
+
classes; FrontMCP handles the protocol, transport, dependency injection, sessions,
|
|
26
|
+
auth, and execution flow — and the **same server runs locally and ships to
|
|
27
|
+
production unchanged**.
|
|
25
28
|
|
|
26
29
|
```ts
|
|
27
30
|
import 'reflect-metadata';
|
|
31
|
+
|
|
28
32
|
import { FrontMcp, LogLevel } from '@frontmcp/sdk';
|
|
33
|
+
|
|
29
34
|
import HelloApp from './hello.app';
|
|
30
35
|
|
|
31
36
|
@FrontMcp({
|
|
@@ -37,6 +42,14 @@ import HelloApp from './hello.app';
|
|
|
37
42
|
export default class Server {}
|
|
38
43
|
```
|
|
39
44
|
|
|
45
|
+
## Why FrontMCP
|
|
46
|
+
|
|
47
|
+
- **Typed by default** — decorators + Zod schemas give end-to-end types from input to output, with editor autocomplete and compile-time checks.
|
|
48
|
+
- **Batteries included** — auth (OAuth/JWKS/DCR), sessions, transport, discovery, and DI are built in, not bolted on.
|
|
49
|
+
- **Ship anywhere** — one codebase deploys to Node, Vercel, AWS Lambda, Cloudflare Workers, or a serverless bundle.
|
|
50
|
+
- **Production-minded** — stateful/stateless sessions, high-availability transport, structured observability, and a 95%+ tested core.
|
|
51
|
+
- **Extensible** — plugins, lifecycle hooks, OpenAPI adapters, and external MCP sub-apps when you outgrow the defaults.
|
|
52
|
+
|
|
40
53
|
## Installation
|
|
41
54
|
|
|
42
55
|
**Node.js 24+** required.
|
|
@@ -50,34 +63,30 @@ npm i -D frontmcp @types/node@^24
|
|
|
50
63
|
npx frontmcp init
|
|
51
64
|
```
|
|
52
65
|
|
|
53
|
-
> Full setup guide: [Installation][docs-install]
|
|
66
|
+
> Full setup guide: [Installation][docs-install] · [Quickstart][docs-quickstart]
|
|
54
67
|
|
|
55
68
|
## Capabilities
|
|
56
69
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
| **Testing** | E2E fixtures, matchers, HTTP mocking for MCP servers | [Testing][docs-testing] |
|
|
78
|
-
| **UI Library** | HTML/React widgets, SSR, MCP Bridge, web components | [UI][docs-ui] |
|
|
79
|
-
| **CLI** | `create`, `init`, `dev`, `build`, `inspector`, `doctor` | [CLI][docs-install] |
|
|
80
|
-
| **Deployment** | Local dev, production builds, version alignment | [Deployment][docs-deploy] |
|
|
70
|
+
**Build** — decorator-configured [`@FrontMcp` server][docs-server] and [`@App`][docs-apps]
|
|
71
|
+
domains; typed [`@Tool`][docs-tools], [`@Resource`][docs-resources], and
|
|
72
|
+
[`@Prompt`][docs-prompts] primitives; [`@Agent`][docs-agents] multi-step chains; and
|
|
73
|
+
scoped [Providers / DI][docs-providers].
|
|
74
|
+
|
|
75
|
+
**Secure** — [Remote & Local OAuth, JWKS, DCR, per-app auth][docs-auth] with
|
|
76
|
+
stateful / stateless [sessions][docs-server] (JWT or UUID transport IDs).
|
|
77
|
+
|
|
78
|
+
**Connect & operate** — [Streamable HTTP + SSE transport][docs-transport],
|
|
79
|
+
capability [discovery][docs-discovery], [elicitation][docs-elicitation],
|
|
80
|
+
[hooks][docs-hooks], HTTP-discoverable [skills][docs-skills],
|
|
81
|
+
[external MCP sub-apps][docs-ext-apps], an in-process [Direct Client][docs-direct]
|
|
82
|
+
(`connectOpenAI` / `connectClaude`), and first-class [deployment][docs-deploy].
|
|
83
|
+
|
|
84
|
+
**Extend & tooling** — official [plugins][docs-plugins] (Cache, Remember, CodeCall,
|
|
85
|
+
Dashboard), the [OpenAPI adapter][docs-adapters], a [UI library][docs-ui] (HTML/React
|
|
86
|
+
widgets, SSR, MCP Bridge), an [E2E testing framework][docs-testing], and a
|
|
87
|
+
[CLI][docs-install] (`create`, `init`, `dev`, `build`, `inspect`, `doctor`).
|
|
88
|
+
|
|
89
|
+
→ Full reference: **[docs.agentfront.dev/frontmcp][docs-home]**
|
|
81
90
|
|
|
82
91
|
## Packages
|
|
83
92
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frontmcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "FrontMCP command line interface",
|
|
5
5
|
"author": "AgentFront <info@agentfront.dev>",
|
|
6
6
|
"homepage": "https://docs.agentfront.dev",
|
|
@@ -23,31 +23,29 @@
|
|
|
23
23
|
},
|
|
24
24
|
"main": "./src/index.js",
|
|
25
25
|
"types": "./src/index.d.ts",
|
|
26
|
-
"bin":
|
|
27
|
-
"frontmcp": "./src/core/cli.js"
|
|
28
|
-
},
|
|
26
|
+
"bin": "./src/core/cli.js",
|
|
29
27
|
"engines": {
|
|
30
28
|
"node": ">=24.0.0"
|
|
31
29
|
},
|
|
32
30
|
"dependencies": {
|
|
33
31
|
"@clack/prompts": "^0.10.0",
|
|
34
|
-
"@frontmcp/lazy-zod": "1.
|
|
35
|
-
"@frontmcp/
|
|
36
|
-
"@frontmcp/
|
|
32
|
+
"@frontmcp/lazy-zod": "1.4.1",
|
|
33
|
+
"@frontmcp/skills": "1.4.1",
|
|
34
|
+
"@frontmcp/utils": "1.4.1",
|
|
35
|
+
"@rspack/core": "^1.7.6",
|
|
37
36
|
"commander": "^13.0.0",
|
|
37
|
+
"esbuild": "^0.27.3",
|
|
38
38
|
"tslib": "^2.3.0",
|
|
39
39
|
"vectoriadb": "^2.2.0",
|
|
40
|
-
"@rspack/core": "^1.7.6",
|
|
41
|
-
"esbuild": "^0.27.3",
|
|
42
40
|
"yauzl": "^3.2.0",
|
|
43
41
|
"yazl": "^3.3.1"
|
|
44
42
|
},
|
|
45
43
|
"devDependencies": {
|
|
46
|
-
"typescript": "^5.5.3",
|
|
47
|
-
"tsx": "^4.20.6",
|
|
48
44
|
"@types/node": "^24.0.0",
|
|
49
45
|
"@types/yauzl": "^2.10.3",
|
|
50
|
-
"@types/yazl": "^2.4.5"
|
|
46
|
+
"@types/yazl": "^2.4.5",
|
|
47
|
+
"tsx": "^4.20.6",
|
|
48
|
+
"typescript": "^5.5.3"
|
|
51
49
|
},
|
|
52
50
|
"type": "commonjs"
|
|
53
51
|
}
|
|
@@ -586,6 +586,7 @@ var _getCmd = promptCmd
|
|
|
586
586
|
.description('Render a prompt by name')
|
|
587
587
|
${promptGetOptionLines}
|
|
588
588
|
.allowUnknownOption(true)
|
|
589
|
+
.allowExcessArguments(true) // #382 — without this, an out-of-spec flag like \`--bogus x\` becomes excess operands and Commander throws "too many arguments" before the action can emit the precise "unknown option(s) for prompt" error.
|
|
589
590
|
.action(async function(name) {
|
|
590
591
|
try {
|
|
591
592
|
var spec = promptArgs[name];
|