@echoes-io/mcp-server 4.1.1 → 6.0.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.
Files changed (108) hide show
  1. package/README.md +120 -185
  2. package/cli/index.d.ts +1 -0
  3. package/cli/index.d.ts.map +1 -0
  4. package/cli/index.js +3 -185
  5. package/cli/index.js.map +1 -0
  6. package/cli/program.d.ts +3 -0
  7. package/cli/program.d.ts.map +1 -0
  8. package/cli/program.js +150 -0
  9. package/cli/program.js.map +1 -0
  10. package/lib/constants.d.ts +8 -0
  11. package/lib/constants.d.ts.map +1 -0
  12. package/lib/constants.js +12 -0
  13. package/lib/constants.js.map +1 -0
  14. package/lib/database/index.d.ts +34 -0
  15. package/lib/database/index.d.ts.map +1 -0
  16. package/lib/database/index.js +266 -0
  17. package/lib/database/index.js.map +1 -0
  18. package/lib/database/schemas.d.ts +55 -0
  19. package/lib/database/schemas.d.ts.map +1 -0
  20. package/lib/database/schemas.js +70 -0
  21. package/lib/database/schemas.js.map +1 -0
  22. package/lib/indexer/embeddings.d.ts +6 -0
  23. package/lib/indexer/embeddings.d.ts.map +1 -0
  24. package/lib/indexer/embeddings.js +51 -0
  25. package/lib/indexer/embeddings.js.map +1 -0
  26. package/lib/indexer/extractor.d.ts +81 -0
  27. package/lib/indexer/extractor.d.ts.map +1 -0
  28. package/lib/indexer/extractor.js +68 -0
  29. package/lib/indexer/extractor.js.map +1 -0
  30. package/lib/indexer/scanner.d.ts +8 -0
  31. package/lib/indexer/scanner.d.ts.map +1 -0
  32. package/lib/indexer/scanner.js +73 -0
  33. package/lib/indexer/scanner.js.map +1 -0
  34. package/lib/prompts/index.d.ts +13 -0
  35. package/lib/prompts/index.d.ts.map +1 -0
  36. package/lib/prompts/index.js +153 -0
  37. package/lib/prompts/index.js.map +1 -0
  38. package/lib/server.d.ts +13 -0
  39. package/lib/server.d.ts.map +1 -0
  40. package/lib/server.js +90 -0
  41. package/lib/server.js.map +1 -0
  42. package/lib/tools/index.d.ts +19 -0
  43. package/lib/tools/index.d.ts.map +1 -0
  44. package/lib/tools/index.js +128 -0
  45. package/lib/tools/index.js.map +1 -0
  46. package/lib/tools/search.d.ts +86 -0
  47. package/lib/tools/search.d.ts.map +1 -0
  48. package/lib/tools/search.js +95 -0
  49. package/lib/tools/search.js.map +1 -0
  50. package/lib/tools/stats.d.ts +18 -0
  51. package/lib/tools/stats.d.ts.map +1 -0
  52. package/lib/tools/stats.js +62 -0
  53. package/lib/tools/stats.js.map +1 -0
  54. package/{src → lib}/tools/words-count.d.ts +6 -3
  55. package/lib/tools/words-count.d.ts.map +1 -0
  56. package/lib/tools/words-count.js +31 -0
  57. package/lib/tools/words-count.js.map +1 -0
  58. package/{src/types/frontmatter.d.ts → lib/types.d.ts} +11 -17
  59. package/lib/types.d.ts.map +1 -0
  60. package/lib/types.js +2 -0
  61. package/lib/types.js.map +1 -0
  62. package/lib/utils.d.ts +19 -0
  63. package/lib/utils.d.ts.map +1 -0
  64. package/lib/utils.js +40 -0
  65. package/lib/utils.js.map +1 -0
  66. package/package.json +59 -62
  67. package/src/database/index.d.ts +0 -6
  68. package/src/database/index.js +0 -26
  69. package/src/database/relations.d.ts +0 -744
  70. package/src/database/relations.js +0 -52
  71. package/src/database/schema.d.ts +0 -733
  72. package/src/database/schema.js +0 -69
  73. package/src/database/vector.d.ts +0 -25
  74. package/src/database/vector.js +0 -98
  75. package/src/index.d.ts +0 -5
  76. package/src/index.js +0 -5
  77. package/src/rag/character-ner.d.ts +0 -36
  78. package/src/rag/character-ner.js +0 -416
  79. package/src/rag/database-sync.d.ts +0 -38
  80. package/src/rag/database-sync.js +0 -158
  81. package/src/rag/embeddings.d.ts +0 -74
  82. package/src/rag/embeddings.js +0 -164
  83. package/src/rag/graph-rag.d.ts +0 -69
  84. package/src/rag/graph-rag.js +0 -311
  85. package/src/rag/hybrid-rag.d.ts +0 -109
  86. package/src/rag/hybrid-rag.js +0 -255
  87. package/src/rag/index.d.ts +0 -16
  88. package/src/rag/index.js +0 -33
  89. package/src/server.d.ts +0 -43
  90. package/src/server.js +0 -177
  91. package/src/tools/index-rag.d.ts +0 -19
  92. package/src/tools/index-rag.js +0 -85
  93. package/src/tools/index-tracker.d.ts +0 -17
  94. package/src/tools/index-tracker.js +0 -89
  95. package/src/tools/index.d.ts +0 -5
  96. package/src/tools/index.js +0 -5
  97. package/src/tools/rag-context.d.ts +0 -34
  98. package/src/tools/rag-context.js +0 -51
  99. package/src/tools/rag-search.d.ts +0 -35
  100. package/src/tools/rag-search.js +0 -60
  101. package/src/tools/words-count.js +0 -28
  102. package/src/types/frontmatter.js +0 -1
  103. package/src/utils/index.d.ts +0 -1
  104. package/src/utils/index.js +0 -1
  105. package/src/utils/markdown.d.ts +0 -6
  106. package/src/utils/markdown.js +0 -36
  107. package/src/utils/timeline-detection.d.ts +0 -13
  108. package/src/utils/timeline-detection.js +0 -76
