@@ -197,8 +197,22 @@ func NewAgent(
197 tools.NewWriteTool(lspClients, permissions, history, cwd),
197 tools.NewWriteTool(lspClients, permissions, history, cwd),
200+ mcpToolsOnce.Do(func() {
201+ mcpTools = doGetMCPTools(ctx, permissions, cfg)
204+ withCoderTools := func(t []tools.BaseTool) []tools.BaseTool {
205+ if agentCfg.ID == "coder" {
206+ t = append(t, mcpTools...)
207+ if len(lspClients) > 0 {
208+ t = append(t, tools.NewDiagnosticsTool(lspClients))
200 if agentCfg.AllowedTools == nil {
214 if agentCfg.AllowedTools == nil {
201− return allTools
215+ return withCoderTools(allTools)
204 var filteredTools []tools.BaseTool
218 var filteredTools []tools.BaseTool
@@ -209,15 +223,9 @@ func NewAgent(
211 if agentCfg.ID == "coder" {
225 if agentCfg.ID == "coder" {
212− mcpToolsOnce.Do(func() {
213− mcpTools = doGetMCPTools(ctx, permissions, cfg)
215 filteredTools = append(filteredTools, mcpTools...)
226 filteredTools = append(filteredTools, mcpTools...)
216− if len(lspClients) > 0 {
217− filteredTools = append(filteredTools, tools.NewDiagnosticsTool(lspClients))
220− return filteredTools
228+ return withCoderTools(filteredTools)
223 return &agent{
231 return &agent{