Skip to content

Commit e5d42d4

Browse files
committed
use the ask-mai config for ask-mai-mcp cli
1 parent 848972c commit e5d42d4

File tree

5 files changed

+60
-20
lines changed

5 files changed

+60
-20
lines changed

frontend/wailsjs/go/models.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,6 @@ export namespace builtin {
612612
DirectoryDeletion: DirectoryDeletion;
613613
CommandExec: CommandExecution;
614614
Http: Http;
615-
Disable: boolean;
616615

617616
static createFrom(source: any = {}) {
618617
return new BuiltIns(source);
@@ -637,7 +636,6 @@ export namespace builtin {
637636
this.DirectoryDeletion = this.convertValues(source["DirectoryDeletion"], DirectoryDeletion);
638637
this.CommandExec = this.convertValues(source["CommandExec"], CommandExecution);
639638
this.Http = this.convertValues(source["Http"], Http);
640-
this.Disable = source["Disable"];
641639
}
642640

643641
convertValues(a: any, classs: any, asMap: boolean = false): any {
@@ -1110,8 +1108,8 @@ export namespace file {
11101108
}
11111109
export class ChangeOwnerArguments {
11121110
path: string;
1113-
user_id: number;
1114-
group_id: number;
1111+
user_id?: number;
1112+
group_id?: number;
11151113

11161114
static createFrom(source: any = {}) {
11171115
return new ChangeOwnerArguments(source);

internal/app/mcp-server/main.go

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ package mcp_server
33
import (
44
"fmt"
55
"github.com/mark3labs/mcp-go/server"
6-
"github.com/rainu/ask-mai/internal/config/model/llm/tools/builtin"
7-
mcpServer "github.com/rainu/ask-mai/internal/mcp/server/builtin"
6+
"github.com/rainu/ask-mai/internal/config"
7+
mcpServer "github.com/rainu/ask-mai/internal/mcp/server"
8+
"log/slog"
89
"os"
910
)
1011

@@ -13,13 +14,27 @@ type Args struct {
1314
}
1415

1516
func Main(args Args) int {
16-
s := mcpServer.NewServer(args.VersionLine, builtin.BuiltIns{})
17-
err := server.ServeStdio(s)
17+
cfg := config.Parse(os.Args[1:], os.Environ())
18+
if cfg.Version {
19+
fmt.Fprintln(os.Stderr, args.VersionLine)
20+
return 0
21+
}
1822

19-
if err != nil {
23+
if err := cfg.Validate(); err != nil {
2024
fmt.Fprintln(os.Stderr, err.Error())
2125
return 1
2226
}
27+
slog.SetLogLoggerLevel(*cfg.DebugConfig.LogLevelParsed)
28+
29+
ap := cfg.GetActiveProfile()
30+
31+
ms := mcpServer.NewServer(args.VersionLine, ap.LLM.Tool.BuiltIns, ap.LLM.Tool.Custom)
32+
err := server.ServeStdio(ms)
33+
34+
if err != nil {
35+
fmt.Fprintln(os.Stderr, err.Error())
36+
return 2
37+
}
2338

2439
return 0
2540
}

internal/mcp/server/builtin/server.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@ func NewServer(version string, cfg builtin.BuiltIns) *server.MCPServer {
1515
version,
1616
server.WithToolCapabilities(false),
1717
)
18+
AddTools(s, cfg)
1819

20+
return s
21+
}
22+
23+
func AddTools(s *server.MCPServer, cfg builtin.BuiltIns) {
1924
if !cfg.SystemTime.Disable {
2025
s.AddTool(system.SystemTimeTool, system.SystemTimeToolHandler)
2126
}
@@ -72,6 +77,4 @@ func NewServer(version string, cfg builtin.BuiltIns) *server.MCPServer {
7277
if !cfg.Http.Disable {
7378
s.AddTool(http.CallTool, http.CallToolHandler)
7479
}
75-
76-
return s
7780
}

internal/mcp/server/combined.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package server
2+
3+
import (
4+
"github.com/mark3labs/mcp-go/server"
5+
"github.com/rainu/ask-mai/internal/config/model/llm/tools/builtin"
6+
"github.com/rainu/ask-mai/internal/config/model/llm/tools/command"
7+
bServer "github.com/rainu/ask-mai/internal/mcp/server/builtin"
8+
cServer "github.com/rainu/ask-mai/internal/mcp/server/custom"
9+
)
10+
11+
func NewServer(version string, bConfig builtin.BuiltIns, cConfig map[string]command.FunctionDefinition) *server.MCPServer {
12+
s := server.NewMCPServer(
13+
"ask-mai",
14+
version,
15+
server.WithToolCapabilities(false),
16+
)
17+
bServer.AddTools(s, bConfig)
18+
cServer.AddTools(s, cConfig)
19+
20+
return s
21+
}

internal/mcp/server/custom/server.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,7 @@ func NewServer(version string, cfg map[string]command.FunctionDefinition) *serve
1414
version,
1515
server.WithToolCapabilities(false),
1616
)
17-
18-
for name, definition := range cfg {
19-
t := mcp.Tool{
20-
Name: name,
21-
Description: definition.Description,
22-
InputSchema: definition.Parameters,
23-
}
24-
s.AddTool(t, handlerFor(definition))
25-
}
17+
AddTools(s, cfg)
2618

2719
return s
2820
}
@@ -38,3 +30,14 @@ func handlerFor(definition command.FunctionDefinition) server.ToolHandlerFunc {
3830
return mcp.NewToolResultText(string(rawResult)), err
3931
}
4032
}
33+
34+
func AddTools(s *server.MCPServer, cfg map[string]command.FunctionDefinition) {
35+
for name, definition := range cfg {
36+
t := mcp.Tool{
37+
Name: name,
38+
Description: definition.Description,
39+
InputSchema: definition.Parameters,
40+
}
41+
s.AddTool(t, handlerFor(definition))
42+
}
43+
}

0 commit comments

Comments
 (0)