@xiedada/nodemw-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.
- package/LICENSE +166 -0
- package/README.md +145 -0
- package/dist/common/nodemwBot.d.ts +21 -0
- package/dist/common/nodemwBot.d.ts.map +1 -0
- package/dist/common/nodemwBot.js +62 -0
- package/dist/common/nodemwBot.js.map +1 -0
- package/dist/common/utils.d.ts +7 -0
- package/dist/common/utils.d.ts.map +1 -0
- package/dist/common/utils.js +38 -0
- package/dist/common/utils.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/editing/add-flow-topic.d.ts +3 -0
- package/dist/tools/editing/add-flow-topic.d.ts.map +1 -0
- package/dist/tools/editing/add-flow-topic.js +25 -0
- package/dist/tools/editing/add-flow-topic.js.map +1 -0
- package/dist/tools/editing/append.d.ts +3 -0
- package/dist/tools/editing/append.d.ts.map +1 -0
- package/dist/tools/editing/append.js +26 -0
- package/dist/tools/editing/append.js.map +1 -0
- package/dist/tools/editing/create-account.d.ts +3 -0
- package/dist/tools/editing/create-account.d.ts.map +1 -0
- package/dist/tools/editing/create-account.js +24 -0
- package/dist/tools/editing/create-account.js.map +1 -0
- package/dist/tools/editing/delete.d.ts +3 -0
- package/dist/tools/editing/delete.d.ts.map +1 -0
- package/dist/tools/editing/delete.js +25 -0
- package/dist/tools/editing/delete.js.map +1 -0
- package/dist/tools/editing/edit.d.ts +3 -0
- package/dist/tools/editing/edit.d.ts.map +1 -0
- package/dist/tools/editing/edit.js +27 -0
- package/dist/tools/editing/edit.js.map +1 -0
- package/dist/tools/editing/move.d.ts +3 -0
- package/dist/tools/editing/move.d.ts.map +1 -0
- package/dist/tools/editing/move.js +26 -0
- package/dist/tools/editing/move.js.map +1 -0
- package/dist/tools/editing/prepend.d.ts +3 -0
- package/dist/tools/editing/prepend.d.ts.map +1 -0
- package/dist/tools/editing/prepend.js +26 -0
- package/dist/tools/editing/prepend.js.map +1 -0
- package/dist/tools/editing/protect.d.ts +3 -0
- package/dist/tools/editing/protect.d.ts.map +1 -0
- package/dist/tools/editing/protect.js +37 -0
- package/dist/tools/editing/protect.js.map +1 -0
- package/dist/tools/editing/purge.d.ts +3 -0
- package/dist/tools/editing/purge.d.ts.map +1 -0
- package/dist/tools/editing/purge.js +23 -0
- package/dist/tools/editing/purge.js.map +1 -0
- package/dist/tools/editing/send-email.d.ts +3 -0
- package/dist/tools/editing/send-email.d.ts.map +1 -0
- package/dist/tools/editing/send-email.js +25 -0
- package/dist/tools/editing/send-email.js.map +1 -0
- package/dist/tools/editing/upload-by-url.d.ts +3 -0
- package/dist/tools/editing/upload-by-url.d.ts.map +1 -0
- package/dist/tools/editing/upload-by-url.js +26 -0
- package/dist/tools/editing/upload-by-url.js.map +1 -0
- package/dist/tools/editing/upload.d.ts +3 -0
- package/dist/tools/editing/upload.d.ts.map +1 -0
- package/dist/tools/editing/upload.js +27 -0
- package/dist/tools/editing/upload.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +105 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/ro/expand-templates.d.ts +3 -0
- package/dist/tools/ro/expand-templates.d.ts.map +1 -0
- package/dist/tools/ro/expand-templates.js +28 -0
- package/dist/tools/ro/expand-templates.js.map +1 -0
- package/dist/tools/ro/get-all-pages.d.ts +3 -0
- package/dist/tools/ro/get-all-pages.d.ts.map +1 -0
- package/dist/tools/ro/get-all-pages.js +30 -0
- package/dist/tools/ro/get-all-pages.js.map +1 -0
- package/dist/tools/ro/get-article-categories.d.ts +3 -0
- package/dist/tools/ro/get-article-categories.d.ts.map +1 -0
- package/dist/tools/ro/get-article-categories.js +27 -0
- package/dist/tools/ro/get-article-categories.js.map +1 -0
- package/dist/tools/ro/get-article-info.d.ts +3 -0
- package/dist/tools/ro/get-article-info.d.ts.map +1 -0
- package/dist/tools/ro/get-article-info.js +35 -0
- package/dist/tools/ro/get-article-info.js.map +1 -0
- package/dist/tools/ro/get-article-properties.d.ts +3 -0
- package/dist/tools/ro/get-article-properties.d.ts.map +1 -0
- package/dist/tools/ro/get-article-properties.js +26 -0
- package/dist/tools/ro/get-article-properties.js.map +1 -0
- package/dist/tools/ro/get-article-revisions.d.ts +3 -0
- package/dist/tools/ro/get-article-revisions.d.ts.map +1 -0
- package/dist/tools/ro/get-article-revisions.js +29 -0
- package/dist/tools/ro/get-article-revisions.js.map +1 -0
- package/dist/tools/ro/get-article.d.ts +3 -0
- package/dist/tools/ro/get-article.d.ts.map +1 -0
- package/dist/tools/ro/get-article.js +54 -0
- package/dist/tools/ro/get-article.js.map +1 -0
- package/dist/tools/ro/get-backlinks.d.ts +3 -0
- package/dist/tools/ro/get-backlinks.d.ts.map +1 -0
- package/dist/tools/ro/get-backlinks.js +27 -0
- package/dist/tools/ro/get-backlinks.js.map +1 -0
- package/dist/tools/ro/get-categories.d.ts +3 -0
- package/dist/tools/ro/get-categories.d.ts.map +1 -0
- package/dist/tools/ro/get-categories.js +27 -0
- package/dist/tools/ro/get-categories.js.map +1 -0
- package/dist/tools/ro/get-external-links.d.ts +3 -0
- package/dist/tools/ro/get-external-links.d.ts.map +1 -0
- package/dist/tools/ro/get-external-links.js +27 -0
- package/dist/tools/ro/get-external-links.js.map +1 -0
- package/dist/tools/ro/get-image-info.d.ts +3 -0
- package/dist/tools/ro/get-image-info.d.ts.map +1 -0
- package/dist/tools/ro/get-image-info.js +29 -0
- package/dist/tools/ro/get-image-info.js.map +1 -0
- package/dist/tools/ro/get-image-usage.d.ts +3 -0
- package/dist/tools/ro/get-image-usage.d.ts.map +1 -0
- package/dist/tools/ro/get-image-usage.js +27 -0
- package/dist/tools/ro/get-image-usage.js.map +1 -0
- package/dist/tools/ro/get-images-from-article.d.ts +3 -0
- package/dist/tools/ro/get-images-from-article.d.ts.map +1 -0
- package/dist/tools/ro/get-images-from-article.js +27 -0
- package/dist/tools/ro/get-images-from-article.js.map +1 -0
- package/dist/tools/ro/get-images.d.ts +3 -0
- package/dist/tools/ro/get-images.d.ts.map +1 -0
- package/dist/tools/ro/get-images.js +43 -0
- package/dist/tools/ro/get-images.js.map +1 -0
- package/dist/tools/ro/get-log.d.ts +3 -0
- package/dist/tools/ro/get-log.d.ts.map +1 -0
- package/dist/tools/ro/get-log.js +46 -0
- package/dist/tools/ro/get-log.js.map +1 -0
- package/dist/tools/ro/get-mediawiki-version.d.ts +3 -0
- package/dist/tools/ro/get-mediawiki-version.d.ts.map +1 -0
- package/dist/tools/ro/get-mediawiki-version.js +20 -0
- package/dist/tools/ro/get-mediawiki-version.js.map +1 -0
- package/dist/tools/ro/get-pages-by-prefix.d.ts +3 -0
- package/dist/tools/ro/get-pages-by-prefix.d.ts.map +1 -0
- package/dist/tools/ro/get-pages-by-prefix.js +27 -0
- package/dist/tools/ro/get-pages-by-prefix.js.map +1 -0
- package/dist/tools/ro/get-pages-in-category.d.ts +3 -0
- package/dist/tools/ro/get-pages-in-category.d.ts.map +1 -0
- package/dist/tools/ro/get-pages-in-category.js +29 -0
- package/dist/tools/ro/get-pages-in-category.js.map +1 -0
- package/dist/tools/ro/get-pages-in-namespace.d.ts +3 -0
- package/dist/tools/ro/get-pages-in-namespace.d.ts.map +1 -0
- package/dist/tools/ro/get-pages-in-namespace.js +27 -0
- package/dist/tools/ro/get-pages-in-namespace.js.map +1 -0
- package/dist/tools/ro/get-pages-transcluding.d.ts +3 -0
- package/dist/tools/ro/get-pages-transcluding.d.ts.map +1 -0
- package/dist/tools/ro/get-pages-transcluding.js +32 -0
- package/dist/tools/ro/get-pages-transcluding.js.map +1 -0
- package/dist/tools/ro/get-query-page.d.ts +3 -0
- package/dist/tools/ro/get-query-page.d.ts.map +1 -0
- package/dist/tools/ro/get-query-page.js +27 -0
- package/dist/tools/ro/get-query-page.js.map +1 -0
- package/dist/tools/ro/get-recent-changes.d.ts +3 -0
- package/dist/tools/ro/get-recent-changes.d.ts.map +1 -0
- package/dist/tools/ro/get-recent-changes.js +43 -0
- package/dist/tools/ro/get-recent-changes.js.map +1 -0
- package/dist/tools/ro/get-site-info.d.ts +3 -0
- package/dist/tools/ro/get-site-info.d.ts.map +1 -0
- package/dist/tools/ro/get-site-info.js +23 -0
- package/dist/tools/ro/get-site-info.js.map +1 -0
- package/dist/tools/ro/get-site-stats.d.ts +3 -0
- package/dist/tools/ro/get-site-stats.d.ts.map +1 -0
- package/dist/tools/ro/get-site-stats.js +20 -0
- package/dist/tools/ro/get-site-stats.js.map +1 -0
- package/dist/tools/ro/get-user-contribs.d.ts +3 -0
- package/dist/tools/ro/get-user-contribs.d.ts.map +1 -0
- package/dist/tools/ro/get-user-contribs.js +39 -0
- package/dist/tools/ro/get-user-contribs.js.map +1 -0
- package/dist/tools/ro/get-users.d.ts +3 -0
- package/dist/tools/ro/get-users.d.ts.map +1 -0
- package/dist/tools/ro/get-users.js +29 -0
- package/dist/tools/ro/get-users.js.map +1 -0
- package/dist/tools/ro/parse.d.ts +3 -0
- package/dist/tools/ro/parse.d.ts.map +1 -0
- package/dist/tools/ro/parse.js +37 -0
- package/dist/tools/ro/parse.js.map +1 -0
- package/dist/tools/ro/search.d.ts +3 -0
- package/dist/tools/ro/search.d.ts.map +1 -0
- package/dist/tools/ro/search.js +32 -0
- package/dist/tools/ro/search.js.map +1 -0
- package/dist/tools/ro/whoami.d.ts +3 -0
- package/dist/tools/ro/whoami.d.ts.map +1 -0
- package/dist/tools/ro/whoami.js +20 -0
- package/dist/tools/ro/whoami.js.map +1 -0
- package/dist/tools/ro/whoare.d.ts +3 -0
- package/dist/tools/ro/whoare.d.ts.map +1 -0
- package/dist/tools/ro/whoare.js +19 -0
- package/dist/tools/ro/whoare.js.map +1 -0
- package/dist/tools/ro/whois.d.ts +3 -0
- package/dist/tools/ro/whois.d.ts.map +1 -0
- package/dist/tools/ro/whois.js +26 -0
- package/dist/tools/ro/whois.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function searchTool(server) {
|
|
5
|
+
return server.tool('search', 'Search for wiki pages by keyword', {
|
|
6
|
+
keyword: z.string().describe('Search keyword'),
|
|
7
|
+
limit: z.number().optional().default(10).describe('Maximum number of results')
|
|
8
|
+
}, {
|
|
9
|
+
title: 'Search',
|
|
10
|
+
readOnlyHint: true,
|
|
11
|
+
destructiveHint: false
|
|
12
|
+
}, async ({ keyword, limit }) => handleSearchTool(keyword, limit));
|
|
13
|
+
}
|
|
14
|
+
async function handleSearchTool(keyword, limit) {
|
|
15
|
+
try {
|
|
16
|
+
const bot = await getBot();
|
|
17
|
+
// nodemw search returns array of results directly
|
|
18
|
+
const results = await promisifyBotMethod(bot, 'search', keyword);
|
|
19
|
+
// Limit results
|
|
20
|
+
const limitedResults = results.slice(0, limit);
|
|
21
|
+
return jsonResult({
|
|
22
|
+
total: results.length,
|
|
23
|
+
limit,
|
|
24
|
+
keyword,
|
|
25
|
+
results: limitedResults
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return errorResult('Failed to search', error);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/ro/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAUhE,MAAM,UAAU,UAAU,CAAE,MAAiB;IAC5C,OAAO,MAAM,CAAC,IAAI,CACjB,QAAQ,EACR,kCAAkC,EAClC;QACC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAE,gBAAgB,CAAE;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAE,EAAE,CAAE,CAAC,QAAQ,CAAE,2BAA2B,CAAE;KAClF,EACD;QACC,KAAK,EAAE,QAAQ;QACf,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAG,EAAE,CAAC,gBAAgB,CAAE,OAAO,EAAE,KAAK,CAAE,CAClE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC9B,OAAe,EACf,KAAa;IAEb,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAE3B,kDAAkD;QAClD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACvC,GAAG,EACH,QAAQ,EACR,OAAO,CACP,CAAC;QAEF,gBAAgB;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAE,CAAC,EAAE,KAAK,CAAE,CAAC;QAEjD,OAAO,UAAU,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,KAAK;YACL,OAAO;YACP,OAAO,EAAE,cAAc;SACvB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,kBAAkB,EAAE,KAAc,CAAC,CAAC;IACxD,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAazF,wBAAgB,UAAU,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAY9D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
2
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
3
|
+
export function whoamiTool(server) {
|
|
4
|
+
return server.tool('whoami', 'Get information about the currently logged in user', {}, {
|
|
5
|
+
title: 'Who am I',
|
|
6
|
+
readOnlyHint: true,
|
|
7
|
+
destructiveHint: false
|
|
8
|
+
}, async () => handleWhoamiTool());
|
|
9
|
+
}
|
|
10
|
+
async function handleWhoamiTool() {
|
|
11
|
+
try {
|
|
12
|
+
const bot = await getBot();
|
|
13
|
+
const userInfo = await promisifyBotMethod(bot, 'whoami');
|
|
14
|
+
return jsonResult(userInfo);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
return errorResult('Failed to get current user info', error);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/tools/ro/whoami.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAUhE,MAAM,UAAU,UAAU,CAAE,MAAiB;IAC5C,OAAO,MAAM,CAAC,IAAI,CACjB,QAAQ,EACR,oDAAoD,EACpD,EAAE,EACF;QACC,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACxC,GAAG,EACH,QAAQ,CACR,CAAC;QAEF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,iCAAiC,EAAE,KAAc,CAAC,CAAC;IACvE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoare.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/whoare.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAKzF,wBAAgB,UAAU,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAU9D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function whoareTool(server) {
|
|
5
|
+
return server.tool('whoare', 'Get information about multiple wiki users', {
|
|
6
|
+
usernames: z.array(z.string()).describe('Array of usernames to query'),
|
|
7
|
+
}, {}, async (params) => handleWhoareTool(params));
|
|
8
|
+
}
|
|
9
|
+
async function handleWhoareTool(params) {
|
|
10
|
+
try {
|
|
11
|
+
const bot = await getBot();
|
|
12
|
+
const users = await promisifyBotMethod(bot, 'whoare', params.usernames);
|
|
13
|
+
return jsonResult(users);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
return errorResult('Failed to get user information', error);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=whoare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoare.js","sourceRoot":"","sources":["../../../src/tools/ro/whoare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,UAAU,CAAE,MAAiB;IAC5C,OAAO,MAAM,CAAC,IAAI,CACjB,QAAQ,EACR,2CAA2C,EAC3C;QACC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAE,CAAC,CAAC,MAAM,EAAE,CAAE,CAAC,QAAQ,CAAE,6BAA6B,CAAE;KAC1E,EACD,EAAE,EACF,KAAK,EAAG,MAAM,EAAG,EAAE,CAAC,gBAAgB,CAAE,MAAM,CAAE,CAC9C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC9B,MAEC;IAED,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAE3B,MAAM,KAAK,GAAG,MAAM,kBAAkB,CACrC,GAAG,EACH,QAAQ,EACR,MAAM,CAAC,SAAS,CAChB,CAAC;QAEF,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,gCAAgC,EAAE,KAAc,CAAC,CAAC;IACtE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whois.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/whois.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAazF,wBAAgB,SAAS,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAc7D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function whoisTool(server) {
|
|
5
|
+
return server.tool('whois', 'Get information about a specific user', {
|
|
6
|
+
username: z.string().describe('Username to look up')
|
|
7
|
+
}, {
|
|
8
|
+
title: 'Whois',
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false
|
|
11
|
+
}, async ({ username }) => handleWhoisTool(username));
|
|
12
|
+
}
|
|
13
|
+
async function handleWhoisTool(username) {
|
|
14
|
+
try {
|
|
15
|
+
const bot = await getBot();
|
|
16
|
+
const userInfo = await promisifyBotMethod(bot, 'whois', username);
|
|
17
|
+
if (userInfo.missing) {
|
|
18
|
+
return errorResult(`User "${username}" not found.`);
|
|
19
|
+
}
|
|
20
|
+
return jsonResult(userInfo);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return errorResult('Failed to get user info', error);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=whois.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whois.js","sourceRoot":"","sources":["../../../src/tools/ro/whois.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAUhE,MAAM,UAAU,SAAS,CAAE,MAAiB;IAC3C,OAAO,MAAM,CAAC,IAAI,CACjB,OAAO,EACP,uCAAuC,EACvC;QACC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KACpD,EACD;QACC,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,QAAQ,EAAE,EAAG,EAAE,CAAC,eAAe,CAAE,QAAQ,CAAE,CACrD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC7B,QAAgB;IAEhB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACxC,GAAG,EACH,OAAO,EACP,QAAQ,CACR,CAAC;QAEF,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,WAAW,CAAC,SAAS,QAAQ,cAAc,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,yBAAyB,EAAE,KAAc,CAAC,CAAC;IAC/D,CAAC;AACF,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xiedada/nodemw-mcp-server",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "MCP server for nodemw - MediaWiki API client",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"nodemw-mcp-server": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsc --watch",
|
|
13
|
+
"lint": "eslint src/**/*.ts",
|
|
14
|
+
"test": "vitest",
|
|
15
|
+
"prepare": "npm run build",
|
|
16
|
+
"debug": "ts-node --inspect-brk dist/index.js",
|
|
17
|
+
"clean": "rimraf dist dist-bundle",
|
|
18
|
+
"clean:bundle": "rimraf dist-bundle",
|
|
19
|
+
"build:single": "node scripts/build-single.js",
|
|
20
|
+
"build:bundle": "npm run build && npm run build:single",
|
|
21
|
+
"build:standalone": "npm run clean:bundle && npm run build:single",
|
|
22
|
+
"build:all": "npm run clean && npm run build && npm run build:single"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"mcp",
|
|
26
|
+
"mediawiki",
|
|
27
|
+
"nodemw",
|
|
28
|
+
"wiki"
|
|
29
|
+
],
|
|
30
|
+
"author": "",
|
|
31
|
+
"license": "LGPL-3.0",
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
34
|
+
"nodemw": "^0.26.0",
|
|
35
|
+
"zod": "^3.23.8"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/node": "^22.0.0",
|
|
39
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
40
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
41
|
+
"esbuild": "^0.24.0",
|
|
42
|
+
"eslint": "^9.0.0",
|
|
43
|
+
"rimraf": "^5.0.5",
|
|
44
|
+
"typescript": "^5.5.0",
|
|
45
|
+
"vitest": "^2.0.0"
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
"dist"
|
|
49
|
+
],
|
|
50
|
+
"engines": {
|
|
51
|
+
"node": ">=18.0.0"
|
|
52
|
+
}
|
|
53
|
+
}
|