@kajidog/connpass-mcp-server 0.1.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.
Files changed (68) hide show
  1. package/LICENCE +21 -0
  2. package/README.md +190 -0
  3. package/dist/apps-sdk.d.ts +8 -0
  4. package/dist/apps-sdk.d.ts.map +1 -0
  5. package/dist/apps-sdk.js +77 -0
  6. package/dist/apps-sdk.js.map +1 -0
  7. package/dist/auth/jwt.d.ts +23 -0
  8. package/dist/auth/jwt.d.ts.map +1 -0
  9. package/dist/auth/jwt.js +143 -0
  10. package/dist/auth/jwt.js.map +1 -0
  11. package/dist/config.d.ts +5 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +60 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/index.d.ts +3 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +178 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/session.d.ts +9 -0
  20. package/dist/session.d.ts.map +1 -0
  21. package/dist/session.js +58 -0
  22. package/dist/session.js.map +1 -0
  23. package/dist/tools/events.d.ts +82 -0
  24. package/dist/tools/events.d.ts.map +1 -0
  25. package/dist/tools/events.js +390 -0
  26. package/dist/tools/events.js.map +1 -0
  27. package/dist/tools/formatting.d.ts +74 -0
  28. package/dist/tools/formatting.d.ts.map +1 -0
  29. package/dist/tools/formatting.js +211 -0
  30. package/dist/tools/formatting.js.map +1 -0
  31. package/dist/tools/groups.d.ts +48 -0
  32. package/dist/tools/groups.d.ts.map +1 -0
  33. package/dist/tools/groups.js +115 -0
  34. package/dist/tools/groups.js.map +1 -0
  35. package/dist/tools/index.d.ts +58 -0
  36. package/dist/tools/index.d.ts.map +1 -0
  37. package/dist/tools/index.js +21 -0
  38. package/dist/tools/index.js.map +1 -0
  39. package/dist/tools/shared.d.ts +24 -0
  40. package/dist/tools/shared.d.ts.map +1 -0
  41. package/dist/tools/shared.js +136 -0
  42. package/dist/tools/shared.js.map +1 -0
  43. package/dist/tools/users.d.ts +51 -0
  44. package/dist/tools/users.d.ts.map +1 -0
  45. package/dist/tools/users.js +252 -0
  46. package/dist/tools/users.js.map +1 -0
  47. package/dist/transports/http.d.ts +17 -0
  48. package/dist/transports/http.d.ts.map +1 -0
  49. package/dist/transports/http.js +166 -0
  50. package/dist/transports/http.js.map +1 -0
  51. package/dist/transports/sse.d.ts +21 -0
  52. package/dist/transports/sse.d.ts.map +1 -0
  53. package/dist/transports/sse.js +153 -0
  54. package/dist/transports/sse.js.map +1 -0
  55. package/dist/transports/stdio.d.ts +38 -0
  56. package/dist/transports/stdio.d.ts.map +1 -0
  57. package/dist/transports/stdio.js +29 -0
  58. package/dist/transports/stdio.js.map +1 -0
  59. package/dist/widgets/connpass-events.d.ts +29 -0
  60. package/dist/widgets/connpass-events.d.ts.map +1 -0
  61. package/dist/widgets/connpass-events.html +2269 -0
  62. package/dist/widgets/connpass-events.js +58 -0
  63. package/dist/widgets/connpass-events.js.map +1 -0
  64. package/dist/widgets/index.d.ts +6 -0
  65. package/dist/widgets/index.d.ts.map +1 -0
  66. package/dist/widgets/index.js +31 -0
  67. package/dist/widgets/index.js.map +1 -0
  68. package/package.json +58 -0
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startSseServer = startSseServer;
4
+ const node_http_1 = require("node:http");
5
+ const node_url_1 = require("node:url");
6
+ const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
7
+ const defaultLogger = {
8
+ info: (...args) => console.error(...args),
9
+ error: (...args) => console.error(...args),
10
+ };
11
+ function setCorsHeaders(res) {
12
+ res.setHeader("Access-Control-Allow-Origin", "*");
13
+ res.setHeader("Access-Control-Allow-Headers", "content-type");
14
+ }
15
+ async function startSseServer(options) {
16
+ const { createMcpServer, port, ssePath = "/mcp", messagePath = "/mcp/messages", logger, enableCors = true, } = options;
17
+ const log = {
18
+ ...defaultLogger,
19
+ ...(logger ?? {}),
20
+ };
21
+ const sessions = new Map();
22
+ const handleSseRequest = async (res) => {
23
+ if (enableCors) {
24
+ setCorsHeaders(res);
25
+ }
26
+ const server = createMcpServer();
27
+ const transport = new sse_js_1.SSEServerTransport(messagePath, res);
28
+ const sessionId = transport.sessionId;
29
+ sessions.set(sessionId, { server, transport });
30
+ transport.onclose = async () => {
31
+ sessions.delete(sessionId);
32
+ try {
33
+ // Prevent recursive close loops triggered by server.close() calling transport.close()
34
+ transport.onclose = undefined;
35
+ await server.close();
36
+ }
37
+ catch (error) {
38
+ log.error("Failed to close MCP server:", error);
39
+ }
40
+ };
41
+ transport.onerror = (error) => {
42
+ log.error("SSE transport error:", error);
43
+ };
44
+ try {
45
+ await server.connect(transport);
46
+ }
47
+ catch (error) {
48
+ sessions.delete(sessionId);
49
+ log.error("Failed to establish SSE connection:", error);
50
+ if (!res.headersSent) {
51
+ res.writeHead(500).end("Failed to establish SSE connection");
52
+ }
53
+ }
54
+ };
55
+ const handleMessagePost = async (req, res, url) => {
56
+ if (enableCors) {
57
+ setCorsHeaders(res);
58
+ }
59
+ const sessionId = url.searchParams.get("sessionId");
60
+ if (!sessionId) {
61
+ res.writeHead(400).end("Missing sessionId parameter");
62
+ return;
63
+ }
64
+ const session = sessions.get(sessionId);
65
+ if (!session) {
66
+ res.writeHead(404).end("Unknown session");
67
+ return;
68
+ }
69
+ try {
70
+ await session.transport.handlePostMessage(req, res);
71
+ }
72
+ catch (error) {
73
+ log.error("Failed to process message:", error);
74
+ if (!res.headersSent) {
75
+ res.writeHead(500).end("Failed to process message");
76
+ }
77
+ }
78
+ };
79
+ const httpServer = (0, node_http_1.createServer)(async (req, res) => {
80
+ if (!req.url) {
81
+ res.writeHead(400).end("Invalid request");
82
+ return;
83
+ }
84
+ const origin = req.headers.host
85
+ ? `http://${req.headers.host}`
86
+ : "http://localhost";
87
+ const url = new node_url_1.URL(req.url, origin);
88
+ const normalizedPath = normalizePath(url.pathname);
89
+ if (req.method === "OPTIONS" &&
90
+ (normalizedPath === ssePath || normalizedPath === messagePath)) {
91
+ if (enableCors) {
92
+ setCorsHeaders(res);
93
+ }
94
+ res.writeHead(204, {
95
+ "Access-Control-Allow-Methods": "GET, POST, OPTIONS",
96
+ });
97
+ res.end();
98
+ return;
99
+ }
100
+ if (req.method === "GET" && normalizedPath === ssePath) {
101
+ await handleSseRequest(res);
102
+ return;
103
+ }
104
+ if (req.method === "POST" && normalizedPath === messagePath) {
105
+ await handleMessagePost(req, res, url);
106
+ return;
107
+ }
108
+ res.writeHead(404).end("Not found");
109
+ });
110
+ httpServer.on("clientError", (error, socket) => {
111
+ log.error("HTTP client error:", error);
112
+ socket.end("HTTP/1.1 400 Bad Request\r\n\r\n");
113
+ });
114
+ await new Promise((resolve) => {
115
+ httpServer.listen(port, () => {
116
+ log.info(`Connpass MCP Server listening on http://localhost:${port} (SSE transport)`);
117
+ log.info(` SSE stream: GET http://localhost:${port}${ssePath}`);
118
+ log.info(` Message endpoint: POST http://localhost:${port}${messagePath}?sessionId=...`);
119
+ resolve();
120
+ });
121
+ });
122
+ return {
123
+ httpServer,
124
+ close: async () => {
125
+ await Promise.all(Array.from(sessions.values(), async ({ server, transport }) => {
126
+ sessions.delete(transport.sessionId);
127
+ await transport.close();
128
+ await server.close();
129
+ })).catch((error) => {
130
+ log.error("Failed to shut down sessions:", error);
131
+ });
132
+ await new Promise((resolve, reject) => {
133
+ httpServer.close((error) => {
134
+ if (error) {
135
+ reject(error);
136
+ }
137
+ else {
138
+ resolve();
139
+ }
140
+ });
141
+ });
142
+ },
143
+ ssePath,
144
+ messagePath,
145
+ };
146
+ }
147
+ function normalizePath(pathname) {
148
+ if (pathname === "/") {
149
+ return pathname;
150
+ }
151
+ return pathname.replace(/\/+$/, "") || "/";
152
+ }
153
+ //# sourceMappingURL=sse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/transports/sse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
2
+ import type { Server as McpServer } from "@modelcontextprotocol/sdk/server/index.js";
3
+ export type Logger = {
4
+ info?: (...args: unknown[]) => void;
5
+ error?: (...args: unknown[]) => void;
6
+ };
7
+ export type StartStdioServerOptions = {
8
+ createMcpServer: () => McpServer;
9
+ logger?: Logger;
10
+ };
11
+ export declare function startStdioServer(options: StartStdioServerOptions): Promise<{
12
+ readonly server: McpServer<{
13
+ method: string;
14
+ params?: {
15
+ [x: string]: unknown;
16
+ _meta?: {
17
+ [x: string]: unknown;
18
+ progressToken?: string | number | undefined;
19
+ } | undefined;
20
+ } | undefined;
21
+ }, {
22
+ method: string;
23
+ params?: {
24
+ [x: string]: unknown;
25
+ _meta?: {
26
+ [x: string]: unknown;
27
+ } | undefined;
28
+ } | undefined;
29
+ }, {
30
+ [x: string]: unknown;
31
+ _meta?: {
32
+ [x: string]: unknown;
33
+ } | undefined;
34
+ }>;
35
+ readonly transport: StdioServerTransport;
36
+ readonly close: () => Promise<void>;
37
+ }>;
38
+ //# sourceMappingURL=stdio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/transports/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAErF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,eAAe,EAAE,MAAM,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAOF,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;GAyBtE"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startStdioServer = startStdioServer;
4
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
5
+ const defaultLogger = {
6
+ info: (...args) => console.error(...args),
7
+ error: (...args) => console.error(...args),
8
+ };
9
+ async function startStdioServer(options) {
10
+ const { createMcpServer, logger } = options;
11
+ const log = {
12
+ ...defaultLogger,
13
+ ...(logger ?? {}),
14
+ };
15
+ log.info("Connpass MCP Server starting with Stdio transport");
16
+ const server = createMcpServer();
17
+ const transport = new stdio_js_1.StdioServerTransport();
18
+ await server.connect(transport);
19
+ log.info("Connpass MCP Server connected via Stdio");
20
+ return {
21
+ server,
22
+ transport,
23
+ close: async () => {
24
+ await transport.close();
25
+ await server.close();
26
+ },
27
+ };
28
+ }
29
+ //# sourceMappingURL=stdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/transports/stdio.ts"],"names":[],"mappings":";;AAkBA,4CAyBC;AA3CD,wEAAiF;AAajF,MAAM,aAAa,GAAqB;IACtC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEK,KAAK,UAAU,gBAAgB,CAAC,OAAgC;IACrE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE5C,MAAM,GAAG,GAAqB;QAC5B,GAAG,aAAa;QAChB,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;KAClB,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAEpD,OAAO;QACL,MAAM;QACN,SAAS;QACT,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;KACO,CAAC;AACb,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { ResourceContents } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const CONNPASS_EVENTS_WIDGET_URI = "ui://connpass/widgets/events-carousel.html";
3
+ export declare const connpassEventsWidget: {
4
+ uri: string;
5
+ resource: {
6
+ uri: string;
7
+ name: string;
8
+ description: string;
9
+ mimeType: string;
10
+ _meta: {
11
+ readonly "openai/outputTemplate": "ui://connpass/widgets/events-carousel.html";
12
+ readonly "openai/widgetAccessible": true;
13
+ readonly "openai/resultCanProduceWidget": true;
14
+ };
15
+ };
16
+ resourceTemplate: {
17
+ uriTemplate: string;
18
+ name: string;
19
+ description: string;
20
+ mimeType: string;
21
+ _meta: {
22
+ readonly "openai/outputTemplate": "ui://connpass/widgets/events-carousel.html";
23
+ readonly "openai/widgetAccessible": true;
24
+ readonly "openai/resultCanProduceWidget": true;
25
+ };
26
+ };
27
+ content(): ResourceContents[number];
28
+ };
29
+ //# sourceMappingURL=connpass-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connpass-events.d.ts","sourceRoot":"","sources":["../../src/widgets/connpass-events.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,gBAAgB,EAEjB,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AA+BvF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;eAgBpB,gBAAgB,CAAC,MAAM,CAAC;CAWpC,CAAC"}