Bläddra i källkod

调用mcp微服务测试通过

qdy 1 månad sedan
förälder
incheckning
b5bdc020a2
7 ändrade filer med 228 tillägg och 55 borttagningar
  1. 15
    0
      go.mod
  2. 129
    2
      go.sum
  3. 13
    1
      internal/auth/auth_db_middleware.go
  4. 19
    2
      internal/handler/register_http_router.go
  5. 9
    9
      internal/mcp/registry.go
  6. 34
    34
      internal/mcp/server.go
  7. 9
    7
      main.go

+ 15
- 0
go.mod Visa fil

@@ -14,20 +14,35 @@ require (
14 14
 
15 15
 require (
16 16
 	filippo.io/edwards25519 v1.1.0 // indirect
17
+	github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da // indirect
18
+	github.com/fatih/color v1.9.0 // indirect
17 19
 	github.com/go-sql-driver/mysql v1.9.3 // indirect
20
+	github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
18 21
 	github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
19 22
 	github.com/golang-sql/sqlexp v0.1.0 // indirect
20 23
 	github.com/google/jsonschema-go v0.3.0 // indirect
21 24
 	github.com/google/uuid v1.6.0 // indirect
25
+	github.com/hashicorp/consul/api v1.9.0 // indirect
26
+	github.com/hashicorp/go-cleanhttp v0.5.1 // indirect
27
+	github.com/hashicorp/go-hclog v0.12.0 // indirect
28
+	github.com/hashicorp/go-immutable-radix v1.0.0 // indirect
29
+	github.com/hashicorp/go-rootcerts v1.0.2 // indirect
30
+	github.com/hashicorp/golang-lru v0.5.3 // indirect
31
+	github.com/hashicorp/serf v0.9.5 // indirect
22 32
 	github.com/jmoiron/sqlx v1.4.0 // indirect
23 33
 	github.com/lib/pq v1.10.9 // indirect
34
+	github.com/mattn/go-colorable v0.1.13 // indirect
35
+	github.com/mattn/go-isatty v0.0.20 // indirect
24 36
 	github.com/microsoft/go-mssqldb v1.9.4 // indirect
37
+	github.com/mitchellh/go-homedir v1.1.0 // indirect
38
+	github.com/mitchellh/mapstructure v1.3.3 // indirect
25 39
 	github.com/sijms/go-ora/v2 v2.9.0 // indirect
26 40
 	github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
27 41
 	go.uber.org/multierr v1.10.0 // indirect
28 42
 	go.uber.org/zap v1.27.1 // indirect
29 43
 	golang.org/x/crypto v0.46.0 // indirect
30 44
 	golang.org/x/oauth2 v0.30.0 // indirect
45
+	golang.org/x/sys v0.39.0 // indirect
31 46
 	golang.org/x/text v0.32.0 // indirect
32 47
 	gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
33 48
 	gopkg.in/yaml.v2 v2.4.0 // indirect

+ 129
- 2
go.sum Visa fil

@@ -12,47 +12,140 @@ github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1 h1:bFWuo
12 12
 github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1/go.mod h1:Vih/3yc6yac2JzU4hzpaDupBJP0Flaia9rXXrU8xyww=
13 13
 github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs=
14 14
 github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI=
15
+github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
16
+github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I=
17
+github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
18
+github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
19
+github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
20
+github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
21
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
15 22
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
16 23
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
24
+github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
25
+github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
26
+github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
17 27
 github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
18 28
 github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo=
19 29
 github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
20
-github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8=
21
-github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
30
+github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
31
+github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
22 32
 github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA=
23 33
 github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
24 34
 github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A=
25 35
 github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI=
36
+github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
37
+github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
38
+github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
26 39
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
27 40
 github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
28 41
 github.com/google/jsonschema-go v0.3.0 h1:6AH2TxVNtk3IlvkkhjrtbUc4S8AvO0Xii0DxIygDg+Q=
29 42
 github.com/google/jsonschema-go v0.3.0/go.mod h1:r5quNTdLOYEz95Ru18zA0ydNbBuYoo9tgaYcxEYhJVE=
30 43
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
31 44
 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
45
+github.com/hashicorp/consul/api v1.9.0 h1:T6dKIWcaihG2c21YUi0BMAHbJanVXiYuz+mPgqxY3N4=
46
+github.com/hashicorp/consul/api v1.9.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M=
47
+github.com/hashicorp/consul/sdk v0.8.0 h1:OJtKBtEjboEZvG6AOUdh4Z1Zbyu0WcxQ0qatRrZHTVU=
48
+github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms=
49
+github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
50
+github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
51
+github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
52
+github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
53
+github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
54
+github.com/hashicorp/go-hclog v0.12.0 h1:d4QkX8FRTYaKaCZBoXYY8zJX2BXjWxurN/GA2tkrmZM=
55
+github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
56
+github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0=
57
+github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
58
+github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4=
59
+github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
60
+github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
61
+github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA=
62
+github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
63
+github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
64
+github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=
65
+github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
66
+github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs=
67
+github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
68
+github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
69
+github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
70
+github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
71
+github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8=
72
+github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
73
+github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
74
+github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk=
75
+github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
76
+github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
77
+github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY=
78
+github.com/hashicorp/memberlist v0.2.2 h1:5+RffWKwqJ71YPu9mWsF7ZOscZmwfasdA8kbdC7AO2g=
79
+github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
80
+github.com/hashicorp/serf v0.9.5 h1:EBWvyu9tcRszt3Bxp3KNssBMP1KuHWyO51lz9+786iM=
81
+github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
32 82
 github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o=
33 83
 github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY=
84
+github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
34 85
 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
35 86
 github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
87
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
88
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
36 89
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
37 90
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
38 91
 github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
39 92
 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
40 93
 github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
41 94
 github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
95
+github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
96
+github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
97
+github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
98
+github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
99
+github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
100
+github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
101
+github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
102
+github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
103
+github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
104
+github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
105
+github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
106
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
107
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
42 108
 github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
43 109
 github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
44 110
 github.com/microsoft/go-mssqldb v1.9.4 h1:sHrj3GcdgkxytZ09aZ3+ys72pMeyEXJowT44j74pNgs=
45 111
 github.com/microsoft/go-mssqldb v1.9.4/go.mod h1:GBbW9ASTiDC+mpgWDGKdm3FnFLTUsLYN3iFL90lQ+PA=
112
+github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
113
+github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
114
+github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA=
115
+github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps=
116
+github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
117
+github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
118
+github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
119
+github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0=
120
+github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
121
+github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
122
+github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
123
+github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8=
124
+github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
46 125
 github.com/modelcontextprotocol/go-sdk v1.2.0 h1:Y23co09300CEk8iZ/tMxIX1dVmKZkzoSBZOpJwUnc/s=
47 126
 github.com/modelcontextprotocol/go-sdk v1.2.0/go.mod h1:6fM3LCm3yV7pAs8isnKLn07oKtB0MP9LHd3DfAcKw10=
127
+github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs=
128
+github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
48 129
 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
49 130
 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
131
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
132
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
133
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
50 134
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
51 135
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
136
+github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
137
+github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
52 138
 github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
53 139
 github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
140
+github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
141
+github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
142
+github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
54 143
 github.com/sijms/go-ora/v2 v2.9.0 h1:+iQbUeTeCOFMb5BsOMgUhV8KWyrv9yjKpcK4x7+MFrg=
55 144
 github.com/sijms/go-ora/v2 v2.9.0/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU=
145
+github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
146
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
147
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
148
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
56 149
 github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
57 150
 github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
58 151
 github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4=
@@ -63,23 +156,57 @@ go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ=
63 156
 go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
64 157
 go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
65 158
 go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
159
+golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
160
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
161
+golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
66 162
 golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=
67 163
 golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=
164
+golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c=
165
+golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU=
166
+golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
167
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
168
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
169
+golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
68 170
 golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
69 171
 golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
70 172
 golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
71 173
 golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
174
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
175
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
176
+golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
177
+golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
178
+golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
179
+golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
180
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
181
+golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
182
+golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
183
+golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
184
+golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
185
+golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
186
+golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
187
+golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
188
+golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
189
+golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
190
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
72 191
 golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
73 192
 golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
193
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
194
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
74 195
 golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
75 196
 golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
197
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
198
+golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
76 199
 golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA=
77 200
 golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc=
201
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
78 202
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
203
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
79 204
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
80 205
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
81 206
 gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
82 207
 gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
208
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
209
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
83 210
 gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
84 211
 gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
85 212
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

internal/auth/auth_middleware.go → internal/auth/auth_db_middleware.go Visa fil

@@ -7,8 +7,20 @@ import (
7 7
 	"git.x2erp.com/qdy/go-db/factory/database"
8 8
 )
9 9
 
10
+// AuthMiddlewareHttp 验证 Authorization 头和项目 ID 头
11
+func AuthMiddlewareHttp(next http.Handler, dbFactory *database.DBFactory) http.Handler {
12
+
13
+	return authMiddleware(1, next, dbFactory)
14
+}
15
+
16
+// AuthMiddlewareMcp 验证 Authorization 头和项目 ID 头
17
+func AuthMiddlewareMcp(next http.Handler, dbFactory *database.DBFactory) http.Handler {
18
+
19
+	return authMiddleware(2, next, dbFactory)
20
+}
21
+
10 22
 // authMiddleware 验证 Authorization 头和项目 ID 头
11
-func AuthMiddleware(next http.Handler, dbFactory *database.DBFactory) http.Handler {
23
+func authMiddleware(ser int, next http.Handler, dbFactory *database.DBFactory) http.Handler {
12 24
 
13 25
 	projectIDHeader := "X-Project-ID"
14 26
 	authToken := "123"

internal/handler/register_router.go → internal/handler/register_http_router.go Visa fil

@@ -4,11 +4,13 @@ import (
4 4
 	"encoding/json"
5 5
 	"log"
6 6
 
7
+	"git.x2erp.com/qdy/go-base/authbase"
7 8
 	"git.x2erp.com/qdy/go-base/ctx"
8
-	"git.x2erp.com/qdy/go-base/middleware"
9
+
9 10
 	"git.x2erp.com/qdy/go-base/model/response"
10 11
 	"git.x2erp.com/qdy/go-base/webx/router"
11 12
 	"git.x2erp.com/qdy/go-db/factory/database"
13
+	"git.x2erp.com/qdy/go-svc-mcp/internal/auth"
12 14
 )
13 15
 
14 16
 func RegisterRouter(ws *router.RouterService, dbFactory *database.DBFactory) {
@@ -27,7 +29,22 @@ func RegisterRouter(ws *router.RouterService, dbFactory *database.DBFactory) {
27 29
 			// req 自动从JSON Body绑定
28 30
 			return nil, nil
29 31
 		},
30
-	).Use(middleware.JWTAuthMiddleware).Register()
32
+	).Use(router.WrapMiddleware(auth.AuthMiddlewareHttp, dbFactory)).Register()
33
+
34
+	ws.POST("/api/user/config",
35
+		func(req ctx.RequestContext, reqCtx *ctx.RequestContext) (*response.QueryResult[interface{}], error) {
36
+			log.Print("ctx TenantID:", reqCtx.TenantID)
37
+			//log.Print("mongoDBFactory:", mongoDBFactory.GetConfig().URI)
38
+			//log.Print("dbFactory:", dbFactory.GetDBName())
39
+			jsonBytes, _ := json.Marshal(req)
40
+			log.Printf("TenantConfig :%s", string(jsonBytes))
41
+
42
+			//queryResult, err := dbFactory.InsertOne("tenant_configs", req)
43
+			//log.Print("TenantConfig InsertOne:", queryResult)
44
+			// req 自动从JSON Body绑定
45
+			return nil, nil
46
+		},
47
+	).Use(authbase.TokenAuth).Register()
31 48
 
32 49
 	// // 您的业务路由
33 50
 	// ws.POST("/api/query/yaml",

+ 9
- 9
internal/mcp/registry.go Visa fil

@@ -79,15 +79,15 @@ func ListTools() []ToolDefinition {
79 79
 	return tools
80 80
 }
81 81
 
82
-// SetDependencies 设置全局依赖项
83
-func SetDependencies(dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) {
84
-	dependenciesOnce.Do(func() {
85
-		dependencies = &ToolDependencies{
86
-			DBFactory: dbFactory,
87
-			ReqCtx:    reqCtx,
88
-		}
89
-	})
90
-}
82
+// // SetDependencies 设置全局依赖项
83
+// func SetDependencies(dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) {
84
+// 	dependenciesOnce.Do(func() {
85
+// 		dependencies = &ToolDependencies{
86
+// 			DBFactory: dbFactory,
87
+// 			ReqCtx:    reqCtx,
88
+// 		}
89
+// 	})
90
+// }
91 91
 
92 92
 // GetDependencies 获取依赖项(如果已设置)
93 93
 func GetDependencies() *ToolDependencies {

+ 34
- 34
internal/mcp/server.go Visa fil

@@ -6,7 +6,6 @@ import (
6 6
 	"fmt"
7 7
 	"log"
8 8
 	"net/http"
9
-	"os"
10 9
 
11 10
 	"git.x2erp.com/qdy/go-base/ctx"
12 11
 	"git.x2erp.com/qdy/go-db/factory/database"
@@ -20,9 +19,9 @@ type Server struct {
20 19
 	sdkServer   *mcpsdk.Server
21 20
 	transport   mcpsdk.Transport
22 21
 	dbFactory   *database.DBFactory
23
-	baseCtx     *ctx.RequestContext
24
-	httpServer  *http.Server
25
-	handler     http.Handler
22
+	//baseCtx     *ctx.RequestContext
23
+	httpServer *http.Server
24
+	handler    http.Handler
26 25
 }
27 26
 
28 27
 // Config 服务器配置
@@ -33,7 +32,7 @@ type Config struct {
33 32
 	ServiceName string
34 33
 	Description string
35 34
 	DBFactory   *database.DBFactory
36
-	BaseCtx     *ctx.RequestContext
35
+	//BaseCtx     *ctx.RequestContext
37 36
 }
38 37
 
39 38
 // NewServer 创建新的 MCP 服务器
@@ -45,9 +44,9 @@ func NewServer(cfg Config) (*Server, error) {
45 44
 	sdkServer := mcpsdk.NewServer(impl, nil)
46 45
 
47 46
 	server := &Server{
48
-		sdkServer:   sdkServer,
49
-		dbFactory:   cfg.DBFactory,
50
-		baseCtx:     cfg.BaseCtx,
47
+		sdkServer: sdkServer,
48
+		dbFactory: cfg.DBFactory,
49
+		//baseCtx:     cfg.BaseCtx,
51 50
 		port:        cfg.Port,
52 51
 		serviceName: cfg.ServiceName,
53 52
 	}
@@ -91,7 +90,7 @@ func (s *Server) registerTool(tool ToolDefinition) error {
91 90
 
92 91
 // createToolHandler 创建 MCP 工具处理器
93 92
 func (s *Server) createToolHandler(tool ToolDefinition) mcpsdk.ToolHandlerFor[map[string]interface{}, interface{}] {
94
-	return func(_ context.Context, request *mcpsdk.CallToolRequest, input map[string]interface{}) (*mcpsdk.CallToolResult, interface{}, error) {
93
+	return func(ctxMcp context.Context, request *mcpsdk.CallToolRequest, input map[string]interface{}) (*mcpsdk.CallToolResult, interface{}, error) {
95 94
 		// 将输入转换为 JSON
96 95
 		inputJSON, err := json.Marshal(input)
97 96
 		if err != nil {
@@ -99,7 +98,8 @@ func (s *Server) createToolHandler(tool ToolDefinition) mcpsdk.ToolHandlerFor[ma
99 98
 		}
100 99
 
101 100
 		// 提取请求上下文信息
102
-		reqCtx := s.extractRequestContext(request)
101
+		//reqCtx := s.extractRequestContext(request)
102
+		reqCtx := ctx.FromContext(ctxMcp)
103 103
 
104 104
 		// 创建工具依赖项
105 105
 		toolDeps := &ToolDependencies{
@@ -124,30 +124,30 @@ func (s *Server) createToolHandler(tool ToolDefinition) mcpsdk.ToolHandlerFor[ma
124 124
 	}
125 125
 }
126 126
 
127
-// extractRequestContext 从 MCP 请求中提取上下文信息
128
-func (s *Server) extractRequestContext(request *mcpsdk.CallToolRequest) *ctx.RequestContext {
129
-	reqCtx := &ctx.RequestContext{}
130
-	if s.baseCtx != nil {
131
-		// 复制基础上下文
132
-		*reqCtx = *s.baseCtx
133
-	}
134
-
135
-	// 从请求的 Extra 数据中提取自定义项目 ID
136
-	extra := request.GetExtra()
137
-	if extra != nil && extra.Header != nil {
138
-		// 确定项目 ID 头名称
139
-		projectIDHeader := os.Getenv("MCP_PROJECT_ID_HEADER")
140
-		if projectIDHeader == "" {
141
-			projectIDHeader = "X-Project-ID"
142
-		}
143
-		if projectID := extra.Header.Get(projectIDHeader); projectID != "" {
144
-			// 将项目 ID 存储在 TraceID 中
145
-			reqCtx.ProjectID = projectID
146
-		}
147
-	}
148
-
149
-	return reqCtx
150
-}
127
+// // extractRequestContext 从 MCP 请求中提取上下文信息
128
+// func (s *Server) extractRequestContext(request *mcpsdk.CallToolRequest) *ctx.RequestContext {
129
+// 	reqCtx := &ctx.RequestContext{}
130
+// 	if s.baseCtx != nil {
131
+// 		// 复制基础上下文
132
+// 		*reqCtx = *s.baseCtx
133
+// 	}
134
+
135
+// 	// 从请求的 Extra 数据中提取自定义项目 ID
136
+// 	extra := request.GetExtra()
137
+// 	if extra != nil && extra.Header != nil {
138
+// 		// 确定项目 ID 头名称
139
+// 		projectIDHeader := os.Getenv("MCP_PROJECT_ID_HEADER")
140
+// 		if projectIDHeader == "" {
141
+// 			projectIDHeader = "X-Project-ID"
142
+// 		}
143
+// 		if projectID := extra.Header.Get(projectIDHeader); projectID != "" {
144
+// 			// 将项目 ID 存储在 TraceID 中
145
+// 			reqCtx.ProjectID = projectID
146
+// 		}
147
+// 	}
148
+
149
+// 	return reqCtx
150
+// }
151 151
 
152 152
 // SetTransport 设置传输层
153 153
 func (s *Server) SetTransport(transport mcpsdk.Transport) {

+ 9
- 7
main.go Visa fil

@@ -4,15 +4,14 @@ import (
4 4
 	"log"
5 5
 	"net/http"
6 6
 
7
-	"git.x2erp.com/qdy/go-svc-mcp/internal/auth"
8 7
 	"git.x2erp.com/qdy/go-svc-mcp/internal/handler"
9 8
 	"git.x2erp.com/qdy/go-svc-mcp/internal/mcp"
10 9
 
11 10
 	_ "git.x2erp.com/qdy/go-svc-mcp/internal/tools" // 触发工具自动注册
12 11
 
12
+	"git.x2erp.com/qdy/go-base/authbase"
13 13
 	"git.x2erp.com/qdy/go-base/config"
14 14
 	"git.x2erp.com/qdy/go-base/container"
15
-	"git.x2erp.com/qdy/go-base/ctx"
16 15
 	"git.x2erp.com/qdy/go-base/graceful"
17 16
 	"git.x2erp.com/qdy/go-base/logger"
18 17
 	"git.x2erp.com/qdy/go-base/webx"
@@ -90,9 +89,9 @@ func createMHttpService(cfg config.IConfig, dbFactory *database.DBFactory) *webx
90 89
 func createMcpService(cfg config.IConfig, dbFactory *database.DBFactory) *mcp.Server {
91 90
 
92 91
 	// 4. 创建基础请求上下文(可从配置或认证中提取)
93
-	baseCtx := &ctx.RequestContext{
94
-		TenantID: "default-tenant", // 实际应从认证中间件获取
95
-	}
92
+	//baseCtx := &ctx.RequestContext{
93
+	//	TenantID: "default-tenant", // 实际应从认证中间件获取
94
+	//}
96 95
 
97 96
 	// 5. 创建 MCP 服务器
98 97
 	mcpServer, err := mcp.NewServer(mcp.Config{
@@ -100,10 +99,10 @@ func createMcpService(cfg config.IConfig, dbFactory *database.DBFactory) *mcp.Se
100 99
 		Version:     appVersion,
101 100
 		Description: "MCP 工具服务,提供自动注册发现和依赖注入",
102 101
 		DBFactory:   dbFactory,
103
-		BaseCtx:     baseCtx,
104 102
 		Port:        cfg.GetMcpServiceConfig().Port,
105 103
 		ServiceName: cfg.GetMcpServiceConfig().ServiceName,
106 104
 	})
105
+
107 106
 	if err != nil {
108 107
 		log.Fatalf("Failed to create MCP server: %v", err)
109 108
 	}
@@ -116,7 +115,8 @@ func createMcpService(cfg config.IConfig, dbFactory *database.DBFactory) *mcp.Se
116 115
 		return sdkServer
117 116
 	}, nil)
118 117
 	// 包装验证中间件
119
-	handler := auth.AuthMiddleware(mcpHandler, dbFactory)
118
+	//handler := auth.AuthMiddlewareMcp(mcpHandler, dbFactory)
119
+	handler := authbase.TokenAuth(mcpHandler)
120 120
 
121 121
 	mcpServer.Run(handler)
122 122
 
@@ -133,11 +133,13 @@ func creteTabel(factory *database.DBFactory) {
133 133
 	syncer, err := sqldef.NewTableSyncer(db, dbType)
134 134
 	if err != nil {
135 135
 		log.Printf("创建 - 建立器失败: %v", err)
136
+		return
136 137
 	}
137 138
 
138 139
 	// 创建表
139 140
 	if err := syncer.CreateTables(); err != nil {
140 141
 		log.Printf("建表失败: %v", err)
142
+		return
141 143
 	}
142 144
 
143 145
 	log.Println("数据库表建立完成!")

Loading…
Avbryt
Spara