bn-telegram-mcp-server 0.0.1

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 (99) hide show
  1. package/README.md +1031 -0
  2. package/dist/debug-middleware.d.ts +12 -0
  3. package/dist/debug-middleware.d.ts.map +1 -0
  4. package/dist/debug-middleware.js +36 -0
  5. package/dist/debug-middleware.js.map +1 -0
  6. package/dist/encryption.d.ts +11 -0
  7. package/dist/encryption.d.ts.map +1 -0
  8. package/dist/encryption.js +26 -0
  9. package/dist/encryption.js.map +1 -0
  10. package/dist/helpers.d.ts +27 -0
  11. package/dist/helpers.d.ts.map +1 -0
  12. package/dist/helpers.js +103 -0
  13. package/dist/helpers.js.map +1 -0
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +176 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/logger.d.ts +29 -0
  19. package/dist/logger.d.ts.map +1 -0
  20. package/dist/logger.js +114 -0
  21. package/dist/logger.js.map +1 -0
  22. package/dist/request-context.d.ts +24 -0
  23. package/dist/request-context.d.ts.map +1 -0
  24. package/dist/request-context.js +32 -0
  25. package/dist/request-context.js.map +1 -0
  26. package/dist/resolvers.d.ts +36 -0
  27. package/dist/resolvers.d.ts.map +1 -0
  28. package/dist/resolvers.js +252 -0
  29. package/dist/resolvers.js.map +1 -0
  30. package/dist/schemas.d.ts +150 -0
  31. package/dist/schemas.d.ts.map +1 -0
  32. package/dist/schemas.js +216 -0
  33. package/dist/schemas.js.map +1 -0
  34. package/dist/telegram-client.d.ts +19 -0
  35. package/dist/telegram-client.d.ts.map +1 -0
  36. package/dist/telegram-client.js +112 -0
  37. package/dist/telegram-client.js.map +1 -0
  38. package/dist/tool-loader.d.ts +31 -0
  39. package/dist/tool-loader.d.ts.map +1 -0
  40. package/dist/tool-loader.js +121 -0
  41. package/dist/tool-loader.js.map +1 -0
  42. package/dist/tool-registry.d.ts +47 -0
  43. package/dist/tool-registry.d.ts.map +1 -0
  44. package/dist/tool-registry.js +58 -0
  45. package/dist/tool-registry.js.map +1 -0
  46. package/dist/tools/getChat.d.ts +28 -0
  47. package/dist/tools/getChat.d.ts.map +1 -0
  48. package/dist/tools/getChat.js +69 -0
  49. package/dist/tools/getChat.js.map +1 -0
  50. package/dist/tools/getChatMembers.d.ts +34 -0
  51. package/dist/tools/getChatMembers.d.ts.map +1 -0
  52. package/dist/tools/getChatMembers.js +150 -0
  53. package/dist/tools/getChatMembers.js.map +1 -0
  54. package/dist/tools/getContacts.d.ts +28 -0
  55. package/dist/tools/getContacts.d.ts.map +1 -0
  56. package/dist/tools/getContacts.js +73 -0
  57. package/dist/tools/getContacts.js.map +1 -0
  58. package/dist/tools/getFile.d.ts +21 -0
  59. package/dist/tools/getFile.d.ts.map +1 -0
  60. package/dist/tools/getFile.js +33 -0
  61. package/dist/tools/getFile.js.map +1 -0
  62. package/dist/tools/getGroup.d.ts +27 -0
  63. package/dist/tools/getGroup.d.ts.map +1 -0
  64. package/dist/tools/getGroup.js +100 -0
  65. package/dist/tools/getGroup.js.map +1 -0
  66. package/dist/tools/getMe.d.ts +17 -0
  67. package/dist/tools/getMe.d.ts.map +1 -0
  68. package/dist/tools/getMe.js +20 -0
  69. package/dist/tools/getMe.js.map +1 -0
  70. package/dist/tools/getMessageContext.d.ts +21 -0
  71. package/dist/tools/getMessageContext.d.ts.map +1 -0
  72. package/dist/tools/getMessageContext.js +164 -0
  73. package/dist/tools/getMessageContext.js.map +1 -0
  74. package/dist/tools/getMessages.d.ts +38 -0
  75. package/dist/tools/getMessages.d.ts.map +1 -0
  76. package/dist/tools/getMessages.js +123 -0
  77. package/dist/tools/getMessages.js.map +1 -0
  78. package/dist/tools/getUser.d.ts +22 -0
  79. package/dist/tools/getUser.d.ts.map +1 -0
  80. package/dist/tools/getUser.js +38 -0
  81. package/dist/tools/getUser.js.map +1 -0
  82. package/dist/tools/index.d.ts +11 -0
  83. package/dist/tools/index.d.ts.map +1 -0
  84. package/dist/tools/index.js +12 -0
  85. package/dist/tools/index.js.map +1 -0
  86. package/dist/tools/sendMessage.d.ts +39 -0
  87. package/dist/tools/sendMessage.d.ts.map +1 -0
  88. package/dist/tools/sendMessage.js +116 -0
  89. package/dist/tools/sendMessage.js.map +1 -0
  90. package/dist/transformers.d.ts +133 -0
  91. package/dist/transformers.d.ts.map +1 -0
  92. package/dist/transformers.js +335 -0
  93. package/dist/transformers.js.map +1 -0
  94. package/dist/types.d.ts +55 -0
  95. package/dist/types.d.ts.map +1 -0
  96. package/dist/types.js +2 -0
  97. package/dist/types.js.map +1 -0
  98. package/package.json +45 -0
  99. package/tools.json +252 -0
