anki-mcp-http 0.3.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 (110) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +591 -0
  3. package/bin/ankimcp.js +2 -0
  4. package/dist/anki-config.service.d.ts +10 -0
  5. package/dist/anki-config.service.js +42 -0
  6. package/dist/anki-config.service.js.map +1 -0
  7. package/dist/app.module.d.ts +5 -0
  8. package/dist/app.module.js +74 -0
  9. package/dist/app.module.js.map +1 -0
  10. package/dist/bootstrap.d.ts +3 -0
  11. package/dist/bootstrap.js +39 -0
  12. package/dist/bootstrap.js.map +1 -0
  13. package/dist/cli.d.ts +7 -0
  14. package/dist/cli.js +68 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/http/guards/origin-validation.guard.d.ts +7 -0
  17. package/dist/http/guards/origin-validation.guard.js +52 -0
  18. package/dist/http/guards/origin-validation.guard.js.map +1 -0
  19. package/dist/main-http.d.ts +1 -0
  20. package/dist/main-http.js +27 -0
  21. package/dist/main-http.js.map +1 -0
  22. package/dist/main-stdio.d.ts +1 -0
  23. package/dist/main-stdio.js +20 -0
  24. package/dist/main-stdio.js.map +1 -0
  25. package/dist/mcp/clients/__mocks__/anki-connect.client.d.ts +6 -0
  26. package/dist/mcp/clients/__mocks__/anki-connect.client.js +18 -0
  27. package/dist/mcp/clients/__mocks__/anki-connect.client.js.map +1 -0
  28. package/dist/mcp/clients/anki-connect.client.d.ts +15 -0
  29. package/dist/mcp/clients/anki-connect.client.js +145 -0
  30. package/dist/mcp/clients/anki-connect.client.js.map +1 -0
  31. package/dist/mcp/config/anki-config.interface.d.ts +7 -0
  32. package/dist/mcp/config/anki-config.interface.js +5 -0
  33. package/dist/mcp/config/anki-config.interface.js.map +1 -0
  34. package/dist/mcp/primitives/essential/index.d.ts +30 -0
  35. package/dist/mcp/primitives/essential/index.js +125 -0
  36. package/dist/mcp/primitives/essential/index.js.map +1 -0
  37. package/dist/mcp/primitives/essential/prompts/review-session.prompt.d.ts +12 -0
  38. package/dist/mcp/primitives/essential/prompts/review-session.prompt.js +113 -0
  39. package/dist/mcp/primitives/essential/prompts/review-session.prompt.js.map +1 -0
  40. package/dist/mcp/primitives/essential/resources/system-info.resource.d.ts +21 -0
  41. package/dist/mcp/primitives/essential/resources/system-info.resource.js +115 -0
  42. package/dist/mcp/primitives/essential/resources/system-info.resource.js.map +1 -0
  43. package/dist/mcp/primitives/essential/tools/add-note.tool.d.ts +93 -0
  44. package/dist/mcp/primitives/essential/tools/add-note.tool.js +188 -0
  45. package/dist/mcp/primitives/essential/tools/add-note.tool.js.map +1 -0
  46. package/dist/mcp/primitives/essential/tools/create-deck.tool.d.ts +83 -0
  47. package/dist/mcp/primitives/essential/tools/create-deck.tool.js +120 -0
  48. package/dist/mcp/primitives/essential/tools/create-deck.tool.js.map +1 -0
  49. package/dist/mcp/primitives/essential/tools/create-model.tool.d.ts +88 -0
  50. package/dist/mcp/primitives/essential/tools/create-model.tool.js +142 -0
  51. package/dist/mcp/primitives/essential/tools/create-model.tool.js.map +1 -0
  52. package/dist/mcp/primitives/essential/tools/delete-notes.tool.d.ts +84 -0
  53. package/dist/mcp/primitives/essential/tools/delete-notes.tool.js +120 -0
  54. package/dist/mcp/primitives/essential/tools/delete-notes.tool.js.map +1 -0
  55. package/dist/mcp/primitives/essential/tools/find-notes.tool.d.ts +83 -0
  56. package/dist/mcp/primitives/essential/tools/find-notes.tool.js +106 -0
  57. package/dist/mcp/primitives/essential/tools/find-notes.tool.js.map +1 -0
  58. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.d.ts +84 -0
  59. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js +106 -0
  60. package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js.map +1 -0
  61. package/dist/mcp/primitives/essential/tools/list-decks.tool.d.ts +83 -0
  62. package/dist/mcp/primitives/essential/tools/list-decks.tool.js +117 -0
  63. package/dist/mcp/primitives/essential/tools/list-decks.tool.js.map +1 -0
  64. package/dist/mcp/primitives/essential/tools/model-field-names.tool.d.ts +83 -0
  65. package/dist/mcp/primitives/essential/tools/model-field-names.tool.js +116 -0
  66. package/dist/mcp/primitives/essential/tools/model-field-names.tool.js.map +1 -0
  67. package/dist/mcp/primitives/essential/tools/model-names.tool.d.ts +81 -0
  68. package/dist/mcp/primitives/essential/tools/model-names.tool.js +78 -0
  69. package/dist/mcp/primitives/essential/tools/model-names.tool.js.map +1 -0
  70. package/dist/mcp/primitives/essential/tools/model-styling.tool.d.ts +83 -0
  71. package/dist/mcp/primitives/essential/tools/model-styling.tool.js +93 -0
  72. package/dist/mcp/primitives/essential/tools/model-styling.tool.js.map +1 -0
  73. package/dist/mcp/primitives/essential/tools/notes-info.tool.d.ts +83 -0
  74. package/dist/mcp/primitives/essential/tools/notes-info.tool.js +111 -0
  75. package/dist/mcp/primitives/essential/tools/notes-info.tool.js.map +1 -0
  76. package/dist/mcp/primitives/essential/tools/present-card.tool.d.ts +84 -0
  77. package/dist/mcp/primitives/essential/tools/present-card.tool.js +100 -0
  78. package/dist/mcp/primitives/essential/tools/present-card.tool.js.map +1 -0
  79. package/dist/mcp/primitives/essential/tools/rate-card.tool.d.ts +84 -0
  80. package/dist/mcp/primitives/essential/tools/rate-card.tool.js +96 -0
  81. package/dist/mcp/primitives/essential/tools/rate-card.tool.js.map +1 -0
  82. package/dist/mcp/primitives/essential/tools/sync.tool.d.ts +81 -0
  83. package/dist/mcp/primitives/essential/tools/sync.tool.js +61 -0
  84. package/dist/mcp/primitives/essential/tools/sync.tool.js.map +1 -0
  85. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.d.ts +84 -0
  86. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js +119 -0
  87. package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js.map +1 -0
  88. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.d.ts +96 -0
  89. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js +154 -0
  90. package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js.map +1 -0
  91. package/dist/mcp/primitives/gui/index.d.ts +4 -0
  92. package/dist/mcp/primitives/gui/index.js +26 -0
  93. package/dist/mcp/primitives/gui/index.js.map +1 -0
  94. package/dist/mcp/types/anki.types.d.ts +152 -0
  95. package/dist/mcp/types/anki.types.js +18 -0
  96. package/dist/mcp/types/anki.types.js.map +1 -0
  97. package/dist/mcp/utils/anki.utils.d.ts +19 -0
  98. package/dist/mcp/utils/anki.utils.js +153 -0
  99. package/dist/mcp/utils/anki.utils.js.map +1 -0
  100. package/dist/mcp/utils/mcpb-workarounds.d.ts +1 -0
  101. package/dist/mcp/utils/mcpb-workarounds.js +13 -0
  102. package/dist/mcp/utils/mcpb-workarounds.js.map +1 -0
  103. package/dist/test-fixtures/mock-data.d.ts +126 -0
  104. package/dist/test-fixtures/mock-data.js +112 -0
  105. package/dist/test-fixtures/mock-data.js.map +1 -0
  106. package/dist/test-fixtures/test-helpers.d.ts +12 -0
  107. package/dist/test-fixtures/test-helpers.js +24 -0
  108. package/dist/test-fixtures/test-helpers.js.map +1 -0
  109. package/dist/tsconfig.build.tsbuildinfo +1 -0
  110. package/package.json +153 -0
