@sourcepress/mcp 0.1.0
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/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-test.log +15 -0
- package/dist/__tests__/import-tools.test.d.ts +2 -0
- package/dist/__tests__/import-tools.test.d.ts.map +1 -0
- package/dist/__tests__/import-tools.test.js +118 -0
- package/dist/__tests__/import-tools.test.js.map +1 -0
- package/dist/__tests__/server.test.d.ts +2 -0
- package/dist/__tests__/server.test.d.ts.map +1 -0
- package/dist/__tests__/server.test.js +83 -0
- package/dist/__tests__/server.test.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -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 +419 -0
- package/dist/server.js.map +1 -0
- package/dist/stdio.d.ts +3 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +38 -0
- package/dist/stdio.js.map +1 -0
- package/package.json +35 -0
- package/src/__tests__/import-tools.test.ts +128 -0
- package/src/__tests__/server.test.ts +87 -0
- package/src/index.ts +1 -0
- package/src/server.ts +572 -0
- package/src/stdio.ts +43 -0
- package/tsconfig.json +8 -0
- package/vitest.config.ts +7 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
> @sourcepress/mcp@0.1.0 test /Users/fabianvontiedemann/Developer/org/sourcepress/packages/mcp
|
|
3
|
+
> vitest run
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
RUN v3.2.4 /Users/fabianvontiedemann/Developer/org/sourcepress/packages/mcp
|
|
7
|
+
|
|
8
|
+
✓ src/__tests__/server.test.ts (3 tests) 7ms
|
|
9
|
+
✓ src/__tests__/import-tools.test.ts (8 tests) 10ms
|
|
10
|
+
|
|
11
|
+
Test Files 2 passed (2)
|
|
12
|
+
Tests 11 passed (11)
|
|
13
|
+
Start at 14:13:19
|
|
14
|
+
Duration 965ms (transform 47ms, setup 0ms, collect 306ms, tests 17ms, environment 0ms, prepare 218ms)
|
|
15
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-tools.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/import-tools.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { createMcpServer } from "../server.js";
|
|
3
|
+
function createMockEngine() {
|
|
4
|
+
return {
|
|
5
|
+
knowledge: {
|
|
6
|
+
importUrl: vi.fn().mockResolvedValue({
|
|
7
|
+
path: "knowledge/example.com/page.md",
|
|
8
|
+
type: "article",
|
|
9
|
+
quality: "structured",
|
|
10
|
+
quality_score: 0.8,
|
|
11
|
+
entities: [{ type: "company", name: "Acme" }],
|
|
12
|
+
source: "url",
|
|
13
|
+
source_url: "https://example.com/page",
|
|
14
|
+
body: "content",
|
|
15
|
+
ingested_at: "2026-04-04T10:00:00Z",
|
|
16
|
+
}),
|
|
17
|
+
parseSitemap: vi.fn().mockResolvedValue({
|
|
18
|
+
sitemap_url: "https://example.com/sitemap.xml",
|
|
19
|
+
sections: [
|
|
20
|
+
{ name: "Blog", pattern: "/blog/*", urls: [], count: 5 },
|
|
21
|
+
{ name: "Services", pattern: "/services/*", urls: [], count: 3 },
|
|
22
|
+
],
|
|
23
|
+
total_urls: 8,
|
|
24
|
+
}),
|
|
25
|
+
filterSitemapUrls: vi.fn().mockReturnValue([]),
|
|
26
|
+
importBatch: vi.fn(),
|
|
27
|
+
ingest: vi.fn(),
|
|
28
|
+
buildGraph: vi.fn(),
|
|
29
|
+
query: vi.fn(),
|
|
30
|
+
findGaps: vi.fn().mockReturnValue([]),
|
|
31
|
+
findStale: vi.fn().mockReturnValue([]),
|
|
32
|
+
getGraph: vi.fn().mockReturnValue(null),
|
|
33
|
+
getStore: vi.fn(),
|
|
34
|
+
},
|
|
35
|
+
knowledgeStore: { list: vi.fn().mockResolvedValue([]) },
|
|
36
|
+
jobs: {
|
|
37
|
+
enqueue: vi.fn().mockResolvedValue("job-42"),
|
|
38
|
+
status: vi.fn().mockResolvedValue({
|
|
39
|
+
job_id: "job-42",
|
|
40
|
+
type: "import-batch",
|
|
41
|
+
status: "queued",
|
|
42
|
+
progress: { completed: 0, total: 0, failed: 0 },
|
|
43
|
+
created_at: "2026-04-04T10:00:00Z",
|
|
44
|
+
}),
|
|
45
|
+
register: vi.fn(),
|
|
46
|
+
cancel: vi.fn(),
|
|
47
|
+
list: vi.fn(),
|
|
48
|
+
},
|
|
49
|
+
listCollections: vi.fn().mockReturnValue([]),
|
|
50
|
+
listContent: vi.fn().mockResolvedValue([]),
|
|
51
|
+
getContent: vi.fn(),
|
|
52
|
+
getCollectionDef: vi.fn(),
|
|
53
|
+
config: { collections: {} },
|
|
54
|
+
github: {},
|
|
55
|
+
cache: {},
|
|
56
|
+
budget: {},
|
|
57
|
+
provider: {},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
describe("MCP import tools", () => {
|
|
61
|
+
it("registers import tools on the server", () => {
|
|
62
|
+
const engine = createMockEngine();
|
|
63
|
+
const server = createMcpServer(engine);
|
|
64
|
+
// Server created without error = tools registered
|
|
65
|
+
expect(server).toBeDefined();
|
|
66
|
+
});
|
|
67
|
+
it("registers sourcepress_import_from_url tool", () => {
|
|
68
|
+
const engine = createMockEngine();
|
|
69
|
+
const server = createMcpServer(engine);
|
|
70
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing private MCP SDK internals for test assertion
|
|
71
|
+
const tools = server._registeredTools;
|
|
72
|
+
expect(Object.keys(tools)).toContain("sourcepress_import_from_url");
|
|
73
|
+
});
|
|
74
|
+
it("registers sourcepress_import_batch tool", () => {
|
|
75
|
+
const engine = createMockEngine();
|
|
76
|
+
const server = createMcpServer(engine);
|
|
77
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing private MCP SDK internals for test assertion
|
|
78
|
+
const tools = server._registeredTools;
|
|
79
|
+
expect(Object.keys(tools)).toContain("sourcepress_import_batch");
|
|
80
|
+
});
|
|
81
|
+
it("registers sourcepress_import_sitemap tool", () => {
|
|
82
|
+
const engine = createMockEngine();
|
|
83
|
+
const server = createMcpServer(engine);
|
|
84
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing private MCP SDK internals for test assertion
|
|
85
|
+
const tools = server._registeredTools;
|
|
86
|
+
expect(Object.keys(tools)).toContain("sourcepress_import_sitemap");
|
|
87
|
+
});
|
|
88
|
+
it("registers sourcepress_import_sitemap_run tool", () => {
|
|
89
|
+
const engine = createMockEngine();
|
|
90
|
+
const server = createMcpServer(engine);
|
|
91
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing private MCP SDK internals for test assertion
|
|
92
|
+
const tools = server._registeredTools;
|
|
93
|
+
expect(Object.keys(tools)).toContain("sourcepress_import_sitemap_run");
|
|
94
|
+
});
|
|
95
|
+
// Note: Full tool invocation tests require MCP SDK test helpers.
|
|
96
|
+
// These tests verify the tool handlers work via the engine mock.
|
|
97
|
+
it("importUrl is called by the engine", async () => {
|
|
98
|
+
const engine = createMockEngine();
|
|
99
|
+
const result = await engine.knowledge.importUrl("https://example.com/page");
|
|
100
|
+
expect(result.path).toBe("knowledge/example.com/page.md");
|
|
101
|
+
expect(result.source).toBe("url");
|
|
102
|
+
});
|
|
103
|
+
it("parseSitemap returns sections", async () => {
|
|
104
|
+
const engine = createMockEngine();
|
|
105
|
+
const result = await engine.knowledge.parseSitemap("https://example.com/sitemap.xml");
|
|
106
|
+
expect(result.total_urls).toBe(8);
|
|
107
|
+
expect(result.sections).toHaveLength(2);
|
|
108
|
+
});
|
|
109
|
+
it("batch import enqueues a job", async () => {
|
|
110
|
+
const engine = createMockEngine();
|
|
111
|
+
const jobId = await engine.jobs?.enqueue({
|
|
112
|
+
type: "import-batch",
|
|
113
|
+
params: { urls: ["https://example.com/a"] },
|
|
114
|
+
});
|
|
115
|
+
expect(jobId).toBe("job-42");
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=import-tools.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-tools.test.js","sourceRoot":"","sources":["../../src/__tests__/import-tools.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,SAAS,gBAAgB;IACxB,OAAO;QACN,SAAS,EAAE;YACV,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACpC,IAAI,EAAE,+BAA+B;gBACrC,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,aAAa,EAAE,GAAG;gBAClB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC7C,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,0BAA0B;gBACtC,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,sBAAsB;aACnC,CAAC;YACF,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACvC,WAAW,EAAE,iCAAiC;gBAC9C,QAAQ,EAAE;oBACT,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;oBACxD,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;iBAChE;gBACD,UAAU,EAAE,CAAC;aACb,CAAC;YACF,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9C,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;YACpB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;YACf,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;YACnB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YACrC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YACvC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;SACjB;QACD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;QACvD,IAAI,EAAE;YACL,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAC5C,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACjC,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBAC/C,UAAU,EAAE,sBAAsB;aAClC,CAAC;YACF,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;YACjB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;YACf,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;SACb;QACD,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5C,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC1C,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;QACnB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3B,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;KACgB,CAAC;AAC/B,CAAC;AAED,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,kDAAkD;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,qGAAqG;QACrG,MAAM,KAAK,GAAI,MAAc,CAAC,gBAA2C,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,qGAAqG;QACrG,MAAM,KAAK,GAAI,MAAc,CAAC,gBAA2C,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,qGAAqG;QACrG,MAAM,KAAK,GAAI,MAAc,CAAC,gBAA2C,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,qGAAqG;QACrG,MAAM,KAAK,GAAI,MAAc,CAAC,gBAA2C,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,iEAAiE;IAEjE,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;YACxC,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,uBAAuB,CAAC,EAAE;SAC3C,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/server.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { createMcpServer } from "../server.js";
|
|
3
|
+
function createMockEngine() {
|
|
4
|
+
return {
|
|
5
|
+
config: {
|
|
6
|
+
intent: { path: "intent/" },
|
|
7
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock of EngineContext
|
|
8
|
+
},
|
|
9
|
+
github: {
|
|
10
|
+
getTree: vi.fn().mockResolvedValue([]),
|
|
11
|
+
getFile: vi.fn().mockResolvedValue(null),
|
|
12
|
+
createBranch: vi.fn().mockResolvedValue("abc"),
|
|
13
|
+
createOrUpdateFile: vi.fn().mockResolvedValue({ sha: "x", commit_sha: "y" }),
|
|
14
|
+
createPR: vi.fn().mockResolvedValue({ number: 1, html_url: "https://github.com/test/pr/1" }),
|
|
15
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock of EngineContext
|
|
16
|
+
},
|
|
17
|
+
knowledge: {
|
|
18
|
+
getGraph: vi.fn().mockReturnValue(null),
|
|
19
|
+
query: vi.fn().mockReturnValue(null),
|
|
20
|
+
findStale: vi.fn().mockReturnValue([]),
|
|
21
|
+
findGaps: vi.fn().mockReturnValue([]),
|
|
22
|
+
ingest: vi.fn().mockResolvedValue({
|
|
23
|
+
path: "knowledge/test.md",
|
|
24
|
+
type: "notes",
|
|
25
|
+
quality: "draft",
|
|
26
|
+
quality_score: 5,
|
|
27
|
+
entities: [],
|
|
28
|
+
ingested_at: "2026-04-01",
|
|
29
|
+
source: "manual",
|
|
30
|
+
body: "test",
|
|
31
|
+
}),
|
|
32
|
+
buildGraph: vi.fn().mockResolvedValue({
|
|
33
|
+
entities: new Map(),
|
|
34
|
+
relations: [],
|
|
35
|
+
clusters: [],
|
|
36
|
+
built_at: "2026-04-01",
|
|
37
|
+
file_count: 0,
|
|
38
|
+
}),
|
|
39
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock of EngineContext
|
|
40
|
+
},
|
|
41
|
+
knowledgeStore: {
|
|
42
|
+
list: vi.fn().mockResolvedValue([]),
|
|
43
|
+
retrieve: vi.fn().mockResolvedValue(null),
|
|
44
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock of EngineContext
|
|
45
|
+
},
|
|
46
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock of EngineContext
|
|
47
|
+
cache: {},
|
|
48
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock of EngineContext
|
|
49
|
+
budget: {},
|
|
50
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock of EngineContext
|
|
51
|
+
provider: {},
|
|
52
|
+
listContent: vi.fn().mockResolvedValue([]),
|
|
53
|
+
getContent: vi.fn().mockResolvedValue(null),
|
|
54
|
+
getCollectionDef: vi.fn().mockImplementation((name) => {
|
|
55
|
+
if (name === "posts") {
|
|
56
|
+
return { name: "Blog Posts", path: "content/posts", format: "mdx", fields: {} };
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}),
|
|
60
|
+
listCollections: vi.fn().mockReturnValue(["posts"]),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
describe("MCP Server", () => {
|
|
64
|
+
it("creates MCP server instance", () => {
|
|
65
|
+
const engine = createMockEngine();
|
|
66
|
+
const server = createMcpServer(engine);
|
|
67
|
+
expect(server).toBeDefined();
|
|
68
|
+
});
|
|
69
|
+
it("server has correct name and version", () => {
|
|
70
|
+
const engine = createMockEngine();
|
|
71
|
+
const server = createMcpServer(engine);
|
|
72
|
+
// McpServer stores server info internally
|
|
73
|
+
expect(server).toBeDefined();
|
|
74
|
+
});
|
|
75
|
+
it("registers sourcepress_list_content tool", () => {
|
|
76
|
+
const engine = createMockEngine();
|
|
77
|
+
const server = createMcpServer(engine);
|
|
78
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing private MCP SDK internals for test assertion
|
|
79
|
+
const tools = server._registeredTools;
|
|
80
|
+
expect(Object.keys(tools)).toContain("sourcepress_list_content");
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=server.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.test.js","sourceRoot":"","sources":["../../src/__tests__/server.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAujBhE"}
|