@@ -37,7 +37,7 @@ type MCPClient interface {
3737}
3838
3939func (b *mcpTool) Name() string {
40− return fmt.Sprintf("%s_%s", b.mcpName, b.tool.Name)
40+ return fmt.Sprintf("mcp_%s_%s", b.mcpName, b.tool.Name)
4141}
4242
4343func (b *mcpTool) Info() tools.ToolInfo {
@@ -46,7 +46,7 @@ func (b *mcpTool) Info() tools.ToolInfo {
4646 required = make([]string, 0)
4747 }
4848 return tools.ToolInfo{
49− Name: fmt.Sprintf("%s_%s", b.mcpName, b.tool.Name),
49+ Name: fmt.Sprintf("mcp_%s_%s", b.mcpName, b.tool.Name),
5050 Description: b.tool.Description,
5151 Parameters: b.tool.InputSchema.Properties,
5252 Required: required,
@@ -108,14 +108,14 @@ func (b *mcpTool) Run(ctx context.Context, params tools.ToolCall) (tools.ToolRes
108108 },
109109 )
110110 if !p {
111− return tools.NewTextErrorResponse("permission denied"), nil
111+ return tools.ToolResponse{}, permission.ErrorPermissionDenied
112112 }
113113
114114 switch b.mcpConfig.Type {
115115 case config.MCPStdio:
116116 c, err := client.NewStdioMCPClient(
117117 b.mcpConfig.Command,
118− b.mcpConfig.Env,
118+ b.mcpConfig.ResolvedEnv(),
119119 b.mcpConfig.Args...,
120120 )
121121 if err != nil {
@@ -125,7 +125,7 @@ func (b *mcpTool) Run(ctx context.Context, params tools.ToolCall) (tools.ToolRes
125125 case config.MCPHttp:
126126 c, err := client.NewStreamableHttpClient(
127127 b.mcpConfig.URL,
128− transport.WithHTTPHeaders(b.mcpConfig.Headers),
128+ transport.WithHTTPHeaders(b.mcpConfig.ResolvedHeaders()),
129129 )
130130 if err != nil {
131131 return tools.NewTextErrorResponse(err.Error()), nil
@@ -134,7 +134,7 @@ func (b *mcpTool) Run(ctx context.Context, params tools.ToolCall) (tools.ToolRes
134134 case config.MCPSse:
135135 c, err := client.NewSSEMCPClient(
136136 b.mcpConfig.URL,
137− client.WithHeaders(b.mcpConfig.Headers),
137+ client.WithHeaders(b.mcpConfig.ResolvedHeaders()),
138138 )
139139 if err != nil {
140140 return tools.NewTextErrorResponse(err.Error()), nil
@@ -210,7 +210,7 @@ func doGetMCPTools(ctx context.Context, permissions permission.Service, cfg *con
210210 case config.MCPStdio:
211211 c, err := client.NewStdioMCPClient(
212212 m.Command,
213− m.Env,
213+ m.ResolvedEnv(),
214214 m.Args...,
215215 )
216216 if err != nil {
@@ -224,7 +224,7 @@ func doGetMCPTools(ctx context.Context, permissions permission.Service, cfg *con
224224 case config.MCPHttp:
225225 c, err := client.NewStreamableHttpClient(
226226 m.URL,
227− transport.WithHTTPHeaders(m.Headers),
227+ transport.WithHTTPHeaders(m.ResolvedHeaders()),
228228 )
229229 if err != nil {
230230 slog.Error("error creating mcp client", "error", err)
@@ -236,7 +236,7 @@ func doGetMCPTools(ctx context.Context, permissions permission.Service, cfg *con
236236 case config.MCPSse:
237237 c, err := client.NewSSEMCPClient(
238238 m.URL,
239− client.WithHeaders(m.Headers),
239+ client.WithHeaders(m.ResolvedHeaders()),
240240 )
241241 if err != nil {
242242 slog.Error("error creating mcp client", "error", err)