package/package.json CHANGED
@@ -1,58 +1,60 @@
1
1
  {
2
2
  "name": "@echoes-io/mcp-server",
3
+ "version": "6.0.0",
4
+ "description": "📚 Model Context Protocol server for AI-powered storytelling with Narrative Knowledge Graph - extract characters, locations, relationships and search your stories semantically.",
3
5
  "type": "module",
4
- "version": "4.1.1",
5
- "description": "Model Context Protocol server for AI integration with Echoes storytelling platform",
6
+ "bin": {
7
+ "echoes": "cli/index.js"
8
+ },
9
+ "files": [
10
+ "cli/**/*.js",
11
+ "cli/**/*.d.ts",
12
+ "cli/**/*.map",
13
+ "lib/**/*.js",
14
+ "lib/**/*.d.ts",
15
+ "lib/**/*.map",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
6
19
  "scripts": {
7
- "dev": "tsx cli/index.ts",
8
- "db:generate": "drizzle-kit generate",
9
- "db:migrate": "drizzle-kit migrate",
10
- "db:studio": "drizzle-kit studio",
20
+ "prebuild": "npm run clean",
21
+ "build": "tsc",
22
+ "pretest": "npm run clean",
23
+ "test": "vitest run",
24
+ "pretest:coverage": "npm run clean",
25
+ "test:coverage": "vitest run --coverage",
26
+ "posttest:coverage": "coverage-badge-readme",
11
27
  "prelint": "npm run build",
12
28
  "lint": "concurrently npm:lint:* --prefixColors auto",
13
- "postlint": "npm run clean",
14
29
  "lint:format": "biome check --write",
30
+ "lint:package": "npmPkgJsonLint .",
15
31
  "lint:lockfile": "lockfile-lint --path package-lock.json",
16
32
  "lint:engines": "ls-engines",
17
33
  "lint:publish": "publint --strict",
18
- "pretest": "npm run clean",
19
- "test": "vitest run",
20
- "pretest:coverage": "npm run clean",
21
- "test:coverage": "vitest run --coverage",
22
- "check": "npm run test:coverage && npm run lint",
23
- "prepare": "[ \"$CI\" = \"true\" ] || [ \"$GITHUB_ACTIONS\" = \"true\" ] && echo 'Skipping husky' && exit 0 || husky",
24
- "clean": "rimraf --glob ./{cli,src,test}/**/*.{d.ts,js} ./{drizzle,vitest}*.{d.ts,js}",
25
- "prebuild": "npm run clean",
26
- "build": "tsc",
27
- "prerelease": "npm run build",
28
- "release": "semantic-release"
29
- },
30
- "bin": {
31
- "echoes-mcp-server": "./cli/index.js"
32
- },
33
- "exports": {
34
- ".": "./src/database/index.js"
35
- },
36
- "files": [
37
- "cli/**/*.{d.ts,js}",
38
- "lib/**/*.{d.ts,js}",
39
- "src/**/*.{d.ts,js}"
40
- ],
41
- "engines": {
42
- "node": ">= 20.3"
43
- },
44
- "publishConfig": {
45
- "access": "public",
46
- "provenance": true
34
+ "postlint": "npm run clean",
35
+ "clean": "rimraf --glob ./{cli,lib,scripts,test}/**/*.{d.ts,js,map} ./vitest*.{d.ts,js,map}",
36
+ "prepare": "[ \"$CI\" = \"true\" ] || [ \"$GITHUB_ACTIONS\" = \"true\" ] && echo 'Skipping husky' && exit 0 || husky"
47
37
  },
48
38
  "repository": {
49
39
  "type": "git",
50
40
  "url": "git+https://github.com/echoes-io/mcp-server.git"
51
41
  },
52
42
  "keywords": [
53
- "echoes",
43
+ "mcp",
44
+ "model-context-protocol",
54
45
  "storytelling",
55
- "multi-pov"
46
+ "narrative",
47
+ "knowledge-graph",
48
+ "rag",
49
+ "semantic-search",
50
+ "entity-extraction",
51
+ "lancedb",
52
+ "vector-database",
53
+ "gemini",
54
+ "embeddings",
55
+ "typescript",
56
+ "ai",
57
+ "llm"
56
58
  ],
57
59
  "author": "Zweer <n.olivieriachille@gmail.com>",
58
60
  "license": "MIT",
@@ -60,45 +62,40 @@
60
62
  "url": "https://github.com/echoes-io/mcp-server/issues"
61
63
  },
62
64
  "homepage": "https://github.com/echoes-io/mcp-server#readme",
63
- "release": {
64
- "plugins": [
65
- "@semantic-release/commit-analyzer",
66
- "@semantic-release/release-notes-generator",
67
- "@semantic-release/changelog",
68
- "@semantic-release/npm",
69
- "@semantic-release/github",
70
- "@semantic-release/git"
71
- ]
65
+ "engines": {
66
+ "node": ">=20.3"
72
67
  },
73
68
  "devDependencies": {
74
- "@biomejs/biome": "^2.3.8",
69
+ "@biomejs/biome": "^2.3.10",
75
70
  "@semantic-release/changelog": "^6.0.3",
76
71
  "@semantic-release/git": "^10.0.1",
77
72
  "@tsconfig/node22": "^22.0.5",
78
- "@types/better-sqlite3": "^7.6.11",
79
- "@types/node": "^24.10.1",
80
- "@vitest/coverage-v8": "^4.0.15",
73
+ "@types/node": "^25.0.3",
74
+ "@vitest/coverage-v8": "^4.0.16",
75
+ "@zweer/coverage-badge-readme": "^1.2.2",
81
76
  "concurrently": "^9.2.1",
82
- "drizzle-kit": "^1.0.0-beta.3-36e9b9e",
83
- "fast-check": "^4.4.0",
84
77
  "husky": "^9.1.7",
85
78
  "lint-staged": "^16.2.7",
86
79
  "lockfile-lint": "^4.14.1",
87
- "ls-engines": "^0.9.3",
88
- "publint": "^0.3.15",
89
- "rimraf": "^6.1.2",
80
+ "ls-engines": "^0.9.4",
81
+ "npm-package-json-lint": "^9.0.0",
82
+ "npm-package-json-lint-config-default": "^8.0.1",
83
+ "publint": "^0.3.16",
90
84
  "semantic-release": "^25.0.2",
91
85
  "tsx": "^4.21.0",
92
86
  "typescript": "^5.9.3",
93
- "vitest": "^4.0.15"
87
+ "vitest": "^4.0.16"
94
88
  },
95
89
  "dependencies": {
96
- "@modelcontextprotocol/sdk": "^1.24.2",
97
- "better-sqlite3": "^11.0.0",
98
- "drizzle-orm": "^1.0.0-beta.3-36e9b9e",
90
+ "@commander-js/extra-typings": "^14.0.0",
91
+ "@google/genai": "^1.34.0",
92
+ "@huggingface/transformers": "^3.8.1",
93
+ "@lancedb/lancedb": "^0.23.0",
94
+ "@modelcontextprotocol/sdk": "^1.25.1",
95
+ "apache-arrow": "^18.1.0",
96
+ "commander": "^14.0.2",
99
97
  "gray-matter": "^4.0.3",
100
98
  "remove-markdown": "^0.6.2",
101
- "sqlite-vec": "^0.1.7-alpha.2",
102
- "zod": "^4.1.12"
99
+ "zod": "^4.2.1"
103
100
  }
104
101
  }
@@ -1,6 +0,0 @@
1
- import { drizzle } from 'drizzle-orm/better-sqlite3';
2
- import * as schema from './schema.js';
3
- export type DatabaseType = ReturnType<typeof drizzle<typeof schema>>;
4
- export declare function initDatabase(dbPath: string): Promise<DatabaseType>;
5
- export { relations } from './relations.js';
6
- export * from './schema.js';
@@ -1,26 +0,0 @@
1
- import Database from 'better-sqlite3';
2
- import { drizzle } from 'drizzle-orm/better-sqlite3';
3
- import { migrate } from 'drizzle-orm/better-sqlite3/migrator';
4
- import * as sqliteVec from 'sqlite-vec';
5
- import { relations } from './relations.js';
6
- import * as schema from './schema.js';
7
- export async function initDatabase(dbPath) {
8
- const client = new Database(dbPath);
9
- // Enable WAL mode for better concurrency
10
- client.pragma('journal_mode = WAL');
11
- // Load sqlite-vec extension
12
- sqliteVec.load(client);
13
- const db = drizzle({ client, relations, schema });
14
- // Auto-migrate on startup
15
- try {
16
- await migrate(db, { migrationsFolder: './db' });
17
- }
18
- catch (error) {
19
- console.error('❌ Database migration failed:', error);
20
- throw error;
21
- }
22
- return db;
23
- }
24
- export { relations } from './relations.js';
25
- // Re-export all schema
26
- export * from './schema.js';