@robota-sdk/agent-transport-mcp 3.0.0-beta.46 → 3.0.0-beta.47

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 CHANGED
@@ -42,6 +42,26 @@ Each tool maps directly to an `InteractiveSession` operation or a system command
42
42
 
43
43
  The `submit` tool waits for the session to reach `complete` or `interrupted` state before returning, so MCP clients receive a single text response rather than a stream.
44
44
 
45
+ ## ITransportAdapter
46
+
47
+ The MCP transport implements the `ITransportAdapter` interface from `@robota-sdk/agent-sdk`:
48
+
49
+ ```typescript
50
+ import { createMcpTransport } from '@robota-sdk/agent-transport-mcp';
51
+ import type { ITransportAdapter } from '@robota-sdk/agent-sdk';
52
+
53
+ const transport: ITransportAdapter = createMcpTransport({
54
+ name: 'robota-agent',
55
+ version: '1.0.0',
56
+ });
57
+
58
+ transport.attach(interactiveSession);
59
+ await transport.start();
60
+
61
+ // Access the underlying MCP server
62
+ const server = transport.getServer();
63
+ ```
64
+
45
65
  ## Dependencies
46
66
 
47
67
  - `@robota-sdk/agent-sdk` — `InteractiveSession`
@@ -20,7 +20,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
- createAgentMcpServer: () => createAgentMcpServer
23
+ createAgentMcpServer: () => createAgentMcpServer,
24
+ createMcpTransport: () => createMcpTransport
24
25
  });
25
26
  module.exports = __toCommonJS(index_exports);
26
27
 
@@ -124,7 +125,34 @@ function waitForCompletion(session, prompt) {
124
125
  });
125
126
  });
126
127
  }
128
+
129
+ // src/mcp-transport.ts
130
+ function createMcpTransport(options) {
131
+ let session = null;
132
+ let server = null;
133
+ return {
134
+ name: "mcp",
135
+ attach(s) {
136
+ session = s;
137
+ },
138
+ async start() {
139
+ if (!session) throw new Error("No session attached. Call attach() first.");
140
+ server = createAgentMcpServer({ ...options, session });
141
+ },
142
+ async stop() {
143
+ if (server) {
144
+ await server.close();
145
+ server = null;
146
+ }
147
+ },
148
+ getServer() {
149
+ if (!server) throw new Error("Transport not started. Call start() first.");
150
+ return server;
151
+ }
152
+ };
153
+ }
127
154
  // Annotate the CommonJS export names for ESM import in node:
128
155
  0 && (module.exports = {
129
- createAgentMcpServer
156
+ createAgentMcpServer,
157
+ createMcpTransport
130
158
  });
@@ -1,5 +1,5 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { InteractiveSession } from '@robota-sdk/agent-sdk';
2
+ import { InteractiveSession, ITransportAdapter } from '@robota-sdk/agent-sdk';
3
3
 
4
4
  /**
5
5
  * MCP transport adapter — exposes InteractiveSession as an MCP server.
@@ -36,4 +36,23 @@ interface IAgentMcpOptions {
36
36
  */
37
37
  declare function createAgentMcpServer(options: IAgentMcpOptions): Server;
38
38
 
39
- export { type IAgentMcpOptions, createAgentMcpServer };
39
+ /**
40
+ * ITransportAdapter implementation for MCP transport.
41
+ *
42
+ * Wraps createAgentMcpServer into the unified ITransportAdapter interface
43
+ * while exposing the underlying MCP Server via getServer().
44
+ */
45
+
46
+ interface IMcpTransportOptions {
47
+ /** Name for the MCP server. */
48
+ name: string;
49
+ /** Version string. */
50
+ version: string;
51
+ /** If true, register each system command as a separate MCP tool. Default: true. */
52
+ exposeCommands?: boolean;
53
+ }
54
+ declare function createMcpTransport(options: IMcpTransportOptions): ITransportAdapter & {
55
+ getServer(): Server;
56
+ };
57
+
58
+ export { type IAgentMcpOptions, type IMcpTransportOptions, createAgentMcpServer, createMcpTransport };
@@ -1,5 +1,5 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { InteractiveSession } from '@robota-sdk/agent-sdk';
2
+ import { InteractiveSession, ITransportAdapter } from '@robota-sdk/agent-sdk';
3
3
 
4
4
  /**
5
5
  * MCP transport adapter — exposes InteractiveSession as an MCP server.
@@ -36,4 +36,23 @@ interface IAgentMcpOptions {
36
36
  */
37
37
  declare function createAgentMcpServer(options: IAgentMcpOptions): Server;
38
38
 
39
- export { type IAgentMcpOptions, createAgentMcpServer };
39
+ /**
40
+ * ITransportAdapter implementation for MCP transport.
41
+ *
42
+ * Wraps createAgentMcpServer into the unified ITransportAdapter interface
43
+ * while exposing the underlying MCP Server via getServer().
44
+ */
45
+
46
+ interface IMcpTransportOptions {
47
+ /** Name for the MCP server. */
48
+ name: string;
49
+ /** Version string. */
50
+ version: string;
51
+ /** If true, register each system command as a separate MCP tool. Default: true. */
52
+ exposeCommands?: boolean;
53
+ }
54
+ declare function createMcpTransport(options: IMcpTransportOptions): ITransportAdapter & {
55
+ getServer(): Server;
56
+ };
57
+
58
+ export { type IAgentMcpOptions, type IMcpTransportOptions, createAgentMcpServer, createMcpTransport };
@@ -98,6 +98,33 @@ function waitForCompletion(session, prompt) {
98
98
  });
99
99
  });
100
100
  }
101
+
102
+ // src/mcp-transport.ts
103
+ function createMcpTransport(options) {
104
+ let session = null;
105
+ let server = null;
106
+ return {
107
+ name: "mcp",
108
+ attach(s) {
109
+ session = s;
110
+ },
111
+ async start() {
112
+ if (!session) throw new Error("No session attached. Call attach() first.");
113
+ server = createAgentMcpServer({ ...options, session });
114
+ },
115
+ async stop() {
116
+ if (server) {
117
+ await server.close();
118
+ server = null;
119
+ }
120
+ },
121
+ getServer() {
122
+ if (!server) throw new Error("Transport not started. Call start() first.");
123
+ return server;
124
+ }
125
+ };
126
+ }
101
127
  export {
102
- createAgentMcpServer
128
+ createAgentMcpServer,
129
+ createMcpTransport
103
130
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robota-sdk/agent-transport-mcp",
3
- "version": "3.0.0-beta.46",
3
+ "version": "3.0.0-beta.47",
4
4
  "description": "MCP transport adapter for exposing InteractiveSession as an MCP server",
5
5
  "type": "module",
6
6
  "main": "dist/node/index.js",
@@ -24,7 +24,7 @@
24
24
  "dependencies": {
25
25
  "@modelcontextprotocol/sdk": "^1.28.0",
26
26
  "zod": "^3.24.4",
27
- "@robota-sdk/agent-sdk": "3.0.0-beta.46"
27
+ "@robota-sdk/agent-sdk": "3.0.0-beta.47"
28
28
  },
29
29
  "devDependencies": {
30
30
  "rimraf": "^5.0.5",