@knowledgine/mcp-server 0.0.1 → 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/dist/helpers.d.ts CHANGED
@@ -1,7 +1,11 @@
1
- import { KnowledgeRepository } from "@knowledgine/core";
2
- import type { KnowledgineConfig } from "@knowledgine/core";
1
+ import { KnowledgeRepository, GraphRepository } from "@knowledgine/core";
2
+ import type { KnowledgineConfig, EmbeddingProvider } from "@knowledgine/core";
3
3
  export declare function resolveConfig(): KnowledgineConfig;
4
- export declare function initializeDependencies(config: KnowledgineConfig): KnowledgeRepository;
4
+ export declare function initializeDependencies(config: KnowledgineConfig): {
5
+ repository: KnowledgeRepository;
6
+ embeddingProvider: EmbeddingProvider | undefined;
7
+ graphRepository: GraphRepository;
8
+ };
5
9
  export declare function formatToolResult(data: unknown): {
6
10
  content: Array<{
7
11
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,wBAAgB,aAAa,IAAI,iBAAiB,CAOjD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CAIrF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG;IAC/C,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD,CAIA;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAChD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,IAAI,CAAC;CACf,CAKA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,mBAAmB,EACnB,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,wBAAgB,aAAa,IAAI,iBAAiB,CAOjD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG;IACjE,UAAU,EAAE,mBAAmB,CAAC;IAChC,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,eAAe,EAAE,eAAe,CAAC;CAClC,CAyBA;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG;IAC/C,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD,CAIA;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAChD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,IAAI,CAAC;CACf,CAKA"}
package/dist/helpers.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineConfig, createDatabase, Migrator, KnowledgeRepository, ALL_MIGRATIONS, } from "@knowledgine/core";
1
+ import { defineConfig, createDatabase, Migrator, KnowledgeRepository, GraphRepository, ALL_MIGRATIONS, OnnxEmbeddingProvider, ModelManager, } from "@knowledgine/core";
2
2
  export function resolveConfig() {
3
3
  const dbPath = process.env["KNOWLEDGINE_DB_PATH"];
4
4
  const rootPath = process.env["KNOWLEDGINE_ROOT_PATH"] ?? process.cwd();
@@ -8,9 +8,25 @@ export function resolveConfig() {
8
8
  });
9
9
  }
10
10
  export function initializeDependencies(config) {
11
- const db = createDatabase(config.dbPath);
11
+ // 1. sqlite-vec のロードを含む DB 作成(createDatabase 内で try/catch)
12
+ const db = createDatabase(config.dbPath, { enableVec: true });
13
+ // 2. migrate(sqlite-vec ロード後に実行)
12
14
  new Migrator(db, ALL_MIGRATIONS).migrate();
13
- return new KnowledgeRepository(db);
15
+ const repository = new KnowledgeRepository(db);
16
+ const graphRepository = new GraphRepository(db);
17
+ // 3. EmbeddingProvider 初期化(モデルが存在する場合のみ)
18
+ let embeddingProvider;
19
+ if (config.embedding?.enabled) {
20
+ const modelManager = new ModelManager();
21
+ if (modelManager.isModelAvailable(config.embedding.modelName)) {
22
+ embeddingProvider = new OnnxEmbeddingProvider(config.embedding.modelName, modelManager);
23
+ }
24
+ else {
25
+ console.error(`[knowledgine] Embedding model "${config.embedding.modelName}" not found. ` +
26
+ "Semantic search will be unavailable. Run: node scripts/download-model.js");
27
+ }
28
+ }
29
+ return { repository, embeddingProvider, graphRepository };
14
30
  }