@@ -0,0 +1,20 @@
1
+ import { withClient } from "../helpers.js";
2
+ import { transformUser } from "../transformers.js";
3
+ /**
4
+ * Get information about the current Telegram user (the authenticated user)
5
+ *
6
+ * Returns a simplified user profile with:
7
+ * - id: User's numeric ID
8
+ * - name: Full name
9
+ * - username: @username if set
10
+ * - phone: Phone number if visible
11
+ * - status: Online status (e.g., "online", "last seen 2 hours ago")
12
+ * - is_premium: Whether user has Telegram Premium
13
+ */
14
+ export async function getMe(req, _args) {
15
+ return withClient(req, async (client) => {
16
+ const result = await client.invoke({ _: "getMe" });
17
+ return transformUser(result);
18
+ });
19
+ }
20
+ //# sourceMappingURL=getMe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMe.js","sourceRoot":"","sources":["../../src/tools/getMe.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAwB,MAAM,oBAAoB,CAAC;AAEzE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,GAAY,EACZ,KAAkC;IAElC,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Request } from "express";
2
+ import type { z } from "zod";
3
+ import type { GetMessageContextSchema } from "../schemas.js";
4
+ import { type TransformedMessageContextResult } from "../transformers.js";
5
+ /**
6
+ * Get message context - fetches surrounding messages for better understanding
7
+ *
8
+ * Modes:
9
+ * - mode="message_id": Get context around a specific message ID
10
+ * - mode="search": Search for messages and get context around each match
11
+ *
12
+ * Parameters:
13
+ * - chat: Chat identifier (required for message_id mode, optional for search)
14
+ * - mode: "message_id" | "search" (default: "message_id")
15
+ * - message_id: (message_id mode) Target message ID
16
+ * - query: (search mode) Search query text
17
+ * - search_limit: (search mode) Max results to get context for (default: 5)
18
+ * - context_count: Messages to fetch before AND after target (default: 5)
19
+ */
20
+ export declare function getMessageContext(req: Request, args: z.infer<typeof GetMessageContextSchema>): Promise<TransformedMessageContextResult>;
21
+ //# sourceMappingURL=getMessageContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMessageContext.d.ts","sourceRoot":"","sources":["../../src/tools/getMessageContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,EAIL,KAAK,+BAA+B,EACrC,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAC5C,OAAO,CAAC,+BAA+B,CAAC,CA2M1C"}
@@ -0,0 +1,164 @@
1
+ import { withClient } from "../helpers.js";
2
+ import { resolveChat } from "../resolvers.js";
3
+ import { transformMessageContext, transformMessageContextResult, } from "../transformers.js";
4
+ /**
5
+ * Get message context - fetches surrounding messages for better understanding
6
+ *
7
+ * Modes:
8
+ * - mode="message_id": Get context around a specific message ID
9
+ * - mode="search": Search for messages and get context around each match
10
+ *
11
+ * Parameters:
12
+ * - chat: Chat identifier (required for message_id mode, optional for search)
13
+ * - mode: "message_id" | "search" (default: "message_id")
14
+ * - message_id: (message_id mode) Target message ID
15
+ * - query: (search mode) Search query text
16
+ * - search_limit: (search mode) Max results to get context for (default: 5)
17
+ * - context_count: Messages to fetch before AND after target (default: 5)
18
+ */
19
+ export async function getMessageContext(req, args) {
20
+ return withClient(req, async (client) => {
21
+ const mode = args.mode ?? "message_id";
22
+ const contextCount = args.context_count ?? 5;
23
+ // Load chats first
24
+ await client.invoke({
25
+ _: "loadChats",
26
+ chat_list: { _: "chatListMain" },
27
+ limit: 100,
28
+ });
29
+ // Helper function to get context around a single message
30
+ async function getContextForMessage(chatId, messageId, chatTitle) {
31
+ // Get the target message first
32
+ const targetResult = (await client.invoke({
33
+ _: "getMessages",
34
+ chat_id: chatId,
35
+ message_ids: [messageId],
36
+ }));
37
+ const targetMessage = targetResult.messages?.[0];
38
+ if (!targetMessage) {
39
+ throw new Error(`Message ${messageId} not found in chat ${chatId}`);
40
+ }
41
+ // Get messages BEFORE the target (older messages)
42
+ // offset=0 starts from the message, returns in reverse chronological order
43
+ const beforeResult = (await client.invoke({
44
+ _: "getChatHistory",
45
+ chat_id: chatId,
46
+ from_message_id: messageId,
47
+ offset: 0,
48
+ limit: contextCount + 1, // +1 because it includes the target message
49
+ only_local: false,
50
+ }));
51
+ // Get messages AFTER the target (newer messages)
52
+ // offset=-N gets N messages newer than from_message_id
53
+ const afterResult = (await client.invoke({
54
+ _: "getChatHistory",
55
+ chat_id: chatId,
56
+ from_message_id: messageId,
57
+ offset: -contextCount,
58
+ limit: contextCount,
59
+ only_local: false,
60
+ }));
61
+ // Process before messages (skip the first one as it's the target itself)
62
+ // Messages are returned newest first, so we reverse to get chronological order
63
+ const messagesBefore = (beforeResult.messages ?? [])
64
+ .slice(1) // Skip target message
65
+ .reverse(); // Reverse to get chronological order (oldest first)
66
+ // Process after messages (already in reverse chronological order, newest first)
67
+ // Filter out the target message (it may be included due to offset behavior)
68
+ // Then reverse to get chronological order
69
+ const messagesAfter = (afterResult.messages ?? [])
70
+ .filter((m) => m.id !== messageId) // Filter out target message
71
+ .reverse(); // Reverse to get chronological order
72
+ return transformMessageContext(targetMessage, messagesBefore, messagesAfter, contextCount, chatId, chatTitle);
73
+ }
74
+ // Handle message_id mode
75
+ if (mode === "message_id") {
76
+ if (args.message_id === undefined) {
77
+ throw new Error('message_id is required for mode="message_id". Provide a message ID.');
78
+ }
79
+ if (args.chat === undefined) {
80
+ throw new Error('chat is required for mode="message_id". Provide a chat ID or name.');
81
+ }
82
+ const chatId = await resolveChat(client, args.chat);
83
+ // Get chat info for title
84
+ const chatInfo = (await client.invoke({
85
+ _: "getChat",
86
+ chat_id: chatId,
87
+ }));
88
+ const context = await getContextForMessage(chatId, args.message_id, chatInfo.title);
89
+ return transformMessageContextResult([context], 1);
90
+ }
91
+ // Handle search mode
92
+ if (mode === "search") {
93
+ const query = args.query;
94
+ if (!query) {
95
+ throw new Error('query is required for mode="search". Provide a search query.');
96
+ }
97
+ const searchLimit = args.search_limit ?? 5;
98
+ const contexts = [];
99
+ if (args.chat !== undefined) {
100
+ // Search in specific chat
101
+ const chatId = await resolveChat(client, args.chat);
102
+ const chatInfo = (await client.invoke({
103
+ _: "getChat",
104
+ chat_id: chatId,
105
+ }));
106
+ const searchResult = (await client.invoke({
107
+ _: "searchChatMessages",
108
+ chat_id: chatId,
109
+ query: query,
110
+ from_message_id: 0,
111
+ offset: 0,
112
+ limit: searchLimit,
113
+ filter: { _: "searchMessagesFilterEmpty" },
114
+ }));
115
+ // Get context for each search result
116
+ for (const message of searchResult.messages ?? []) {
117
+ try {
118
+ const context = await getContextForMessage(chatId, message.id, chatInfo.title);
119
+ contexts.push(context);
120
+ }
121
+ catch {
122
+ // Skip messages that can't be found
123
+ }
124
+ }
125
+ return transformMessageContextResult(contexts, searchResult.total_count, query);
126
+ }
127
+ else {
128
+ // Global search across all chats
129
+ const searchResult = (await client.invoke({
130
+ _: "searchMessages",
131
+ chat_list: { _: "chatListMain" },
132
+ query: query,
133
+ offset: "",
134
+ limit: searchLimit,
135
+ filter: { _: "searchMessagesFilterEmpty" },
136
+ min_date: 0,
137
+ max_date: 0,
138
+ }));
139
+ // Get context for each search result (may be from different chats)
140
+ const chatTitleCache = new Map();
141
+ for (const message of searchResult.messages ?? []) {
142
+ try {
143
+ // Get chat title if not cached
144
+ if (!chatTitleCache.has(message.chat_id)) {
145
+ const chatInfo = (await client.invoke({
146
+ _: "getChat",
147
+ chat_id: message.chat_id,
148
+ }));
149
+ chatTitleCache.set(message.chat_id, chatInfo.title ?? "");
150
+ }
151
+ const context = await getContextForMessage(message.chat_id, message.id, chatTitleCache.get(message.chat_id));
152
+ contexts.push(context);
153
+ }
154
+ catch {
155
+ // Skip messages that can't be found
156
+ }
157
+ }
158
+ return transformMessageContextResult(contexts, searchResult.total_count, query);
159
+ }
160
+ }
161
+ throw new Error(`Unknown mode: ${mode}`);
162
+ });
163
+ }
164
+ //# sourceMappingURL=getMessageContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMessageContext.js","sourceRoot":"","sources":["../../src/tools/getMessageContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Request } from "express";
2
+ import type { z } from "zod";
3
+ import type { GetMessagesSchema } from "../schemas.js";
4
+ import { type TransformedMessage, type TransformedMessageHistory, type TransformedSearchResult } from "../transformers.js";
5
+ type GetMessagesResult = TransformedMessageHistory | {
6
+ messages: TransformedMessage[];
7
+ count: number;
8
+ chat_title?: string;
9
+ } | TransformedSearchResult;
10
+ /**
11
+ * Get messages from a chat - supports history, specific IDs, or search
12
+ *
13
+ * Modes:
14
+ * - mode="history" (default): Get paginated message history from a chat
15
+ * - mode="specific": Get specific messages by their IDs
16
+ * - mode="search": Search for messages by text content
17
+ *
18
+ * Parameters:
19
+ * - chat: Chat identifier (required for "history" and "specific" modes, optional for "search")
20
+ * - mode: "history" | "specific" | "search" (default: "history")
21
+ *
22
+ * History mode parameters:
23
+ * - from_message_id: Start from this message (0 = latest)
24
+ * - offset: Pagination offset
25
+ * - limit: Max messages to return (default: 50, max: 100)
26
+ * - only_local: Only return cached messages
27
+ *
28
+ * Specific mode parameters:
29
+ * - message_ids: Array of message IDs to retrieve
30
+ *
31
+ * Search mode parameters:
32
+ * - query: Search text
33
+ * - offset: Pagination offset
34
+ * - limit: Max results (default: 50)
35
+ */
36
+ export declare function getMessages(req: Request, args: z.infer<typeof GetMessagesSchema>): Promise<GetMessagesResult>;
37
+ export {};
38
+ //# sourceMappingURL=getMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMessages.d.ts","sourceRoot":"","sources":["../../src/tools/getMessages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,KAAK,iBAAiB,GAClB,yBAAyB,GACzB;IAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACtE,uBAAuB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACtC,OAAO,CAAC,iBAAiB,CAAC,CA0H5B"}
@@ -0,0 +1,123 @@
1
+ import { withClient } from "../helpers.js";
2
+ import { resolveChat } from "../resolvers.js";
3
+ import { transformMessage, transformMessageHistory, transformSearchResults, } from "../transformers.js";
4
+ /**
5
+ * Get messages from a chat - supports history, specific IDs, or search
6
+ *
7
+ * Modes:
8
+ * - mode="history" (default): Get paginated message history from a chat
9
+ * - mode="specific": Get specific messages by their IDs
10
+ * - mode="search": Search for messages by text content
11
+ *
12
+ * Parameters:
13
+ * - chat: Chat identifier (required for "history" and "specific" modes, optional for "search")
14
+ * - mode: "history" | "specific" | "search" (default: "history")
15
+ *
16
+ * History mode parameters:
17
+ * - from_message_id: Start from this message (0 = latest)
18
+ * - offset: Pagination offset
19
+ * - limit: Max messages to return (default: 50, max: 100)
20
+ * - only_local: Only return cached messages
21
+ *
22
+ * Specific mode parameters:
23
+ * - message_ids: Array of message IDs to retrieve
24
+ *
25
+ * Search mode parameters:
26
+ * - query: Search text
27
+ * - offset: Pagination offset
28
+ * - limit: Max results (default: 50)
29
+ */
30
+ export async function getMessages(req, args) {
31
+ return withClient(req, async (client) => {
32
+ const mode = args.mode ?? "history";
33
+ // Load chats first
34
+ await client.invoke({
35
+ _: "loadChats",
36
+ chat_list: { _: "chatListMain" },
37
+ limit: 100,
38
+ });
39
+ // Handle search mode (can be global or chat-specific)
40
+ if (mode === "search") {
41
+ const query = args.query ?? "";
42
+ const limit = args.limit ?? 50;
43
+ const nextOffset = args.next_offset ?? "";
44
+ if (args.chat !== undefined) {
45
+ // Search in specific chat using searchChatMessages
46
+ // This uses from_message_id for pagination (different from global search)
47
+ const chatId = await resolveChat(client, args.chat);
48
+ const result = await client.invoke({
49
+ _: "searchChatMessages",
50
+ chat_id: chatId,
51
+ query: query,
52
+ from_message_id: args.from_message_id ?? 0,
53
+ offset: 0,
54
+ limit: limit,
55
+ filter: { _: "searchMessagesFilterEmpty" },
56
+ });
57
+ const messages = result;
58
+ // For chat search, next_offset is based on last message ID
59
+ const lastMessage = messages.messages?.[messages.messages.length - 1];
60
+ const chatNextOffset = lastMessage?.id ? String(lastMessage.id) : "";
61
+ return transformSearchResults({
62
+ messages: messages.messages,
63
+ total_count: messages.total_count,
64
+ next_offset: chatNextOffset,
65
+ }, query);
66
+ }
67
+ else {
68
+ // Global search across all chats using cursor-based pagination
69
+ const result = await client.invoke({
70
+ _: "searchMessages",
71
+ chat_list: { _: "chatListMain" },
72
+ query: query,
73
+ offset: nextOffset,
74
+ limit: limit,
75
+ filter: { _: "searchMessagesFilterEmpty" },
76
+ min_date: 0,
77
+ max_date: 0,
78
+ });
79
+ return transformSearchResults(result, query);
80
+ }
81
+ }
82
+ // For history and specific modes, chat is required
83
+ if (args.chat === undefined) {
84
+ throw new Error(`Chat is required for mode="${mode}". Provide a chat ID or name.`);
85
+ }
86
+ const chatId = await resolveChat(client, args.chat);
87
+ // Get chat info for title
88
+ const chatInfo = (await client.invoke({
89
+ _: "getChat",
90
+ chat_id: chatId,
91
+ }));
92
+ if (mode === "specific") {
93
+ // Get specific messages by IDs
94
+ if (!args.message_ids || args.message_ids.length === 0) {
95
+ throw new Error('message_ids is required for mode="specific". Provide an array of message IDs.');
96
+ }
97
+ const result = (await client.invoke({
98
+ _: "getMessages",
99
+ chat_id: chatId,
100
+ message_ids: args.message_ids,
101
+ }));
102
+ const messages = (result.messages ?? [])
103
+ .filter((m) => m !== null)
104
+ .map((m) => transformMessage(m));
105
+ return {
106
+ messages,
107
+ count: messages.length,
108
+ chat_title: chatInfo.title,
109
+ };
110
+ }
111
+ // Default: history mode
112
+ const result = (await client.invoke({
113
+ _: "getChatHistory",
114
+ chat_id: chatId,
115
+ from_message_id: args.from_message_id ?? 0,
116
+ offset: args.offset ?? 0,
117
+ limit: args.limit ?? 50,
118
+ only_local: args.only_local ?? false,
119
+ }));
120
+ return transformMessageHistory(result.messages ?? [], result.total_count, chatInfo.title);
121
+ });
122
+ }
123
+ //# sourceMappingURL=getMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMessages.js","sourceRoot":"","sources":["../../src/tools/getMessages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Request } from "express";
2
+ import type { z } from "zod";
3
+ import type { GetUserSchema } from "../schemas.js";
4
+ import { type TransformedUser } from "../transformers.js";
5
+ /**
6
+ * Get information about a user
7
+ *
8
+ * Accepts:
9
+ * - user: User identifier - can be:
10
+ * - Numeric ID (e.g., 8572674464)
11
+ * - Username (e.g., "@johndoe")
12
+ * - Name to search (e.g., "John Doe")
13
+ *
14
+ * Returns simplified user info with:
15
+ * - id: User's numeric ID
16
+ * - name: Full name
17
+ * - username: @username if set
18
+ * - phone: Phone number if visible
19
+ * - status: Online status (e.g., "online", "last seen 2 hours ago")
20
+ */
21
+ export declare function getUser(req: Request, args: z.infer<typeof GetUserSchema>): Promise<TransformedUser>;
22
+ //# sourceMappingURL=getUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUser.d.ts","sourceRoot":"","sources":["../../src/tools/getUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,CAoB1B"}
@@ -0,0 +1,38 @@
1
+ import { withClient } from "../helpers.js";
2
+ import { resolveUser } from "../resolvers.js";
3
+ import { transformUser } from "../transformers.js";
4
+ /**
5
+ * Get information about a user
6
+ *
7
+ * Accepts:
8
+ * - user: User identifier - can be:
9
+ * - Numeric ID (e.g., 8572674464)
10
+ * - Username (e.g., "@johndoe")
11
+ * - Name to search (e.g., "John Doe")
12
+ *
13
+ * Returns simplified user info with:
14
+ * - id: User's numeric ID
15
+ * - name: Full name
16
+ * - username: @username if set
17
+ * - phone: Phone number if visible
18
+ * - status: Online status (e.g., "online", "last seen 2 hours ago")
19
+ */
20
+ export async function getUser(req, args) {
21
+ return withClient(req, async (client) => {
22
+ // Load chats and contacts first to populate user cache
23
+ await client.invoke({
24
+ _: "loadChats",
25
+ chat_list: { _: "chatListMain" },
26
+ limit: 100,
27
+ });
28
+ await client.invoke({ _: "getContacts" });
29
+ // Resolve user identifier
30
+ const userId = await resolveUser(client, args.user);
31
+ const result = await client.invoke({
32
+ _: "getUser",
33
+ user_id: userId,
34
+ });
35
+ return transformUser(result);
36
+ });
37
+ }
38
+ //# sourceMappingURL=getUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUser.js","sourceRoot":"","sources":["../../src/tools/getUser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAwB,MAAM,oBAAoB,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAY,EACZ,IAAmC;IAEnC,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACtC,uDAAuD;QACvD,MAAM,MAAM,CAAC,MAAM,CAAC;YAClB,CAAC,EAAE,WAAW;YACd,SAAS,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE;YAChC,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;QAE1C,0BAA0B;QAC1B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACjC,CAAC,EAAE,SAAS;YACZ,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { getMe } from "./getMe.js";
2
+ export { getChat } from "./getChat.js";
3
+ export { getMessages } from "./getMessages.js";
4
+ export { sendMessage } from "./sendMessage.js";
5
+ export { getUser } from "./getUser.js";
6
+ export { getContacts } from "./getContacts.js";
7
+ export { getFile } from "./getFile.js";
8
+ export { getGroup } from "./getGroup.js";
9
+ export { getChatMembers } from "./getChatMembers.js";
10
+ export { getMessageContext } from "./getMessageContext.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,12 @@
1
+ // Consolidated MCP Tools (10 tools total)
2
+ export { getMe } from "./getMe.js";
3
+ export { getChat } from "./getChat.js";
4
+ export { getMessages } from "./getMessages.js";
5
+ export { sendMessage } from "./sendMessage.js";
6
+ export { getUser } from "./getUser.js";
7
+ export { getContacts } from "./getContacts.js";
8
+ export { getFile } from "./getFile.js";
9
+ export { getGroup } from "./getGroup.js";
10
+ export { getChatMembers } from "./getChatMembers.js";
11
+ export { getMessageContext } from "./getMessageContext.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { Request } from "express";
2
+ import type { z } from "zod";
3
+ import type { SendMessageSchema } from "../schemas.js";
4
+ import { type TransformedMessage } from "../transformers.js";
5
+ type SendMessageResult = TransformedMessage | {
6
+ forwarded: TransformedMessage[];
7
+ count: number;
8
+ };
9
+ /**
10
+ * Send or forward messages to a chat
11
+ *
12
+ * Actions:
13
+ * - action="send" (default): Compose and send a new text message
14
+ * - action="forward": Forward existing messages from another chat
15
+ *
16
+ * Parameters:
17
+ * - chat: Target chat (ID or name like "Gong Zhe", "Family Group")
18
+ * - action: "send" | "forward" (default: "send")
19
+ *
20
+ * Send action parameters:
21
+ * - text: Message content
22
+ * - reply_to_message_id: Optional - reply to specific message
23
+ *
24
+ * Forward action parameters:
25
+ * - from_chat: Source chat to forward from
26
+ * - message_ids: Array of message IDs to forward
27
+ * - send_copy: Send as copy without "Forwarded from" header
28
+ * - remove_caption: Remove media captions when forwarding
29
+ *
30
+ * Returns (send):
31
+ * - The sent message with id, content, date, is_outgoing
32
+ *
33
+ * Returns (forward):
34
+ * - forwarded: Array of forwarded messages
35
+ * - count: Number of messages forwarded
36
+ */
37
+ export declare function sendMessage(req: Request, args: z.infer<typeof SendMessageSchema>): Promise<SendMessageResult>;
38
+ export {};
39
+ //# sourceMappingURL=sendMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendMessage.d.ts","sourceRoot":"","sources":["../../src/tools/sendMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,KAAK,iBAAiB,GAClB,kBAAkB,GAClB;IAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACtC,OAAO,CAAC,iBAAiB,CAAC,CA4G5B"}