@@ -14,6 +14,7 @@ import (
14
14
context2 "github.com/gptscript-ai/gptscript/pkg/context"
15
15
"github.com/gptscript-ai/gptscript/pkg/credentials"
16
16
"github.com/gptscript-ai/gptscript/pkg/engine"
17
+ "github.com/gptscript-ai/gptscript/pkg/mcp"
17
18
"github.com/gptscript-ai/gptscript/pkg/types"
18
19
"golang.org/x/exp/maps"
19
20
)
@@ -37,6 +38,7 @@ type Options struct {
37
38
CredentialOverrides []string `usage:"-"`
38
39
Sequential bool `usage:"-"`
39
40
Authorizer AuthorizerFunc `usage:"-"`
41
+ MCPRunner engine.MCPRunner `usage:"-"`
40
42
}
41
43
42
44
type RunOptions struct {
@@ -69,6 +71,9 @@ func Complete(opts ...Options) (result Options) {
69
71
if opt .CredentialOverrides != nil {
70
72
result .CredentialOverrides = append (result .CredentialOverrides , opt .CredentialOverrides ... )
71
73
}
74
+ if opt .MCPRunner != nil {
75
+ result .MCPRunner = opt .MCPRunner
76
+ }
72
77
}
73
78
return
74
79
}
@@ -87,6 +92,9 @@ func complete(opts ...Options) Options {
87
92
if result .Authorizer == nil {
88
93
result .Authorizer = DefaultAuthorizer
89
94
}
95
+ if result .MCPRunner == nil {
96
+ result .MCPRunner = mcp .DefaultRunner
97
+ }
90
98
return result
91
99
}
92
100
@@ -99,6 +107,7 @@ type Runner struct {
99
107
credOverrides []string
100
108
credStore credentials.CredentialStore
101
109
sequential bool
110
+ mcpRunner engine.MCPRunner
102
111
}
103
112
104
113
func New (client engine.Model , credStore credentials.CredentialStore , opts ... Options ) (* Runner , error ) {
@@ -113,6 +122,7 @@ func New(client engine.Model, credStore credentials.CredentialStore, opts ...Opt
113
122
credStore : credStore ,
114
123
sequential : opt .Sequential ,
115
124
auth : opt .Authorizer ,
125
+ mcpRunner : opt .MCPRunner ,
116
126
}
117
127
118
128
if opt .StartPort != 0 {
@@ -326,6 +336,7 @@ func (r *Runner) start(callCtx engine.Context, state *State, monitor Monitor, en
326
336
327
337
e := engine.Engine {
328
338
Model : r .c ,
339
+ MCPRunner : r .mcpRunner ,
329
340
RuntimeManager : runtimeWithLogger (callCtx , monitor , r .runtimeManager ),
330
341
Progress : progress ,
331
342
Env : env ,
@@ -524,6 +535,7 @@ func (r *Runner) resume(callCtx engine.Context, monitor Monitor, env []string, s
524
535
525
536
e := engine.Engine {
526
537
Model : r .c ,
538
+ MCPRunner : r .mcpRunner ,
527
539
RuntimeManager : runtimeWithLogger (callCtx , monitor , r .runtimeManager ),
528
540
Progress : progress ,
529
541
Env : env ,
0 commit comments