@@ -28,31 +28,93 @@ const (
28
28
COMPLEX PromptName = "complex_prompt"
29
29
)
30
30
31
+ type exampleHook struct {}
32
+
33
+ func (* exampleHook ) RegisterSession (ctx context.Context , session server.ClientSession ) {
34
+ }
35
+
36
+ func (* exampleHook ) CreateHookContext () server.HookContext {
37
+ return nil
38
+ }
39
+
40
+ func (* exampleHook ) GetHookContext () server.HookContext {
41
+ return nil
42
+ }
43
+
44
+ func (* exampleHook ) BeforeAny (ctx context.Context , hookContext server.HookContext , id any , method mcp.MCPMethod , message any ) {
45
+ fmt .Printf ("beforeAny: %s, %v, %v\n " , method , id , message )
46
+ }
47
+
48
+ func (* exampleHook ) OnSuccess (ctx context.Context , hookContext server.HookContext , id any , method mcp.MCPMethod , message any , result any ) {
49
+ fmt .Printf ("onSuccess: %s, %v, %v, %v\n " , method , id , message , result )
50
+ }
51
+
52
+ func (* exampleHook ) OnError (ctx context.Context , hookContext server.HookContext , id any , method mcp.MCPMethod , message any , err error ) {
53
+ fmt .Printf ("onError: %s, %v, %v, %v\n " , method , id , message , err )
54
+ }
55
+
56
+ func (* exampleHook ) BeforeInitialize (ctx context.Context , hookContext server.HookContext , id any , message * mcp.InitializeRequest ) {
57
+ fmt .Printf ("beforeInitialize: %v, %v\n " , id , message )
58
+ }
59
+
60
+ func (* exampleHook ) AfterInitialize (ctx context.Context , hookContext server.HookContext , id any , message * mcp.InitializeRequest , result * mcp.InitializeResult ) {
61
+ fmt .Printf ("afterInitialize: %v, %v, %v\n " , id , message , result )
62
+ }
63
+
64
+ func (* exampleHook ) BeforePing (ctx context.Context , hookContext server.HookContext , id any , message * mcp.PingRequest ) {
65
+ }
66
+
67
+ func (* exampleHook ) AfterPing (ctx context.Context , hookContext server.HookContext , id any , message * mcp.PingRequest , result * mcp.EmptyResult ) {
68
+ }
69
+
70
+ func (* exampleHook ) BeforeListResources (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ListResourcesRequest ) {
71
+ }
72
+
73
+ func (* exampleHook ) AfterListResources (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ListResourcesRequest , result * mcp.ListResourcesResult ) {
74
+ }
75
+
76
+ func (* exampleHook ) BeforeListResourceTemplates (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ListResourceTemplatesRequest ) {
77
+ }
78
+
79
+ func (* exampleHook ) AfterListResourceTemplates (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ListResourceTemplatesRequest , result * mcp.ListResourceTemplatesResult ) {
80
+ }
81
+
82
+ func (* exampleHook ) BeforeReadResource (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ReadResourceRequest ) {
83
+ }
84
+
85
+ func (* exampleHook ) AfterReadResource (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ReadResourceRequest , result * mcp.ReadResourceResult ) {
86
+ }
87
+
88
+ func (* exampleHook ) BeforeListPrompts (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ListPromptsRequest ) {
89
+ }
90
+
91
+ func (* exampleHook ) AfterListPrompts (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ListPromptsRequest , result * mcp.ListPromptsResult ) {
92
+ }
93
+
94
+ func (* exampleHook ) BeforeGetPrompt (ctx context.Context , hookContext server.HookContext , id any , message * mcp.GetPromptRequest ) {
95
+ }
96
+
97
+ func (* exampleHook ) AfterGetPrompt (ctx context.Context , hookContext server.HookContext , id any , message * mcp.GetPromptRequest , result * mcp.GetPromptResult ) {
98
+ }
99
+
100
+ func (* exampleHook ) BeforeListTools (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ListToolsRequest ) {
101
+ fmt .Printf ("beforeCallTool: %v, %v\n " , id , message )
102
+ }
103
+
104
+ func (* exampleHook ) AfterListTools (ctx context.Context , hookContext server.HookContext , id any , message * mcp.ListToolsRequest , result * mcp.ListToolsResult ) {
105
+ fmt .Printf ("afterCallTool: %v, %v, %v\n " , id , message , result )
106
+ }
107
+
108
+ func (* exampleHook ) BeforeCallTool (ctx context.Context , hookContext server.HookContext , id any , message * mcp.CallToolRequest ) {
109
+ }
110
+
111
+ func (* exampleHook ) AfterCallTool (ctx context.Context , hookContext server.HookContext , id any , message * mcp.CallToolRequest , result * mcp.CallToolResult ) {
112
+ }
113
+
31
114
func NewMCPServer () * server.MCPServer {
32
115
33
- hooks := & server.Hooks {}
34
-
35
- hooks .AddBeforeAny (func (ctx context.Context , id any , method mcp.MCPMethod , message any ) {
36
- fmt .Printf ("beforeAny: %s, %v, %v\n " , method , id , message )
37
- })
38
- hooks .AddOnSuccess (func (ctx context.Context , id any , method mcp.MCPMethod , message any , result any ) {
39
- fmt .Printf ("onSuccess: %s, %v, %v, %v\n " , method , id , message , result )
40
- })
41
- hooks .AddOnError (func (ctx context.Context , id any , method mcp.MCPMethod , message any , err error ) {
42
- fmt .Printf ("onError: %s, %v, %v, %v\n " , method , id , message , err )
43
- })
44
- hooks .AddBeforeInitialize (func (ctx context.Context , id any , message * mcp.InitializeRequest ) {
45
- fmt .Printf ("beforeInitialize: %v, %v\n " , id , message )
46
- })
47
- hooks .AddAfterInitialize (func (ctx context.Context , id any , message * mcp.InitializeRequest , result * mcp.InitializeResult ) {
48
- fmt .Printf ("afterInitialize: %v, %v, %v\n " , id , message , result )
49
- })
50
- hooks .AddAfterCallTool (func (ctx context.Context , id any , message * mcp.CallToolRequest , result * mcp.CallToolResult ) {
51
- fmt .Printf ("afterCallTool: %v, %v, %v\n " , id , message , result )
52
- })
53
- hooks .AddBeforeCallTool (func (ctx context.Context , id any , message * mcp.CallToolRequest ) {
54
- fmt .Printf ("beforeCallTool: %v, %v\n " , id , message )
55
- })
116
+ hooks := & server.ChainedHook {}
117
+ hooks .Add (& exampleHook {})
56
118
57
119
mcpServer := server .NewMCPServer (
58
120
"example-servers/everything" ,
0 commit comments