@iolufemi/express-rest-api-and-mcp-server-framework
BMCP server package Express-REST-API-and-MCP-Server-Framework
Install
agr install @iolufemi/express-rest-api-and-mcp-server-framework --target claudeThis artifact does not publish files for Claude.
Document
{ "name": "Express-REST-API-and-MCP-Server-Framework", "version": "1.1.0", "description": "A template for creating APIs and MCP servers Fast", "type": "module", "main": "dist/app.js", "scripts": { "dev": "npx tsx watch src/app.ts", "build": "rm -rf dist && npx tsc -p tsconfig.build.json", "start": "node dist/app.js", "test": "node test/run.mjs", "test:watch": "node test/run.mjs --watch", "test:coverage": "node scripts/run-coverage-with-timeout.mjs", "test:save": "npm test 2>&1 | tee test-results.txt", "test:simple": "node test/run.mjs --no-config --node-option import=tsx --node-option import=test/setup.ts test/simple.test.ts --reporter spec --timeout 20000", "lint": "npx eslint src/**/*.ts", "type-check": "npx tsc --noEmit", "type-check:test": "npx tsc -p tsconfig.test.json --noEmit", "clock": "node dist/services/queue/clock.js", "workers": "node dist/services/queue/workers.js", "gulp": "npx gulp --gulpfile gulpfile.cjs", "generate": "npx gulp --gulpfile gulpfile.cjs service", "release": "gulp --gulpfile gulpfile.cjs release" }, "repository": { "type": "git", "url": "git+https://github.com/iolufemi/Express-REST-API-and-MCP-Server-Framework.git" }, "keywords": [ "REST", "API", "MCP", "LLM", "AI", "Express", "Node.js", "TypeScript", "MongoDB", "Sequelize", "BullMQ", "MCP Server Framework" ], "author": "Olufemi Olanipekun iolufemi@ymail.com", "license": "GPL-3.0", "bugs": { "url": "https://github.com/iolufemi/Express-REST-API-and-MCP-Server-Framework/issues" }, "homepage": "https://github.com/iolufemi/Express-REST-API-and-MCP-Server-Framework#readme", "overrides": { "minimist": "^1.2.6", "lodash": "^4.17.23", "fsevents": "^2.3.3", "tar": "^7.5.8", "minimatch": "^10.2.1", "rimraf": "^6.0.0", "semver": "^7.5.2", "dot-prop": "^9.0.0", "trim-newlines": "^3.0.1", "braces": "^3.0.3", "semver-regex": "^3.1.4", "node-gyp": "^12.0.0", "node-loggly-bulk": { "axios": "1.13.5" }, "diff": "^5.2.0", "js-yaml": "^3.14.2", "micromatch": "^4.0.8", "tmp": "^0.2.4", "got": "^11.8.5", "http-cache-semantics": "^4.1.1", "@conventional-changelog/git-client": "^2.0.0", "gulp-mocha": { "debug": "^4.3.1", "diff": "^5.2.0", "js-yaml": "^3.14.2" } }, "devDependencies": { "@types/chai": "^4.3.15", "@types/cors": "^2.8.17", "@types/debug": "^4.1.12", "@types/express": "^4.17.21", "@types/mocha": "^10.0.6", "@types/node": "^22.10.2", "@types/randomstring": "^1.1.9", "@types/sinon": "^17.0.3", "@types/supertest": "^6.0.2", "@typescript-eslint/eslint-plugin": "^8.18.0", "@typescript-eslint/parser": "^8.18.0", "c8": "^10.1.3", "chai": "^4.3.10", "chai-as-promised": "^8.0.0", "@octokit/rest": "^21.0.2", "conventional-changelog-cli": "^5.0.0", "eslint": "^9.17.0", "gulp": "^5.0.1", "gulp-bump": "^2.7.0", "gulp-eslint": "^6.0.0", "gulp-git": "^2.10.1", "gulp-mocha": "^7.0.2", "gulp-nodemon": "^2.5.0", "gulp-todo": "^5.4.0", "minimist": "^1.2.6", "mocha": "^10.7.3", "mongoose-mock": "^0.4.0", "nock": "^14.0.11", "prettier": "^3.3.3", "sinon": "^21.0.1", "sinon-chai": "^3.7.0", "supertest": "^7.0.4", "ts-node": "^10.9.2", "tsx": "^4.19.2", "typescript": "^5.7.2" }, "dependencies": { "@modelcontextprotocol/sdk": "^1.25.3", "aes-js": "^3.1.2", "axios": "^1.13.0", "body-parser": "^1.20.3", "bull": "^4.15.0", "cors": "^2.8.5", "cron": "^3.1.7", "debug": "^4.3.6", "dotenv": "^16.4.5", "express": "^4.21.1", "express-content-length-validator": "^1.0.0", "express-enforces-ssl": "^1.1.0", "express-rate-limit": "^7.4.1", "express-validator": "^7.2.0", "fnv-plus": "^1.3.1", "helmet": "^8.0.0", "hpp": "^0.2.3", "ioredis": "^5.4.1", "lodash": "^4.17.23", "mongoose": "^8.8.4", "mysql2": "^3.11.5", "nocache": "^3.0.0", "pg": "^8.13.1", "randomstring": "^1.3.0", "rate-limit-redis": "^4.2.0", "redis": "^4.7.0", "sequelize": "^6.37.8", "shortid": "^2.2.16", "sqlite3": "^5.1.7", "tedious": "^18.0.0", "winston": "^3.15.1", "winston-loggly-bulk": "^3.3.3", "zod": "^3.23.8" } }
Trustgrade B
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- warnType matchbest-effort: server code not analyzed
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- warnLicensecopyleft/unknown — index-and-link only
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-d6b67200d8652026-08-06