@samanhappy/mcphub 0.11.0 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/controllers/configController.js +32 -5
- package/dist/controllers/configController.js.map +1 -1
- package/dist/controllers/oauthClientController.js +13 -13
- package/dist/controllers/oauthClientController.js.map +1 -1
- package/dist/controllers/oauthDynamicRegistrationController.js +9 -9
- package/dist/controllers/oauthDynamicRegistrationController.js.map +1 -1
- package/dist/controllers/oauthServerController.js +1 -1
- package/dist/controllers/oauthServerController.js.map +1 -1
- package/dist/controllers/serverController.js +64 -36
- package/dist/controllers/serverController.js.map +1 -1
- package/dist/dao/DaoFactory.js +24 -0
- package/dist/dao/DaoFactory.js.map +1 -1
- package/dist/dao/DatabaseDaoFactory.js +18 -0
- package/dist/dao/DatabaseDaoFactory.js.map +1 -1
- package/dist/dao/OAuthClientDao.js +100 -0
- package/dist/dao/OAuthClientDao.js.map +1 -0
- package/dist/dao/OAuthClientDaoDbImpl.js +83 -0
- package/dist/dao/OAuthClientDaoDbImpl.js.map +1 -0
- package/dist/dao/OAuthTokenDao.js +161 -0
- package/dist/dao/OAuthTokenDao.js.map +1 -0
- package/dist/dao/OAuthTokenDaoDbImpl.js +92 -0
- package/dist/dao/OAuthTokenDaoDbImpl.js.map +1 -0
- package/dist/dao/index.js +4 -0
- package/dist/dao/index.js.map +1 -1
- package/dist/db/entities/OAuthClient.js +66 -0
- package/dist/db/entities/OAuthClient.js.map +1 -0
- package/dist/db/entities/OAuthToken.js +66 -0
- package/dist/db/entities/OAuthToken.js.map +1 -0
- package/dist/db/entities/index.js +13 -2
- package/dist/db/entities/index.js.map +1 -1
- package/dist/db/repositories/GroupRepository.js +2 -2
- package/dist/db/repositories/GroupRepository.js.map +1 -1
- package/dist/db/repositories/OAuthClientRepository.js +68 -0
- package/dist/db/repositories/OAuthClientRepository.js.map +1 -0
- package/dist/db/repositories/OAuthTokenRepository.js +159 -0
- package/dist/db/repositories/OAuthTokenRepository.js.map +1 -0
- package/dist/db/repositories/ServerRepository.js +3 -3
- package/dist/db/repositories/ServerRepository.js.map +1 -1
- package/dist/db/repositories/UserRepository.js +2 -2
- package/dist/db/repositories/UserRepository.js.map +1 -1
- package/dist/db/repositories/index.js +3 -1
- package/dist/db/repositories/index.js.map +1 -1
- package/dist/middlewares/auth.js +1 -1
- package/dist/middlewares/auth.js.map +1 -1
- package/dist/models/OAuth.js +90 -122
- package/dist/models/OAuth.js.map +1 -1
- package/dist/routes/index.js +2 -1
- package/dist/routes/index.js.map +1 -1
- package/dist/services/mcpService.js +32 -28
- package/dist/services/mcpService.js.map +1 -1
- package/dist/services/oauthServerService.js +8 -8
- package/dist/services/oauthServerService.js.map +1 -1
- package/dist/utils/migration.js +51 -0
- package/dist/utils/migration.js.map +1 -1
- package/dist/utils/oauthBearer.js +1 -1
- package/dist/utils/oauthBearer.js.map +1 -1
- package/frontend/dist/assets/index-1q8Sx-0q.js +251 -0
- package/frontend/dist/assets/index-1q8Sx-0q.js.map +1 -0
- package/frontend/dist/assets/index-DiAK1DFj.css +1 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +3 -3
- package/frontend/dist/assets/index-CHCrTZNY.css +0 -1
- package/frontend/dist/assets/index-Dno2pywv.js +0 -251
- package/frontend/dist/assets/index-Dno2pywv.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,0BAA0B;AAC1B,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,GACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,0BAA0B;AAC1B,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACrB,CAAC"}
|
package/dist/middlewares/auth.js
CHANGED
|
@@ -54,7 +54,7 @@ export const auth = async (req, res, next) => {
|
|
|
54
54
|
const authHeader = req.headers.authorization;
|
|
55
55
|
if (authHeader && authHeader.startsWith('Bearer ') && isOAuthServerEnabled()) {
|
|
56
56
|
const accessToken = authHeader.substring(7);
|
|
57
|
-
const oauthToken = getToken(accessToken);
|
|
57
|
+
const oauthToken = await getToken(accessToken);
|
|
58
58
|
if (oauthToken && oauthToken.accessToken === accessToken) {
|
|
59
59
|
// Valid OAuth token - look up user to get admin status
|
|
60
60
|
const { findUserByUsername } = await import('../models/User.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middlewares/auth.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,MAAM,kBAAkB,GAAG,CAAC,GAAY,EAAE,aAAkB,EAAW,EAAE;IACvE,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAC7C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,aAAa,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,cAAc,CAAC,CAAC;AAE5C,MAAM,aAAa,GAAG,CAAC,GAAY,EAAW,EAAE;IAC9C,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC;AAC9B,CAAC,CAAC;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAiB,EAAE;IAC3F,MAAM,CAAC,GAAI,GAAW,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,+CAA+C;IAC/C,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC,YAAY,EAAE,OAAO,IAAI;QAC5D,iBAAiB,EAAE,IAAI;QACvB,oBAAoB,EAAE,IAAI;QAC1B,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,EAAE;QACjB,QAAQ,EAAE,KAAK;KAChB,CAAC;IAEF,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,EAAE,CAAC;QACP,OAAO;IACT,CAAC;IAED,kDAAkD;IAClD,IAAI,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC;QAC3C,IAAI,EAAE,CAAC;QACP,OAAO;IACT,CAAC;IAED,uDAAuD;IACvD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAC7C,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC7E,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middlewares/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/models/OAuth.js
CHANGED
|
@@ -1,96 +1,74 @@
|
|
|
1
1
|
import crypto from 'crypto';
|
|
2
|
-
import {
|
|
3
|
-
// In-memory storage for authorization codes
|
|
4
|
-
// Authorization codes are short-lived and kept in memory only.
|
|
5
|
-
// Tokens are mirrored to settings (mcp_settings.json) for persistence.
|
|
2
|
+
import { getOAuthClientDao, getOAuthTokenDao } from '../dao/index.js';
|
|
3
|
+
// In-memory storage for authorization codes (short-lived, no persistence needed)
|
|
6
4
|
const authorizationCodes = new Map();
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
// In-memory cache for tokens (also persisted via DAO)
|
|
6
|
+
const tokensCache = new Map();
|
|
7
|
+
// Flag to track if we've initialized from DAO
|
|
8
|
+
let initialized = false;
|
|
9
|
+
/**
|
|
10
|
+
* Initialize token cache from DAO (async)
|
|
11
|
+
*/
|
|
12
|
+
const initializeTokenCache = async () => {
|
|
13
|
+
if (initialized)
|
|
14
|
+
return;
|
|
15
|
+
initialized = true;
|
|
10
16
|
try {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
refreshTokenExpiresAt: stored.refreshTokenExpiresAt
|
|
18
|
-
? new Date(stored.refreshTokenExpiresAt)
|
|
19
|
-
: undefined,
|
|
20
|
-
};
|
|
21
|
-
tokens.set(token.accessToken, token);
|
|
22
|
-
if (token.refreshToken) {
|
|
23
|
-
tokens.set(token.refreshToken, token);
|
|
24
|
-
}
|
|
17
|
+
const tokenDao = getOAuthTokenDao();
|
|
18
|
+
const allTokens = await tokenDao.findAll();
|
|
19
|
+
for (const token of allTokens) {
|
|
20
|
+
tokensCache.set(token.accessToken, token);
|
|
21
|
+
if (token.refreshToken) {
|
|
22
|
+
tokensCache.set(token.refreshToken, token);
|
|
25
23
|
}
|
|
26
24
|
}
|
|
27
25
|
}
|
|
28
26
|
catch (error) {
|
|
29
|
-
console.error('Failed to initialize OAuth tokens from
|
|
27
|
+
console.error('Failed to initialize OAuth tokens from DAO:', error);
|
|
30
28
|
}
|
|
31
|
-
}
|
|
29
|
+
};
|
|
30
|
+
// Initialize on module load (fire and forget for backward compatibility)
|
|
31
|
+
initializeTokenCache().catch(console.error);
|
|
32
32
|
/**
|
|
33
33
|
* Get all OAuth clients from configuration
|
|
34
34
|
*/
|
|
35
|
-
export const getOAuthClients = () => {
|
|
36
|
-
const
|
|
37
|
-
return
|
|
35
|
+
export const getOAuthClients = async () => {
|
|
36
|
+
const clientDao = getOAuthClientDao();
|
|
37
|
+
return clientDao.findAll();
|
|
38
38
|
};
|
|
39
39
|
/**
|
|
40
40
|
* Find OAuth client by client ID
|
|
41
41
|
*/
|
|
42
|
-
export const findOAuthClientById = (clientId) => {
|
|
43
|
-
const
|
|
44
|
-
|
|
42
|
+
export const findOAuthClientById = async (clientId) => {
|
|
43
|
+
const clientDao = getOAuthClientDao();
|
|
44
|
+
const client = await clientDao.findByClientId(clientId);
|
|
45
|
+
return client || undefined;
|
|
45
46
|
};
|
|
46
47
|
/**
|
|
47
48
|
* Create a new OAuth client
|
|
48
49
|
*/
|
|
49
|
-
export const createOAuthClient = (client) => {
|
|
50
|
-
const
|
|
51
|
-
if (!settings.oauthClients) {
|
|
52
|
-
settings.oauthClients = [];
|
|
53
|
-
}
|
|
50
|
+
export const createOAuthClient = async (client) => {
|
|
51
|
+
const clientDao = getOAuthClientDao();
|
|
54
52
|
// Check if client already exists
|
|
55
|
-
const existing =
|
|
53
|
+
const existing = await clientDao.findByClientId(client.clientId);
|
|
56
54
|
if (existing) {
|
|
57
55
|
throw new Error(`OAuth client with ID ${client.clientId} already exists`);
|
|
58
56
|
}
|
|
59
|
-
|
|
60
|
-
saveSettings(settings);
|
|
61
|
-
return client;
|
|
57
|
+
return clientDao.create(client);
|
|
62
58
|
};
|
|
63
59
|
/**
|
|
64
60
|
* Update an existing OAuth client
|
|
65
61
|
*/
|
|
66
|
-
export const updateOAuthClient = (clientId, updates) => {
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
const index = settings.oauthClients.findIndex((c) => c.clientId === clientId);
|
|
72
|
-
if (index === -1) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
settings.oauthClients[index] = { ...settings.oauthClients[index], ...updates };
|
|
76
|
-
saveSettings(settings);
|
|
77
|
-
return settings.oauthClients[index];
|
|
62
|
+
export const updateOAuthClient = async (clientId, updates) => {
|
|
63
|
+
const clientDao = getOAuthClientDao();
|
|
64
|
+
return clientDao.update(clientId, updates);
|
|
78
65
|
};
|
|
79
66
|
/**
|
|
80
67
|
* Delete an OAuth client
|
|
81
68
|
*/
|
|
82
|
-
export const deleteOAuthClient = (clientId) => {
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
const index = settings.oauthClients.findIndex((c) => c.clientId === clientId);
|
|
88
|
-
if (index === -1) {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
settings.oauthClients.splice(index, 1);
|
|
92
|
-
saveSettings(settings);
|
|
93
|
-
return true;
|
|
69
|
+
export const deleteOAuthClient = async (clientId) => {
|
|
70
|
+
const clientDao = getOAuthClientDao();
|
|
71
|
+
return clientDao.delete(clientId);
|
|
94
72
|
};
|
|
95
73
|
/**
|
|
96
74
|
* Generate a secure random token
|
|
@@ -135,7 +113,7 @@ export const revokeAuthorizationCode = (code) => {
|
|
|
135
113
|
/**
|
|
136
114
|
* Save access token and optionally refresh token
|
|
137
115
|
*/
|
|
138
|
-
export const saveToken = (tokenData, accessTokenLifetime = 3600, refreshTokenLifetime) => {
|
|
116
|
+
export const saveToken = async (tokenData, accessTokenLifetime = 3600, refreshTokenLifetime) => {
|
|
139
117
|
const accessToken = generateToken();
|
|
140
118
|
const accessTokenExpiresAt = new Date(Date.now() + accessTokenLifetime * 1000);
|
|
141
119
|
let refreshToken;
|
|
@@ -151,36 +129,42 @@ export const saveToken = (tokenData, accessTokenLifetime = 3600, refreshTokenLif
|
|
|
151
129
|
refreshTokenExpiresAt,
|
|
152
130
|
...tokenData,
|
|
153
131
|
};
|
|
154
|
-
|
|
132
|
+
// Update cache
|
|
133
|
+
tokensCache.set(accessToken, token);
|
|
155
134
|
if (refreshToken) {
|
|
156
|
-
|
|
135
|
+
tokensCache.set(refreshToken, token);
|
|
157
136
|
}
|
|
158
|
-
// Persist
|
|
137
|
+
// Persist to DAO
|
|
159
138
|
try {
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
const filtered = existing.filter((t) => t.accessToken !== token.accessToken && t.refreshToken !== token.refreshToken);
|
|
163
|
-
const updated = [
|
|
164
|
-
...filtered,
|
|
165
|
-
{
|
|
166
|
-
...token,
|
|
167
|
-
accessTokenExpiresAt: token.accessTokenExpiresAt,
|
|
168
|
-
refreshTokenExpiresAt: token.refreshTokenExpiresAt,
|
|
169
|
-
},
|
|
170
|
-
];
|
|
171
|
-
settings.oauthTokens = updated;
|
|
172
|
-
saveSettings(settings);
|
|
139
|
+
const tokenDao = getOAuthTokenDao();
|
|
140
|
+
await tokenDao.create(token);
|
|
173
141
|
}
|
|
174
142
|
catch (error) {
|
|
175
|
-
console.error('Failed to persist OAuth token to
|
|
143
|
+
console.error('Failed to persist OAuth token to DAO:', error);
|
|
176
144
|
}
|
|
177
145
|
return token;
|
|
178
146
|
};
|
|
179
147
|
/**
|
|
180
148
|
* Get token by access token or refresh token
|
|
181
149
|
*/
|
|
182
|
-
export const getToken = (token) => {
|
|
183
|
-
|
|
150
|
+
export const getToken = async (token) => {
|
|
151
|
+
// First check cache
|
|
152
|
+
let tokenData = tokensCache.get(token);
|
|
153
|
+
// If not in cache, try DAO
|
|
154
|
+
if (!tokenData) {
|
|
155
|
+
const tokenDao = getOAuthTokenDao();
|
|
156
|
+
tokenData =
|
|
157
|
+
(await tokenDao.findByAccessToken(token)) ||
|
|
158
|
+
(await tokenDao.findByRefreshToken(token)) ||
|
|
159
|
+
undefined;
|
|
160
|
+
// Update cache if found
|
|
161
|
+
if (tokenData) {
|
|
162
|
+
tokensCache.set(tokenData.accessToken, tokenData);
|
|
163
|
+
if (tokenData.refreshToken) {
|
|
164
|
+
tokensCache.set(tokenData.refreshToken, tokenData);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
184
168
|
if (!tokenData) {
|
|
185
169
|
return undefined;
|
|
186
170
|
}
|
|
@@ -199,30 +183,27 @@ export const getToken = (token) => {
|
|
|
199
183
|
/**
|
|
200
184
|
* Revoke token (both access and refresh tokens)
|
|
201
185
|
*/
|
|
202
|
-
export const revokeToken = (token) => {
|
|
203
|
-
const tokenData =
|
|
186
|
+
export const revokeToken = async (token) => {
|
|
187
|
+
const tokenData = tokensCache.get(token);
|
|
204
188
|
if (tokenData) {
|
|
205
|
-
|
|
189
|
+
tokensCache.delete(tokenData.accessToken);
|
|
206
190
|
if (tokenData.refreshToken) {
|
|
207
|
-
|
|
208
|
-
}
|
|
209
|
-
// Also remove from persisted settings
|
|
210
|
-
try {
|
|
211
|
-
const settings = loadSettings();
|
|
212
|
-
if (Array.isArray(settings.oauthTokens)) {
|
|
213
|
-
settings.oauthTokens = settings.oauthTokens.filter((t) => t.accessToken !== tokenData.accessToken && t.refreshToken !== tokenData.refreshToken);
|
|
214
|
-
saveSettings(settings);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
catch (error) {
|
|
218
|
-
console.error('Failed to remove OAuth token from settings:', error);
|
|
191
|
+
tokensCache.delete(tokenData.refreshToken);
|
|
219
192
|
}
|
|
220
193
|
}
|
|
194
|
+
// Also remove from DAO
|
|
195
|
+
try {
|
|
196
|
+
const tokenDao = getOAuthTokenDao();
|
|
197
|
+
await tokenDao.revokeToken(token);
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
console.error('Failed to remove OAuth token from DAO:', error);
|
|
201
|
+
}
|
|
221
202
|
};
|
|
222
203
|
/**
|
|
223
204
|
* Clean up expired codes and tokens (should be called periodically)
|
|
224
205
|
*/
|
|
225
|
-
export const cleanupExpired = () => {
|
|
206
|
+
export const cleanupExpired = async () => {
|
|
226
207
|
const now = new Date();
|
|
227
208
|
// Clean up expired authorization codes
|
|
228
209
|
for (const [code, authCode] of authorizationCodes.entries()) {
|
|
@@ -230,9 +211,9 @@ export const cleanupExpired = () => {
|
|
|
230
211
|
authorizationCodes.delete(code);
|
|
231
212
|
}
|
|
232
213
|
}
|
|
233
|
-
// Clean up expired tokens
|
|
214
|
+
// Clean up expired tokens from cache
|
|
234
215
|
const processedTokens = new Set();
|
|
235
|
-
for (const [_key, token] of
|
|
216
|
+
for (const [_key, token] of tokensCache.entries()) {
|
|
236
217
|
// Skip if we've already processed this token
|
|
237
218
|
if (processedTokens.has(token.accessToken)) {
|
|
238
219
|
continue;
|
|
@@ -240,33 +221,18 @@ export const cleanupExpired = () => {
|
|
|
240
221
|
processedTokens.add(token.accessToken);
|
|
241
222
|
const accessExpired = token.accessTokenExpiresAt < now;
|
|
242
223
|
const refreshExpired = token.refreshTokenExpiresAt && token.refreshTokenExpiresAt < now;
|
|
243
|
-
// If both are expired, remove
|
|
224
|
+
// If both are expired, remove from cache
|
|
244
225
|
if (accessExpired && (!token.refreshToken || refreshExpired)) {
|
|
245
|
-
|
|
226
|
+
tokensCache.delete(token.accessToken);
|
|
246
227
|
if (token.refreshToken) {
|
|
247
|
-
|
|
228
|
+
tokensCache.delete(token.refreshToken);
|
|
248
229
|
}
|
|
249
230
|
}
|
|
250
231
|
}
|
|
251
|
-
//
|
|
232
|
+
// Clean up expired tokens from DAO
|
|
252
233
|
try {
|
|
253
|
-
const
|
|
254
|
-
|
|
255
|
-
const validTokens = [];
|
|
256
|
-
for (const stored of settings.oauthTokens) {
|
|
257
|
-
const accessExpiresAt = new Date(stored.accessTokenExpiresAt);
|
|
258
|
-
const refreshExpiresAt = stored.refreshTokenExpiresAt
|
|
259
|
-
? new Date(stored.refreshTokenExpiresAt)
|
|
260
|
-
: undefined;
|
|
261
|
-
const accessExpired = accessExpiresAt < now;
|
|
262
|
-
const refreshExpired = refreshExpiresAt && refreshExpiresAt < now;
|
|
263
|
-
if (!accessExpired || (stored.refreshToken && !refreshExpired)) {
|
|
264
|
-
validTokens.push(stored);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
settings.oauthTokens = validTokens;
|
|
268
|
-
saveSettings(settings);
|
|
269
|
-
}
|
|
234
|
+
const tokenDao = getOAuthTokenDao();
|
|
235
|
+
await tokenDao.cleanupExpired();
|
|
270
236
|
}
|
|
271
237
|
catch (error) {
|
|
272
238
|
console.error('Failed to cleanup persisted OAuth tokens:', error);
|
|
@@ -275,7 +241,9 @@ export const cleanupExpired = () => {
|
|
|
275
241
|
// Run cleanup every 5 minutes in production
|
|
276
242
|
let cleanupIntervalId = null;
|
|
277
243
|
if (process.env.NODE_ENV !== 'test') {
|
|
278
|
-
cleanupIntervalId = setInterval(
|
|
244
|
+
cleanupIntervalId = setInterval(() => {
|
|
245
|
+
cleanupExpired().catch(console.error);
|
|
246
|
+
}, 5 * 60 * 1000);
|
|
279
247
|
// Allow the interval to not keep the process alive
|
|
280
248
|
cleanupIntervalId.unref();
|
|
281
249
|
}
|
package/dist/models/OAuth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OAuth.js","sourceRoot":"","sources":["../../src/models/OAuth.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"OAuth.js","sourceRoot":"","sources":["../../src/models/OAuth.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { check } from 'express-validator';
|
|
3
3
|
import config from '../config/index.js';
|
|
4
|
-
import { getAllServers, getAllSettings, getServerConfig, createServer, updateServer, deleteServer, toggleServer, toggleTool, updateToolDescription, togglePrompt, updatePromptDescription, updateSystemConfig, } from '../controllers/serverController.js';
|
|
4
|
+
import { getAllServers, getAllSettings, getServerConfig, createServer, updateServer, deleteServer, toggleServer, reloadServer, toggleTool, updateToolDescription, togglePrompt, updatePromptDescription, updateSystemConfig, } from '../controllers/serverController.js';
|
|
5
5
|
import { getGroups, getGroup, createNewGroup, updateExistingGroup, deleteExistingGroup, addServerToExistingGroup, removeServerFromExistingGroup, getGroupServers, updateGroupServersBatch, getGroupServerConfigs, getGroupServerConfig, updateGroupServerTools, } from '../controllers/groupController.js';
|
|
6
6
|
import { getUsers, getUser, createUser, updateExistingUser, deleteExistingUser, getUserStats, } from '../controllers/userController.js';
|
|
7
7
|
import { getAllMarketServers, getMarketServer, getAllMarketCategories, getAllMarketTags, searchMarketServersByQuery, getMarketServersByCategory, getMarketServersByTag, } from '../controllers/marketController.js';
|
|
@@ -46,6 +46,7 @@ export const initRoutes = (app) => {
|
|
|
46
46
|
router.put('/servers/:name', updateServer);
|
|
47
47
|
router.delete('/servers/:name', deleteServer);
|
|
48
48
|
router.post('/servers/:name/toggle', toggleServer);
|
|
49
|
+
router.post('/servers/:name/reload', reloadServer);
|
|
49
50
|
router.post('/servers/:serverName/tools/:toolName/toggle', toggleTool);
|
|
50
51
|
router.put('/servers/:serverName/tools/:toolName/description', updateToolDescription);
|
|
51
52
|
router.post('/servers/:serverName/prompts/:promptName/toggle', togglePrompt);
|
package/dist/routes/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -223,11 +223,7 @@ const callToolWithReconnect = async (serverInfo, toolParams, options, maxRetries
|
|
|
223
223
|
name: `mcp-client-${serverInfo.name}`,
|
|
224
224
|
version: '1.0.0',
|
|
225
225
|
}, {
|
|
226
|
-
capabilities: {
|
|
227
|
-
prompts: {},
|
|
228
|
-
resources: {},
|
|
229
|
-
tools: {},
|
|
230
|
-
},
|
|
226
|
+
capabilities: {},
|
|
231
227
|
});
|
|
232
228
|
// Reconnect with new transport
|
|
233
229
|
await client.connect(newTransport, serverInfo.options || {});
|
|
@@ -375,11 +371,7 @@ export const initializeClientsFromSettings = async (isInit, serverName) => {
|
|
|
375
371
|
name: `mcp-client-${name}`,
|
|
376
372
|
version: '1.0.0',
|
|
377
373
|
}, {
|
|
378
|
-
capabilities: {
|
|
379
|
-
prompts: {},
|
|
380
|
-
resources: {},
|
|
381
|
-
tools: {},
|
|
382
|
-
},
|
|
374
|
+
capabilities: {},
|
|
383
375
|
});
|
|
384
376
|
const initRequestOptions = isInit
|
|
385
377
|
? {
|
|
@@ -804,19 +796,12 @@ Available servers: ${serversList}`,
|
|
|
804
796
|
for (const serverInfo of filteredServerInfos) {
|
|
805
797
|
if (serverInfo.tools && serverInfo.tools.length > 0) {
|
|
806
798
|
// Filter tools based on server configuration
|
|
807
|
-
let
|
|
799
|
+
let tools = await filterToolsByConfig(serverInfo.name, serverInfo.tools);
|
|
808
800
|
// If this is a group request, apply group-level tool filtering
|
|
809
|
-
|
|
810
|
-
const serverConfig = await getServerConfigInGroup(group, serverInfo.name);
|
|
811
|
-
if (serverConfig && serverConfig.tools !== 'all' && Array.isArray(serverConfig.tools)) {
|
|
812
|
-
// Filter tools based on group configuration
|
|
813
|
-
const allowedToolNames = serverConfig.tools.map((toolName) => `${serverInfo.name}${getNameSeparator()}${toolName}`);
|
|
814
|
-
enabledTools = enabledTools.filter((tool) => allowedToolNames.includes(tool.name));
|
|
815
|
-
}
|
|
816
|
-
}
|
|
801
|
+
tools = await filterToolsByGroup(group, serverInfo.name, tools);
|
|
817
802
|
// Apply custom descriptions from server configuration
|
|
818
803
|
const serverConfig = await getServerDao().findById(serverInfo.name);
|
|
819
|
-
const toolsWithCustomDescriptions =
|
|
804
|
+
const toolsWithCustomDescriptions = tools.map((tool) => {
|
|
820
805
|
const toolConfig = serverConfig?.tools?.[tool.name];
|
|
821
806
|
return {
|
|
822
807
|
...tool,
|
|
@@ -853,11 +838,14 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
853
838
|
console.log(`Using similarity threshold: ${thresholdNum} for query: "${query}"`);
|
|
854
839
|
// Determine server filtering based on group
|
|
855
840
|
const sessionId = extra.sessionId || '';
|
|
856
|
-
|
|
841
|
+
let group = getGroup(sessionId);
|
|
857
842
|
let servers = undefined; // No server filtering by default
|
|
858
843
|
// If group is in format $smart/{group}, filter servers to that group
|
|
859
844
|
if (group?.startsWith('$smart/')) {
|
|
860
845
|
const targetGroup = group.substring(7);
|
|
846
|
+
if (targetGroup) {
|
|
847
|
+
group = targetGroup;
|
|
848
|
+
}
|
|
861
849
|
const serversInGroup = await getServersInGroup(targetGroup);
|
|
862
850
|
if (serversInGroup !== undefined && serversInGroup !== null) {
|
|
863
851
|
servers = serversInGroup;
|
|
@@ -883,8 +871,8 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
883
871
|
const actualTool = server.tools.find((tool) => tool.name === result.toolName);
|
|
884
872
|
if (actualTool) {
|
|
885
873
|
// Check if the tool is enabled in configuration
|
|
886
|
-
const
|
|
887
|
-
if (
|
|
874
|
+
const tools = await filterToolsByConfig(server.name, [actualTool]);
|
|
875
|
+
if (tools.length > 0) {
|
|
888
876
|
// Apply custom description from configuration
|
|
889
877
|
const serverConfig = await getServerDao().findById(server.name);
|
|
890
878
|
const toolConfig = serverConfig?.tools?.[actualTool.name];
|
|
@@ -906,17 +894,21 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
906
894
|
};
|
|
907
895
|
}));
|
|
908
896
|
// Now filter the resolved tools
|
|
909
|
-
const
|
|
910
|
-
// Additional filter to remove tools that are disabled
|
|
897
|
+
const filterResults = await Promise.all(resolvedTools.map(async (tool) => {
|
|
911
898
|
if (tool.name) {
|
|
912
899
|
const serverName = tool.serverName;
|
|
913
900
|
if (serverName) {
|
|
914
|
-
|
|
915
|
-
|
|
901
|
+
let tools = await filterToolsByConfig(serverName, [tool]);
|
|
902
|
+
if (tools.length === 0) {
|
|
903
|
+
return false;
|
|
904
|
+
}
|
|
905
|
+
tools = await filterToolsByGroup(group, serverName, tools);
|
|
906
|
+
return tools.length > 0;
|
|
916
907
|
}
|
|
917
908
|
}
|
|
918
|
-
return true;
|
|
909
|
+
return true;
|
|
919
910
|
}));
|
|
911
|
+
const tools = resolvedTools.filter((_, i) => filterResults[i]);
|
|
920
912
|
// Add usage guidance to the response
|
|
921
913
|
const response = {
|
|
922
914
|
tools,
|
|
@@ -1235,4 +1227,16 @@ export const createMcpServer = (name, version, group) => {
|
|
|
1235
1227
|
server.setRequestHandler(ListPromptsRequestSchema, handleListPromptsRequest);
|
|
1236
1228
|
return server;
|
|
1237
1229
|
};
|
|
1230
|
+
// Filter tools based on group configuration
|
|
1231
|
+
async function filterToolsByGroup(group, serverName, tools) {
|
|
1232
|
+
if (group) {
|
|
1233
|
+
const serverConfig = await getServerConfigInGroup(group, serverName);
|
|
1234
|
+
if (serverConfig && serverConfig.tools !== 'all' && Array.isArray(serverConfig.tools)) {
|
|
1235
|
+
// Filter tools based on group configuration
|
|
1236
|
+
const allowedToolNames = serverConfig.tools.map((toolName) => `${serverName}${getNameSeparator()}${toolName}`);
|
|
1237
|
+
tools = tools.filter((tool) => allowedToolNames.includes(tool.name));
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
return tools;
|
|
1241
|
+
}
|
|
1238
1242
|
//# sourceMappingURL=mcpService.js.map
|