@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/LICENSE +661 -0
- package/README.md +500 -0
- package/dist/cli.cjs +497 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +498 -0
- package/dist/http-B1EDyxR_.mjs +1211 -0
- package/dist/http-B5WVqLzz.cjs +1277 -0
- package/dist/index.cjs +6 -0
- package/dist/index.d.cts +172 -0
- package/dist/index.d.mts +172 -0
- package/dist/index.mjs +3 -0
- package/package.json +57 -0
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;
|
package/dist/index.d.cts
ADDED
|
@@ -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.d.mts
ADDED
|
@@ -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
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
|
+
}
|