Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions examples/server/custom-transport/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ type HiArgs struct {
}

// SayHi is a tool handler that responds with a greeting.
func SayHi(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[HiArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
return &mcp.CallToolResultFor[struct{}]{
func SayHi(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args HiArgs) (*mcp.CallToolResult, struct{}, error) {
return &mcp.CallToolResult{
Content: []mcp.Content{
&mcp.TextContent{Text: "Hi " + req.Params.Arguments.Name},
&mcp.TextContent{Text: "Hi " + args.Name},
},
}, nil
}, struct{}{}, nil
}

func main() {
Expand Down
8 changes: 4 additions & 4 deletions examples/server/hello/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ type HiArgs struct {
Name string `json:"name" jsonschema:"the name to say hi to"`
}

func SayHi(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[HiArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
return &mcp.CallToolResultFor[struct{}]{
func SayHi(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args HiArgs) (*mcp.CallToolResult, any, error) {
return &mcp.CallToolResult{
Content: []mcp.Content{
&mcp.TextContent{Text: "Hi " + req.Params.Arguments.Name},
&mcp.TextContent{Text: "Hi " + args.Name},
},
}, nil
}, nil, nil
}

func PromptHi(ctx context.Context, ss *mcp.ServerSession, params *mcp.GetPromptParams) (*mcp.GetPromptResult, error) {
Expand Down
99 changes: 45 additions & 54 deletions examples/server/memory/kb.go
Original file line number Diff line number Diff line change
Expand Up @@ -431,12 +431,12 @@ func (k knowledgeBase) openNodes(names []string) (KnowledgeGraph, error) {
}, nil
}

func (k knowledgeBase) CreateEntities(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[CreateEntitiesArgs]]) (*mcp.CallToolResultFor[CreateEntitiesResult], error) {
var res mcp.CallToolResultFor[CreateEntitiesResult]
func (k knowledgeBase) CreateEntities(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args CreateEntitiesArgs) (*mcp.CallToolResult, CreateEntitiesResult, error) {
var res mcp.CallToolResult

entities, err := k.createEntities(req.Params.Arguments.Entities)
entities, err := k.createEntities(args.Entities)
if err != nil {
return nil, err
return nil, CreateEntitiesResult{}, err
}

res.Content = []mcp.Content{
Expand All @@ -447,136 +447,127 @@ func (k knowledgeBase) CreateEntities(ctx context.Context, req *mcp.ServerReques
Entities: entities,
}

return &res, nil
return &res, CreateEntitiesResult{Entities: entities}, nil
}

func (k knowledgeBase) CreateRelations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[CreateRelationsArgs]]) (*mcp.CallToolResultFor[CreateRelationsResult], error) {
var res mcp.CallToolResultFor[CreateRelationsResult]
func (k knowledgeBase) CreateRelations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args CreateRelationsArgs) (*mcp.CallToolResult, CreateRelationsResult, error) {
var res mcp.CallToolResult

relations, err := k.createRelations(req.Params.Arguments.Relations)
relations, err := k.createRelations(args.Relations)
if err != nil {
return nil, err
return nil, CreateRelationsResult{}, err
}

res.Content = []mcp.Content{
&mcp.TextContent{Text: "Relations created successfully"},
}

res.StructuredContent = CreateRelationsResult{
Relations: relations,
}

return &res, nil
return &res, CreateRelationsResult{Relations: relations}, nil
}

func (k knowledgeBase) AddObservations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[AddObservationsArgs]]) (*mcp.CallToolResultFor[AddObservationsResult], error) {
var res mcp.CallToolResultFor[AddObservationsResult]
func (k knowledgeBase) AddObservations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args AddObservationsArgs) (*mcp.CallToolResult, AddObservationsResult, error) {
var res mcp.CallToolResult

observations, err := k.addObservations(req.Params.Arguments.Observations)
observations, err := k.addObservations(args.Observations)
if err != nil {
return nil, err
return nil, AddObservationsResult{}, err
}

res.Content = []mcp.Content{
&mcp.TextContent{Text: "Observations added successfully"},
}

res.StructuredContent = AddObservationsResult{
return &res, AddObservationsResult{
Observations: observations,
}

return &res, nil
}, nil
}

func (k knowledgeBase) DeleteEntities(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[DeleteEntitiesArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
var res mcp.CallToolResultFor[struct{}]
func (k knowledgeBase) DeleteEntities(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args DeleteEntitiesArgs) (*mcp.CallToolResult, struct{}, error) {
var res mcp.CallToolResult

err := k.deleteEntities(req.Params.Arguments.EntityNames)
err := k.deleteEntities(args.EntityNames)
if err != nil {
return nil, err
return nil, struct{}{}, err
}

res.Content = []mcp.Content{
&mcp.TextContent{Text: "Entities deleted successfully"},
}

return &res, nil
return &res, struct{}{}, nil
}

func (k knowledgeBase) DeleteObservations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[DeleteObservationsArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
var res mcp.CallToolResultFor[struct{}]
func (k knowledgeBase) DeleteObservations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args DeleteObservationsArgs) (*mcp.CallToolResult, struct{}, error) {
var res mcp.CallToolResult
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: preexisting: just inline into the literal below.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand.


err := k.deleteObservations(req.Params.Arguments.Deletions)
err := k.deleteObservations(args.Deletions)
if err != nil {
return nil, err
return nil, struct{}{}, err
}

res.Content = []mcp.Content{
&mcp.TextContent{Text: "Observations deleted successfully"},
}

return &res, nil
return &res, struct{}{}, nil
}

func (k knowledgeBase) DeleteRelations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[DeleteRelationsArgs]]) (*mcp.CallToolResultFor[struct{}], error) {
var res mcp.CallToolResultFor[struct{}]
func (k knowledgeBase) DeleteRelations(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args DeleteRelationsArgs) (*mcp.CallToolResult, struct{}, error) {
var res mcp.CallToolResult

err := k.deleteRelations(req.Params.Arguments.Relations)
err := k.deleteRelations(args.Relations)
if err != nil {
return nil, err
return nil, struct{}{}, err
}

res.Content = []mcp.Content{
&mcp.TextContent{Text: "Relations deleted successfully"},
}

return &res, nil
return &res, struct{}{}, nil
}

func (k knowledgeBase) ReadGraph(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[struct{}]]) (*mcp.CallToolResultFor[KnowledgeGraph], error) {
var res mcp.CallToolResultFor[KnowledgeGraph]
func (k knowledgeBase) ReadGraph(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args any) (*mcp.CallToolResult, KnowledgeGraph, error) {
var res mcp.CallToolResult

graph, err := k.loadGraph()
if err != nil {
return nil, err
return nil, KnowledgeGraph{}, err
}

res.Content = []mcp.Content{
&mcp.TextContent{Text: "Graph read successfully"},
}

res.StructuredContent = graph
return &res, nil
return &res, graph, nil
}

func (k knowledgeBase) SearchNodes(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[SearchNodesArgs]]) (*mcp.CallToolResultFor[KnowledgeGraph], error) {
var res mcp.CallToolResultFor[KnowledgeGraph]
func (k knowledgeBase) SearchNodes(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args SearchNodesArgs) (*mcp.CallToolResult, KnowledgeGraph, error) {
var res mcp.CallToolResult

graph, err := k.searchNodes(req.Params.Arguments.Query)
graph, err := k.searchNodes(args.Query)
if err != nil {
return nil, err
return nil, KnowledgeGraph{}, err
}

res.Content = []mcp.Content{
&mcp.TextContent{Text: "Nodes searched successfully"},
}

res.StructuredContent = graph
return &res, nil
return &res, KnowledgeGraph{}, nil
}

func (k knowledgeBase) OpenNodes(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParamsFor[OpenNodesArgs]]) (*mcp.CallToolResultFor[KnowledgeGraph], error) {
var res mcp.CallToolResultFor[KnowledgeGraph]
func (k knowledgeBase) OpenNodes(ctx context.Context, req *mcp.ServerRequest[*mcp.CallToolParams], args OpenNodesArgs) (*mcp.CallToolResult, KnowledgeGraph, error) {
var res mcp.CallToolResult

graph, err := k.openNodes(req.Params.Arguments.Names)
graph, err := k.openNodes(args.Names)
if err != nil {
return nil, err
return nil, KnowledgeGraph{}, err
}

res.Content = []mcp.Content{
&mcp.TextContent{Text: "Nodes opened successfully"},
}

res.StructuredContent = graph
return &res, nil
return &res, graph, nil
}
Loading
Loading