mcpbox 0.1.0 → 0.2.0
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/README.md +9 -13
- package/dist/assets.d.ts +1 -1
- package/dist/assets.js +1 -1
- package/dist/auth/crypto.d.ts +1 -0
- package/dist/auth/crypto.js +1 -0
- package/dist/auth/oauth-utils.d.ts +6 -1
- package/dist/auth/oauth-utils.js +8 -3
- package/dist/auth/oauth.d.ts +5 -4
- package/dist/auth/oauth.js +319 -177
- package/dist/auth/providers/github.d.ts +18 -0
- package/dist/auth/providers/github.js +104 -0
- package/dist/auth/providers/identity-provider.d.ts +32 -0
- package/dist/auth/providers/identity-provider.js +1 -0
- package/dist/auth/providers/local.d.ts +14 -0
- package/dist/auth/providers/local.js +16 -0
- package/dist/config/loader.d.ts +3 -2
- package/dist/config/loader.js +28 -3
- package/dist/config/schema.d.ts +118 -35
- package/dist/config/schema.js +67 -19
- package/dist/config/types.d.ts +1 -1
- package/dist/index.js +6 -2
- package/dist/logger.d.ts +4 -0
- package/dist/logger.js +5 -1
- package/dist/mcp/manager.js +3 -4
- package/dist/mcp/namespace.d.ts +4 -0
- package/dist/mcp/namespace.js +4 -0
- package/dist/server.js +38 -15
- package/dist/storage/memory.d.ts +0 -1
- package/dist/storage/memory.js +4 -28
- package/dist/storage/sqlite.d.ts +0 -1
- package/dist/storage/sqlite.js +7 -9
- package/dist/storage/types.d.ts +15 -16
- package/package.json +8 -5
package/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.svg">
|
|
4
|
+
<img src="assets/logo.svg" width="128" alt="MCPBox">
|
|
5
|
+
</picture>
|
|
3
6
|
</p>
|
|
4
7
|
|
|
5
8
|
**MCPBox** is a lightweight gateway that exposes local stdio-based MCP (Model Context Protocol) servers via Streamable HTTP, enabling Claude and other AI agents to connect from anywhere.
|
|
@@ -59,16 +62,9 @@ For remote access with authentication, see [Deployment](#deployment) and [Connec
|
|
|
59
62
|
|
|
60
63
|
## Configuration
|
|
61
64
|
|
|
62
|
-
See [`mcpbox.example.jsonc`](mcpbox.example.jsonc) for all options.
|
|
65
|
+
See [`mcpbox.example.jsonc`](mcpbox.example.jsonc) for all options. All string values support `${VAR_NAME}` environment variable substitution.
|
|
63
66
|
|
|
64
|
-
**Authentication** —
|
|
65
|
-
- **None** — default
|
|
66
|
-
- **API Key** — `auth.type: "apikey"` with `auth.apiKey`
|
|
67
|
-
- **OAuth** — `auth.type: "oauth"` with users, clients, and optional dynamic registration
|
|
68
|
-
|
|
69
|
-
**Storage** (for OAuth):
|
|
70
|
-
- **Memory** — default, tokens lost on restart
|
|
71
|
-
- **SQLite** — `storage.type: "sqlite"` for persistence
|
|
67
|
+
**[Authentication](docs/authentication.md)** — none (default), API key, or OAuth.
|
|
72
68
|
|
|
73
69
|
## Deployment
|
|
74
70
|
|
|
@@ -98,7 +94,7 @@ Then update your config with the generated public URL:
|
|
|
98
94
|
"type": "oauth",
|
|
99
95
|
"issuer": "https://<tunnel-id>.trycloudflare.com",
|
|
100
96
|
"users": [{ "username": "admin", "password": "${MCPBOX_PASSWORD}" }],
|
|
101
|
-
"
|
|
97
|
+
"dynamicRegistration": true
|
|
102
98
|
},
|
|
103
99
|
"storage": {
|
|
104
100
|
"type": "sqlite",
|
|
@@ -120,7 +116,7 @@ docker run -v ./mcpbox.json:/config/config.json -v ./data:/data -p 8080:8080 ghc
|
|
|
120
116
|
|
|
121
117
|
Settings → Connectors → Add Custom Connector → enter your URL → Connect
|
|
122
118
|
|
|
123
|
-
Requires `
|
|
119
|
+
Requires `dynamicRegistration: true` in your config.
|
|
124
120
|
|
|
125
121
|
### Claude Code
|
|
126
122
|
|
|
@@ -128,7 +124,7 @@ Requires `dynamic_registration: true` in your config.
|
|
|
128
124
|
claude mcp add --transport http mcpbox https://your-mcpbox-url.com
|
|
129
125
|
```
|
|
130
126
|
|
|
131
|
-
Requires `
|
|
127
|
+
Requires `dynamicRegistration: true` in your config.
|
|
132
128
|
|
|
133
129
|
### MCP clients with JSON config
|
|
134
130
|
|
package/dist/assets.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LOGO_PNG_BASE64 = "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";
|
|
1
|
+
export declare const LOGO_PNG_BASE64 = "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";
|
package/dist/assets.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LOGO_PNG_BASE64 = "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";
|
|
1
|
+
export const LOGO_PNG_BASE64 = "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";
|
package/dist/auth/crypto.d.ts
CHANGED
package/dist/auth/crypto.js
CHANGED
|
@@ -2,29 +2,34 @@ import type { StoredClient } from "../storage/types.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Hash a secret using SHA-256.
|
|
4
4
|
* Used for storing tokens and client secrets.
|
|
5
|
+
* @package
|
|
5
6
|
*/
|
|
6
7
|
export declare function hashSecret(secret: string): string;
|
|
7
8
|
/**
|
|
8
9
|
* Verify a client secret against a stored hash using timing-safe comparison.
|
|
10
|
+
* @package
|
|
9
11
|
*/
|
|
10
12
|
export declare function verifyClientSecret(input: string, storedHash: string): boolean;
|
|
11
13
|
/**
|
|
12
14
|
* Check if a password string is a bcrypt hash.
|
|
13
|
-
*
|
|
15
|
+
* @package
|
|
14
16
|
*/
|
|
15
17
|
export declare function isBcryptHash(password: string): boolean;
|
|
16
18
|
/**
|
|
17
19
|
* Verify a password against a stored value.
|
|
18
20
|
* Supports both plain text (timing-safe) and bcrypt hashed passwords.
|
|
21
|
+
* @package
|
|
19
22
|
*/
|
|
20
23
|
export declare function verifyPassword(input: string, stored: string): boolean;
|
|
21
24
|
/**
|
|
22
25
|
* Check if a redirect URI is allowed for a client.
|
|
23
26
|
* Uses exact string matching as required by OAuth 2.0 spec.
|
|
27
|
+
* @package
|
|
24
28
|
*/
|
|
25
29
|
export declare function isRedirectUriAllowed(redirectUri: string, client: StoredClient): boolean;
|
|
26
30
|
/**
|
|
27
31
|
* Parse a Bearer token from an Authorization header.
|
|
28
32
|
* Returns null if the header is missing or malformed.
|
|
33
|
+
* @package
|
|
29
34
|
*/
|
|
30
35
|
export declare function parseBearerToken(authHeader: string | undefined): string | null;
|
package/dist/auth/oauth-utils.js
CHANGED
|
@@ -4,26 +4,29 @@ import { safeCompare } from "./crypto.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Hash a secret using SHA-256.
|
|
6
6
|
* Used for storing tokens and client secrets.
|
|
7
|
+
* @package
|
|
7
8
|
*/
|
|
8
9
|
export function hashSecret(secret) {
|
|
9
10
|
return createHash("sha256").update(secret).digest("hex");
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
13
|
* Verify a client secret against a stored hash using timing-safe comparison.
|
|
14
|
+
* @package
|
|
13
15
|
*/
|
|
14
16
|
export function verifyClientSecret(input, storedHash) {
|
|
15
17
|
return safeCompare(hashSecret(input), storedHash);
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Check if a password string is a bcrypt hash.
|
|
19
|
-
*
|
|
21
|
+
* @package
|
|
20
22
|
*/
|
|
21
23
|
export function isBcryptHash(password) {
|
|
22
|
-
return /^\$2[
|
|
24
|
+
return /^\$2[aby]\$\d{2}\$/.test(password);
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Verify a password against a stored value.
|
|
26
28
|
* Supports both plain text (timing-safe) and bcrypt hashed passwords.
|
|
29
|
+
* @package
|
|
27
30
|
*/
|
|
28
31
|
export function verifyPassword(input, stored) {
|
|
29
32
|
if (isBcryptHash(stored)) {
|
|
@@ -34,13 +37,15 @@ export function verifyPassword(input, stored) {
|
|
|
34
37
|
/**
|
|
35
38
|
* Check if a redirect URI is allowed for a client.
|
|
36
39
|
* Uses exact string matching as required by OAuth 2.0 spec.
|
|
40
|
+
* @package
|
|
37
41
|
*/
|
|
38
42
|
export function isRedirectUriAllowed(redirectUri, client) {
|
|
39
|
-
return client.
|
|
43
|
+
return client.redirectUris?.includes(redirectUri) ?? false;
|
|
40
44
|
}
|
|
41
45
|
/**
|
|
42
46
|
* Parse a Bearer token from an Authorization header.
|
|
43
47
|
* Returns null if the header is missing or malformed.
|
|
48
|
+
* @package
|
|
44
49
|
*/
|
|
45
50
|
export function parseBearerToken(authHeader) {
|
|
46
51
|
if (!authHeader) {
|
package/dist/auth/oauth.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import type { Context } from "hono";
|
|
2
2
|
import type { OAuthClient } from "../config/types.js";
|
|
3
3
|
import type { StateStore } from "../storage/types.js";
|
|
4
|
+
import type { IdentityProvider } from "./providers/identity-provider.js";
|
|
4
5
|
export interface OAuthConfig {
|
|
5
6
|
issuer: string;
|
|
6
|
-
|
|
7
|
-
username: string;
|
|
8
|
-
password: string;
|
|
9
|
-
}>;
|
|
7
|
+
providers: IdentityProvider[];
|
|
10
8
|
clients?: OAuthClient[];
|
|
11
9
|
dynamicRegistration?: boolean;
|
|
12
10
|
}
|
|
@@ -22,6 +20,9 @@ export declare class OAuthServer {
|
|
|
22
20
|
handleRegister(c: Context, body: string): Promise<Response>;
|
|
23
21
|
private getClient;
|
|
24
22
|
handleAuthorize(c: Context, query: URLSearchParams, body?: string): Promise<Response>;
|
|
23
|
+
private issueAuthorizationCode;
|
|
24
|
+
private redirectToProvider;
|
|
25
|
+
handleIdPCallback(c: Context, providerId: string, query: URLSearchParams): Promise<Response>;
|
|
25
26
|
private showLoginForm;
|
|
26
27
|
handleToken(c: Context, body: string): Promise<Response>;
|
|
27
28
|
private handleClientCredentialsGrant;
|