@thingd/sdk 0.72.0 → 0.74.2
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/dist/__type-tests__/exports.d.ts +178 -0
- package/dist/__type-tests__/exports.d.ts.map +1 -0
- package/dist/__type-tests__/exports.js +87 -0
- package/dist/client/http-thing-store.d.ts +55 -0
- package/dist/client/http-thing-store.d.ts.map +1 -0
- package/dist/client/http-thing-store.js +233 -0
- package/dist/client/in-memory-thing-store.d.ts +41 -0
- package/dist/client/in-memory-thing-store.d.ts.map +1 -0
- package/dist/client/in-memory-thing-store.js +292 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/thingd.d.ts +24 -0
- package/dist/client/thingd.d.ts.map +1 -0
- package/dist/client/thingd.js +27 -0
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +3 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/mcp/audit.d.ts +27 -0
- package/dist/mcp/audit.d.ts.map +1 -0
- package/dist/mcp/audit.js +36 -0
- package/dist/mcp/config.d.ts +22 -0
- package/dist/mcp/config.d.ts.map +1 -0
- package/dist/mcp/config.js +52 -0
- package/dist/mcp/index.d.ts +6 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +5 -0
- package/dist/mcp/result.d.ts +3 -0
- package/dist/mcp/result.d.ts.map +1 -0
- package/dist/mcp/result.js +10 -0
- package/dist/mcp/server.d.ts +19 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +51 -0
- package/dist/mcp/tools.d.ts +10 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +1033 -0
- package/dist/memory/index.d.ts +7 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +7 -0
- package/dist/rest/helpers.d.ts +17 -0
- package/dist/rest/helpers.d.ts.map +1 -0
- package/dist/rest/helpers.js +60 -0
- package/dist/rest/index.d.ts +3 -0
- package/dist/rest/index.d.ts.map +1 -0
- package/dist/rest/index.js +2 -0
- package/dist/rest/server.d.ts +4 -0
- package/dist/rest/server.d.ts.map +1 -0
- package/dist/rest/server.js +472 -0
- package/dist/scheduler.d.ts +28 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +451 -0
- package/dist/stores/cloud-thing-store.d.ts +60 -0
- package/dist/stores/cloud-thing-store.d.ts.map +1 -0
- package/dist/stores/cloud-thing-store.js +396 -0
- package/dist/stores/in-memory-thing-store.d.ts +59 -0
- package/dist/stores/in-memory-thing-store.d.ts.map +1 -0
- package/dist/stores/in-memory-thing-store.js +709 -0
- package/dist/stores/native-thing-store.d.ts +62 -0
- package/dist/stores/native-thing-store.d.ts.map +1 -0
- package/dist/stores/native-thing-store.js +374 -0
- package/dist/thingd.d.ts +84 -0
- package/dist/thingd.d.ts.map +1 -0
- package/dist/thingd.js +236 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types.d.ts +448 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/version.d.ts +6 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/package.json +8 -7
- package/LICENSE +0 -201
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { SDK_VERSION } from "../version.js";
|
|
3
|
+
import { registerThingdTools } from "./tools.js";
|
|
4
|
+
/**
|
|
5
|
+
* Create a new McpServer with all thingd tools registered.
|
|
6
|
+
*
|
|
7
|
+
* Note: a new instance must be created per HTTP request because
|
|
8
|
+
* @modelcontextprotocol/sdk's underlying Server.connect() throws if called
|
|
9
|
+
* on an already-connected instance (stateless HTTP mode: one transport per
|
|
10
|
+
* request lifecycle). Tool registration is cheap (Map insertions) so this
|
|
11
|
+
* is not a meaningful overhead in practice.
|
|
12
|
+
*/
|
|
13
|
+
export function createThingdMcpServer(db, options = {}) {
|
|
14
|
+
const server = new McpServer({
|
|
15
|
+
name: "thingd",
|
|
16
|
+
version: SDK_VERSION,
|
|
17
|
+
}, {
|
|
18
|
+
instructions: "Use thingd tools to search, read, write, and queue work in an object-shaped local memory store. Prefer searching before writing duplicate memory.",
|
|
19
|
+
});
|
|
20
|
+
registerThingdTools(server, db, {
|
|
21
|
+
audit: options.audit,
|
|
22
|
+
hardening: options.hardening,
|
|
23
|
+
});
|
|
24
|
+
// MCP resource: thingd://collections — list known collection names.
|
|
25
|
+
// Registered as a static URI so it appears in resources/list.
|
|
26
|
+
// Honours the collection allowlist: only allowed collections are surfaced.
|
|
27
|
+
server.registerResource("thingd-collections", "thingd://collections", {
|
|
28
|
+
title: "Collections",
|
|
29
|
+
description: "Lists all known thingd object collections. If a collection allowlist is configured, only allowed collections appear.",
|
|
30
|
+
mimeType: "application/json",
|
|
31
|
+
}, async (_uri) => {
|
|
32
|
+
const allCollections = (await db.listCollections?.()) ?? [];
|
|
33
|
+
const allowlist = options.hardening?.collectionAllowlist;
|
|
34
|
+
const collections = allowlist
|
|
35
|
+
? allCollections.filter((c) => allowlist.has(c))
|
|
36
|
+
: allCollections;
|
|
37
|
+
return {
|
|
38
|
+
contents: [
|
|
39
|
+
{
|
|
40
|
+
uri: "thingd://collections",
|
|
41
|
+
text: JSON.stringify(collections.map((name) => ({
|
|
42
|
+
name,
|
|
43
|
+
uri: `thingd://collections/${name}`,
|
|
44
|
+
})), null, 2),
|
|
45
|
+
mimeType: "application/json",
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
return server;
|
|
51
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import type { ThingD } from "../thingd.js";
|
|
3
|
+
import { type ThingdMcpAuditOptions } from "./audit.js";
|
|
4
|
+
import type { ThingdMcpHardeningOptions } from "./config.js";
|
|
5
|
+
export type RegisterThingdToolsOptions = {
|
|
6
|
+
audit?: ThingdMcpAuditOptions | false;
|
|
7
|
+
hardening?: ThingdMcpHardeningOptions;
|
|
8
|
+
};
|
|
9
|
+
export declare function registerThingdTools(server: McpServer, db: ThingD, options?: RegisterThingdToolsOptions): void;
|
|
10
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAW7D,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAC;IACtC,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,0BAA+B,GACvC,IAAI,CA2xCN"}
|