package/package.json ADDED
@@ -0,0 +1,153 @@
1
+ {
2
+ "name": "anki-mcp-http",
3
+ "version": "0.3.0",
4
+ "description": "Model Context Protocol server for Anki - enables AI assistants to interact with your Anki flashcards",
5
+ "author": "Anatoly Tarnavsky",
6
+ "private": false,
7
+ "license": "MIT",
8
+ "main": "dist/main-http.js",
9
+ "bin": {
10
+ "ankimcp": "bin/ankimcp.js"
11
+ },
12
+ "scripts": {
13
+ "build": "nest build",
14
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
15
+ "start:dev:stdio": "nest start --watch --entryFile main-stdio",
16
+ "start:dev:http": "nest start --watch --entryFile main-http",
17
+ "start:debug:stdio": "nest start --debug --watch --entryFile main-stdio",
18
+ "start:debug:http": "nest start --debug --watch --entryFile main-http",
19
+ "start:prod:stdio": "node dist/main-stdio",
20
+ "start:prod:http": "node dist/main-http",
21
+ "lint": "eslint \"{src,test}/**/*.ts\" --fix",
22
+ "test": "jest",
23
+ "test:watch": "jest --watch",
24
+ "test:cov": "jest --coverage",
25
+ "test:unit": "jest --testPathPattern='spec\\.ts$' --silent",
26
+ "test:tools": "jest src/mcp/primitives/essential/tools/__tests__ --silent",
27
+ "test:workflows": "jest test/workflows --silent",
28
+ "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
29
+ "test:ci": "jest --coverage --silent --maxWorkers=2",
30
+ "test:single": "npm test -- src/mcp/primitives/essential/tools/__tests__/delete-notes.tool.spec.ts",
31
+ "type-check": "tsc --noEmit",
32
+ "clean": "rm -rf dist dist-stdio dist-http node_modules",
33
+ "inspector:stdio": "./node_modules/.bin/mcp-inspector --config mcp-inspector-config.json --server stdio-server",
34
+ "inspector:stdio:debug": "./node_modules/.bin/mcp-inspector --config mcp-inspector-config.json --server stdio-server-debug",
35
+ "inspector:http": "./node_modules/.bin/mcp-inspector --config mcp-inspector-config.json --server http-server",
36
+ "sync-version": "node scripts/sync-version.js",
37
+ "mcpb:clean": "rm -f *.mcpb",
38
+ "mcpb:bundle": "npm run sync-version && npm run mcpb:clean && npm run build && mcpb pack",
39
+ "pack:local": "npm run build && npm pack",
40
+ "install:local": "npm install -g ./anki-mcp-http-*.tgz",
41
+ "uninstall:local": "npm uninstall -g ankimcp"
42
+ },
43
+ "dependencies": {
44
+ "@modelcontextprotocol/sdk": "^1.18.2",
45
+ "@nestjs/common": "^11.1.6",
46
+ "@nestjs/config": "^4.0.2",
47
+ "@nestjs/core": "^11.1.6",
48
+ "@nestjs/platform-express": "^11.1.6",
49
+ "@rekog/mcp-nest": "^1.8.3",
50
+ "commander": "^14.0.1",
51
+ "ky": "^1.11.0",
52
+ "pino": "^9.11.0",
53
+ "pino-pretty": "^13.1.1",
54
+ "reflect-metadata": "^0.2.2",
55
+ "rxjs": "^7.8.2",
56
+ "zod": "^3.25.76"
57
+ },
58
+ "devDependencies": {
59
+ "@anthropic-ai/mcpb": "^1.1.1",
60
+ "@eslint/eslintrc": "^3.3.1",
61
+ "@eslint/js": "^9.36.0",
62
+ "@modelcontextprotocol/inspector": "^0.16.7",
63
+ "@nestjs/cli": "^11.0.10",
64
+ "@nestjs/schematics": "^11.0.7",
65
+ "@nestjs/testing": "^11.1.6",
66
+ "@types/express": "^5.0.3",
67
+ "@types/jest": "^30.0.0",
68
+ "@types/node": "^22.18.6",
69
+ "@types/supertest": "^6.0.3",
70
+ "eslint": "^9.36.0",
71
+ "eslint-config-prettier": "^10.1.8",
72
+ "eslint-plugin-prettier": "^5.5.4",
73
+ "globals": "^16.4.0",
74
+ "jest": "^30.1.3",
75
+ "prettier": "^3.6.2",
76
+ "source-map-support": "^0.5.21",
77
+ "supertest": "^7.1.4",
78
+ "ts-jest": "^29.4.4",
79
+ "ts-loader": "^9.5.4",
80
+ "ts-node": "^10.9.2",
81
+ "tsconfig-paths": "^4.2.0",
82
+ "typescript": "^5.9.2",
83
+ "typescript-eslint": "^8.44.1"
84
+ },
85
+ "jest": {
86
+ "moduleFileExtensions": [
87
+ "js",
88
+ "json",
89
+ "ts"
90
+ ],
91
+ "rootDir": ".",
92
+ "roots": [
93
+ "<rootDir>/src",
94
+ "<rootDir>/test"
95
+ ],
96
+ "testRegex": ".*\\.(spec|test)\\.ts$",
97
+ "transform": {
98
+ "^.+\\.(t|j)s$": "ts-jest"
99
+ },
100
+ "collectCoverageFrom": [
101
+ "src/**/*.(t|j)s",
102
+ "!src/**/*.spec.ts",
103
+ "!src/**/*.test.ts",
104
+ "!src/**/__tests__/**",
105
+ "!src/**/__mocks__/**",
106
+ "!src/test-fixtures/**",
107
+ "!src/main.ts"
108
+ ],
109
+ "coverageDirectory": "coverage",
110
+ "testEnvironment": "node",
111
+ "coverageThreshold": {
112
+ "global": {
113
+ "branches": 70,
114
+ "functions": 70,
115
+ "lines": 70,
116
+ "statements": 70
117
+ }
118
+ },
119
+ "moduleNameMapper": {
120
+ "^@/(.*)$": "<rootDir>/src/$1",
121
+ "^@test/(.*)$": "<rootDir>/test/$1"
122
+ }
123
+ },
124
+ "engines": {
125
+ "node": ">=20"
126
+ },
127
+ "repository": {
128
+ "type": "git",
129
+ "url": "https://github.com/anki-mcp-organization/anki-mcp-desktop.git"
130
+ },
131
+ "bugs": {
132
+ "url": "https://github.com/anki-mcp-organization/anki-mcp-desktop/issues"
133
+ },
134
+ "homepage": "https://ankimcp.ai",
135
+ "keywords": [
136
+ "mcp",
137
+ "model-context-protocol",
138
+ "anki",
139
+ "flashcards",
140
+ "spaced-repetition",
141
+ "ai",
142
+ "claude",
143
+ "chatgpt",
144
+ "ankiconnect"
145
+ ],
146
+ "files": [
147
+ "dist",
148
+ "bin",
149
+ "README.md",
150
+ "LICENSE",
151
+ "package.json"
152
+ ]
153
+ }