apprecio-mcp-base 1.0.3 → 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/dist/index.d.ts CHANGED
@@ -6,5 +6,6 @@ export { AuthMiddleware, createAuthMiddleware } from './middleware/auth.js';
6
6
  export { MongoDBConnector, createMongoDBConnector } from './database/mongodb.js';
7
7
  export type { MongoDBOptions } from './database/mongodb.js';
8
8
  export { createServer } from './server/createExpressServer.js';
9
+ export type { ServerSetup } from './server/createExpressServer.js';
9
10
  export { isPortAvailable, findAvailablePort, getRandomAvailablePort, } from './utils/portFinder.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1E,mBAAmB,iBAAiB,CAAC;AAGrC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1E,mBAAmB,iBAAiB,CAAC;AAGrC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,uBAAuB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG1E,qBAAqB;AACrB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGjF,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,gBAAgB;AAChB,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG1E,qBAAqB;AACrB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGjF,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,gBAAgB;AAChB,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,uBAAuB,CAAC"}
@@ -1,4 +1,13 @@
1
1
  import http from 'http';
2
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
- export declare function createServer(mcpServer: McpServer, port: number): Promise<http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>>;
2
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
3
+ export interface ServerSetup {
4
+ httpServer: http.Server;
5
+ transport: StreamableHTTPServerTransport;
6
+ port: number;
7
+ }
8
+ /**
9
+ * Crea el servidor Express y el transport, pero NO conecta el MCP
10
+ * La conexión debe hacerse DESPUÉS de registrar todos los tools
11
+ */
12
+ export declare function createServer(port: number): Promise<ServerSetup>;
4
13
  //# sourceMappingURL=createExpressServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createExpressServer.d.ts","sourceRoot":"","sources":["../../src/server/createExpressServer.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAsB,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,iFA2CpE"}
1
+ {"version":3,"file":"createExpressServer.d.ts","sourceRoot":"","sources":["../../src/server/createExpressServer.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAGnG,MAAM,WAAW,WAAW;IACxB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,SAAS,EAAE,6BAA6B,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAgErE"}
@@ -2,12 +2,23 @@ import express from 'express';
2
2
  import http from 'http';
3
3
  import cors from 'cors';
4
4
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
5
- import { logger } from '../core/logger';
6
- export async function createServer(mcpServer, port) {
5
+ import { logger } from '../core/logger.js';
6
+ /**
7
+ * Crea el servidor Express y el transport, pero NO conecta el MCP
8
+ * La conexión debe hacerse DESPUÉS de registrar todos los tools
9
+ */
10
+ export async function createServer(port) {
7
11
  const app = express();
8
12
  app.use(cors({
9
13
  origin: "*",
10
- allowedHeaders: ["Content-Type", "Authorization", "Mcp-Session-Id", "Mcp-Protocol-Version", "Accept", "User-Agent", "Authorization", "authorization"],
14
+ allowedHeaders: [
15
+ "Content-Type",
16
+ "Authorization",
17
+ "Mcp-Session-Id",
18
+ "Mcp-Protocol-Version",
19
+ "Accept",
20
+ "User-Agent"
21
+ ],
11
22
  exposedHeaders: ["Mcp-Session-Id", "Mcp-Protocol-Version"],
12
23
  }));
13
24
  app.use((req, res, next) => {
@@ -17,17 +28,19 @@ export async function createServer(mcpServer, port) {
17
28
  }
18
29
  next();
19
30
  });
31
+ // Crear transport pero NO conectar todavía
20
32
  const transport = new StreamableHTTPServerTransport({
21
33
  sessionIdGenerator: undefined,
22
34
  enableJsonResponse: true,
23
35
  });
24
- await mcpServer.connect(transport);
36
+ // Configurar endpoints
25
37
  app.all("/sse", async (req, res) => {
26
38
  try {
27
39
  await transport.handleRequest(req, res, req.body);
28
40
  }
29
41
  catch (error) {
30
42
  logger.error("Error handling /sse:", error);
43
+ res.status(500).json({ error: 'Internal server error' });
31
44
  }
32
45
  });
33
46
  app.all("/messages", async (req, res) => {
@@ -36,15 +49,18 @@ export async function createServer(mcpServer, port) {
36
49
  }
37
50
  catch (error) {
38
51
  logger.error("Error handling /messages:", error);
52
+ res.status(500).json({ error: 'Internal server error' });
39
53
  }
40
54
  });
41
- const httpServer = http.createServer(app);
42
- httpServer.listen(port, () => {
43
- logger.info(`MCP Server (Express with SSE & Streamable HTTP) listening on port ${port}`);
55
+ // Health check
56
+ app.get("/health", (req, res) => {
57
+ res.json({ status: "ok", timestamp: new Date().toISOString() });
44
58
  });
59
+ const httpServer = http.createServer(app);
45
60
  httpServer.on('error', (error) => {
46
61
  logger.error('HTTP Server error:', error);
47
62
  });
48
- return httpServer;
63
+ // Retornar todo para que McpBaseServer lo maneje
64
+ return { httpServer, transport, port };
49
65
  }
50
66
  //# sourceMappingURL=createExpressServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createExpressServer.js","sourceRoot":"","sources":["../../src/server/createExpressServer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAoB,EAAE,IAAY;IACjE,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QACT,MAAM,EAAE,GAAG;QACX,cAAc,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC;QACrJ,cAAc,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;KAC7D,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACvB,6CAA6C;QAC7C,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtD,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,qCAAqC,CAAC;QAC/D,CAAC;QACD,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;QAChD,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,IAAI;KAC3B,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACL,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACpC,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1C,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACzB,MAAM,CAAC,IAAI,CAAC,qEAAqE,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC7B,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"createExpressServer.js","sourceRoot":"","sources":["../../src/server/createExpressServer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apprecio-mcp-base",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Base package for creating Apprecio MCP servers with consistency",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",