MCPcopy Create free account
hub / github.com/53AI/53AIHub / registerMCPFileTools

Function registerMCPFileTools

api/controller/mcp_tools.go:235–369  ·  view source on GitHub ↗
(server *MCPServer)

Source from the content-addressed store, hash-verified

233}
234
235func registerMCPFileTools(server *MCPServer) {
236 AddTypedMCPTool(server, &mcp.Tool{Name: "file.create", Description: "创建文件或文件夹"}, func(ctx context.Context, _ *mcp.CallToolRequest, in MCPFileCreateInput) (*mcp.CallToolResult, any, error) {
237 userID, eid, _, err := CurrentMCPAuthInfo(ctx)
238 if err != nil {
239 return nil, nil, err
240 }
241 svc := mcpservice.NewFileService()
242 fileType, err := parseMCPFileType(in.Type)
243 if err != nil {
244 return nil, nil, err
245 }
246 result, err := svc.CreateFileOrFolder(ctx, eid, userID, in.LibraryID.Int64(), in.Path, fileType, in.Content)
247 if err != nil {
248 return nil, nil, err
249 }
250 return &mcp.CallToolResult{}, encodeMCPToolOutput(result), nil
251 })
252
253 AddTypedMCPTool(server, &mcp.Tool{Name: "file.list", Description: "获取文件或文件夹列表"}, func(ctx context.Context, _ *mcp.CallToolRequest, in MCPFileListInput) (*mcp.CallToolResult, any, error) {
254 userID, eid, _, err := CurrentMCPAuthInfo(ctx)
255 if err != nil {
256 return nil, nil, err
257 }
258 svc := mcpservice.NewFileService()
259 files, err := svc.ListFilesByLibraryAndPath(ctx, eid, userID, in.LibraryID.Int64(), in.Path, in.Recursive, in.Sort)
260 if err != nil {
261 return nil, nil, err
262 }
263 return &mcp.CallToolResult{}, encodeMCPToolOutput(map[string]any{"items": files, "total": len(files)}), nil
264 })
265
266 AddTypedMCPTool(server, &mcp.Tool{Name: "file.detail", Description: "获取文件或文件夹详情"}, func(ctx context.Context, _ *mcp.CallToolRequest, in MCPFileDetailInput) (*mcp.CallToolResult, any, error) {
267 userID, eid, _, err := CurrentMCPAuthInfo(ctx)
268 if err != nil {
269 return nil, nil, err
270 }
271 svc := mcpservice.NewFileService()
272 detail, err := svc.GetFileDetailWithBody(ctx, eid, userID, in.FileID.Int64())
273 if err != nil {
274 return nil, nil, err
275 }
276 return &mcp.CallToolResult{}, encodeMCPToolOutput(detail), nil
277 })
278
279 AddTypedMCPTool(server, &mcp.Tool{Name: "file.delete", Description: "删除文件或文件夹"}, func(ctx context.Context, _ *mcp.CallToolRequest, in MCPFileDetailInput) (*mcp.CallToolResult, any, error) {
280 userID, eid, _, err := CurrentMCPAuthInfo(ctx)
281 if err != nil {
282 return nil, nil, err
283 }
284 svc := mcpservice.NewFileService()
285 deletedFile, err := svc.DeleteFile(ctx, eid, userID, in.FileID.Int64())
286 if err != nil {
287 return nil, nil, err
288 }
289 return &mcp.CallToolResult{}, encodeMCPToolOutput(map[string]any{
290 "deleted": true,
291 "file": deletedFile,
292 }), nil

Callers 1

registerMCPToolsFunction · 0.85

Calls 15

CreateFileOrFolderMethod · 0.95
GetFileDetailWithBodyMethod · 0.95
DeleteFileMethod · 0.95
RenameFileOrDirectoryMethod · 0.95
AddTypedMCPToolFunction · 0.85
CurrentMCPAuthInfoFunction · 0.85
parseMCPFileTypeFunction · 0.85
encodeMCPToolOutputFunction · 0.85
MCPHashIDsToInt64Function · 0.85

Tested by

no test coverage detected