@@ -5,22 +5,14 @@ import (
5
5
"encoding/json"
6
6
"fmt"
7
7
"net/http"
8
- "sync"
9
-
10
- "github.com/metoro-io/mcp-golang/transport"
11
8
)
12
9
13
10
// HTTPTransport implements a stateless HTTP transport for MCP
14
11
type HTTPTransport struct {
15
12
* baseTransport
16
- server * http.Server
17
- endpoint string
18
- messageHandler func (ctx context.Context , message * transport.BaseJsonRpcMessage )
19
- errorHandler func (error )
20
- closeHandler func ()
21
- mu sync.RWMutex
22
- addr string
23
- responseMap map [int64 ]chan * transport.BaseJsonRpcMessage
13
+ server * http.Server
14
+ endpoint string
15
+ addr string
24
16
}
25
17
26
18
// NewHTTPTransport creates a new HTTP transport that listens on the specified endpoint
@@ -29,7 +21,6 @@ func NewHTTPTransport(endpoint string) *HTTPTransport {
29
21
baseTransport : newBaseTransport (),
30
22
endpoint : endpoint ,
31
23
addr : ":8080" , // Default port
32
- responseMap : make (map [int64 ]chan * transport.BaseJsonRpcMessage ),
33
24
}
34
25
}
35
26
@@ -52,49 +43,15 @@ func (t *HTTPTransport) Start(ctx context.Context) error {
52
43
return t .server .ListenAndServe ()
53
44
}
54
45
55
- // Send implements Transport.Send
56
- func (t * HTTPTransport ) Send (ctx context.Context , message * transport.BaseJsonRpcMessage ) error {
57
- key := message .JsonRpcResponse .Id
58
- responseChannel := t .responseMap [int64 (key )]
59
- if responseChannel == nil {
60
- return fmt .Errorf ("no response channel found for key: %d" , key )
61
- }
62
- responseChannel <- message
63
- return nil
64
- }
65
-
66
46
// Close implements Transport.Close
67
47
func (t * HTTPTransport ) Close () error {
68
48
if t .server != nil {
69
49
if err := t .server .Close (); err != nil {
70
50
return err
71
51
}
72
52
}
73
- if t .closeHandler != nil {
74
- t .closeHandler ()
75
- }
76
- return nil
77
- }
78
-
79
- // SetCloseHandler implements Transport.SetCloseHandler
80
- func (t * HTTPTransport ) SetCloseHandler (handler func ()) {
81
- t .mu .Lock ()
82
- defer t .mu .Unlock ()
83
- t .closeHandler = handler
84
- }
85
-
86
- // SetErrorHandler implements Transport.SetErrorHandler
87
- func (t * HTTPTransport ) SetErrorHandler (handler func (error )) {
88
- t .mu .Lock ()
89
- defer t .mu .Unlock ()
90
- t .errorHandler = handler
91
- }
92
53
93
- // SetMessageHandler implements Transport.SetMessageHandler
94
- func (t * HTTPTransport ) SetMessageHandler (handler func (ctx context.Context , message * transport.BaseJsonRpcMessage )) {
95
- t .mu .Lock ()
96
- defer t .mu .Unlock ()
97
- t .messageHandler = handler
54
+ return t .baseTransport .Close ()
98
55
}
99
56
100
57
func (t * HTTPTransport ) handleRequest (w http.ResponseWriter , r * http.Request ) {
0 commit comments