Skip to content

Commit c9ec73c

Browse files
authored
Merge pull request #889 from chaitin/fix/private-mcphub-sync-config
修复 MCP 上游同步缺少配置时静默成功
2 parents ec350aa + e23e89e commit c9ec73c

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

backend/biz/setting/usecase/mcp.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func NewUserMCPSyncClient(i *do.Injector) (domain.UserMCPSyncClient, error) {
3535
cfg := do.MustInvoke[*config.Config](i)
3636
logger := do.MustInvoke[*slog.Logger](i).With("module", "usecase.UserMCPSyncClient")
3737
if strings.TrimSpace(cfg.MCPHub.URL) == "" || strings.TrimSpace(cfg.MCPHub.Token) == "" {
38-
return &noopUserMCPSyncClient{logger: logger}, nil
38+
return &unconfiguredUserMCPSyncClient{}, nil
3939
}
4040
return &httpUserMCPSyncClient{
4141
baseURL: cfg.MCPHub.URL,
@@ -125,12 +125,10 @@ func (u *userMCPUsecase) UpdateToolSetting(ctx context.Context, uid, toolID uuid
125125
return u.repo.UpsertToolSetting(ctx, uid, toolID, enabled)
126126
}
127127

128-
type noopUserMCPSyncClient struct {
129-
logger *slog.Logger
130-
}
128+
type unconfiguredUserMCPSyncClient struct{}
131129

132-
func (c *noopUserMCPSyncClient) SyncUpstream(context.Context, uuid.UUID) error {
133-
return nil
130+
func (c *unconfiguredUserMCPSyncClient) SyncUpstream(context.Context, uuid.UUID) error {
131+
return fmt.Errorf("mcp hub sync is not configured")
134132
}
135133

136134
type httpUserMCPSyncClient struct {

backend/biz/setting/usecase/mcp_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,21 @@ package usecase
22

33
import (
44
"context"
5+
"strings"
56
"testing"
67

78
"github.com/google/uuid"
89

910
"github.com/chaitin/MonkeyCode/backend/domain"
1011
)
1112

13+
func TestUnconfiguredUserMCPSyncClientReturnsError(t *testing.T) {
14+
err := (&unconfiguredUserMCPSyncClient{}).SyncUpstream(context.Background(), uuid.New())
15+
if err == nil || !strings.Contains(err.Error(), "not configured") {
16+
t.Fatalf("SyncUpstream() error = %v, want configuration error", err)
17+
}
18+
}
19+
1220
func TestCreatePrivateMCPUpstream(t *testing.T) {
1321
repo := &userMCPRepoStub{}
1422
uc := &userMCPUsecase{

0 commit comments

Comments
 (0)