nusus-mcp 0.1.1 → 0.2.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/README.md +2 -2
- package/dist/index.js +50 -37
- package/dist/index.js.map +1 -1
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ Node.js 20+ is required. Add this to `claude_desktop_config.json`, then restart
|
|
|
19
19
|
|
|
20
20
|
`npx` downloads the npm package automatically; users do not need to clone this repository. Claude Desktop may start with a limited `PATH`. If it cannot find `npx`, replace `"npx"` with the absolute path printed by `which npx` (macOS/Linux) or `where.exe npx` (Windows).
|
|
21
21
|
|
|
22
|
-
The server uses stdio only and writes protocol messages to stdout. It calls Turath's public API for live tools; `find_books` and `find_authors` use Nusus's bundled offline catalog.
|
|
22
|
+
The server uses stdio only and writes protocol messages to stdout. It supports both legacy MCP clients and clients pinned to protocol revision `2026-07-28`. It calls Turath's public API for live tools; `find_books` and `find_authors` use Nusus's bundled offline catalog.
|
|
23
23
|
|
|
24
24
|
## Tools
|
|
25
25
|
|
|
@@ -35,7 +35,7 @@ Each live search filter accepts at most one ID. `pageId` is Turath's internal pa
|
|
|
35
35
|
|
|
36
36
|
## Development
|
|
37
37
|
|
|
38
|
-
`nusus-mcp` declares the
|
|
38
|
+
`nusus-mcp` is installed independently from the root package and declares the published `nusus` SDK as a runtime dependency. For a release that bumps both packages, publish the root `nusus` package before installing or publishing `nusus-mcp` so npm can resolve the SDK dependency. Then run:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
41
|
cd mcp
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { Server } from "@modelcontextprotocol/
|
|
3
|
-
import {
|
|
4
|
-
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { Server } from "@modelcontextprotocol/server";
|
|
3
|
+
import { serveStdio } from "@modelcontextprotocol/server/stdio";
|
|
5
4
|
import { NususError } from "nusus";
|
|
6
5
|
import { createTurathClient } from "nusus/turath";
|
|
7
|
-
const
|
|
6
|
+
const isInteger = (value) => typeof value === "number" && Number.isInteger(value);
|
|
7
|
+
const isString = (value) => typeof value === "string";
|
|
8
|
+
const positiveInteger = (args, key) => {
|
|
8
9
|
const value = args[key];
|
|
9
|
-
if (value === undefined
|
|
10
|
+
if (value === undefined)
|
|
10
11
|
return undefined;
|
|
11
|
-
if (!
|
|
12
|
+
if (!isInteger(value) || value < 1)
|
|
13
|
+
throw new NususError("INVALID_ARGUMENT", `${key} must be a positive integer`);
|
|
14
|
+
return value;
|
|
15
|
+
};
|
|
16
|
+
const requiredPositiveInteger = (args, key) => {
|
|
17
|
+
const value = positiveInteger(args, key);
|
|
18
|
+
if (value === undefined)
|
|
12
19
|
throw new NususError("INVALID_ARGUMENT", `${key} must be a positive integer`);
|
|
13
20
|
return value;
|
|
14
21
|
};
|
|
@@ -16,17 +23,16 @@ const nonNegativeInteger = (args, key) => {
|
|
|
16
23
|
const value = args[key];
|
|
17
24
|
if (value === undefined)
|
|
18
25
|
return undefined;
|
|
19
|
-
if (!
|
|
26
|
+
if (!isInteger(value) || value < 0)
|
|
20
27
|
throw new NususError("INVALID_ARGUMENT", `${key} must be a non-negative integer`);
|
|
21
28
|
return value;
|
|
22
29
|
};
|
|
23
30
|
const stringArgument = (args, key) => {
|
|
24
31
|
const value = args[key];
|
|
25
|
-
if (
|
|
32
|
+
if (value === undefined || !isString(value))
|
|
26
33
|
throw new NususError("INVALID_ARGUMENT", `${key} must be a string`);
|
|
27
34
|
return value;
|
|
28
35
|
};
|
|
29
|
-
const optional = (values) => Object.fromEntries(Object.entries(values).filter(([, value]) => value !== undefined));
|
|
30
36
|
const baseUrl = process.env.NUSUS_TURATH_BASE_URL;
|
|
31
37
|
const turath = createTurathClient(baseUrl ? { baseUrl } : {});
|
|
32
38
|
const tools = [
|
|
@@ -112,57 +118,64 @@ const runTool = async (name, args) => {
|
|
|
112
118
|
case "find_books": {
|
|
113
119
|
const authorId = positiveInteger(args, "authorId");
|
|
114
120
|
const categoryId = positiveInteger(args, "categoryId");
|
|
115
|
-
return turath.findBooks(stringArgument(args, "query"),
|
|
121
|
+
return turath.findBooks(stringArgument(args, "query"), {
|
|
116
122
|
authorIds: authorId === undefined ? undefined : [authorId],
|
|
117
123
|
categoryIds: categoryId === undefined ? undefined : [categoryId],
|
|
118
124
|
limit: positiveInteger(args, "limit"),
|
|
119
|
-
})
|
|
125
|
+
});
|
|
120
126
|
}
|
|
121
127
|
case "find_authors":
|
|
122
|
-
return turath.findAuthors(stringArgument(args, "query"),
|
|
128
|
+
return turath.findAuthors(stringArgument(args, "query"), { limit: positiveInteger(args, "limit") });
|
|
123
129
|
case "retrieve": {
|
|
124
130
|
const bookId = positiveInteger(args, "bookId");
|
|
125
131
|
const authorId = positiveInteger(args, "authorId");
|
|
126
132
|
const categoryId = positiveInteger(args, "categoryId");
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
scope: Object.keys(scope).length ? scope : undefined,
|
|
133
|
+
const bookIds = bookId === undefined ? undefined : [bookId];
|
|
134
|
+
const authorIds = authorId === undefined ? undefined : [authorId];
|
|
135
|
+
const categoryIds = categoryId === undefined ? undefined : [categoryId];
|
|
136
|
+
const scope = bookIds || authorIds || categoryIds ? { bookIds, authorIds, categoryIds } : undefined;
|
|
137
|
+
return turath.retrieve(stringArgument(args, "query"), {
|
|
138
|
+
scope,
|
|
134
139
|
maxPassages: positiveInteger(args, "maxPassages"),
|
|
135
140
|
maxCharsPerPassage: positiveInteger(args, "maxCharsPerPassage"),
|
|
136
141
|
pagesBefore: nonNegativeInteger(args, "pagesBefore"),
|
|
137
142
|
pagesAfter: nonNegativeInteger(args, "pagesAfter"),
|
|
138
|
-
})
|
|
143
|
+
});
|
|
139
144
|
}
|
|
140
145
|
case "get_context":
|
|
141
|
-
return turath.getContextByPage(
|
|
146
|
+
return turath.getContextByPage(requiredPositiveInteger(args, "bookId"), requiredPositiveInteger(args, "pageId"), {
|
|
142
147
|
pagesBefore: nonNegativeInteger(args, "pagesBefore"),
|
|
143
148
|
pagesAfter: nonNegativeInteger(args, "pagesAfter"),
|
|
144
|
-
})
|
|
149
|
+
});
|
|
145
150
|
case "get_book":
|
|
146
|
-
return turath.getBook(
|
|
151
|
+
return turath.getBook(requiredPositiveInteger(args, "bookId"));
|
|
147
152
|
default:
|
|
148
153
|
throw new NususError("INVALID_ARGUMENT", `Unknown tool: ${name}`);
|
|
149
154
|
}
|
|
150
155
|
};
|
|
151
|
-
const
|
|
152
|
-
server
|
|
153
|
-
server.setRequestHandler(
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
156
|
+
const createServer = () => {
|
|
157
|
+
const server = new Server({ name: "nusus-mcp", version: "0.2.0" }, { capabilities: { tools: {} } });
|
|
158
|
+
server.setRequestHandler("tools/list", async () => ({ tools: [...tools] }));
|
|
159
|
+
server.setRequestHandler("tools/call", async (request) => {
|
|
160
|
+
try {
|
|
161
|
+
return jsonContent(await runTool(request.params.name, request.params.arguments ?? {}));
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
if (error instanceof NususError)
|
|
165
|
+
return jsonContent({ code: error.code, message: error.message }, true);
|
|
166
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
167
|
+
return jsonContent({ code: "INTERNAL", message }, true);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
return server;
|
|
171
|
+
};
|
|
164
172
|
try {
|
|
165
|
-
|
|
173
|
+
serveStdio(createServer, {
|
|
174
|
+
onerror: (error) => {
|
|
175
|
+
process.stderr.write(`nusus-mcp failed: ${error.message}\n`);
|
|
176
|
+
process.exitCode = 1;
|
|
177
|
+
},
|
|
178
|
+
});
|
|
166
179
|
}
|
|
167
180
|
catch (error) {
|
|
168
181
|
process.stderr.write(`nusus-mcp failed: ${error instanceof Error ? error.message : String(error)}\n`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nusus-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Local MCP stdio server for Nusus and Turath",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"turath",
|
|
@@ -41,11 +41,14 @@
|
|
|
41
41
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@modelcontextprotocol/
|
|
45
|
-
"nusus": "^0.
|
|
44
|
+
"@modelcontextprotocol/server": "^2.0.0",
|
|
45
|
+
"nusus": "^0.7.1"
|
|
46
46
|
},
|
|
47
47
|
"engines": {
|
|
48
48
|
"node": ">=20"
|
|
49
49
|
},
|
|
50
|
-
"license": "MIT"
|
|
50
|
+
"license": "MIT",
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@modelcontextprotocol/client": "^2.0.0"
|
|
53
|
+
}
|
|
51
54
|
}
|