Skip to content

Commit acee848

Browse files
committed
Server supports Streamable transport
Run with `--transport http`, defaults to port 10000 Note: This still requires an API token to be set, so is not yet multi-tenant
1 parent 132e8d8 commit acee848

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

cmd/server.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cmd
22

33
import (
44
"fmt"
5+
"log"
56

67
"github.com/mark3labs/mcp-go/server"
78
"github.com/render-oss/render-mcp-server/pkg/cfg"
@@ -14,7 +15,7 @@ import (
1415
"github.com/render-oss/render-mcp-server/pkg/service"
1516
)
1617

17-
func Serve() *server.MCPServer {
18+
func Serve(transport string) *server.MCPServer {
1819
// Create MCP server
1920
s := server.NewMCPServer(
2021
"render-mcp-server",
@@ -34,9 +35,14 @@ func Serve() *server.MCPServer {
3435
s.AddTools(keyvalue.Tools(c)...)
3536
s.AddTools(logs.Tools(c)...)
3637

37-
// Start the stdio server
38-
if err := server.ServeStdio(s); err != nil {
39-
fmt.Printf("Server error: %v\n", err)
38+
if transport == "http" {
39+
if err := server.NewStreamableHTTPServer(s).Start(":10000"); err != nil {
40+
log.Fatalf("starting server: %w:", err)
41+
}
42+
} else {
43+
if err := server.ServeStdio(s); err != nil {
44+
fmt.Printf("Server error: %v\n", err)
45+
}
4046
}
4147

4248
return s

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ require (
66
github.com/jackc/pgx/v5 v5.7.5
77
github.com/mark3labs/mcp-go v0.32.0
88
github.com/oapi-codegen/runtime v1.1.1
9+
github.com/spf13/pflag v1.0.6
910
github.com/stretchr/testify v1.10.0
1011
gopkg.in/yaml.v3 v3.0.1
1112
)

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ github.com/sclevine/spec v1.4.0 h1:z/Q9idDcay5m5irkZ28M7PtQM4aOISzOpj4bUPkDee8=
4141
github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4QnFHkOM=
4242
github.com/spf13/cast v1.9.2 h1:SsGfm7M8QOFtEzumm7UZrZdLLquNdzFYfIbEXntcFbE=
4343
github.com/spf13/cast v1.9.2/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
44+
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
45+
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
4446
github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0=
4547
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
4648
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=

main.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package main
22

33
import (
4-
"flag"
54
"fmt"
65
"os"
76

7+
flag "github.com/spf13/pflag"
8+
89
"github.com/render-oss/render-mcp-server/cmd"
910
"github.com/render-oss/render-mcp-server/pkg/cfg"
1011
)
@@ -14,6 +15,9 @@ func main() {
1415
versionFlag := flag.Bool("version", false, "Print version information and exit")
1516
flag.BoolVar(versionFlag, "v", false, "Print version information and exit")
1617

18+
var transport string
19+
flag.StringVarP(&transport, "transport", "t", "stdio", "Transport type (stdio or http)")
20+
1721
flag.Parse()
1822

1923
if *versionFlag {
@@ -22,5 +26,5 @@ func main() {
2226
}
2327

2428
// Start the server
25-
cmd.Serve()
29+
cmd.Serve(transport)
2630
}

0 commit comments

Comments
 (0)