15
31
  export function formatToolResult(data) {
16
32
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvE,OAAO,YAAY,CAAC;QAClB,QAAQ;QACR,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAyB;IAC9D,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3C,OAAO,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAG5C,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAI7C,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvE,OAAO,YAAY,CAAC;QAClB,QAAQ;QACR,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAyB;IAK9D,2DAA2D;IAC3D,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9D,iCAAiC;IACjC,IAAI,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;IAE3C,MAAM,UAAU,GAAG,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;IAEhD,yCAAyC;IACzC,IAAI,iBAAgD,CAAC;IACrD,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,IAAI,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9D,iBAAiB,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CACX,kCAAkC,MAAM,CAAC,SAAS,CAAC,SAAS,eAAe;gBACzE,0EAA0E,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAG5C,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAI7C,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
package/dist/index.js CHANGED
@@ -7,8 +7,8 @@ export { resolveConfig, initializeDependencies, formatToolResult, formatToolErro
7
7
  export { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
8
8
  async function main() {
9
9
  const config = resolveConfig();
10
- const repository = initializeDependencies(config);
11
- const server = createKnowledgineMcpServer(repository, config.rootPath);
10
+ const { repository, embeddingProvider, graphRepository } = initializeDependencies(config);
11
+ const server = createKnowledgineMcpServer(repository, config.rootPath, embeddingProvider, graphRepository);
12
12
  const transport = new StdioServerTransport();
13
13
  await server.connect(transport);
14
14
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,0BAA0B,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,0DAA0D;AAC1D,MAAM,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACnF,IAAI,YAAY,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,0BAA0B,CACvC,UAAU,EACV,MAAM,CAAC,QAAQ,EACf,iBAAiB,EACjB,eAAe,CAChB,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,0DAA0D;AAC1D,MAAM,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACnF,IAAI,YAAY,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/server.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import type { KnowledgeRepository } from "@knowledgine/core";
3
- export declare function createKnowledgineMcpServer(repository: KnowledgeRepository, rootPath?: string): McpServer;
2
+ import type { KnowledgeRepository, EmbeddingProvider } from "@knowledgine/core";
3
+ import type { GraphRepository } from "@knowledgine/core";
4
+ export declare function createKnowledgineMcpServer(repository: KnowledgeRepository, rootPath?: string, embeddingProvider?: EmbeddingProvider, graphRepository?: GraphRepository): McpServer;
4
5
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,mBAAmB,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,SAAS,CAsGX"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,mBAAmB,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,eAAe,CAAC,EAAE,eAAe,GAChC,SAAS,CAiOX"}
package/dist/server.js CHANGED
@@ -2,21 +2,30 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { z } from "zod";
3
3
  import { KnowledgeSearcher, LocalLinkGenerator } from "@knowledgine/core";
4
4
  import { formatToolResult, formatToolError } from "./helpers.js";
5
- export function createKnowledgineMcpServer(repository, rootPath) {
5
+ export function createKnowledgineMcpServer(repository, rootPath, embeddingProvider, graphRepository) {
6
6
  const server = new McpServer({ name: "knowledgine", version: "0.0.1" });
7
+ const searcher = new KnowledgeSearcher(repository, embeddingProvider);
7
8
  // Tool 1: search_knowledge
8
9
  server.registerTool("search_knowledge", {
9
- description: "ナレッジベース内のノートをキーワードで全文検索",
10
+ description: "Full-text and semantic search across notes in the knowledge base. Use mode='keyword' for exact matches, 'semantic' for conceptual similarity, or 'hybrid' to combine both.",
10
11
  inputSchema: {
11
- query: z.string().describe("検索クエリ"),
12
- limit: z.number().int().positive().optional().describe("最大結果数"),
12
+ query: z.string().describe("Search query"),
13
+ limit: z.number().int().positive().optional().describe("Maximum number of results"),
14
+ mode: z
15
+ .enum(["keyword", "semantic", "hybrid"])
16
+ .optional()
17
+ .describe("Search mode (default: keyword)"),
13
18
  },
14
19
  }, async (input) => {
15
20
  try {
16
- const searcher = new KnowledgeSearcher(repository);
17
- const results = searcher.search({ query: input.query, limit: input.limit ?? 20 });
21
+ const results = await searcher.search({
22
+ query: input.query,
23
+ limit: input.limit ?? 20,
24
+ mode: input.mode ?? "keyword",
25
+ });
18
26
  return formatToolResult({
19
27
  query: input.query,
28
+ mode: input.mode ?? "keyword",
20
29
  totalResults: results.length,
21
30
  results: results.map((r) => ({
22
31
  noteId: r.note.id,
@@ -34,11 +43,18 @@ export function createKnowledgineMcpServer(repository, rootPath) {
34
43
  });
35
44
  // Tool 2: find_related
36
45
  server.registerTool("find_related", {
37
- description: "指定ノートの関連ノート + 問題-解決ペアを検索",
46
+ description: "Find related notes and problem-solution pairs for a given note by ID or file path. Optionally traverses the knowledge graph.",
38
47
  inputSchema: {
39
- noteId: z.number().int().positive().optional().describe("ノートID"),
40
- filePath: z.string().optional().describe("ファイルパス"),
41
- limit: z.number().int().positive().optional().describe("最大結果数"),
48
+ noteId: z.number().int().positive().optional().describe("Note ID"),
49
+ filePath: z.string().optional().describe("File path"),
50
+ limit: z.number().int().positive().optional().describe("Maximum number of results"),
51
+ maxHops: z
52
+ .number()
53
+ .int()
54
+ .min(1)
55
+ .max(3)
56
+ .optional()
57
+ .describe("Graph traversal hops (default: 1, max: 3)"),
42
58
  },
43
59
  }, async (input) => {
44
60
  try {
@@ -61,13 +77,31 @@ export function createKnowledgineMcpServer(repository, rootPath) {
61
77
  if (!resolvedNoteId) {
62
78
  return formatToolError("Either noteId or filePath is required");
63
79
  }
64
- const linkGenerator = new LocalLinkGenerator(repository);
80
+ const linkGenerator = new LocalLinkGenerator(repository, graphRepository);
65
81
  const relatedNotes = linkGenerator.findRelatedNotes(resolvedNoteId, input.limit ?? 5);
66
82
  const problemSolutionPairs = repository.getProblemSolutionPairsByNoteId(resolvedNoteId);
83
+ // Graph relations if available
84
+ let graphRelations = [];
85
+ if (graphRepository) {
86
+ const linkedEntities = graphRepository.getLinkedEntities(resolvedNoteId);
87
+ const maxHops = input.maxHops ?? 1;
88
+ graphRelations = linkedEntities.map((entity) => ({
89
+ entityId: entity.id,
90
+ name: entity.name,
91
+ entityType: entity.entityType,
92
+ relatedEntities: graphRepository.findRelatedEntities(entity.id, maxHops).map((e) => ({
93
+ id: e.id,
94
+ name: e.name,
95
+ entityType: e.entityType,
96
+ hops: e.hops,
97
+ })),
98
+ }));
99
+ }
67
100
  return formatToolResult({
68
101
  noteId: resolvedNoteId,
69
102
  relatedNotes,
70
103
  problemSolutionPairs,
104
+ graphRelations,
71
105
  });
72
106
  }
73
107
  catch (error) {
@@ -76,11 +110,85 @@ export function createKnowledgineMcpServer(repository, rootPath) {
76
110
  });
77
111
  // Tool 3: get_stats
78
112
  server.registerTool("get_stats", {
79
- description: "ナレッジベースの統計情報",
113
+ description: "Get statistics for the knowledge base including note counts, embedding status, and knowledge graph stats.",
80
114
  inputSchema: {},
81
115
  }, async () => {
82
116
  try {
83
- return formatToolResult(repository.getStats());
117
+ const stats = repository.getStats();
118
+ const notesWithoutEmbeddings = embeddingProvider
119
+ ? repository.getNotesWithoutEmbeddings().length
120
+ : null;
121
+ const graphStats = graphRepository ? graphRepository.getGraphStats() : null;
122
+ return formatToolResult({
123
+ ...stats,
124
+ embeddingStatus: {
125
+ available: embeddingProvider != null,
126
+ notesWithoutEmbeddings,
127
+ },
128
+ graphStats,
129
+ });
130
+ }
131
+ catch (error) {
132
+ return formatToolError(error instanceof Error ? error.message : String(error));
133
+ }
134
+ });
135
+ // Tool 4: search_entities
136
+ server.registerTool("search_entities", {
137
+ description: "Search for entities (people, technologies, projects, concepts) in the knowledge graph.",
138
+ inputSchema: {
139
+ query: z.string().describe("Entity name or description to search for"),
140
+ limit: z.number().int().positive().optional().describe("Maximum number of results"),
141
+ },
142
+ }, async (input) => {
143
+ try {
144
+ if (!graphRepository) {
145
+ return formatToolError("Knowledge graph is not available");
146
+ }
147
+ const entities = graphRepository.searchEntities(input.query, input.limit ?? 20);
148
+ return formatToolResult({
149
+ query: input.query,
150
+ totalResults: entities.length,
151
+ entities: entities.map((e) => ({
152
+ id: e.id,
153
+ name: e.name,
154
+ entityType: e.entityType,
155
+ description: e.description,
156
+ createdAt: e.createdAt,
157
+ })),
158
+ });
159
+ }
160
+ catch (error) {
161
+ return formatToolError(error instanceof Error ? error.message : String(error));
162
+ }
163
+ });
164
+ // Tool 5: get_entity_graph
165
+ server.registerTool("get_entity_graph", {
166
+ description: "Get full graph data for a specific entity including observations, relations, and linked notes.",
167
+ inputSchema: {
168
+ entityId: z.number().int().positive().optional().describe("Entity ID"),
169
+ entityName: z.string().optional().describe("Entity name (case-insensitive)"),
170
+ },
171
+ }, async (input) => {
172
+ try {
173
+ if (!graphRepository) {
174
+ return formatToolError("Knowledge graph is not available");
175
+ }
176
+ let entityId = input.entityId;
177
+ if (!entityId && input.entityName) {
178
+ const entity = graphRepository.getEntityByName(input.entityName);
179
+ if (!entity) {
180
+ return formatToolError(`Entity not found: ${input.entityName}`);
181
+ }
182
+ entityId = entity.id;
183
+ }
184
+ if (!entityId) {
185
+ return formatToolError("Either entityId or entityName is required");
186
+ }
187
+ const graph = graphRepository.getEntityWithGraph(entityId);
188
+ if (!graph) {
189
+ return formatToolError(`Entity not found: id=${entityId}`);
190
+ }
191
+ return formatToolResult(graph);
84
192
  }
85
193
  catch (error) {
86
194
  return formatToolError(error instanceof Error ? error.message : String(error));
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowledgine/mcp-server",
3
- "version": "0.0.1",
3
+ "version": "0.1.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -16,7 +16,7 @@
16
16
  "dependencies": {
17
17
  "@modelcontextprotocol/sdk": "^1.27.1",
18
18
  "zod": "^4.3.6",
19
- "@knowledgine/core": "0.0.1"
19
+ "@knowledgine/core": "0.1.0"
20
20
  },
21
21
  "files": [
22
22
  "dist"
@@ -26,8 +26,10 @@
26
26
  "mcp",
27
27
  "model-context-protocol",
28
28
  "knowledge",
29
- "ai",
30
- "search"
29
+ "markdown",
30
+ "search",
31
+ "mcp-server",
32
+ "developer-tools"
31
33
  ],
32
34
  "license": "MIT",
33
35
  "repository": {