(server *MCPServer)
| 170 | } |
| 171 | |
| 172 | func registerMCPSpaceTools(server *MCPServer) { |
| 173 | AddTypedMCPTool(server, &mcp.Tool{Name: "space.list", Description: "获取当前用户可访问的空间列表"}, func(ctx context.Context, _ *mcp.CallToolRequest, in MCPSpaceListInput) (*mcp.CallToolResult, any, error) { |
| 174 | userID, eid, role, err := CurrentMCPAuthInfo(ctx) |
| 175 | if err != nil { |
| 176 | return nil, nil, err |
| 177 | } |
| 178 | admin := role >= model.RoleAdminUser |
| 179 | svc := mcpservice.NewSpaceService() |
| 180 | count, spaces, err := svc.ListVisibleSpaces(ctx, eid, userID, in.Status, in.Name, in.Offset, in.Limit, in.View, admin) |
| 181 | if err != nil { |
| 182 | return nil, nil, err |
| 183 | } |
| 184 | return &mcp.CallToolResult{}, encodeMCPToolOutput(map[string]any{"count": count, "items": spaces}), nil |
| 185 | }) |
| 186 | |
| 187 | AddTypedMCPTool(server, &mcp.Tool{Name: "space.detail", Description: "获取空间详情"}, func(ctx context.Context, _ *mcp.CallToolRequest, in MCPSpaceDetailInput) (*mcp.CallToolResult, any, error) { |
| 188 | userID, eid, role, err := CurrentMCPAuthInfo(ctx) |
| 189 | if err != nil { |
| 190 | return nil, nil, err |
| 191 | } |
| 192 | admin := role >= model.RoleAdminUser |
| 193 | svc := mcpservice.NewSpaceService() |
| 194 | space, err := svc.GetVisibleSpaceDetail(ctx, eid, userID, in.SpaceID.Int64(), admin) |
| 195 | if err != nil { |
| 196 | return nil, nil, err |
| 197 | } |
| 198 | return &mcp.CallToolResult{}, encodeMCPToolOutput(space), nil |
| 199 | }) |
| 200 | } |
| 201 | |
| 202 | func registerMCPLibraryTools(server *MCPServer) { |
| 203 | AddTypedMCPTool(server, &mcp.Tool{Name: "library.list", Description: "获取当前用户可访问的知识库列表"}, func(ctx context.Context, _ *mcp.CallToolRequest, in MCPLibraryListInput) (*mcp.CallToolResult, any, error) { |
no test coverage detected