@agiflowai/one-mcp 0.2.0

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/dist/index.cjs ADDED
@@ -0,0 +1,6 @@
1
+ const require_http = require('./http-B5WVqLzz.cjs');
2
+
3
+ exports.HttpTransportHandler = require_http.HttpTransportHandler;
4
+ exports.SseTransportHandler = require_http.SseTransportHandler;
5
+ exports.StdioTransportHandler = require_http.StdioTransportHandler;
6
+ exports.createServer = require_http.createServer;
@@ -0,0 +1,172 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
3
+
4
+ //#region src/server/index.d.ts
5
+
6
+ interface ServerOptions {
7
+ configFilePath?: string;
8
+ noCache?: boolean;
9
+ }
10
+ declare function createServer(options?: ServerOptions): Promise<Server>;
11
+ //#endregion
12
+ //#region src/types/index.d.ts
13
+ /**
14
+ * Tool definition for MCP
15
+ */
16
+ interface ToolDefinition {
17
+ name: string;
18
+ description: string;
19
+ inputSchema: {
20
+ type: string;
21
+ properties: Record<string, any>;
22
+ required?: string[];
23
+ additionalProperties?: boolean;
24
+ };
25
+ }
26
+ /**
27
+ * Base tool interface following MCP SDK patterns
28
+ */
29
+ interface Tool<TInput = any> {
30
+ getDefinition(): ToolDefinition | Promise<ToolDefinition>;
31
+ execute(input: TInput): Promise<CallToolResult>;
32
+ }
33
+ /**
34
+ * Transport mode types
35
+ */
36
+ declare enum TransportMode {
37
+ STDIO = "stdio",
38
+ HTTP = "http",
39
+ SSE = "sse",
40
+ }
41
+ /**
42
+ * Transport configuration options
43
+ */
44
+ interface TransportConfig {
45
+ mode: TransportMode;
46
+ port?: number;
47
+ host?: string;
48
+ }
49
+ /**
50
+ * Base interface for all transport handlers
51
+ */
52
+ interface TransportHandler {
53
+ start(): Promise<void>;
54
+ stop(): Promise<void>;
55
+ }
56
+ /**
57
+ * HTTP transport specific types
58
+ */
59
+ interface HttpTransportHandler$1 extends TransportHandler {
60
+ getPort(): number;
61
+ getHost(): string;
62
+ }
63
+ /**
64
+ * Remote MCP server configuration types
65
+ */
66
+ type McpServerTransportType = 'stdio' | 'http' | 'sse';
67
+ interface McpStdioConfig {
68
+ command: string;
69
+ args?: string[];
70
+ env?: Record<string, string>;
71
+ }
72
+ interface McpHttpConfig {
73
+ url: string;
74
+ headers?: Record<string, string>;
75
+ }
76
+ interface McpSseConfig {
77
+ url: string;
78
+ headers?: Record<string, string>;
79
+ }
80
+ type McpServerTransportConfig = McpStdioConfig | McpHttpConfig | McpSseConfig;
81
+ interface McpServerConfig {
82
+ name: string;
83
+ instruction?: string;
84
+ toolBlacklist?: string[];
85
+ omitToolDescription?: boolean;
86
+ transport: McpServerTransportType;
87
+ config: McpServerTransportConfig;
88
+ }
89
+ /**
90
+ * Remote configuration response
91
+ */
92
+ interface RemoteMcpConfiguration {
93
+ mcpServers: Record<string, McpServerConfig>;
94
+ }
95
+ /**
96
+ * MCP client connection interface
97
+ */
98
+ interface McpClientConnection {
99
+ serverName: string;
100
+ serverInstruction?: string;
101
+ toolBlacklist?: string[];
102
+ omitToolDescription?: boolean;
103
+ transport: McpServerTransportType;
104
+ listTools(): Promise<any[]>;
105
+ listResources(): Promise<any[]>;
106
+ listPrompts(): Promise<any[]>;
107
+ callTool(name: string, args: any): Promise<any>;
108
+ readResource(uri: string): Promise<any>;
109
+ getPrompt(name: string, args?: any): Promise<any>;
110
+ close(): Promise<void>;
111
+ }
112
+ //#endregion
113
+ //#region src/transports/stdio.d.ts
114
+ /**
115
+ * Stdio transport handler for MCP server
116
+ * Used for command-line and direct integrations
117
+ */
118
+ declare class StdioTransportHandler implements TransportHandler {
119
+ private server;
120
+ private transport;
121
+ constructor(server: Server);
122
+ start(): Promise<void>;
123
+ stop(): Promise<void>;
124
+ }
125
+ //#endregion
126
+ //#region src/transports/sse.d.ts
127
+ /**
128
+ * SSE (Server-Sent Events) transport handler
129
+ * Legacy transport for backwards compatibility (protocol version 2024-11-05)
130
+ * Uses separate endpoints: /sse for SSE stream (GET) and /messages for client messages (POST)
131
+ */
132
+ declare class SseTransportHandler implements HttpTransportHandler$1 {
133
+ private serverFactory;
134
+ private app;
135
+ private server;
136
+ private sessionManager;
137
+ private config;
138
+ constructor(serverFactory: Server | (() => Server), config: TransportConfig);
139
+ private setupMiddleware;
140
+ private setupRoutes;
141
+ private handleSseConnection;
142
+ private handlePostMessage;
143
+ start(): Promise<void>;
144
+ stop(): Promise<void>;
145
+ getPort(): number;
146
+ getHost(): string;
147
+ }
148
+ //#endregion
149
+ //#region src/transports/http.d.ts
150
+ /**
151
+ * HTTP transport handler using Streamable HTTP (protocol version 2025-03-26)
152
+ * Provides stateful session management with resumability support
153
+ */
154
+ declare class HttpTransportHandler implements HttpTransportHandler$1 {
155
+ private serverFactory;
156
+ private app;
157
+ private server;
158
+ private sessionManager;
159
+ private config;
160
+ constructor(serverFactory: Server | (() => Server), config: TransportConfig);
161
+ private setupMiddleware;
162
+ private setupRoutes;
163
+ private handlePostRequest;
164
+ private handleGetRequest;
165
+ private handleDeleteRequest;
166
+ start(): Promise<void>;
167
+ stop(): Promise<void>;
168
+ getPort(): number;
169
+ getHost(): string;
170
+ }
171
+ //#endregion
172
+ export { HttpTransportHandler, McpClientConnection, McpHttpConfig, McpServerConfig, McpServerTransportConfig, McpServerTransportType, McpSseConfig, McpStdioConfig, RemoteMcpConfiguration, type ServerOptions, SseTransportHandler, StdioTransportHandler, Tool, ToolDefinition, TransportConfig, TransportHandler, TransportMode, createServer };
@@ -0,0 +1,172 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
3
+
4
+ //#region src/server/index.d.ts
5
+
6
+ interface ServerOptions {
7
+ configFilePath?: string;
8
+ noCache?: boolean;
9
+ }
10
+ declare function createServer(options?: ServerOptions): Promise<Server>;
11
+ //#endregion
12
+ //#region src/types/index.d.ts
13
+ /**
14
+ * Tool definition for MCP
15
+ */
16
+ interface ToolDefinition {
17
+ name: string;
18
+ description: string;
19
+ inputSchema: {
20
+ type: string;
21
+ properties: Record<string, any>;
22
+ required?: string[];
23
+ additionalProperties?: boolean;
24
+ };
25
+ }
26
+ /**
27
+ * Base tool interface following MCP SDK patterns
28
+ */
29
+ interface Tool<TInput = any> {
30
+ getDefinition(): ToolDefinition | Promise<ToolDefinition>;
31
+ execute(input: TInput): Promise<CallToolResult>;
32
+ }
33
+ /**
34
+ * Transport mode types
35
+ */
36
+ declare enum TransportMode {
37
+ STDIO = "stdio",
38
+ HTTP = "http",
39
+ SSE = "sse",
40
+ }
41
+ /**
42
+ * Transport configuration options
43
+ */
44
+ interface TransportConfig {
45
+ mode: TransportMode;
46
+ port?: number;
47
+ host?: string;
48
+ }
49
+ /**
50
+ * Base interface for all transport handlers
51
+ */
52
+ interface TransportHandler {
53
+ start(): Promise<void>;
54
+ stop(): Promise<void>;
55
+ }
56
+ /**
57
+ * HTTP transport specific types
58
+ */
59
+ interface HttpTransportHandler$1 extends TransportHandler {
60
+ getPort(): number;
61
+ getHost(): string;
62
+ }
63
+ /**
64
+ * Remote MCP server configuration types
65
+ */
66
+ type McpServerTransportType = 'stdio' | 'http' | 'sse';
67
+ interface McpStdioConfig {
68
+ command: string;
69
+ args?: string[];
70
+ env?: Record<string, string>;
71
+ }
72
+ interface McpHttpConfig {
73
+ url: string;
74
+ headers?: Record<string, string>;
75
+ }
76
+ interface McpSseConfig {
77
+ url: string;
78
+ headers?: Record<string, string>;
79
+ }
80
+ type McpServerTransportConfig = McpStdioConfig | McpHttpConfig | McpSseConfig;
81
+ interface McpServerConfig {
82
+ name: string;
83
+ instruction?: string;
84
+ toolBlacklist?: string[];
85
+ omitToolDescription?: boolean;
86
+ transport: McpServerTransportType;
87
+ config: McpServerTransportConfig;
88
+ }
89
+ /**
90
+ * Remote configuration response
91
+ */
92
+ interface RemoteMcpConfiguration {
93
+ mcpServers: Record<string, McpServerConfig>;
94
+ }
95
+ /**
96
+ * MCP client connection interface
97
+ */
98
+ interface McpClientConnection {
99
+ serverName: string;
100
+ serverInstruction?: string;
101
+ toolBlacklist?: string[];
102
+ omitToolDescription?: boolean;
103
+ transport: McpServerTransportType;
104
+ listTools(): Promise<any[]>;
105
+ listResources(): Promise<any[]>;
106
+ listPrompts(): Promise<any[]>;
107
+ callTool(name: string, args: any): Promise<any>;
108
+ readResource(uri: string): Promise<any>;
109
+ getPrompt(name: string, args?: any): Promise<any>;
110
+ close(): Promise<void>;
111
+ }
112
+ //#endregion
113
+ //#region src/transports/stdio.d.ts
114
+ /**
115
+ * Stdio transport handler for MCP server
116
+ * Used for command-line and direct integrations
117
+ */
118
+ declare class StdioTransportHandler implements TransportHandler {
119
+ private server;
120
+ private transport;
121
+ constructor(server: Server);
122
+ start(): Promise<void>;
123
+ stop(): Promise<void>;
124
+ }
125
+ //#endregion
126
+ //#region src/transports/sse.d.ts
127
+ /**
128
+ * SSE (Server-Sent Events) transport handler
129
+ * Legacy transport for backwards compatibility (protocol version 2024-11-05)
130
+ * Uses separate endpoints: /sse for SSE stream (GET) and /messages for client messages (POST)
131
+ */
132
+ declare class SseTransportHandler implements HttpTransportHandler$1 {
133
+ private serverFactory;
134
+ private app;
135
+ private server;
136
+ private sessionManager;
137
+ private config;
138
+ constructor(serverFactory: Server | (() => Server), config: TransportConfig);
139
+ private setupMiddleware;
140
+ private setupRoutes;
141
+ private handleSseConnection;
142
+ private handlePostMessage;
143
+ start(): Promise<void>;
144
+ stop(): Promise<void>;
145
+ getPort(): number;
146
+ getHost(): string;
147
+ }
148
+ //#endregion
149
+ //#region src/transports/http.d.ts
150
+ /**
151
+ * HTTP transport handler using Streamable HTTP (protocol version 2025-03-26)
152
+ * Provides stateful session management with resumability support
153
+ */
154
+ declare class HttpTransportHandler implements HttpTransportHandler$1 {
155
+ private serverFactory;
156
+ private app;
157
+ private server;
158
+ private sessionManager;
159
+ private config;
160
+ constructor(serverFactory: Server | (() => Server), config: TransportConfig);
161
+ private setupMiddleware;
162
+ private setupRoutes;
163
+ private handlePostRequest;
164
+ private handleGetRequest;
165
+ private handleDeleteRequest;
166
+ start(): Promise<void>;
167
+ stop(): Promise<void>;
168
+ getPort(): number;
169
+ getHost(): string;
170
+ }
171
+ //#endregion
172
+ export { HttpTransportHandler, McpClientConnection, McpHttpConfig, McpServerConfig, McpServerTransportConfig, McpServerTransportType, McpSseConfig, McpStdioConfig, RemoteMcpConfiguration, type ServerOptions, SseTransportHandler, StdioTransportHandler, Tool, ToolDefinition, TransportConfig, TransportHandler, TransportMode, createServer };
package/dist/index.mjs ADDED
@@ -0,0 +1,3 @@
1
+ import { i as createServer, n as SseTransportHandler, r as StdioTransportHandler, t as HttpTransportHandler } from "./http-B1EDyxR_.mjs";
2
+
3
+ export { HttpTransportHandler, SseTransportHandler, StdioTransportHandler, createServer };
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@agiflowai/one-mcp",
3
+ "description": "One MCP server package",
4
+ "version": "0.2.0",
5
+ "license": "AGPL-3.0",
6
+ "keywords": [
7
+ "mcp",
8
+ "model-context-protocol",
9
+ "typescript"
10
+ ],
11
+ "bin": {
12
+ "one-mcp": "./dist/cli.cjs"
13
+ },
14
+ "main": "./dist/index.cjs",
15
+ "types": "./dist/index.d.cts",
16
+ "module": "./dist/index.mjs",
17
+ "files": [
18
+ "dist",
19
+ "README.md"
20
+ ],
21
+ "dependencies": {
22
+ "@modelcontextprotocol/sdk": "1.19.1",
23
+ "chalk": "5.6.2",
24
+ "commander": "14.0.1",
25
+ "express": "^4.21.2",
26
+ "js-yaml": "^4.1.0",
27
+ "zod": "^3.24.1",
28
+ "@agiflowai/aicode-utils": "1.0.3"
29
+ },
30
+ "devDependencies": {
31
+ "@types/express": "^5.0.0",
32
+ "@types/js-yaml": "^4.0.9",
33
+ "@types/node": "^22.0.0",
34
+ "tsdown": "^0.16.4",
35
+ "typescript": "5.9.3",
36
+ "unplugin-raw": "^0.6.3",
37
+ "vitest": "^2.1.8"
38
+ },
39
+ "type": "module",
40
+ "exports": {
41
+ ".": {
42
+ "import": "./dist/index.mjs",
43
+ "require": "./dist/index.cjs"
44
+ },
45
+ "./cli": {
46
+ "import": "./dist/cli.mjs",
47
+ "require": "./dist/cli.cjs"
48
+ },
49
+ "./package.json": "./package.json"
50
+ },
51
+ "scripts": {
52
+ "dev": "node --loader ts-node/esm src/cli.ts mcp-serve",
53
+ "build": "tsdown",
54
+ "test": "vitest --run",
55
+ "typecheck": "tsc --noEmit"
56
+ }
57
+ }