@@ -57,7 +57,7 @@ func main() {
5757 }
5858}
5959
60- func helloHandler (ctx context .Context , requestContext server .RequestContext , request mcp .CallToolRequest ) (*mcp .CallToolResult , error ) {
60+ func helloHandler (ctx context .Context , requestSession server .RequestSession , request mcp .CallToolRequest ) (*mcp .CallToolResult , error ) {
6161 name , err := request.RequireString (" name" )
6262 if err != nil {
6363 return mcp.NewToolResultError (err.Error ()), nil
@@ -92,7 +92,7 @@ MCP Go handles all the complex protocol details and server management, so you ca
9292 - [ Resources] ( #resources )
9393 - [ Tools] ( #tools )
9494 - [ Prompts] ( #prompts )
95- - [ RequestContext ] ( #RequestContext )
95+ - [ RequestSession ] ( #RequestSession )
9696- [ Examples] ( #examples )
9797- [ Extras] ( #extras )
9898 - [ Transports] ( #transports )
@@ -154,7 +154,7 @@ func main() {
154154 )
155155
156156 // Add the calculator handler
157- s.AddTool (calculatorTool, func (ctx context.Context , requestContext server.RequestContext , request mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
157+ s.AddTool (calculatorTool, func (ctx context.Context , requestSession server.RequestSession , request mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
158158 // Using helper functions for type-safe argument access
159159 op , err := request.RequireString (" operation" )
160160 if err != nil {
@@ -252,7 +252,7 @@ resource := mcp.NewResource(
252252)
253253
254254// Add resource with its handler
255- s.AddResource (resource, func (ctx context.Context , requestContext server.RequestContext , request mcp.ReadResourceRequest ) ([]mcp.ResourceContents , error ) {
255+ s.AddResource (resource, func (ctx context.Context , requestSession server.RequestSession , request mcp.ReadResourceRequest ) ([]mcp.ResourceContents , error ) {
256256 content , err := os.ReadFile (" README.md" )
257257 if err != nil {
258258 return nil , err
@@ -280,7 +280,7 @@ template := mcp.NewResourceTemplate(
280280)
281281
282282// Add template with its handler
283- s.AddResourceTemplate (template, func (ctx context.Context , requestContext server.RequestContext , request mcp.ReadResourceRequest ) ([]mcp.ResourceContents , error ) {
283+ s.AddResourceTemplate (template, func (ctx context.Context , requestSession server.RequestSession , request mcp.ReadResourceRequest ) ([]mcp.ResourceContents , error ) {
284284 // Extract ID from the URI using regex matching
285285 // The server automatically matches URIs to templates
286286 userID := extractIDFromURI (request.Params .URI )
@@ -329,7 +329,7 @@ calculatorTool := mcp.NewTool("calculate",
329329 ),
330330)
331331
332- s.AddTool (calculatorTool, func (ctx context.Context , requestContext server.RequestContext , request mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
332+ s.AddTool (calculatorTool, func (ctx context.Context , requestSession server.RequestSession , request mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
333333 args := request.GetArguments ()
334334 op := args[" operation" ].(string )
335335 x := args[" x" ].(float64 )
@@ -373,7 +373,7 @@ httpTool := mcp.NewTool("http_request",
373373 ),
374374)
375375
376- s.AddTool (httpTool, func (ctx context.Context , requestContext server.RequestContext , request mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
376+ s.AddTool (httpTool, func (ctx context.Context , requestSession server.RequestSession , request mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
377377 args := request.GetArguments ()
378378 method := args[" method" ].(string )
379379 url := args[" url" ].(string )
@@ -441,7 +441,7 @@ s.AddPrompt(mcp.NewPrompt("greeting",
441441 mcp.WithArgument (" name" ,
442442 mcp.ArgumentDescription (" Name of the person to greet" ),
443443 ),
444- ), func (ctx context.Context , requestContext server.RequestContext , request mcp.GetPromptRequest ) (*mcp.GetPromptResult , error ) {
444+ ), func (ctx context.Context , requestSession server.RequestSession , request mcp.GetPromptRequest ) (*mcp.GetPromptResult , error ) {
445445 name := request.Params .Arguments [" name" ]
446446 if name == " " {
447447 name = " friend"
@@ -465,7 +465,7 @@ s.AddPrompt(mcp.NewPrompt("code_review",
465465 mcp.ArgumentDescription (" Pull request number to review" ),
466466 mcp.RequiredArgument (),
467467 ),
468- ), func (ctx context.Context , requestContext server.RequestContext , request mcp.GetPromptRequest ) (*mcp.GetPromptResult , error ) {
468+ ), func (ctx context.Context , requestSession server.RequestSession , request mcp.GetPromptRequest ) (*mcp.GetPromptResult , error ) {
469469 prNumber := request.Params .Arguments [" pr_number" ]
470470 if prNumber == " " {
471471 return nil , fmt.Errorf (" pr_number is required" )
@@ -496,7 +496,7 @@ s.AddPrompt(mcp.NewPrompt("query_builder",
496496 mcp.ArgumentDescription (" Name of the table to query" ),
497497 mcp.RequiredArgument (),
498498 ),
499- ), func (ctx context.Context , requestContext server.RequestContext , request mcp.GetPromptRequest ) (*mcp.GetPromptResult , error ) {
499+ ), func (ctx context.Context , requestSession server.RequestSession , request mcp.GetPromptRequest ) (*mcp.GetPromptResult , error ) {
500500 tableName := request.Params .Arguments [" table" ]
501501 if tableName == " " {
502502 return nil , fmt.Errorf (" table name is required" )
@@ -531,28 +531,28 @@ Prompts can include:
531531
532532</details >
533533
534- ### RequestContext
534+ ### RequestSession
535535<details >
536- <summary >Show RequestContext Examples</summary >
536+ <summary >Show RequestSession Examples</summary >
537537
538- The RequestContext object provides capabilities to interact with the client, such as sending logging notification and progress notification.
538+ The RequestSession object provides capabilities to interact with the client, such as sending logging notification and progress notification.
539539
540540``` go
541- // Example of using RequestContext to send logging notifications and progress notifications
541+ // Example of using RequestSession to send logging notifications and progress notifications
542542mcpServer.AddTool (mcp.NewTool (
543- " test-RequestContent " ,
544- mcp.WithDescription (" test RequestContent " ),
545- ), func (ctx context.Context , requestContext server.RequestContext , request mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
546- // you could invoke `requestContext .IsLoggingNotificationSupported()` first the check if server supports logging notification
543+ " test-RequestSession " ,
544+ mcp.WithDescription (" test RequestSession " ),
545+ ), func (ctx context.Context , requestSession server.RequestSession , request mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
546+ // you could invoke `requestSession .IsLoggingNotificationSupported()` first the check if server supports logging notification
547547 // ff server does not support logging notification, this method will do nothing.
548- _ = requestContext .SendLoggingNotification (ctx, mcp.LoggingLevelInfo , map [string ]any{
548+ _ = requestSession .SendLoggingNotification (ctx, mcp.LoggingLevelInfo , map [string ]any{
549549 " testLog" : " test send log notification" ,
550550 })
551551
552552 // server should send progress notification if request metadata includes a progressToken
553553 total := float64 (100 )
554554 progressMessage := " human readable progress information"
555- _ = requestContext .SendProgressNotification (ctx, float64 (50 ), &total, &progressMessage)
555+ _ = requestSession .SendProgressNotification (ctx, float64 (50 ), &total, &progressMessage)
556556
557557 return &mcp.CallToolResult {
558558 Content: []mcp.Content {
@@ -759,7 +759,7 @@ s := server.NewMCPServer(
759759The session context is automatically passed to tool and resource handlers:
760760
761761``` go
762- s.AddTool (mcp.NewTool (" session_aware" ), func (ctx context.Context , requestContext server.RequestContext , req mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
762+ s.AddTool (mcp.NewTool (" session_aware" ), func (ctx context.Context , requestSession server.RequestSession , req mcp.CallToolRequest ) (*mcp.CallToolResult , error ) {
763763 // Get the current session from context
764764 session := server.ClientSessionFromContext (ctx)
765765 if session == nil {
0 commit comments