@nimbletools/mcp-http-bridge 1.0.2 → 1.0.4
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 +72 -20
- package/dist/bridge.d.ts +2 -0
- package/dist/bridge.d.ts.map +1 -1
- package/dist/bridge.js +67 -2
- package/dist/bridge.js.map +1 -1
- package/package.json +7 -8
package/README.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
# MCP HTTP Bridge
|
|
1
|
+
# NimbleTools - MCP HTTP Bridge
|
|
2
2
|
|
|
3
3
|
Bridge the Model Context Protocol (MCP) stdio interface to HTTP-based MCP services. This allows MCP clients like Claude Code to seamlessly connect to remote MCP servers running over HTTP.
|
|
4
4
|
|
|
5
|
+
For more information about MCP and related tools, visit [www.nimbletools.ai](http://www.nimbletools.ai).
|
|
6
|
+
|
|
5
7
|
## Requirements
|
|
6
8
|
|
|
7
|
-
- Node.js
|
|
9
|
+
- Node.js 20.0.0 or higher
|
|
8
10
|
- npm 9.0.0 or higher
|
|
9
11
|
|
|
10
12
|
## Installation
|
|
@@ -42,8 +44,10 @@ Add to your Claude Code configuration:
|
|
|
42
44
|
"command": "npx",
|
|
43
45
|
"args": [
|
|
44
46
|
"@nimbletools/mcp-http-bridge",
|
|
45
|
-
"--endpoint",
|
|
46
|
-
"
|
|
47
|
+
"--endpoint",
|
|
48
|
+
"https://api.example.com/mcp",
|
|
49
|
+
"--token",
|
|
50
|
+
"your-bearer-token"
|
|
47
51
|
]
|
|
48
52
|
}
|
|
49
53
|
}
|
|
@@ -59,9 +63,7 @@ For better security, use environment variables:
|
|
|
59
63
|
"mcpServers": {
|
|
60
64
|
"my-remote-server": {
|
|
61
65
|
"command": "mcp-http-bridge",
|
|
62
|
-
"args": [
|
|
63
|
-
"--endpoint", "https://api.example.com/mcp"
|
|
64
|
-
],
|
|
66
|
+
"args": ["--endpoint", "https://api.example.com/mcp"],
|
|
65
67
|
"env": {
|
|
66
68
|
"MCP_BEARER_TOKEN": "your-bearer-token"
|
|
67
69
|
}
|
|
@@ -72,13 +74,13 @@ For better security, use environment variables:
|
|
|
72
74
|
|
|
73
75
|
## Options
|
|
74
76
|
|
|
75
|
-
| Option
|
|
76
|
-
|
|
77
|
-
| `--endpoint` | `-e`
|
|
78
|
-
| `--token`
|
|
79
|
-
| `--timeout`
|
|
80
|
-
| `--retries`
|
|
81
|
-
| `--verbose`
|
|
77
|
+
| Option | Alias | Default | Description |
|
|
78
|
+
| ------------ | ----- | ---------- | --------------------------------- |
|
|
79
|
+
| `--endpoint` | `-e` | _required_ | HTTP endpoint for the MCP service |
|
|
80
|
+
| `--token` | `-t` | _required_ | Bearer token for authentication |
|
|
81
|
+
| `--timeout` | | `30000` | Request timeout in milliseconds |
|
|
82
|
+
| `--retries` | | `3` | Number of retry attempts |
|
|
83
|
+
| `--verbose` | `-v` | `false` | Enable verbose logging |
|
|
82
84
|
|
|
83
85
|
## How It Works
|
|
84
86
|
|
|
@@ -118,6 +120,7 @@ Content-Type: application/json
|
|
|
118
120
|
## Examples
|
|
119
121
|
|
|
120
122
|
### Basic Usage
|
|
123
|
+
|
|
121
124
|
```bash
|
|
122
125
|
mcp-http-bridge \
|
|
123
126
|
--endpoint "https://mcp.example.com/api" \
|
|
@@ -125,6 +128,7 @@ mcp-http-bridge \
|
|
|
125
128
|
```
|
|
126
129
|
|
|
127
130
|
### With Custom Timeout
|
|
131
|
+
|
|
128
132
|
```bash
|
|
129
133
|
mcp-http-bridge \
|
|
130
134
|
--endpoint "https://slow-service.com/mcp" \
|
|
@@ -134,6 +138,7 @@ mcp-http-bridge \
|
|
|
134
138
|
```
|
|
135
139
|
|
|
136
140
|
### Testing Connectivity
|
|
141
|
+
|
|
137
142
|
```bash
|
|
138
143
|
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | \
|
|
139
144
|
mcp-http-bridge --endpoint "https://api.com/mcp" --token "token"
|
|
@@ -156,13 +161,59 @@ npm run build
|
|
|
156
161
|
npm run dev -- --endpoint "https://..." --token "..."
|
|
157
162
|
```
|
|
158
163
|
|
|
164
|
+
### Local Development with Claude Code
|
|
165
|
+
|
|
166
|
+
For testing during development, you can configure Claude Code to use either your local build or the published package:
|
|
167
|
+
|
|
168
|
+
**Using local build:**
|
|
169
|
+
|
|
170
|
+
```json
|
|
171
|
+
{
|
|
172
|
+
"mcpServers": {
|
|
173
|
+
"national-parks": {
|
|
174
|
+
"command": "node",
|
|
175
|
+
"args": [
|
|
176
|
+
"/path/to/your/mcp-http-bridge/dist/cli.js",
|
|
177
|
+
"--endpoint",
|
|
178
|
+
"https://mcp.nimbletools.dev/v1/workspaces/your-workspace-id/servers/nationalparks-mcp/mcp",
|
|
179
|
+
"--token",
|
|
180
|
+
"your-auth-token-here",
|
|
181
|
+
"--insecure"
|
|
182
|
+
],
|
|
183
|
+
"auth": null,
|
|
184
|
+
"oauth": false
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Using published package with npx:**
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"mcpServers": {
|
|
195
|
+
"national-parks": {
|
|
196
|
+
"command": "npx",
|
|
197
|
+
"args": [
|
|
198
|
+
"@nimbletools/mcp-http-bridge",
|
|
199
|
+
"--endpoint",
|
|
200
|
+
"https://mcp.nimbletools.dev/v1/workspaces/your-workspace-id/servers/nationalparks-mcp/mcp",
|
|
201
|
+
"--token",
|
|
202
|
+
"your-auth-token-here",
|
|
203
|
+
"--insecure"
|
|
204
|
+
],
|
|
205
|
+
"auth": null,
|
|
206
|
+
"oauth": false
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Replace the workspace ID and token with your actual credentials. The `--insecure` flag is useful for development against local or test endpoints.
|
|
213
|
+
|
|
159
214
|
## Contributing
|
|
160
215
|
|
|
161
|
-
|
|
162
|
-
2. Create a feature branch
|
|
163
|
-
3. Make your changes
|
|
164
|
-
4. Add tests if applicable
|
|
165
|
-
5. Submit a pull request
|
|
216
|
+
We welcome contributions! If you're interested in contributing, please read our [Contributing Guide](CONTRIBUTING.md) for details on our development process, how to propose bugfixes and improvements, and how to build and test your changes.
|
|
166
217
|
|
|
167
218
|
## License
|
|
168
219
|
|
|
@@ -172,4 +223,5 @@ MIT License - see [LICENSE](LICENSE) file for details.
|
|
|
172
223
|
|
|
173
224
|
- 🐛 [Report Issues](https://github.com/nimbletools/mcp-http-bridge/issues)
|
|
174
225
|
- 📖 [Documentation](https://github.com/nimbletools/mcp-http-bridge)
|
|
175
|
-
- 💬 [Discussions](https://github.com/nimbletools/mcp-http-bridge/discussions)
|
|
226
|
+
- 💬 [Discussions](https://github.com/nimbletools/mcp-http-bridge/discussions)
|
|
227
|
+
- 💬 [Join our Slack Community](https://join.slack.com/t/nimblebrain-users/shared_invite/zt-2jpyzxgvl-7_kFJQHyJSmJzWXmYK8cMg)
|
package/dist/bridge.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ interface BridgeConfig {
|
|
|
9
9
|
export declare class MCPHttpBridge {
|
|
10
10
|
private config;
|
|
11
11
|
private axiosInstance;
|
|
12
|
+
private sessionId;
|
|
12
13
|
constructor(config: BridgeConfig);
|
|
13
14
|
start(): Promise<void>;
|
|
14
15
|
private handleMCPRequest;
|
|
@@ -16,6 +17,7 @@ export declare class MCPHttpBridge {
|
|
|
16
17
|
private makeHttpRequest;
|
|
17
18
|
private createErrorResponse;
|
|
18
19
|
private sendResponse;
|
|
20
|
+
private parseSSEResponse;
|
|
19
21
|
private sleep;
|
|
20
22
|
private shutdown;
|
|
21
23
|
}
|
package/dist/bridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":";AAuBA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":";AAuBA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,SAAS,CAAuB;gBAE5B,MAAM,EAAE,YAAY;IAsB1B,KAAK;YAkCG,gBAAgB;YA+BhB,iBAAiB;YAqDjB,eAAe;IAqE7B,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,QAAQ;CAIjB"}
|
package/dist/bridge.js
CHANGED
|
@@ -3,12 +3,14 @@ import axios from 'axios';
|
|
|
3
3
|
import https from 'https';
|
|
4
4
|
export class MCPHttpBridge {
|
|
5
5
|
constructor(config) {
|
|
6
|
+
this.sessionId = null;
|
|
6
7
|
this.config = config;
|
|
7
8
|
const axiosConfig = {
|
|
8
9
|
timeout: config.timeout,
|
|
9
10
|
headers: {
|
|
10
11
|
'Authorization': `Bearer ${config.bearerToken}`,
|
|
11
12
|
'Content-Type': 'application/json',
|
|
13
|
+
'Accept': 'application/json, text/event-stream',
|
|
12
14
|
},
|
|
13
15
|
};
|
|
14
16
|
// Add HTTPS agent for SSL configuration
|
|
@@ -123,8 +125,46 @@ export class MCPHttpBridge {
|
|
|
123
125
|
let lastError;
|
|
124
126
|
for (let attempt = 1; attempt <= retries; attempt++) {
|
|
125
127
|
try {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
// Add session ID header if we have one
|
|
129
|
+
const requestConfig = {
|
|
130
|
+
responseType: 'text',
|
|
131
|
+
transformResponse: [(data) => data] // Don't auto-parse JSON
|
|
132
|
+
};
|
|
133
|
+
if (this.sessionId) {
|
|
134
|
+
requestConfig.headers = {
|
|
135
|
+
'mcp-session-id': this.sessionId
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
const response = await this.axiosInstance.post(this.config.endpoint, request, requestConfig);
|
|
139
|
+
// Capture session ID from response headers if present
|
|
140
|
+
const sessionId = response.headers['mcp-session-id'];
|
|
141
|
+
if (sessionId && !this.sessionId) {
|
|
142
|
+
this.sessionId = sessionId;
|
|
143
|
+
if (process.env.MCP_BRIDGE_VERBOSE === 'true') {
|
|
144
|
+
console.error(`[Bridge] Captured session ID: ${sessionId}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Handle SSE responses
|
|
148
|
+
const contentType = response.headers['content-type'];
|
|
149
|
+
if (contentType && contentType.includes('text/event-stream')) {
|
|
150
|
+
const sseData = this.parseSSEResponse(response.data);
|
|
151
|
+
return {
|
|
152
|
+
...response,
|
|
153
|
+
data: sseData
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
// Handle regular JSON responses
|
|
157
|
+
try {
|
|
158
|
+
const jsonData = JSON.parse(response.data);
|
|
159
|
+
return {
|
|
160
|
+
...response,
|
|
161
|
+
data: jsonData
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// If it's not valid JSON, return as-is
|
|
166
|
+
return response;
|
|
167
|
+
}
|
|
128
168
|
}
|
|
129
169
|
catch (error) {
|
|
130
170
|
lastError = error;
|
|
@@ -189,6 +229,31 @@ export class MCPHttpBridge {
|
|
|
189
229
|
}
|
|
190
230
|
}
|
|
191
231
|
}
|
|
232
|
+
parseSSEResponse(sseText) {
|
|
233
|
+
const lines = sseText.split('\n');
|
|
234
|
+
let jsonData = '';
|
|
235
|
+
for (const line of lines) {
|
|
236
|
+
if (line.startsWith('data: ')) {
|
|
237
|
+
const data = line.slice(6); // Remove 'data: ' prefix
|
|
238
|
+
if (data.trim() === '[DONE]') {
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
jsonData += data;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (jsonData) {
|
|
245
|
+
try {
|
|
246
|
+
return JSON.parse(jsonData);
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
if (process.env.MCP_BRIDGE_VERBOSE === 'true') {
|
|
250
|
+
console.error(`[Bridge] Failed to parse SSE JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
251
|
+
}
|
|
252
|
+
return { error: 'Failed to parse SSE response' };
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
192
257
|
sleep(ms) {
|
|
193
258
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
194
259
|
}
|
package/dist/bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":";AAEA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AA4B1B,MAAM,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nimbletools/mcp-http-bridge",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Bridge MCP stdio protocol to HTTP-based MCP services",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
12
12
|
"dev": "ts-node src/cli.ts",
|
|
13
|
-
"test": "
|
|
13
|
+
"test": "vitest",
|
|
14
14
|
"prepublishOnly": "npm run build"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
"json-rpc"
|
|
24
24
|
],
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"axios": "^1.
|
|
27
|
-
"yargs": "^
|
|
26
|
+
"axios": "^1.11.0",
|
|
27
|
+
"yargs": "^18.0.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@types/node": "^
|
|
30
|
+
"@types/node": "^20.19.9",
|
|
31
31
|
"@types/yargs": "^17.0.33",
|
|
32
|
-
"typescript": "^5.7.2",
|
|
33
32
|
"ts-node": "^10.9.2",
|
|
34
|
-
"
|
|
35
|
-
"
|
|
33
|
+
"typescript": "^5.7.2",
|
|
34
|
+
"vitest": "^3.2.4"
|
|
36
35
|
},
|
|
37
36
|
"files": [
|
|
38
37
|
"dist/**/*",
|