UNPKG

@ankimcp/anki-mcp-server

Version:

Model Context Protocol server for Anki - enables AI assistants to interact with your Anki flashcards

177 lines (176 loc) 5.9 kB
{ "name": "@ankimcp/anki-mcp-server", "version": "0.8.5", "description": "Model Context Protocol server for Anki - enables AI assistants to interact with your Anki flashcards", "author": "Anatoly Tarnavsky", "private": false, "license": "AGPL-3.0-or-later", "main": "dist/main-http.js", "bin": { "ankimcp": "bin/ankimcp.js", "anki-mcp-server": "bin/ankimcp.js" }, "scripts": { "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start:dev:stdio": "nest start --watch --entryFile main-stdio", "start:dev:http": "nest start --watch --entryFile main-http", "start:debug:stdio": "nest start --debug --watch --entryFile main-stdio", "start:debug:http": "nest start --debug --watch --entryFile main-http", "start:prod:stdio": "node dist/main-stdio", "start:prod:http": "node dist/main-http", "lint": "eslint \"{src,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:unit": "jest --testPathPattern='spec\\.ts$' --silent", "test:tools": "jest src/mcp/primitives/essential/tools/__tests__ --silent", "test:workflows": "jest test/workflows --silent", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:ci": "jest --coverage --silent --maxWorkers=2", "test:single": "npm test -- src/mcp/primitives/essential/tools/__tests__/delete-notes.tool.spec.ts", "type-check": "tsc --noEmit", "clean": "rm -rf dist dist-stdio dist-http node_modules", "inspector:stdio": "./node_modules/.bin/mcp-inspector --config mcp-inspector-config.json --server stdio-server", "inspector:stdio:debug": "./node_modules/.bin/mcp-inspector --config mcp-inspector-config.json --server stdio-server-debug", "inspector:http": "./node_modules/.bin/mcp-inspector --config mcp-inspector-config.json --server http-server", "sync-version": "node scripts/sync-version.js", "mcpb:clean": "rm -f *.mcpb", "mcpb:bundle": "npm run sync-version && npm run mcpb:clean && npm run build && mcpb pack . \"anki-mcp-server-$npm_package_version.mcpb\" && mcpb clean \"anki-mcp-server-$npm_package_version.mcpb\"", "pack:local": "rm -f *.tgz && npm run build && npm pack", "install:local": "npm install -g ./ankimcp-anki-mcp-server-*.tgz", "uninstall:local": "npm uninstall -g @ankimcp/anki-mcp-server", "prepare": "husky" }, "dependencies": { "@modelcontextprotocol/sdk": "^1.18.2", "@nestjs/common": "^11.1.6", "@nestjs/config": "^4.0.2", "@nestjs/core": "^11.1.6", "@nestjs/jwt": "^11.0.1", "@nestjs/passport": "^11.0.5", "@nestjs/platform-express": "^11.1.6", "@rekog/mcp-nest": "^1.8.3", "commander": "^14.0.1", "jsonwebtoken": "^9.0.2", "ky": "^1.11.0", "passport": "^0.7.0", "passport-jwt": "^4.0.1", "pino": "^10.0.0", "pino-pretty": "^13.1.1", "reflect-metadata": "^0.2.2", "remark-parse": "^11.0.0", "rxjs": "^7.8.2", "unified": "^11.0.5", "unist-util-visit": "^5.0.0", "update-notifier": "^7.3.1", "zod": "^3.25.76", "zod-to-json-schema": "^3.25.0" }, "devDependencies": { "@anthropic-ai/mcpb": "^1.1.1", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.36.0", "@modelcontextprotocol/inspector": "^0.17.0", "@nestjs/cli": "^11.0.10", "@nestjs/schematics": "^11.0.7", "@nestjs/testing": "^11.1.6", "@types/express": "^5.0.3", "@types/jest": "^30.0.0", "@types/jsonwebtoken": "^9.0.10", "@types/mdast": "^4.0.4", "@types/node": "^24.6.2", "@types/supertest": "^6.0.3", "@types/update-notifier": "^6.0.8", "eslint": "^9.36.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.4", "globals": "^16.4.0", "husky": "^9.1.7", "jest": "^30.1.3", "prettier": "^3.6.2", "source-map-support": "^0.5.21", "supertest": "^7.1.4", "ts-jest": "^29.4.4", "ts-loader": "^9.5.4", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^5.9.2", "typescript-eslint": "^8.44.1" }, "jest": { "moduleFileExtensions": [ "js", "json", "ts" ], "rootDir": ".", "roots": [ "<rootDir>/src", "<rootDir>/test" ], "testRegex": ".*\\.(spec|test)\\.ts$", "transform": { "^.+\\.(t|j)s$": "ts-jest" }, "collectCoverageFrom": [ "src/**/*.(t|j)s", "!src/**/*.spec.ts", "!src/**/*.test.ts", "!src/**/__tests__/**", "!src/**/__mocks__/**", "!src/test-fixtures/**", "!src/main.ts", "!src/main-stdio.ts", "!src/main-http.ts", "!src/**/index.ts" ], "coverageDirectory": "coverage", "testEnvironment": "node", "coverageThreshold": { "global": { "branches": 70, "functions": 70, "lines": 70, "statements": 70 } }, "moduleNameMapper": { "^@/(.*)$": "<rootDir>/src/$1", "^@test/(.*)$": "<rootDir>/test/$1" }, "transformIgnorePatterns": [ "node_modules/(?!(ky|unified|remark-parse|unist-util-visit|mdast-util-to-string|micromark.*|decode-named-character-reference|character-entities|unist-.*|vfile.*|bail|is-plain-obj|trough|devlop|mdast.*|hast.*)/)" ], "forceExit": true }, "engines": { "node": ">=20" }, "repository": { "type": "git", "url": "https://github.com/ankimcp/anki-mcp-server.git" }, "bugs": { "url": "https://github.com/ankimcp/anki-mcp-server/issues" }, "homepage": "https://ankimcp.ai", "keywords": [ "mcp", "model-context-protocol", "anki", "flashcards", "spaced-repetition", "ai", "claude", "chatgpt", "ankiconnect" ], "files": [ "dist", "bin", "README.md", "LICENSE", "package.json" ] }