mcp-http-webhook 1.0.25 → 1.0.26

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/BLOG_POST.md ADDED
@@ -0,0 +1,738 @@
1
+ # Building Production-Ready MCP Servers That Actually Scale: Our HTTP + Webhook Approach
2
+
3
+ *How we reimagined the Model Context Protocol for enterprise deployments*
4
+
5
+ ---
6
+
7
+ ## The Problem with Standard MCP
8
+
9
+ The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) is transforming how AI agents interact with external systems. It provides a standardized way for LLMs to access tools, read resources, and receive real-time updates. But there's a catch.
10
+
11
+ The standard MCP transport relies on **Server-Sent Events (SSE)** or **stdio** for communication. While these work great for desktop applications like Claude Desktop or single-user development tools, they create significant challenges at scale:
12
+
13
+ 1. **Persistent connections don't scale** - Each client maintains a long-lived SSE connection, consuming server resources
14
+ 2. **No horizontal scaling** - Connection state is tied to a specific server instance
15
+ 3. **Load balancer headaches** - Sticky sessions become mandatory, defeating the purpose of load balancing
16
+ 4. **Third-party integration gap** - Services like GitHub, Slack, and MongoDB use webhooks, not SSE
17
+
18
+ We needed something different. We needed MCP servers that could:
19
+ - Scale horizontally with zero connection state
20
+ - Integrate natively with third-party webhook providers
21
+ - Deploy to Kubernetes with trivial multi-replica configurations
22
+ - Maintain full MCP protocol compatibility
23
+
24
+ So we built **`mcp-http-webhook`** - and published it to npm.
25
+
26
+ ---
27
+
28
+ ## Our Approach: HTTP + Webhooks
29
+
30
+ The core insight is simple: **replace persistent connections with stateless HTTP requests and webhook callbacks**.
31
+
32
+ ```
33
+ Standard MCP:
34
+ Client ←──SSE Connection──→ Server (persistent, stateful)
35
+
36
+ Our Approach:
37
+ Client ──HTTP POST──→ Server ──Response──→ Client (stateless)
38
+ Third-Party ──Webhook──→ Server ──Webhook──→ Client (event-driven)
39
+ ```
40
+
41
+ ### How It Works
42
+
43
+ **For Tools and Resources:**
44
+ Clients make standard HTTP POST requests to call tools or read resources. No connection to maintain.
45
+
46
+ ```bash
47
+ # Call a tool
48
+ curl -X POST https://mcp.example.com/mcp \
49
+ -H "Content-Type: application/json" \
50
+ -d '{
51
+ "jsonrpc": "2.0",
52
+ "method": "tools/call",
53
+ "params": {
54
+ "name": "find_documents",
55
+ "arguments": { "collection": "users", "filter": {} }
56
+ }
57
+ }'
58
+ ```
59
+
60
+ **For Subscriptions (The Magic Part):**
61
+ Instead of the server pushing updates through SSE, clients provide a webhook URL when subscribing. Updates flow through webhooks.
62
+
63
+ ```
64
+ 1. Client subscribes, providing their webhook URL
65
+ 2. Server registers with third-party service (e.g., GitHub, MongoDB)
66
+ 3. Third-party sends events to our server's webhook endpoint
67
+ 4. Our server processes and forwards to client's webhook URL
68
+ ```
69
+
70
+ This architecture means:
71
+ - **Zero connection state** - Any server instance can handle any request
72
+ - **Native third-party integration** - GitHub webhooks, MongoDB change streams, Slack events all fit naturally
73
+ - **Trivial scaling** - Add more pods, point load balancer, done
74
+
75
+ ---
76
+
77
+ ## The Library: `mcp-http-webhook`
78
+
79
+ We packaged this approach into a production-ready TypeScript library. Here's what makes it special:
80
+
81
+ ### Built on the Official MCP SDK
82
+
83
+ We don't reinvent the protocol. We use `@modelcontextprotocol/sdk` under the hood, ensuring full compatibility with MCP clients and tools like MCP Inspector.
84
+
85
+ ```typescript
86
+ import { createMCPServer } from 'mcp-http-webhook';
87
+ import { RedisStore } from 'mcp-http-webhook/stores';
88
+
89
+ const server = createMCPServer({
90
+ name: 'my-mcp-server',
91
+ version: '1.0.0',
92
+ publicUrl: 'https://mcp.example.com',
93
+ store: new RedisStore(process.env.REDIS_URL),
94
+
95
+ tools: [...],
96
+ resources: [...],
97
+ });
98
+
99
+ await server.start();
100
+ ```
101
+
102
+ ### External State Storage
103
+
104
+ Subscription data lives in Redis (or any key-value store you implement). This is what enables horizontal scaling - any server instance can look up any subscription.
105
+
106
+ ```typescript
107
+ interface KeyValueStore {
108
+ get(key: string): Promise<string | null>;
109
+ set(key: string, value: string, ttl?: number): Promise<void>;
110
+ delete(key: string): Promise<void>;
111
+ scan?(pattern: string): Promise<string[]>;
112
+ }
113
+ ```
114
+
115
+ ### First-Class Webhook Support
116
+
117
+ Resources can define subscription handlers that integrate with any third-party webhook provider:
118
+
119
+ ```typescript
120
+ resources: [{
121
+ uri: 'github://repo/{owner}/{repo}/issues',
122
+ name: 'GitHub Issues',
123
+
124
+ subscription: {
125
+ // Called when a client subscribes
126
+ onSubscribe: async (uri, subscriptionId, thirdPartyWebhookUrl, context) => {
127
+ // Register webhook with GitHub pointing to thirdPartyWebhookUrl
128
+ const webhook = await octokit.repos.createWebhook({
129
+ owner, repo,
130
+ config: { url: thirdPartyWebhookUrl }
131
+ });
132
+
133
+ return { thirdPartyWebhookId: webhook.id };
134
+ },
135
+
136
+ // Called when GitHub sends us a webhook
137
+ onWebhook: async (subscriptionId, payload, headers) => {
138
+ return {
139
+ resourceUri: `github://repo/${owner}/${repo}/issues`,
140
+ changeType: payload.action === 'opened' ? 'created' : 'updated',
141
+ data: payload.issue
142
+ };
143
+ },
144
+
145
+ // Called when client unsubscribes
146
+ onUnsubscribe: async (uri, subscriptionId, storedData, context) => {
147
+ await octokit.repos.deleteWebhook({ hook_id: storedData.thirdPartyWebhookId });
148
+ }
149
+ }
150
+ }]
151
+ ```
152
+
153
+ ### Production Hardened
154
+
155
+ - **Automatic retry with exponential backoff** for webhook delivery
156
+ - **Signature verification** for incoming and outgoing webhooks (HMAC SHA-256)
157
+ - **Health check endpoints** (`/health`, `/ready`)
158
+ - **Prometheus metrics** integration
159
+ - **Graceful shutdown** handling
160
+
161
+ ---
162
+
163
+ ## Real-World Example: MongoDB MCP Server
164
+
165
+ Let's look at how we built a production MongoDB MCP server using this library. This server:
166
+ - Exposes MongoDB operations as MCP tools
167
+ - Lists collections as MCP resources
168
+ - Provides real-time updates via MongoDB change streams
169
+ - Falls back to polling when change streams aren't available
170
+
171
+ ### Architecture Overview
172
+
173
+ ```
174
+ ┌─────────────────────────────────────────────────────────┐
175
+ │ MongoDB MCP Server │
176
+ ├─────────────────────────────────────────────────────────┤
177
+ │ Tools: find, insert, update, delete, aggregate │
178
+ │ Resources: Collections with schema inference │
179
+ │ Subscriptions: Change streams + polling fallback │
180
+ ├─────────────────────────────────────────────────────────┤
181
+ │ mcp-http-webhook │ MongoManager │ ChangeTracker │
182
+ ├─────────────────────────────────────────────────────────┤
183
+ │ Redis Store (subscriptions, credentials) │
184
+ └─────────────────────────────────────────────────────────┘
185
+ ```
186
+
187
+ ### Defining Tools
188
+
189
+ MongoDB operations become MCP tools with JSON Schema validation:
190
+
191
+ ```typescript
192
+ tools: [
193
+ {
194
+ name: 'find_documents',
195
+ description: 'Find documents in a collection using filter, projection, and sorting.',
196
+ inputSchema: {
197
+ type: 'object',
198
+ properties: {
199
+ collection: { type: 'string' },
200
+ filter: { type: 'object', default: {} },
201
+ projection: { type: 'object' },
202
+ sort: { type: 'object' },
203
+ limit: { type: 'number', default: 100 },
204
+ },
205
+ required: ['collection'],
206
+ },
207
+ handler: async (args, context) => {
208
+ const credentials = await getCredentials(context.userId);
209
+ const documents = await mongoManager.findDocuments(
210
+ credentials,
211
+ args.database,
212
+ args.collection,
213
+ args.filter,
214
+ { projection: args.projection, sort: args.sort, limit: args.limit }
215
+ );
216
+
217
+ return { documents: sanitizeDocuments(documents) };
218
+ },
219
+ },
220
+ // insert_documents, update_documents, delete_documents, aggregate_documents...
221
+ ]
222
+ ```
223
+
224
+ ### Defining Resources with Pagination
225
+
226
+ Collections are exposed as resources with built-in pagination:
227
+
228
+ ```typescript
229
+ resources: [
230
+ {
231
+ uri: 'mongodb://{connection}/collection/{database}/{collection}',
232
+ name: 'MongoDB Collection',
233
+ mimeType: 'application/json',
234
+
235
+ // List all collections across all connections
236
+ list: async (context, options) => {
237
+ const connections = await listConnections(context.userId);
238
+ const resources = [];
239
+
240
+ for (const conn of connections) {
241
+ const collections = await mongoManager.listCollections(conn.credentials);
242
+ for (const coll of collections) {
243
+ resources.push({
244
+ uri: buildResourceUri(conn.name, conn.database, coll.name),
245
+ name: `${conn.name}.${coll.name}`,
246
+ metadata: await buildCollectionMetadata(coll),
247
+ });
248
+ }
249
+ }
250
+
251
+ // Apply pagination
252
+ const page = options?.page ?? 1;
253
+ const limit = options?.limit ?? 100;
254
+ const offset = (page - 1) * limit;
255
+
256
+ return {
257
+ resources: resources.slice(offset, offset + limit),
258
+ nextCursor: offset + limit < resources.length ? String(page + 1) : undefined,
259
+ pagination: { page, limit, total: resources.length, hasMore: offset + limit < resources.length }
260
+ };
261
+ },
262
+
263
+ // Read collection data
264
+ read: async (uri, context, options) => {
265
+ const { connection, database, collection } = parseUri(uri);
266
+ const page = options?.pagination?.page ?? 1;
267
+ const limit = options?.pagination?.limit ?? 100;
268
+
269
+ const documents = await mongoManager.findDocuments(
270
+ credentials, database, collection, {},
271
+ { limit, skip: (page - 1) * limit }
272
+ );
273
+
274
+ return {
275
+ contents: { data: documents.map(convertToRow), mimeType: 'application/json' },
276
+ nextCursorUrl: hasMore ? `${uri}/page/${page + 1}` : undefined,
277
+ pagination: { page, limit, total, hasMore }
278
+ };
279
+ },
280
+ }
281
+ ]
282
+ ```
283
+
284
+ ### Change Stream Subscriptions
285
+
286
+ The real power comes from subscriptions. We use MongoDB change streams when available, with polling fallback:
287
+
288
+ ```typescript
289
+ subscription: {
290
+ onSubscribe: async (uri, subscriptionId, webhookUrl, context) => {
291
+ const { database, collection } = parseUri(uri);
292
+ const credentials = await getCredentials(context.userId);
293
+
294
+ // Start tracking changes
295
+ await changeTracker.startTracking(
296
+ subscriptionId,
297
+ credentials,
298
+ database,
299
+ collection,
300
+ webhookUrl,
301
+ uri
302
+ );
303
+
304
+ return { thirdPartyWebhookId: subscriptionId };
305
+ },
306
+
307
+ onUnsubscribe: async (uri, subscriptionId) => {
308
+ await changeTracker.stopTracking(subscriptionId);
309
+ },
310
+
311
+ onWebhook: async (subscriptionId, payload, headers) => {
312
+ // Process incoming change events
313
+ return {
314
+ resourceUri: payload.resourceUri,
315
+ changeType: payload.changeType,
316
+ data: { rows: payload.rows, changes: payload.changes }
317
+ };
318
+ }
319
+ }
320
+ ```
321
+
322
+ The `ChangeTracker` class handles the complexity:
323
+
324
+ ```typescript
325
+ class ChangeTracker {
326
+ async startTracking(subscriptionId, credentials, database, collection, webhookUrl) {
327
+ try {
328
+ // Try change streams first
329
+ const changeStream = await mongoManager.watchCollection(credentials, collection);
330
+
331
+ changeStream.on('change', async (change) => {
332
+ // Convert MongoDB change event to webhook payload
333
+ await sendWebhook(webhookUrl, {
334
+ resourceUri: buildDocumentUri(change.documentKey._id),
335
+ changeType: change.operationType,
336
+ rows: [change.fullDocument]
337
+ });
338
+ });
339
+
340
+ changeStream.on('error', () => this.startFallback(/*...*/));
341
+ } catch {
342
+ // Fall back to polling for non-replica set deployments
343
+ this.startFallback(subscriptionId, credentials, database, collection, webhookUrl);
344
+ }
345
+ }
346
+
347
+ private async startFallback(/*...*/) {
348
+ setInterval(async () => {
349
+ const newDocs = await mongoManager.findDocuments(
350
+ credentials, database, collection,
351
+ { updatedAt: { $gt: lastTimestamp } }
352
+ );
353
+
354
+ if (newDocs.length > 0) {
355
+ for (const doc of newDocs) {
356
+ await sendWebhook(webhookUrl, {
357
+ resourceUri: buildDocumentUri(doc._id),
358
+ changeType: 'updated',
359
+ rows: [doc]
360
+ });
361
+ }
362
+ }
363
+ }, POLLING_INTERVAL);
364
+ }
365
+ }
366
+ ```
367
+
368
+ ### Credential Discovery
369
+
370
+ A unique feature: we expose a `.well-known/credentials` endpoint that describes what credentials the MCP server needs:
371
+
372
+ ```typescript
373
+ credentials: [
374
+ {
375
+ name: 'mongo_uri',
376
+ description: 'MongoDB connection URI',
377
+ type: 'string',
378
+ required: false,
379
+ config: {
380
+ type: 'keyValue',
381
+ inject: [{ location: 'header', key: 'x-mongo-uri', value: '{{mongo_uri}}' }]
382
+ }
383
+ },
384
+ {
385
+ name: 'mongo_database',
386
+ description: 'Default database name',
387
+ type: 'string',
388
+ required: true,
389
+ config: {
390
+ type: 'keyValue',
391
+ inject: [{ location: 'header', key: 'x-mongo-database', value: '{{mongo_database}}' }]
392
+ }
393
+ },
394
+ // More credential fields...
395
+ ]
396
+ ```
397
+
398
+ This allows orchestration systems to automatically configure connections without hardcoded integrations.
399
+
400
+ ---
401
+
402
+ ## Building Your Own MCP with This Library
403
+
404
+ Ready to build your own production MCP server? Here's the step-by-step:
405
+
406
+ ### 1. Install the Library
407
+
408
+ ```bash
409
+ npm install mcp-http-webhook zod
410
+ npm install @modelcontextprotocol/sdk express # peer dependencies
411
+ npm install ioredis # for Redis store
412
+ ```
413
+
414
+ ### 2. Set Up Basic Server
415
+
416
+ ```typescript
417
+ import { createMCPServer } from 'mcp-http-webhook';
418
+ import { RedisStore } from 'mcp-http-webhook/stores';
419
+ import Redis from 'ioredis';
420
+
421
+ const redis = new Redis(process.env.REDIS_URL);
422
+ const store = new RedisStore(redis);
423
+
424
+ const server = createMCPServer({
425
+ name: 'my-custom-mcp',
426
+ version: '1.0.0',
427
+ publicUrl: process.env.PUBLIC_URL, // Your public HTTPS URL
428
+ port: 3000,
429
+ store,
430
+
431
+ // Optional: Add authentication
432
+ authenticate: async (req) => {
433
+ const token = req.headers.authorization?.replace('Bearer ', '');
434
+ const user = await validateToken(token);
435
+ return { userId: user.id };
436
+ },
437
+
438
+ tools: [],
439
+ resources: [],
440
+ });
441
+
442
+ await server.start();
443
+ ```
444
+
445
+ ### 3. Add Tools
446
+
447
+ ```typescript
448
+ tools: [
449
+ {
450
+ name: 'my_tool',
451
+ description: 'Does something useful',
452
+ inputSchema: {
453
+ type: 'object',
454
+ properties: {
455
+ input: { type: 'string', description: 'The input value' }
456
+ },
457
+ required: ['input']
458
+ },
459
+ handler: async (args, context) => {
460
+ // context.userId available from authentication
461
+ const result = await doSomething(args.input);
462
+ return { result };
463
+ }
464
+ }
465
+ ]
466
+ ```
467
+
468
+ ### 4. Add Resources with Subscriptions
469
+
470
+ ```typescript
471
+ resources: [
472
+ {
473
+ uri: 'myservice://{tenant}/data/{id}',
474
+ name: 'My Data Resource',
475
+
476
+ list: async (context) => {
477
+ const items = await getItems(context.userId);
478
+ return items.map(item => ({
479
+ uri: `myservice://${item.tenant}/data/${item.id}`,
480
+ name: item.name
481
+ }));
482
+ },
483
+
484
+ read: async (uri, context) => {
485
+ const { id } = parseUri(uri);
486
+ const data = await getData(id);
487
+ return { contents: { text: JSON.stringify(data) } };
488
+ },
489
+
490
+ // Add subscriptions if your service has webhooks or events
491
+ subscription: {
492
+ onSubscribe: async (uri, subscriptionId, webhookUrl, context) => {
493
+ // Register with your service's webhook system
494
+ const hookId = await registerWebhook(webhookUrl);
495
+ return { thirdPartyWebhookId: hookId };
496
+ },
497
+
498
+ onWebhook: async (subscriptionId, payload, headers) => {
499
+ return {
500
+ resourceUri: payload.resourceUri,
501
+ changeType: payload.type,
502
+ data: payload.data
503
+ };
504
+ },
505
+
506
+ onUnsubscribe: async (uri, subscriptionId, storedData) => {
507
+ await deleteWebhook(storedData.thirdPartyWebhookId);
508
+ }
509
+ }
510
+ }
511
+ ]
512
+ ```
513
+
514
+ ### 5. Deploy
515
+
516
+ ```yaml
517
+ # docker-compose.yml
518
+ services:
519
+ mcp-server:
520
+ build: .
521
+ ports:
522
+ - "3000:3000"
523
+ environment:
524
+ - PUBLIC_URL=https://mcp.example.com
525
+ - REDIS_URL=redis://redis:6379
526
+ depends_on:
527
+ - redis
528
+ deploy:
529
+ replicas: 3 # Scale horizontally!
530
+
531
+ redis:
532
+ image: redis:7-alpine
533
+ ```
534
+
535
+ ---
536
+
537
+ ## Key Differentiators
538
+
539
+ | Feature | Standard MCP (SSE) | Our Approach (HTTP + Webhooks) |
540
+ |---------|-------------------|-------------------------------|
541
+ | **Scaling** | Requires sticky sessions | Stateless, trivial horizontal scaling |
542
+ | **Third-party integration** | Custom adapters needed | Native webhook support |
543
+ | **State management** | In-memory per instance | External store (Redis) |
544
+ | **Load balancing** | Complex | Simple round-robin |
545
+ | **Serverless deployment** | Difficult | Possible |
546
+ | **Protocol compatibility** | Full | Full (uses official SDK) |
547
+
548
+ ---
549
+
550
+ ## Serverless & Scale-to-Zero Deployment
551
+
552
+ One of the most compelling advantages of our stateless HTTP approach is native compatibility with serverless platforms. Since there's no persistent connection state, MCP servers built with `mcp-http-webhook` can deploy to environments that scale to zero—meaning you only pay for actual usage.
553
+
554
+ ### AWS Lambda Deployment
555
+
556
+ AWS Lambda is ideal for MCP servers with variable traffic patterns:
557
+
558
+ ```typescript
559
+ // lambda.ts
560
+ import { createMCPServer } from 'mcp-http-webhook';
561
+ import { DynamoDBStore } from 'mcp-http-webhook/stores';
562
+ import { APIGatewayProxyHandler } from 'aws-lambda';
563
+
564
+ const store = new DynamoDBStore(process.env.DYNAMODB_TABLE!);
565
+
566
+ const server = createMCPServer({
567
+ name: 'my-mcp-lambda',
568
+ version: '1.0.0',
569
+ publicUrl: process.env.API_GATEWAY_URL!,
570
+ store,
571
+ tools: [...],
572
+ resources: [...],
573
+ });
574
+
575
+ export const handler: APIGatewayProxyHandler = async (event) => {
576
+ return server.handleLambdaEvent(event);
577
+ };
578
+ ```
579
+
580
+ **Benefits:**
581
+ - **Pay-per-invocation** - No cost when idle
582
+ - **Automatic scaling** - Handles traffic spikes without configuration
583
+ - **Managed infrastructure** - No servers to maintain
584
+ - **Global deployment** - Deploy to multiple regions with Lambda@Edge
585
+
586
+ ### Kubernetes Knative (Scale-to-Zero)
587
+
588
+ For teams already on Kubernetes, [Knative Serving](https://knative.dev/) provides the same scale-to-zero benefits while staying in the K8s ecosystem:
589
+
590
+ ```yaml
591
+ # knative-service.yaml
592
+ apiVersion: serving.knative.dev/v1
593
+ kind: Service
594
+ metadata:
595
+ name: mongodb-mcp
596
+ spec:
597
+ template:
598
+ metadata:
599
+ annotations:
600
+ # Scale to zero after 5 minutes of inactivity
601
+ autoscaling.knative.dev/scale-to-zero-grace-period: "5m"
602
+ # Allow up to 100 concurrent requests per pod
603
+ autoscaling.knative.dev/target: "100"
604
+ spec:
605
+ containerConcurrency: 100
606
+ containers:
607
+ - image: your-registry/mongodb-mcp:latest
608
+ ports:
609
+ - containerPort: 3000
610
+ env:
611
+ - name: REDIS_URL
612
+ valueFrom:
613
+ secretKeyRef:
614
+ name: mcp-secrets
615
+ key: redis-url
616
+ resources:
617
+ requests:
618
+ memory: "256Mi"
619
+ cpu: "100m"
620
+ limits:
621
+ memory: "512Mi"
622
+ cpu: "500m"
623
+ ```
624
+
625
+ **Knative advantages:**
626
+ - **Cold start optimization** - Knative keeps pods warm based on traffic patterns
627
+ - **Gradual rollouts** - Built-in traffic splitting for canary deployments
628
+ - **Scale-to-zero** - Pods terminate during inactivity, reducing costs by 60-80%
629
+ - **Kubernetes native** - Use existing observability, security, and networking
630
+
631
+ ### Architecture for 1000s of Connectors
632
+
633
+ With scale-to-zero infrastructure, deploying thousands of MCP connectors becomes economically viable:
634
+
635
+ ```
636
+ ┌─────────────────────────────────────────────────────────────────┐
637
+ │ Load Balancer / API Gateway │
638
+ ├─────────────────────────────────────────────────────────────────┤
639
+ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
640
+ │ │ MongoDB │ │ Postgres │ │ Salesforce│ │ SAP │ ...x1000 │
641
+ │ │ MCP │ │ MCP │ │ MCP │ │ MCP │ │
642
+ │ │(scaled=0)│ │(scaled=2)│ │(scaled=0)│ │(scaled=1)│ │
643
+ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
644
+ ├─────────────────────────────────────────────────────────────────┤
645
+ │ Shared Redis / DynamoDB (Subscription State) │
646
+ └─────────────────────────────────────────────────────────────────┘
647
+ ```
648
+
649
+ **Cost model:**
650
+ - Traditional approach: 1000 connectors × 2 pods × $50/month = **$100,000/month**
651
+ - Scale-to-zero approach: Pay only for active connectors = **$5,000-15,000/month**
652
+
653
+ ---
654
+
655
+ ## Production at Scale: Kaman.ai
656
+
657
+ At [Kaman.ai](https://kaman.ai), we've put this architecture to the test. Our enterprise AI agent platform uses `mcp-http-webhook` to power data integrations across hundreds of customer deployments.
658
+
659
+ ### Pre-Built Connectors
660
+
661
+ We've already built production-ready MCP connectors for the most common enterprise data sources:
662
+
663
+ **Databases:**
664
+ - PostgreSQL, MySQL, Microsoft SQL Server
665
+ - MongoDB, DynamoDB
666
+ - SAP HANA, Oracle
667
+ - Snowflake, BigQuery, Redshift
668
+
669
+ **File Systems & Storage:**
670
+ - Google Drive, OneDrive, SharePoint
671
+ - AWS S3, Azure Blob Storage
672
+ - Dropbox, Box
673
+ - Local/network file systems (SFTP, SMB)
674
+
675
+ **Business Applications:**
676
+ - Salesforce (Sales Cloud, Service Cloud)
677
+ - ServiceNow (ITSM, CMDB)
678
+ - HubSpot, Zendesk
679
+ - SAP ERP, SAP S/4HANA
680
+ - Microsoft Dynamics 365
681
+
682
+ **Communication & Collaboration:**
683
+ - Gmail, Outlook/Exchange
684
+ - Slack, Microsoft Teams
685
+ - Google Calendar, Outlook Calendar
686
+
687
+ **Developer Tools:**
688
+ - GitHub, GitLab, Bitbucket
689
+ - Jira, Confluence
690
+ - Linear, Notion
691
+
692
+ ### Enterprise-Grade Features
693
+
694
+ Every Kaman connector includes:
695
+
696
+ - **Multi-tenant isolation** - Credentials and data strictly separated per organization
697
+ - **OAuth 2.0 / OIDC** - Secure authentication without storing passwords
698
+ - **Incremental sync** - Only fetch changed data, reducing API costs
699
+ - **Schema mapping** - Transform source schemas to your data lake format
700
+ - **Data lineage** - OpenLineage integration for compliance and debugging
701
+ - **Rate limiting** - Respect API quotas with intelligent backoff
702
+
703
+ ### Real Numbers
704
+
705
+ Our production deployment handles:
706
+ - **500+ active MCP connectors** across customer tenants
707
+ - **10M+ tool invocations** per month
708
+ - **99.9% uptime** with zero persistent connection overhead
709
+ - **Cold start times** under 2 seconds (Knative) or 500ms (Lambda)
710
+
711
+ The scale-to-zero architecture means customers only pay for what they use—syncing a SharePoint folder once per hour costs a fraction of a cent, not $50/month for an always-on pod.
712
+
713
+ ---
714
+
715
+ ## What's Next
716
+
717
+ The `mcp-http-webhook` library is available on npm (package name: `mcp-http-webhook`). We're using it in production to power:
718
+ - MongoDB data integration
719
+ - PostgreSQL connectors
720
+ - Google Drive sync
721
+ - Slack channel integrations
722
+ - And more...
723
+
724
+ If you're building MCP servers that need to scale, integrate with webhooks, or deploy to Kubernetes - this approach might save you months of engineering effort.
725
+
726
+ ---
727
+
728
+ ## Get Started
729
+
730
+ ```bash
731
+ npm install mcp-http-webhook
732
+ ```
733
+
734
+ Check out the [examples](./examples) directory for complete implementations, and the [Spec.md](./Spec.md) for detailed API documentation.
735
+
736
+ ---
737
+
738
+ *Questions? Found a bug? We'd love to hear from you. Open an issue or reach out to our team.*
package/dist/server.js CHANGED
@@ -158,7 +158,7 @@ function createMCPServer(config) {
158
158
  // Create Express app
159
159
  const app = (0, express_1.default)();
160
160
  // Middleware
161
- app.use(express_1.default.json());
161
+ app.use(express_1.default.json({ limit: '50mb' }));
162
162
  // allow cors
163
163
  app.use((0, cors_1.default)());
164
164
  // Custom middleware
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,12 @@ export declare class SubscriptionManager {
29
29
  * List subscriptions for a user
30
30
  */
31
31
  listSubscriptions(userId: string): Promise<StoredSubscription[]>;
32
+ /**
33
+ * Find existing subscription for a URI and user
34
+ */
35
+ findSubscriptionByUri(uri: string, userId: string): Promise<(StoredSubscription & {
36
+ subscriptionId: string;
37
+ }) | null>;
32
38
  /**
33
39
  * Store subscription data
34
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/subscriptions/SubscriptionManager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAGlB,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;gBAHP,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,kBAAkB,EAAE,EAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,YAAA;IAGzB;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,iBAAiB,EAAE,MAAM,CAAC;QAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,OAAO,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA6DvD;;OAEG;IACG,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CrF;;OAEG;IACG,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAIjF;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAiBtE;;OAEG;YACW,iBAAiB;IAmB/B;;OAEG;YACW,gBAAgB;IAW9B;;OAEG;YACW,kBAAkB;IAehC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAoB3B"}
1
+ {"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/subscriptions/SubscriptionManager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAGlB,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;gBAHP,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,kBAAkB,EAAE,EAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,YAAA;IAGzB;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,iBAAiB,EAAE,MAAM,CAAC;QAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,OAAO,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA8EvD;;OAEG;IACG,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CrF;;OAEG;IACG,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAIjF;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAiBtE;;OAEG;IACG,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,kBAAkB,GAAG;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAoB3H;;OAEG;YACW,iBAAiB;IAmB/B;;OAEG;YACW,gBAAgB;IAW9B;;OAEG;YACW,kBAAkB;IAehC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAoB3B"}
@@ -23,6 +23,23 @@ class SubscriptionManager {
23
23
  if (!resource.subscription) {
24
24
  throw new errors_1.ValidationError(`Resource ${resource.name} does not support subscriptions`);
25
25
  }
26
+ // Check for existing subscription for this URI and user - clean up if exists
27
+ const existingSubscription = await this.findSubscriptionByUri(uri, context.userId);
28
+ if (existingSubscription) {
29
+ this.logger?.info('Found existing subscription for URI, cleaning up first', {
30
+ existingSubscriptionId: existingSubscription.subscriptionId,
31
+ uri,
32
+ });
33
+ try {
34
+ await this.deleteSubscription(existingSubscription.subscriptionId, context);
35
+ }
36
+ catch (error) {
37
+ this.logger?.warn('Failed to delete existing subscription, continuing anyway', {
38
+ existingSubscriptionId: existingSubscription.subscriptionId,
39
+ error: error instanceof Error ? error.message : String(error),
40
+ });
41
+ }
42
+ }
26
43
  // Generate subscription ID
27
44
  const subscriptionId = (0, utils_1.generateSubscriptionId)();
28
45
  const thirdPartyWebhookUrl = (0, utils_1.generateWebhookUrl)(this.publicUrl, subscriptionId);
@@ -116,6 +133,24 @@ class SubscriptionManager {
116
133
  const subscriptions = await Promise.all(subscriptionIds.map((id) => this.loadSubscription(id)));
117
134
  return subscriptions.filter((s) => s !== null);
118
135
  }
136
+ /**
137
+ * Find existing subscription for a URI and user
138
+ */
139
+ async findSubscriptionByUri(uri, userId) {
140
+ const indexKey = `user:${userId}:subscriptions`;
141
+ const indexData = await this.store.get(indexKey);
142
+ if (!indexData) {
143
+ return null;
144
+ }
145
+ const subscriptionIds = JSON.parse(indexData);
146
+ for (const subscriptionId of subscriptionIds) {
147
+ const subscription = await this.loadSubscription(subscriptionId);
148
+ if (subscription && subscription.uri === uri) {
149
+ return { ...subscription, subscriptionId };
150
+ }
151
+ }
152
+ return null;
153
+ }
119
154
  /**
120
155
  * Store subscription data
121
156
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionManager.js","sourceRoot":"","sources":["../../src/subscriptions/SubscriptionManager.ts"],"names":[],"mappings":";;;AAAA,sCAA0D;AAQ1D,oCAAsE;AAEtE,MAAa,mBAAmB;IAC9B,YACU,KAAoB,EACpB,SAA+B,EAC/B,SAAiB,EACjB,MAAe;QAHf,UAAK,GAAL,KAAK,CAAe;QACpB,cAAS,GAAT,SAAS,CAAsB;QAC/B,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAAS;IACtB,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAKxB;QACC,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAEzE,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,wBAAe,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC3B,MAAM,IAAI,wBAAe,CAAC,YAAY,QAAQ,CAAC,IAAI,iCAAiC,CAAC,CAAC;QACxF,CAAC;QAED,2BAA2B;QAC3B,MAAM,cAAc,GAAG,IAAA,8BAAsB,GAAE,CAAC;QAChD,MAAM,oBAAoB,GAAG,IAAA,0BAAkB,EAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAEhF,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE;YACzC,cAAc;YACd,GAAG;YACH,iBAAiB;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,sCAAsC;YACtC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,CACtD,GAAG,EACH,cAAc,EACd,oBAAoB,EACpB,OAAO,CACR,CAAC;YAEF,0BAA0B;YAC1B,MAAM,gBAAgB,GAAuB;gBAC3C,GAAG;gBACH,YAAY,EAAE,QAAQ,CAAC,IAAI;gBAC3B,iBAAiB;gBACjB,oBAAoB;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gBACjD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/E,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;YAE9D,OAAO;gBACL,cAAc;gBACd,MAAM,EAAE,QAAQ;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,+BAA+B,EAAE;gBAClD,cAAc;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,IAAI,qBAAY,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,cAAsB,EAAE,OAAoB;QACnE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAE/D,oBAAoB;QACpB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,wBAAe,CAAC,gBAAgB,cAAc,YAAY,CAAC,CAAC;QACxE,CAAC;QAED,mBAAmB;QACnB,IAAI,YAAY,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,IAAI,wBAAe,CAAC,0CAA0C,CAAC,CAAC;QACxE,CAAC;QAED,gBAAgB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;YAC5B,MAAM,IAAI,qBAAY,CAAC,+CAA+C,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,QAAQ,CAAC,YAAY,CAAC,aAAa,CACvC,YAAY,CAAC,GAAG,EAChB,cAAc,EACd;gBACE,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;gBACrD,QAAQ,EAAE,YAAY,CAAC,QAAQ;aAChC,EACD,OAAO,CACR,CAAC;YAEF,oBAAoB;YACpB,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAE9D,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,+BAA+B,EAAE;gBAClD,cAAc;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,IAAI,qBAAY,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc;QACpC,MAAM,QAAQ,GAAG,QAAQ,MAAM,gBAAgB,CAAC;QAChD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,eAAe,GAAa,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CACvD,CAAC;QAEF,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,cAAsB,EACtB,IAAwB,EACxB,MAAc;QAEd,MAAM,GAAG,GAAG,gBAAgB,cAAc,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhD,oBAAoB;QACpB,MAAM,QAAQ,GAAG,QAAQ,MAAM,gBAAgB,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,eAAe,GAAa,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9C,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,cAAsB;QACnD,MAAM,GAAG,GAAG,gBAAgB,cAAc,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,cAAsB,EAAE,MAAc;QACrE,MAAM,GAAG,GAAG,gBAAgB,cAAc,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE7B,oBAAoB;QACpB,MAAM,QAAQ,GAAG,QAAQ,MAAM,gBAAgB,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,eAAe,GAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;YACvE,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,GAAW;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACtC,wCAAwC;YACxC,wDAAwD;YACxD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAE/E,qEAAqE;YACrE,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;YAEhF,mDAAmD;YACnD,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;YAE5E,oCAAoC;YACpC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC;YAEtD,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AArOD,kDAqOC"}
1
+ {"version":3,"file":"SubscriptionManager.js","sourceRoot":"","sources":["../../src/subscriptions/SubscriptionManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-http-webhook",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
4
4
  "description": "Production-ready MCP server framework with HTTP + webhook-based subscriptions",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/server.ts CHANGED
@@ -184,7 +184,7 @@ export function createMCPServer(config: MCPServerConfig): MCPServer {
184
184
  const app: Express = express();
185
185
 
186
186
  // Middleware
187
- app.use(express.json());
187
+ app.use(express.json({ limit: '50mb' }));
188
188
  // allow cors
189
189
  app.use(cors());
190
190
  // Custom middleware
@@ -37,6 +37,23 @@ export class SubscriptionManager {
37
37
  throw new ValidationError(`Resource ${resource.name} does not support subscriptions`);
38
38
  }
39
39
 
40
+ // Check for existing subscription for this URI and user - clean up if exists
41
+ const existingSubscription = await this.findSubscriptionByUri(uri, context.userId);
42
+ if (existingSubscription) {
43
+ this.logger?.info('Found existing subscription for URI, cleaning up first', {
44
+ existingSubscriptionId: existingSubscription.subscriptionId,
45
+ uri,
46
+ });
47
+ try {
48
+ await this.deleteSubscription(existingSubscription.subscriptionId, context);
49
+ } catch (error) {
50
+ this.logger?.warn('Failed to delete existing subscription, continuing anyway', {
51
+ existingSubscriptionId: existingSubscription.subscriptionId,
52
+ error: error instanceof Error ? error.message : String(error),
53
+ });
54
+ }
55
+ }
56
+
40
57
  // Generate subscription ID
41
58
  const subscriptionId = generateSubscriptionId();
42
59
  const thirdPartyWebhookUrl = generateWebhookUrl(this.publicUrl, subscriptionId);
@@ -160,6 +177,29 @@ export class SubscriptionManager {
160
177
  return subscriptions.filter((s): s is StoredSubscription => s !== null);
161
178
  }
162
179
 
180
+ /**
181
+ * Find existing subscription for a URI and user
182
+ */
183
+ async findSubscriptionByUri(uri: string, userId: string): Promise<(StoredSubscription & { subscriptionId: string }) | null> {
184
+ const indexKey = `user:${userId}:subscriptions`;
185
+ const indexData = await this.store.get(indexKey);
186
+
187
+ if (!indexData) {
188
+ return null;
189
+ }
190
+
191
+ const subscriptionIds: string[] = JSON.parse(indexData);
192
+
193
+ for (const subscriptionId of subscriptionIds) {
194
+ const subscription = await this.loadSubscription(subscriptionId);
195
+ if (subscription && subscription.uri === uri) {
196
+ return { ...subscription, subscriptionId };
197
+ }
198
+ }
199
+
200
+ return null;
201
+ }
202
+
163
203
  /**
164
204
  * Store subscription data
165
205
  */