@fleetx_io/fleetx-mcp-server 1.1.6 → 1.1.8
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/CHANGELOG.md +18 -12
- package/dist/server/createMcpServer.d.ts +8 -3
- package/dist/server/createMcpServer.d.ts.map +1 -1
- package/dist/server/createMcpServer.js +28 -12
- package/dist/server/createMcpServer.js.map +1 -1
- package/dist/transports/sse.d.ts.map +1 -1
- package/dist/transports/sse.js +31 -3
- package/dist/transports/sse.js.map +1 -1
- package/dist/transports/stdio.d.ts.map +1 -1
- package/dist/transports/stdio.js +8 -1
- package/dist/transports/stdio.js.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +4 -1
- package/dist/utils.js.map +1 -1
- package/package.json +57 -57
package/CHANGELOG.md
CHANGED
|
@@ -5,19 +5,25 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Bearer token authentication** — authenticate without the `login` tool by passing `Authorization: Bearer <token>` on HTTP MCP requests, or setting `BEARER_ACCESS_TOKEN` for stdio/HTTP (HTTP env token is used only when the client does not send Basic auth).
|
|
13
|
+
|
|
8
14
|
## [1.0.0] - 2026-03-03
|
|
9
15
|
|
|
10
16
|
### Added
|
|
11
17
|
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
18
|
+
- MCP server with stdio transport for local AI agent integration.
|
|
19
|
+
- `login` tool for authenticating with the FleetX API.
|
|
20
|
+
- Dynamic tool generation from FleetX API definitions after login.
|
|
21
|
+
- Zod-based input validation for all dynamically registered tools.
|
|
22
|
+
- Automatic Bearer token injection into downstream API calls.
|
|
23
|
+
- Token expiry handling — clears token and prompts re-login on 401/403.
|
|
24
|
+
- Support for path, query, and body parameters in proxied API calls.
|
|
25
|
+
- `npx` support — run directly with `npx @fleetx_io/fleetx-mcp-server`.
|
|
26
|
+
- Global install support via `npm install -g`.
|
|
27
|
+
- MCP Inspector compatibility for debugging and testing.
|
|
28
|
+
- Configuration via environment variables with sensible defaults.
|
|
29
|
+
- Cursor, Claude Desktop, and Windsurf integration examples in README.
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { TokenStore } from "../types.js";
|
|
3
|
-
|
|
3
|
+
/** How to authenticate when creating the MCP server (HTTP headers, env, or caller-provided). */
|
|
4
|
+
export type Credentials = {
|
|
5
|
+
type: "basic";
|
|
4
6
|
username: string;
|
|
5
7
|
password: string;
|
|
6
|
-
}
|
|
8
|
+
} | {
|
|
9
|
+
type: "bearer";
|
|
10
|
+
token: string;
|
|
11
|
+
};
|
|
7
12
|
/**
|
|
8
13
|
* Creates and configures the McpServer instance with login + dynamic tools.
|
|
9
|
-
*
|
|
14
|
+
* Pass `credentials` from env vars, HTTP headers, etc.: `basic` runs password login; `bearer` stores the token and registers tools without login.
|
|
10
15
|
*/
|
|
11
16
|
export declare function createMcpServer(tokenStore: TokenStore, credentials?: Credentials): Promise<McpServer>;
|
|
12
17
|
//# sourceMappingURL=createMcpServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMcpServer.d.ts","sourceRoot":"","sources":["../../src/server/createMcpServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAOxD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"createMcpServer.d.ts","sourceRoot":"","sources":["../../src/server/createMcpServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAOxD,gGAAgG;AAChG,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAgBtC;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,SAAS,CAAC,CAyCpB"}
|
|
@@ -5,19 +5,41 @@ import { fetchApiDefinitions } from "../apiDiscovery.js";
|
|
|
5
5
|
import { generateTools } from "../toolGenerator.js";
|
|
6
6
|
import { log, getLoginURL, getAPIDefinitionURL } from "../utils.js";
|
|
7
7
|
import { registerPrompt } from "../prompts/index.js";
|
|
8
|
+
async function bootstrapDynamicTools(mcp, tokenStore, logLabel) {
|
|
9
|
+
const discoveryResult = await fetchApiDefinitions(getAPIDefinitionURL(), tokenStore);
|
|
10
|
+
if (!discoveryResult.success) {
|
|
11
|
+
log(`${logLabel}: API discovery failed:`, discoveryResult.message);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const toolNames = registerDynamicTools(mcp, discoveryResult.definitions, tokenStore);
|
|
15
|
+
log(`${logLabel}: auto-registered ${toolNames.length} tool(s) at startup`);
|
|
16
|
+
}
|
|
8
17
|
/**
|
|
9
18
|
* Creates and configures the McpServer instance with login + dynamic tools.
|
|
10
|
-
*
|
|
19
|
+
* Pass `credentials` from env vars, HTTP headers, etc.: `basic` runs password login; `bearer` stores the token and registers tools without login.
|
|
11
20
|
*/
|
|
12
21
|
export async function createMcpServer(tokenStore, credentials) {
|
|
13
22
|
const mcp = new McpServer({ name: "fleetx-mcp-server", version: "1.1.0" }, { capabilities: { tools: { listChanged: true } } });
|
|
14
23
|
registerLoginTool(mcp, tokenStore);
|
|
15
24
|
registerResources(mcp, tokenStore);
|
|
16
25
|
registerPrompt(mcp);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
if (credentials?.type === "bearer") {
|
|
27
|
+
const token = credentials.token.trim();
|
|
28
|
+
if (token) {
|
|
29
|
+
log("Pre-authenticated: bearer token provided");
|
|
30
|
+
tokenStore.setToken(token);
|
|
31
|
+
try {
|
|
32
|
+
await bootstrapDynamicTools(mcp, tokenStore, "Bearer");
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
log("Bearer bootstrap error:", err);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return mcp;
|
|
39
|
+
}
|
|
40
|
+
if (credentials?.type === "basic") {
|
|
41
|
+
const { username, password } = credentials;
|
|
42
|
+
log("Auto-login: basic credentials provided");
|
|
21
43
|
try {
|
|
22
44
|
const loginResult = await login(getLoginURL(), username, password, tokenStore);
|
|
23
45
|
if (!loginResult.success) {
|
|
@@ -25,13 +47,7 @@ export async function createMcpServer(tokenStore, credentials) {
|
|
|
25
47
|
return mcp;
|
|
26
48
|
}
|
|
27
49
|
log("Auto-login succeeded");
|
|
28
|
-
|
|
29
|
-
if (!discoveryResult.success) {
|
|
30
|
-
log("Auto-discovery failed:", discoveryResult.message);
|
|
31
|
-
return mcp;
|
|
32
|
-
}
|
|
33
|
-
const toolNames = registerDynamicTools(mcp, discoveryResult.definitions, tokenStore);
|
|
34
|
-
log(`Auto-registered ${toolNames.length} tool(s) at startup`);
|
|
50
|
+
await bootstrapDynamicTools(mcp, tokenStore, "Auto-login");
|
|
35
51
|
}
|
|
36
52
|
catch (err) {
|
|
37
53
|
log("Auto-login error:", err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMcpServer.js","sourceRoot":"","sources":["../../src/server/createMcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAiB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,WAAyB;IAEzB,MAAM,GAAG,GAAG,IAAI,SAAS,CACvB,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC/C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CACnD,CAAC;IAEF,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACnC,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACnC,cAAc,CAAC,GAAG,CAAC,CAAC;IAEpB,
|
|
1
|
+
{"version":3,"file":"createMcpServer.js","sourceRoot":"","sources":["../../src/server/createMcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAiB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,KAAK,UAAU,qBAAqB,CAClC,GAAc,EACd,UAAsB,EACtB,QAAgB;IAEhB,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,UAAU,CAAC,CAAC;IACrF,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC7B,GAAG,CAAC,GAAG,QAAQ,yBAAyB,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,EAAE,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACrF,GAAG,CAAC,GAAG,QAAQ,qBAAqB,SAAS,CAAC,MAAM,qBAAqB,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,WAAyB;IAEzB,MAAM,GAAG,GAAG,IAAI,SAAS,CACvB,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC/C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CACnD,CAAC;IAEF,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACnC,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACnC,cAAc,CAAC,GAAG,CAAC,CAAC;IAEpB,IAAI,WAAW,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,0CAA0C,CAAC,CAAC;YAChD,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,WAAW,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;QAC3C,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC/E,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC/C,OAAO,GAAG,CAAC;YACb,CAAC;YACD,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAC5B,MAAM,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,kBAAkB,GAAG,sDAAsD,CAAC;AAClF,MAAM,eAAe,GAAG,yCAAyC,CAAC;AAElE,SAAS,iBAAiB,CAAC,OAAe,EAAE,KAAoB;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC3B,OAAO,GAAG,eAAe,gBAAgB,kBAAkB,CAAC,OAAO,CAAC,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5G,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAc,EAAE,UAAsB;IAC/D,GAAG,CAAC,QAAQ,CACV,sBAAsB,EACtB,sDAAsD,EACtD;QACE,WAAW,EAAE,qKAAqK;QAClL,QAAQ,EAAE,WAAW;KACtB,EACD,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,sDAAsD;oBAC3D,IAAI,EAAE,yBAAyB,GAAG,qJAAqJ;oBACvL,QAAQ,EAAE,YAAY;iBACvB;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAc,EAAE,UAAsB;IAC/D,GAAG,CAAC,IAAI,CACN,OAAO,EACP,yEAAyE,EACzE;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAChD,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE1E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,UAAU,CAAC,CAAC;QAErF,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,wDAAwD,eAAe,CAAC,OAAO,EAAE;qBACxF;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,EAAE,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAErF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;wBACJ,MAAM,CAAC,OAAO;wBACd,eAAe,CAAC,OAAO;wBACvB,cAAc,SAAS,CAAC,MAAM,aAAa,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAClE,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,yBAAyB,GAAG,IAAI,OAAO,EAA8C,CAAC;AAE5F,SAAS,oBAAoB,CAC3B,GAAc,EACd,WAA4B,EAC5B,UAAsB;IAEtB,MAAM,aAAa,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/D,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,EAAE,CAAC,MAAM,EAAE,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IACD,yBAAyB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAoB,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5E,MAAM,KAAK,GAAiC,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5E,KAAK,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,UAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACtG,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CACzB,QAAQ,EACR,IAAI,CAAC,WAAW,EAChB,KAAK,EACL,KAAK,EAAE,IAAI,EAAE,EAAE;gBACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAA+B,CAAC,CAAC;gBACnE,OAAO,MAAM,CAAC;YAChB,CAAC,CACF,CAAC;YACF,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrD,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,4BAA4B,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,cAAc,eAAe,CAAC,MAAM,qBAAqB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3F,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,IAAY,EAAE,QAAiB;IAC9D,MAAM,CAAC,GAAG,IAA+B,CAAC;IAC1C,IAAI,MAAoB,CAAC;IAEzB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7B,MAAM;QACR,KAAK,QAAQ,CAAC;QACd;YACE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM;IACV,CAAC;IAED,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/transports/sse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/transports/sse.ts"],"names":[],"mappings":"AAqIA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAwD/C"}
|
package/dist/transports/sse.js
CHANGED
|
@@ -11,7 +11,7 @@ const transports = new Map();
|
|
|
11
11
|
*
|
|
12
12
|
* Header format: Authorization: Basic <base64(username:password)>
|
|
13
13
|
* Example: Authorization: Basic am9obkBleGFtcGxlLmNvbTpzM2NyZXQ=
|
|
14
|
-
* → {
|
|
14
|
+
* → { type: "basic", username, password }
|
|
15
15
|
*/
|
|
16
16
|
function parseBasicAuth(header) {
|
|
17
17
|
if (!header?.startsWith("Basic "))
|
|
@@ -22,7 +22,30 @@ function parseBasicAuth(header) {
|
|
|
22
22
|
return undefined;
|
|
23
23
|
const username = decoded.slice(0, sep);
|
|
24
24
|
const password = decoded.slice(sep + 1);
|
|
25
|
-
return username && password ? { username, password } : undefined;
|
|
25
|
+
return username && password ? { type: "basic", username, password } : undefined;
|
|
26
|
+
}
|
|
27
|
+
/** Authorization: Bearer <token> */
|
|
28
|
+
function parseBearerToken(header) {
|
|
29
|
+
if (!header?.startsWith("Bearer "))
|
|
30
|
+
return undefined;
|
|
31
|
+
const token = header.slice(7).trim();
|
|
32
|
+
return token || undefined;
|
|
33
|
+
}
|
|
34
|
+
/** Resolves auth for a new MCP session from Authorization header and env. */
|
|
35
|
+
function resolveSessionCredentials(authHeader) {
|
|
36
|
+
const bearerFromHeader = parseBearerToken(authHeader);
|
|
37
|
+
const basic = parseBasicAuth(authHeader);
|
|
38
|
+
if (bearerFromHeader) {
|
|
39
|
+
return { type: "bearer", token: bearerFromHeader };
|
|
40
|
+
}
|
|
41
|
+
if (basic) {
|
|
42
|
+
return basic;
|
|
43
|
+
}
|
|
44
|
+
const token = process.env.BEARER_ACCESS_TOKEN?.trim();
|
|
45
|
+
if (token) {
|
|
46
|
+
return { type: "bearer", token };
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
26
49
|
}
|
|
27
50
|
function parseBody(req) {
|
|
28
51
|
return new Promise((resolve, reject) => {
|
|
@@ -63,7 +86,7 @@ async function handlePost(req, res) {
|
|
|
63
86
|
}
|
|
64
87
|
};
|
|
65
88
|
const tokenStore = createTokenStore();
|
|
66
|
-
const credentials =
|
|
89
|
+
const credentials = resolveSessionCredentials(req.headers.authorization);
|
|
67
90
|
const server = await createMcpServer(tokenStore, credentials);
|
|
68
91
|
await server.connect(transport);
|
|
69
92
|
await transport.handleRequest(req, res, body);
|
|
@@ -98,6 +121,11 @@ export async function startHTTP() {
|
|
|
98
121
|
const port = parseInt(process.env.PORT || "3000", 10);
|
|
99
122
|
const httpServer = http.createServer(async (req, res) => {
|
|
100
123
|
const url = new URL(req.url, `http://localhost:${port}`);
|
|
124
|
+
if (url.pathname === "/health") {
|
|
125
|
+
res.writeHead(200, { "Content-Type": "application/json" });
|
|
126
|
+
res.end(JSON.stringify({ status: "ok", message: "FleetX MCP Server is running" }));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
101
129
|
if (url.pathname !== "/mcp") {
|
|
102
130
|
res.writeHead(404, { "Content-Type": "application/json" });
|
|
103
131
|
res.end(JSON.stringify({ error: "Not found" }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/transports/sse.ts"],"names":[],"mappings":"AAAA,OAAO,IAAyC,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/transports/sse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/transports/stdio.ts"],"names":[],"mappings":"AAMA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/transports/stdio.ts"],"names":[],"mappings":"AAMA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAehD"}
|
package/dist/transports/stdio.js
CHANGED
|
@@ -6,7 +6,14 @@ import { log } from "../utils.js";
|
|
|
6
6
|
export async function startStdio() {
|
|
7
7
|
const tokenStore = createTokenStore();
|
|
8
8
|
const { username, password } = getUsernameLoginDetails();
|
|
9
|
-
const
|
|
9
|
+
const envBearer = process.env.BEARER_ACCESS_TOKEN?.trim();
|
|
10
|
+
let credentials;
|
|
11
|
+
if (envBearer) {
|
|
12
|
+
credentials = { type: "bearer", token: envBearer };
|
|
13
|
+
}
|
|
14
|
+
else if (username && password) {
|
|
15
|
+
credentials = { type: "basic", username, password };
|
|
16
|
+
}
|
|
10
17
|
const server = await createMcpServer(tokenStore, credentials);
|
|
11
18
|
const transport = new StdioServerTransport();
|
|
12
19
|
await server.connect(transport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/transports/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/transports/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAoB,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,uBAAuB,EAAE,CAAC;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,WAAoC,CAAC;IACzC,IAAI,SAAS,EAAE,CAAC;QACd,WAAW,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACrD,CAAC;SAAM,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,WAAW,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACjD,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
export declare function log(...args: unknown[]): void;
|
|
6
6
|
export declare function getAPIDefinitionURL(): string;
|
|
7
7
|
export declare function getLoginURL(): string;
|
|
8
|
+
export declare function userMeUrl(): string;
|
|
8
9
|
export declare function getUsernameLoginDetails(): {
|
|
9
10
|
username: string;
|
|
10
11
|
password: string;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,QAIrC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,uBAAuB,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAKhF"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,QAIrC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AACD,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,uBAAuB,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAKhF"}
|
package/dist/utils.js
CHANGED
|
@@ -8,11 +8,14 @@ export function log(...args) {
|
|
|
8
8
|
console.error(JSON.stringify({ message: msg, level: "info" }));
|
|
9
9
|
}
|
|
10
10
|
export function getAPIDefinitionURL() {
|
|
11
|
-
return process.env.API_DEFINITION_URL ?? "https://app.fleetx.io/napp/
|
|
11
|
+
return process.env.API_DEFINITION_URL ?? "https://app.fleetx.io/napp/mcp/apis";
|
|
12
12
|
}
|
|
13
13
|
export function getLoginURL() {
|
|
14
14
|
return process.env.LOGIN_URL ?? "https://api.fleetx.io/api/v1/login";
|
|
15
15
|
}
|
|
16
|
+
export function userMeUrl() {
|
|
17
|
+
return process.env.USER_ME_URL ?? "https://api.fleetx.io/api/v1/users/me";
|
|
18
|
+
}
|
|
16
19
|
export function getUsernameLoginDetails() {
|
|
17
20
|
return {
|
|
18
21
|
username: process.env.USERNAME ?? process.env.FLEETX_USERNAME ?? "",
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,GAAG,IAAe;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvF,4CAA4C;IAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAmB,IAAI
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,GAAG,IAAe;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvF,4CAA4C;IAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAmB,IAAI,qCAAqC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,CAAC,GAAG,CAAC,SAAU,IAAI,oCAAoC,CAAC;AACxE,CAAC;AACD,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAY,IAAI,uCAAuC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;QACnE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;KACpE,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
2
|
+
"name": "@fleetx_io/fleetx-mcp-server",
|
|
3
|
+
"version": "1.1.8",
|
|
4
|
+
"description": "MCP server that gives AI agents access to the FleetX REST API. Works with Cursor, Claude Desktop, Windsurf, and any MCP-compatible client.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"fleetx-mcp-server": "dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"package.json",
|
|
13
|
+
"dist",
|
|
14
|
+
"README.md",
|
|
15
|
+
"CHANGELOG.md",
|
|
16
|
+
"LICENSE"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"dev": "ts-node-dev --respawn --transpile-only ./src/index.ts",
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"publish": "npm run build && npm publish --access public",
|
|
25
|
+
"start": "MCP_TRANSPORT=http NODE_ENV=production node dist/index.js",
|
|
26
|
+
"startClientLive": "npx @modelcontextprotocol/inspector ts-node-dev --respawn --transpile-only ./src/index.ts",
|
|
27
|
+
"startClient": "npx @modelcontextprotocol/inspector node dist/index.js"
|
|
28
|
+
},
|
|
29
|
+
"keywords": [
|
|
30
|
+
"mcp",
|
|
31
|
+
"model-context-protocol",
|
|
32
|
+
"fleetx",
|
|
33
|
+
"ai",
|
|
34
|
+
"agent",
|
|
35
|
+
"fleet-management",
|
|
36
|
+
"cursor",
|
|
37
|
+
"claude",
|
|
38
|
+
"windsurf",
|
|
39
|
+
"stdio",
|
|
40
|
+
"api-gateway"
|
|
41
|
+
],
|
|
42
|
+
"author": "FleetX <satish@fleetx.io> (https://fleetx.io)",
|
|
43
|
+
"license": "ISC",
|
|
44
|
+
"homepage": "https://www.npmjs.com/package/@fleetx_io/fleetx-mcp-server",
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=20.0.0"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
50
|
+
"axios": "^1.13.6",
|
|
51
|
+
"zod": "^4.3.6"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/node": "^25.3.3",
|
|
55
|
+
"ts-node-dev": "^2.0.0",
|
|
56
|
+
"typescript": "^5.9.3",
|
|
57
|
+
"prettier": "2.0.5"
|
|
58
|
+
}
|
|
59
59
|
}
|