demo-server-mcp 1.0.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/.mcpregistry_github_token +1 -0
- package/.mcpregistry_registry_token +1 -0
- package/Dockerfile +11 -0
- package/README.md +1 -0
- package/go-mcp-jungle.json +7 -0
- package/go.mod +18 -0
- package/go.sum +39 -0
- package/main.go +58 -0
- package/package.json +10 -0
- package/server.json +23 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ghu_O8sobttn35LjGTioQ1HOH92R6256U83H6DCx
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"token":"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJtY3AtcmVnaXN0cnkiLCJleHAiOjE3NjczOTUyNzEsIm5iZiI6MTc2NzM5NDk3MSwiaWF0IjoxNzY3Mzk0OTcxLCJhdXRoX21ldGhvZCI6ImdpdGh1Yi1hdCIsImF1dGhfbWV0aG9kX3N1YiI6InZpZ25lc2hSTjUyIiwicGVybWlzc2lvbnMiOlt7ImFjdGlvbiI6InB1Ymxpc2giLCJyZXNvdXJjZSI6ImlvLmdpdGh1Yi52aWduZXNoUk41Mi8qIn1dfQ.tGpXcIDVkZlsGFw-nNneDIgKQVO-ahXhvuGBgNxBSUA-xGnke6ZzNSCr0UsCZVXJFn_45QS8nipaQ1dfqZIQBA","expires_at":1767395271}
|
package/Dockerfile
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
FROM golang:1.24-alpine AS builder
|
|
2
|
+
WORKDIR /app
|
|
3
|
+
COPY . .
|
|
4
|
+
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o mcp-server main.go
|
|
5
|
+
|
|
6
|
+
FROM alpine:latest
|
|
7
|
+
RUN apk --no-cache add ca-certificates
|
|
8
|
+
WORKDIR /root/
|
|
9
|
+
COPY --from=builder /app/mcp-server .
|
|
10
|
+
RUN chmod +x ./mcp-server
|
|
11
|
+
ENTRYPOINT ["./mcp-server"]
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# demo-mcp-server
|
package/go.mod
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module github.com/your-username/my-mcp-server
|
|
2
|
+
|
|
3
|
+
go 1.24.4
|
|
4
|
+
|
|
5
|
+
require github.com/mark3labs/mcp-go v0.43.2
|
|
6
|
+
|
|
7
|
+
require (
|
|
8
|
+
github.com/bahlo/generic-list-go v0.2.0 // indirect
|
|
9
|
+
github.com/buger/jsonparser v1.1.1 // indirect
|
|
10
|
+
github.com/google/go-cmp v0.7.0 // indirect
|
|
11
|
+
github.com/google/uuid v1.6.0 // indirect
|
|
12
|
+
github.com/invopop/jsonschema v0.13.0 // indirect
|
|
13
|
+
github.com/mailru/easyjson v0.7.7 // indirect
|
|
14
|
+
github.com/spf13/cast v1.7.1 // indirect
|
|
15
|
+
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
|
|
16
|
+
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
|
|
17
|
+
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
18
|
+
)
|
package/go.sum
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk=
|
|
2
|
+
github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg=
|
|
3
|
+
github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=
|
|
4
|
+
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
|
|
5
|
+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
6
|
+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
7
|
+
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
|
8
|
+
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
|
9
|
+
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
|
10
|
+
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
|
11
|
+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
|
12
|
+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
13
|
+
github.com/invopop/jsonschema v0.13.0 h1:KvpoAJWEjR3uD9Kbm2HWJmqsEaHt8lBUpd0qHcIi21E=
|
|
14
|
+
github.com/invopop/jsonschema v0.13.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0=
|
|
15
|
+
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
|
16
|
+
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
|
17
|
+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
|
18
|
+
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
|
19
|
+
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
|
20
|
+
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
|
|
21
|
+
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
|
22
|
+
github.com/mark3labs/mcp-go v0.43.2 h1:21PUSlWWiSbUPQwXIJ5WKlETixpFpq+WBpbMGDSVy/I=
|
|
23
|
+
github.com/mark3labs/mcp-go v0.43.2/go.mod h1:YnJfOL382MIWDx1kMY+2zsRHU/q78dBg9aFb8W6Thdw=
|
|
24
|
+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
|
25
|
+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
|
26
|
+
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
|
27
|
+
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
|
28
|
+
github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
|
|
29
|
+
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
|
30
|
+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
|
31
|
+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
|
32
|
+
github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc=
|
|
33
|
+
github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw=
|
|
34
|
+
github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4=
|
|
35
|
+
github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4=
|
|
36
|
+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
|
37
|
+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
38
|
+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
|
39
|
+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
package/main.go
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
package main
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"context"
|
|
5
|
+
"fmt"
|
|
6
|
+
"log"
|
|
7
|
+
|
|
8
|
+
"github.com/mark3labs/mcp-go/mcp"
|
|
9
|
+
"github.com/mark3labs/mcp-go/server"
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
func main() {
|
|
13
|
+
s := server.NewMCPServer(
|
|
14
|
+
"Demo 🚀",
|
|
15
|
+
"1.0.0",
|
|
16
|
+
server.WithToolCapabilities(true),
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
tool := mcp.NewTool(
|
|
20
|
+
"hello_world",
|
|
21
|
+
mcp.WithString(
|
|
22
|
+
"name",
|
|
23
|
+
mcp.Required(),
|
|
24
|
+
),
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
s.AddTool(tool, helloHandler)
|
|
28
|
+
|
|
29
|
+
log.Println("MCP stdio server starting...")
|
|
30
|
+
if err := server.ServeStdio(s); err != nil {
|
|
31
|
+
log.Fatalf("Server error: %v", err)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
func helloHandler(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
|
|
36
|
+
// 1. Assert that request.Params.Arguments is a map
|
|
37
|
+
args, ok := request.Params.Arguments.(map[string]any)
|
|
38
|
+
if !ok {
|
|
39
|
+
return mcp.NewToolResultError("invalid arguments format"), nil
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// 2. Now you can index into 'args'
|
|
43
|
+
// If you are still getting that double-wrapped structure:
|
|
44
|
+
innerArgs, ok := args["arguments"].(map[string]any)
|
|
45
|
+
if !ok {
|
|
46
|
+
// Fallback: maybe it's NOT double wrapped now?
|
|
47
|
+
// Let's try to get 'name' directly from the top level
|
|
48
|
+
name, ok := args["name"].(string)
|
|
49
|
+
if ok {
|
|
50
|
+
return mcp.NewToolResultText(fmt.Sprintf("Hello, %s!", name)), nil
|
|
51
|
+
}
|
|
52
|
+
return mcp.NewToolResultError("required argument 'name' not found"), nil
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// 3. Get name from the inner map
|
|
56
|
+
name, _ := innerArgs["name"].(string)
|
|
57
|
+
return mcp.NewToolResultText(fmt.Sprintf("Hello, %s!", name)), nil
|
|
58
|
+
}
|
package/package.json
ADDED
package/server.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.vigneshRN52/demo-mcp-server",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "Minimal Go MCP Server for high-performance context bridging",
|
|
6
|
+
"status": "active",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "https://github.com/vigneshRN52/demo-mcp-server",
|
|
9
|
+
"source": "github"
|
|
10
|
+
},
|
|
11
|
+
"packages": [
|
|
12
|
+
{
|
|
13
|
+
"transport": {
|
|
14
|
+
"type": "stdio"
|
|
15
|
+
},
|
|
16
|
+
"runtime": "docker",
|
|
17
|
+
"image": "ghcr.io/vigneshRN52/demo-mcp-server:v1.0.0",
|
|
18
|
+
"identifier": "demo-mcp-server",
|
|
19
|
+
"registryType": "github"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"tags": ["go", "utilities", "development"]
|
|
23
|
+
}
|