diff --git a/package-lock.json b/package-lock.json index ff5a774..3dc3105 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,15 @@ { "name": "mcp-discord", - "version": "1.2.0", + "version": "1.3.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mcp-discord", - "version": "1.2.0", + "version": "1.3.4", "license": "MIT", "dependencies": { + "@modelcontextprotocol/sdk": "^1.11.0", "discord.js": "^14.19.3", "dotenv": "^16.5.0", "express": "^5.1.0", @@ -18,11 +19,13 @@ "mcp-discord": "build/index.js" }, "devDependencies": { - "@modelcontextprotocol/sdk": "^1.11.0", "@types/express": "^5.0.1", "@types/node": "^20.17.50", "ts-node": "^10.9.2", "typescript": "^5.8.3" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@cspotcode/source-map-support": { @@ -197,7 +200,6 @@ "version": "1.11.0", "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.0.tgz", "integrity": "sha512-k/1pb70eD638anoi0e8wUGAlbMJXyvdV4p62Ko+EZ7eBe1xMx8Uhak1R5DgfoofsK5IBBnRwsYGTaLZl+6/+RQ==", - "dev": true, "license": "MIT", "dependencies": { "content-type": "^1.0.5", @@ -548,7 +550,6 @@ "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, "license": "MIT", "dependencies": { "object-assign": "^4", @@ -569,7 +570,6 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -742,7 +742,6 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.5.tgz", "integrity": "sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==", - "dev": true, "license": "MIT", "dependencies": { "eventsource-parser": "^3.0.0" @@ -755,7 +754,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.0.tgz", "integrity": "sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==", - "dev": true, "license": "MIT", "engines": { "node": ">=18.0.0" @@ -807,7 +805,6 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz", "integrity": "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 16" @@ -995,7 +992,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, "license": "ISC" }, "node_modules/lodash": { @@ -1093,7 +1089,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -1145,7 +1140,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1164,7 +1158,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz", "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=16.20.0" @@ -1311,7 +1304,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -1324,7 +1316,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1548,7 +1539,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -1610,7 +1600,6 @@ "version": "3.24.5", "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz", "integrity": "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==", - "dev": true, "license": "ISC", "peerDependencies": { "zod": "^3.24.1" diff --git a/src/tools/channel.ts b/src/tools/channel.ts index 1a406c5..5429bd4 100644 --- a/src/tools/channel.ts +++ b/src/tools/channel.ts @@ -231,20 +231,38 @@ export async function readMessagesHandler( }; } - // Format messages - const formattedMessages = messages.map(msg => ({ - id: msg.id, - content: msg.content, - author: { - id: msg.author.id, - username: msg.author.username, - bot: msg.author.bot - }, - timestamp: msg.createdAt, - attachments: msg.attachments.size, - embeds: msg.embeds.length, - replyTo: msg.reference ? msg.reference.messageId : null - })).sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime()); + // Format messages (include structured embed summaries, not only counts) + const formattedMessages = messages.map(msg => { + const embedSummaries = msg.embeds.map(e => { + const embed: any = e as any; + return { + title: embed.title ?? null, + type: embed.type ?? null, + description: embed.description ?? null, + url: embed.url ?? null, + fields: embed.fields?.map((f: any) => ({ name: f.name, value: f.value, inline: f.inline })) ?? [], + timestamp: embed.timestamp ?? null, + footer: embed.footer ? { text: (embed.footer as any).text ?? null, iconURL: (embed.footer as any).iconURL ?? null } : null, + image: embed.image ? { url: (embed.image as any).url ?? null } : null, + thumbnail: embed.thumbnail ? { url: (embed.thumbnail as any).url ?? null } : null, + author: embed.author ? { name: (embed.author as any).name ?? null, url: (embed.author as any).url ?? null } : null, + }; + }); + + return { + id: msg.id, + content: msg.content, + author: { + id: msg.author.id, + username: msg.author.username, + bot: msg.author.bot + }, + timestamp: msg.createdAt, + attachments: msg.attachments.size, + embeds: embedSummaries, + replyTo: msg.reference ? msg.reference.messageId : null + }; + }).sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime()); return { content: [{