Skip to content

Commit 60b8bb4

Browse files
committed
split ClientRequest and ServerRequest
1 parent 393b7af commit 60b8bb4

File tree

23 files changed

+224
-167
lines changed

23 files changed

+224
-167
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ type HiParams struct {
115115
Name string `json:"name" jsonschema:"the name of the person to greet"`
116116
}
117117

118-
func SayHi(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[HiParams]]) (*mcp.CallToolResultFor[any], error) {
118+
func SayHi(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[HiParams]]) (*mcp.CallToolResultFor[any], error) {
119119
return &mcp.CallToolResultFor[any]{
120120
Content: []mcp.Content{&mcp.TextContent{Text: "Hi " + req.Params.Arguments.Name}},
121121
}, nil

examples/server/completion/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
// a CompletionHandler to an MCP Server's options.
1717
func main() {
1818
// Define your custom CompletionHandler logic.
19-
myCompletionHandler := func(_ context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CompleteParams]) (*mcp.CompleteResult, error) {
19+
myCompletionHandler := func(_ context.Context, req *mcp.ServerRequest[*mcp.CompleteParams]) (*mcp.CompleteResult, error) {
2020
// In a real application, you'd implement actual completion logic here.
2121
// For this example, we return a fixed set of suggestions.
2222
var suggestions []string

examples/server/custom-transport/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ type HiArgs struct {
8585
}
8686

8787
// SayHi is a tool handler that responds with a greeting.
88-
func SayHi(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[HiArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
88+
func SayHi(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[HiArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
8989
return &mcp.CallToolResultFor[struct{}]{
9090
Content: []mcp.Content{
9191
&mcp.TextContent{Text: "Hi " + req.Params.Arguments.Name},

examples/server/hello/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ type HiArgs struct {
2222
Name string `json:"name" jsonschema:"the name to say hi to"`
2323
}
2424

25-
func SayHi(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[HiArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
25+
func SayHi(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[HiArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
2626
return &mcp.CallToolResultFor[struct{}]{
2727
Content: []mcp.Content{
2828
&mcp.TextContent{Text: "Hi " + req.Params.Arguments.Name},
@@ -69,7 +69,7 @@ var embeddedResources = map[string]string{
6969
"info": "This is the hello example server.",
7070
}
7171

72-
func handleEmbeddedResource(_ context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.ReadResourceParams]) (*mcp.ReadResourceResult, error) {
72+
func handleEmbeddedResource(_ context.Context, req *mcp.ServerRequest[*mcp.ReadResourceParams]) (*mcp.ReadResourceResult, error) {
7373
u, err := url.Parse(req.Params.URI)
7474
if err != nil {
7575
return nil, err

examples/server/memory/kb.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ func (k knowledgeBase) openNodes(names []string) (KnowledgeGraph, error) {
431431
}, nil
432432
}
433433

434-
func (k knowledgeBase) CreateEntities(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[CreateEntitiesArgs]]) (*mcp.CallToolResultFor[CreateEntitiesResult], error) {
434+
func (k knowledgeBase) CreateEntities(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[CreateEntitiesArgs]]) (*mcp.CallToolResultFor[CreateEntitiesResult], error) {
435435
var res mcp.CallToolResultFor[CreateEntitiesResult]
436436

437437
entities, err := k.createEntities(req.Params.Arguments.Entities)
@@ -450,7 +450,7 @@ func (k knowledgeBase) CreateEntities(ctx context.Context, req *mcp.RequestFor[*
450450
return &res, nil
451451
}
452452

453-
func (k knowledgeBase) CreateRelations(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[CreateRelationsArgs]]) (*mcp.CallToolResultFor[CreateRelationsResult], error) {
453+
func (k knowledgeBase) CreateRelations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[CreateRelationsArgs]]) (*mcp.CallToolResultFor[CreateRelationsResult], error) {
454454
var res mcp.CallToolResultFor[CreateRelationsResult]
455455

456456
relations, err := k.createRelations(req.Params.Arguments.Relations)
@@ -469,7 +469,7 @@ func (k knowledgeBase) CreateRelations(ctx context.Context, req *mcp.RequestFor[
469469
return &res, nil
470470
}
471471

472-
func (k knowledgeBase) AddObservations(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[AddObservationsArgs]]) (*mcp.CallToolResultFor[AddObservationsResult], error) {
472+
func (k knowledgeBase) AddObservations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[AddObservationsArgs]]) (*mcp.CallToolResultFor[AddObservationsResult], error) {
473473
var res mcp.CallToolResultFor[AddObservationsResult]
474474

475475
observations, err := k.addObservations(req.Params.Arguments.Observations)
@@ -488,7 +488,7 @@ func (k knowledgeBase) AddObservations(ctx context.Context, req *mcp.RequestFor[
488488
return &res, nil
489489
}
490490

491-
func (k knowledgeBase) DeleteEntities(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[DeleteEntitiesArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
491+
func (k knowledgeBase) DeleteEntities(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[DeleteEntitiesArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
492492
var res mcp.CallToolResultFor[struct{}]
493493

494494
err := k.deleteEntities(req.Params.Arguments.EntityNames)
@@ -503,7 +503,7 @@ func (k knowledgeBase) DeleteEntities(ctx context.Context, req *mcp.RequestFor[*
503503
return &res, nil
504504
}
505505

506-
func (k knowledgeBase) DeleteObservations(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[DeleteObservationsArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
506+
func (k knowledgeBase) DeleteObservations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[DeleteObservationsArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
507507
var res mcp.CallToolResultFor[struct{}]
508508

509509
err := k.deleteObservations(req.Params.Arguments.Deletions)
@@ -518,7 +518,7 @@ func (k knowledgeBase) DeleteObservations(ctx context.Context, req *mcp.RequestF
518518
return &res, nil
519519
}
520520

521-
func (k knowledgeBase) DeleteRelations(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[DeleteRelationsArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
521+
func (k knowledgeBase) DeleteRelations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[DeleteRelationsArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
522522
var res mcp.CallToolResultFor[struct{}]
523523

524524
err := k.deleteRelations(req.Params.Arguments.Relations)
@@ -533,7 +533,7 @@ func (k knowledgeBase) DeleteRelations(ctx context.Context, req *mcp.RequestFor[
533533
return &res, nil
534534
}
535535

536-
func (k knowledgeBase) ReadGraph(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[struct{}]]) (*mcp.CallToolResultFor[KnowledgeGraph], error) {
536+
func (k knowledgeBase) ReadGraph(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[struct{}]]) (*mcp.CallToolResultFor[KnowledgeGraph], error) {
537537
var res mcp.CallToolResultFor[KnowledgeGraph]
538538

539539
graph, err := k.loadGraph()
@@ -549,7 +549,7 @@ func (k knowledgeBase) ReadGraph(ctx context.Context, req *mcp.RequestFor[*mcp.S
549549
return &res, nil
550550
}
551551

552-
func (k knowledgeBase) SearchNodes(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[SearchNodesArgs]]) (*mcp.CallToolResultFor[KnowledgeGraph], error) {
552+
func (k knowledgeBase) SearchNodes(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[SearchNodesArgs]]) (*mcp.CallToolResultFor[KnowledgeGraph], error) {
553553
var res mcp.CallToolResultFor[KnowledgeGraph]
554554

555555
graph, err := k.searchNodes(req.Params.Arguments.Query)
@@ -565,7 +565,7 @@ func (k knowledgeBase) SearchNodes(ctx context.Context, req *mcp.RequestFor[*mcp
565565
return &res, nil
566566
}
567567

568-
func (k knowledgeBase) OpenNodes(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[OpenNodesArgs]]) (*mcp.CallToolResultFor[KnowledgeGraph], error) {
568+
func (k knowledgeBase) OpenNodes(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[OpenNodesArgs]]) (*mcp.CallToolResultFor[KnowledgeGraph], error) {
569569
var res mcp.CallToolResultFor[KnowledgeGraph]
570570

571571
graph, err := k.openNodes(req.Params.Arguments.Names)

examples/server/memory/kb_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,6 @@ func TestMCPResponseFormat(t *testing.T) {
702702
}
703703
}
704704

705-
func requestFor[P mcp.Params](ss *mcp.ServerSession, p P) *mcp.RequestFor[*mcp.ServerSession, P] {
706-
return &mcp.RequestFor[*mcp.ServerSession, P]{Session: ss, Params: p}
705+
func requestFor[P mcp.Params](ss *mcp.ServerSession, p P) *mcp.ServerRequest[P] {
706+
return &mcp.ServerRequest[P]{Session: ss, Params: p}
707707
}

examples/server/sequentialthinking/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ func deepCopyThoughts(thoughts []*Thought) []*Thought {
231231
}
232232

233233
// StartThinking begins a new sequential thinking session for a complex problem.
234-
func StartThinking(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[StartThinkingArgs]]) (*mcp.CallToolResultFor[any], error) {
234+
func StartThinking(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[StartThinkingArgs]]) (*mcp.CallToolResultFor[any], error) {
235235
args := req.Params.Arguments
236236

237237
sessionID := args.SessionID
@@ -266,7 +266,7 @@ func StartThinking(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession,
266266
}
267267

268268
// ContinueThinking adds the next thought step, revises a previous step, or creates a branch in the thinking process.
269-
func ContinueThinking(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[ContinueThinkingArgs]]) (*mcp.CallToolResultFor[any], error) {
269+
func ContinueThinking(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[ContinueThinkingArgs]]) (*mcp.CallToolResultFor[any], error) {
270270
args := req.Params.Arguments
271271

272272
// Handle revision of existing thought
@@ -395,7 +395,7 @@ func ContinueThinking(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSessio
395395
}
396396

397397
// ReviewThinking provides a complete review of the thinking process for a session.
398-
func ReviewThinking(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[ReviewThinkingArgs]]) (*mcp.CallToolResultFor[any], error) {
398+
func ReviewThinking(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[ReviewThinkingArgs]]) (*mcp.CallToolResultFor[any], error) {
399399
args := req.Params.Arguments
400400

401401
// Get a snapshot of the session to avoid race conditions
@@ -434,7 +434,7 @@ func ReviewThinking(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession,
434434
}
435435

436436
// ThinkingHistory handles resource requests for thinking session data and history.
437-
func ThinkingHistory(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.ReadResourceParams]) (*mcp.ReadResourceResult, error) {
437+
func ThinkingHistory(ctx context.Context, req *mcp.ServerRequest[*mcp.ReadResourceParams]) (*mcp.ReadResourceResult, error) {
438438
// Extract session ID from URI (e.g., "thinking://session_123")
439439
u, err := url.Parse(req.Params.URI)
440440
if err != nil {

examples/server/sequentialthinking/main_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,6 @@ func TestInvalidOperations(t *testing.T) {
547547
}
548548
}
549549

550-
func requestFor[P mcp.Params](p P) *mcp.RequestFor[*mcp.ServerSession, P] {
551-
return &mcp.RequestFor[*mcp.ServerSession, P]{Params: p}
550+
func requestFor[P mcp.Params](p P) *mcp.ServerRequest[P] {
551+
return &mcp.ServerRequest[P]{Params: p}
552552
}

examples/server/sse/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type SayHiParams struct {
2424
Name string `json:"name"`
2525
}
2626

27-
func SayHi(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[SayHiParams]]) (*mcp.CallToolResultFor[any], error) {
27+
func SayHi(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[SayHiParams]]) (*mcp.CallToolResultFor[any], error) {
2828
return &mcp.CallToolResultFor[any]{
2929
Content: []mcp.Content{
3030
&mcp.TextContent{Text: "Hi " + req.Params.Arguments.Name},

internal/readme/server/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type HiParams struct {
1616
Name string `json:"name" jsonschema:"the name of the person to greet"`
1717
}
1818

19-
func SayHi(ctx context.Context, req *mcp.RequestFor[*mcp.ServerSession, *mcp.CallToolParamsFor[HiParams]]) (*mcp.CallToolResultFor[any], error) {
19+
func SayHi(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[HiParams]]) (*mcp.CallToolResultFor[any], error) {
2020
return &mcp.CallToolResultFor[any]{
2121
Content: []mcp.Content{&mcp.TextContent{Text: "Hi " + req.Params.Arguments.Name}},
2222
}, nil

0 commit comments

Comments
 (0)