SkillAgentSearch skills...

harper

Harper is an open-source Node.js performance platform that unifies database, cache, application, and messaging layers into one in-memory process.

Install / Use

claude mcp add HarperFast -- npx -y github:HarperFast/harper

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

50/100

Supported Platforms

Claude Code
Claude Desktop

Our assessment of harper

harper scores 50/100 on our quality scale, 401st of 407 Communication skills we index.

Its MCP Server is 12 KB long, written without headings and no code examples: a thorough specification that gives an agent plenty to work with.

It has no GitHub stars yet, so there is no community track record; judge it on its content.

Substance
30/30
Structure
0/20
Description
15/15
Adoption
0/20
Freshness
5/15

Maintenance, license and trust

  • We could not determine when the repository was last updated.
  • No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
  • Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

harper compared with similar skills

All 4 of these similar skills score higher than harper; compare them before choosing.

SkillScoreStarsUpdatedFormat
harper (this skill)by HarperFast500—MCP Server
Agent-Reachby Panniantong100104.8k2d agoCLAUDE.md
headroomby headroomlabs-ai10078.0ktodayCLAUDE.md
CowAgentby zhayujie10047.6ktodayCLAUDE.md
Scraplingby D4Vinci10090.0ktodayMCP Server

Frequently asked questions

How do I install harper?
Run claude mcp add HarperFast -- npx -y github:HarperFast/harper. The install tabs above show the steps for each supported agent.
Which AI agents does harper work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is harper safe to use?
It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is harper still maintained?
We could not determine when the repository was last updated.

{ "name": "harper", "productName": "Harper", "description": "Harper is an open-source Node.js performance platform that unifies database, cache, application, and messaging layers into one in-memory process.", "version": "5.3.1", "license": "Apache-2.0", "homepage": "https://harper.fast", "bugs": { "url": "https://github.com/harperfast/harper/issues", "email": "opensource@harperdb.io" }, "author": { "name": "HarperDB, Inc.", "email": "opensource@harperdb.io", "url": "https://harper.fast" }, "contributors": [], "repository": { "type": "git", "url": "https://github.com/harperfast/harper.git" }, "bin": { "harper": "./dist/bin/harper.js" }, "files": [ "agent", "bin", "CODE_OF_CONDUCT.md", "components", "config", "config-app.schema.json", "config-root.schema.json", "dataLayer", "dist", "index.", "json", "launchServiceScripts", "README.md", "resources", "schema.graphql", "security", "SECURITY.md", "server", "sqlTranslator", "static", "studio", "SUPPORT.md", "upgrade", "utility", "v1.", "v2.", "validation" ], "scripts": { "build": "node build-tools/build-dist.mjs", "build:watch": "tsc --project tsconfig.build.json --watch --incremental", "typecheck": "tsc --project tsconfig.json", "typecheck:fast": "npx -y -p typescript@7.0.2 tsc --noEmit --project tsconfig.json", "test:types": "tsc --project unitTests/types/tsconfig.json", "package": "./build-tools/build.sh", "lint": "oxlint --format stylish --deny-warnings .", "lint:required": "oxlint --format stylish --quiet .", "check:design-docs": "node build-tools/check-design-docs.mjs", "check:unit-partition": "node build-tools/check-unit-partition.mjs", "lint:fix": "npm run lint -- --fix", "format:check": "prettier --check .", "format:write": "prettier --write .", "test:bench": "node --test "benchmarks/**/.test.mts"", "test:integration": "harper-integration-test-run", "test:integration:all": "npm run test:integration -- "integrationTests//*.test.ts" "integrationTests//.test.mjs"", "test:integration:mcp": "npm run test:integration -- "integrationTests/mcp/**/.test.ts"", "test:integration:bun": "HARPER_RUNTIME=bun harper-integration-test-run", "test:unit": "mocha", "test:unit:main": "mocha "unitTests//*test.*js" --exclude "unitTests/apiTests//" --exclude "unitTests/dataLayer/harperBridge/**/" --exclude "unitTests/resources//*"", "test:unit:main:core": "npm run test:unit:main -- --exclude "unitTests/components//" --exclude "unitTests/server/**/"", "test:unit:main:components": "mocha "unitTests/components//*test.*js"", "test:unit:main:server": "mocha "unitTests/server//test.js"", "test:unit:all": "npm run test:unit:main && npm run test:unit:apitests && npm run test:unit:resources && npm run test:unit:lmdb", "test:unit:lmdb": "HARPER_STORAGE_ENGINE=lmdb npm run test:unit:resources && HARPER_STORAGE_ENGINE=lmdb mocha unitTests/server/preconditions.test.js unitTests/server/durableSessionResume.test.js && HARPER_STORAGE_ENGINE=lmdb npm run test:unit:apitests && HARPER_STORAGE_ENGINE=lmdb npm run test:unit:bin", "test:unit:components": "mocha "unitTests/components/**/.js"", "test:unit:resources": "mocha "unitTests/resources/**/.js" --exclude "unitTests/resources//*.bench.js"", "test:unit:resources:core": "mocha "unitTests/resources//.js" --exclude "unitTests/resources/**/.bench.js" --exclude "unitTests/resources//{[Ii]ndex,[Hh]nsw,[Vv]ector}.js"", "test:unit:resources:core:a-q": "mocha "unitTests/resources//[a-qA-Q].js" --exclude "unitTests/resources/**/.bench.js" --exclude "unitTests/resources//{[Ii]ndex,[Hh]nsw,[Vv]ector}.js"", "test:unit:resources:core:r-z": "mocha "unitTests/resources//.js" --exclude "unitTests/resources/**/.bench.js" --exclude "unitTests/resources//{[Ii]ndex,[Hh]nsw,[Vv]ector}.js" --exclude "unitTests/resources//[a-qA-Q].js"", "test:unit:resources:indexes": "mocha "unitTests/resources/**/{[Ii]ndex,[Hh]nsw,[Vv]ector}.js" --exclude "unitTests/resources/**/.bench.js"", "bench": "mocha "unitTests/resources/caching-rocks-database.bench.js" "unitTests/resources/indexRangeSelect.bench.js" "unitTests/resources/originClosedFloor.bench.js" "unitTests/resources/liveSubscriptionReauth.bench.js"", "test:unit:bin": "mocha "unitTests/bin//*.js"", "test:unit:apitests": "node ./dist/bin/harper.js stop && mocha "unitTests/apiTests//-test.mjs"", "test:unit:logging": "mocha "unitTests/utility/logging/.js"", "test:unit:security": "mocha "unitTests/security//*.js"", "test:unit:dataLayer": "mocha "unitTests/dataLayer//.js" --exclude "unitTests/dataLayer/harperBridge/**/"", "test:unit:backup": "mocha "unitTests/dataLayer/rocksdbBackup.test.js" "unitTests/dataLayer/blobBackup.test.js" "unitTests/dataLayer/restoreMarker.test.js" "unitTests/bin/backup.test.js"", "test:unit:utility": "mocha "unitTests/utility//*.js" --exclude "unitTests/utility/logging//"", "test:unit:server": "mocha "unitTests/server/**/.js"", "test:unit:config": "mocha "unitTests/config//*.js"", "test:unit:windows": "node unitTests/windowsGate.mjs", "test:unit:typestrip": "node unitTests/runTypeStripTests.mts --source-only", "test:unit:typestrip:all": "node unitTests/runTypeStripTests.mts "unitTests//test.js"", "test:unit:typestrip:resources": "node unitTests/runTypeStripTests.mts --source-only "unitTests/resources/**/.js" --exclude "unitTests/resources/**/.bench.js"", "test:unit:typestrip:main": "node unitTests/runTypeStripTests.mts", "test:unit:typestrip:resources:core": "node unitTests/runTypeStripTests.mts --source-only "unitTests/resources//*.js" --exclude "unitTests/resources//.bench.js" --exclude "unitTests/resources/**/{[Ii]ndex,[Hh]nsw,[Vv]ector}.js"", "test:unit:typestrip:resources:core:a-q": "node unitTests/runTypeStripTests.mts --source-only "unitTests/resources/**/[a-qA-Q].js" --exclude "unitTests/resources//*.bench.js" --exclude "unitTests/resources//{[Ii]ndex,[Hh]nsw,[Vv]ector}.js"", "test:unit:typestrip:resources:core:r-z": "node unitTests/runTypeStripTests.mts --source-only "unitTests/resources//*.js" --exclude "unitTests/resources//.bench.js" --exclude "unitTests/resources/**/{[Ii]ndex,[Hh]nsw,[Vv]ector}.js" --exclude "unitTests/resources/**/[a-qA-Q].js"", "test:unit:typestrip:resources:indexes": "node unitTests/runTypeStripTests.mts --source-only "unitTests/resources//{[Ii]ndex,[Hh]nsw,[Vv]ector}.js" --exclude "unitTests/resources//.bench.js"", "test:types:unit": "tsc --project unitTests/tsconfig.harness.json" }, "imports": { "#src/.js": { "typestrip": "./.js", "default": "./dist/.js" }, "#src/globals": { "typestrip": "./globals.js", "default": "./dist/globals.js" }, "#src/utility/packageUtils": { "typestrip": "./utility/packageUtils.js", "default": "./dist/utility/packageUtils.js" }, "#src/utility/terms/certificates": { "typestrip": "./utility/terms/certificates.js", "default": "./dist/utility/terms/certificates.js" }, "#src/": { "import": { "typestrip": "./.ts", "default": "./dist/.js" }, "require": { "typestrip": "./.ts", "default": "./dist/.js" } }, "#js/": { "typestrip": null, "default": "./dist/*.js" } }, "engines": { "node": "^22.18.0 || >=24.0.0" }, "devEngines": { "runtime": { "name": "node", "version": ">=22", "onFail": "error" }, "packageManager": { "name": "npm", "onFail": "error" } }, "exports": { ".": { "types": "./dist/index.d.ts", "default": "./dist/index.js" } }, "devDependencies": { "@aws-sdk/client-s3": "^3.1012.0", "@aws-sdk/lib-storage": "3.1149.0", "@harperfast/code-guidelines": "^0.1.2", "@harperfast/integration-testing": "^1.0.0", "@modelcontextprotocol/sdk": "^1.29.0", "@types/busboy": "^1.5.4", "@types/fs-extra": "^11.0.4", "@types/gunzip-maybe": "^1.4.3", "@types/is-number": "^7.0.5", "@types/jsonwebtoken": "^9.0.10", "@types/lodash": "^4.17.23", "@types/micromatch": "^4.0.9", "@types/mocha": "^10.0.10", "@types/properties-reader": "^2.1.3", "@types/sinon": "^22.0.0", "@types/tar-fs": "^2.0.4", "@types/tar-stream": "^3.1.4", "axios": "1.20.0", "chai": "^6.2.0", "chai-as-promised": "^8.0.2", "chai-integer": "^0.1.0", "compression": "^1.8.1", "compression-1.7": "npm:compression@1.8.2", "eventsource": "^5.0.0", "globals": "^17.0.0", "intercept-stdout": "0.1.2", "mkcert": "^3.2.0", "mocha": "^12.0.0", "mqtt": "^5.15.1", "on-finished": "^2.4.1", "on-headers": "^1.1.0", "openai": "^7.0.0", "oxlint": "^1.31.0", "prettier": "~3.9.0", "rewire": "^9.0.1", "sinon": "21.0.3", "sinon-chai": "^4.0.1", "supertest": "^7.1.4", "tsx": "^4.20.6", "typescript": "^5.8.2", "undici": "^8.0.0", "uWebSockets.js": "https://github.com/uNetworking/uWebSockets.js/archive/624987739d4da0acb628aaf2a10fc43e7ce27c5c.tar.gz", "why-is-node-still-running": "^1.0.0" }, "dependencies": { "@endo/static-module-record": "^1.1.2", "@fastify/autoload": "^6.3.1", "@fastify/compress": "^9.0.0", "@fastify/cors": "^11.2.0", "@fastify/static": "^10.0.0", "@harperfast/extended-iterable": "1.0.5", "@harperfast/rocksdb-js": "2.12.0", "@harperfast/skills": "^1.10.8", "@inquirer/confirm": "^6.3.2", "@inquirer/input": "^5.1.6", "@inquirer/password": "^5.2.2", "@inquirer/select": "^5.2.5", "@turf/area": "6.5.0", "@turf/boolean-contains": "6.5.0", "@turf/boolean-disjoint": "6.5.0", "@turf/boolean-equal": "6.5.0", "@turf/circle": "6.5.0", "@turf/difference": "6.5.0", "@turf/distance": "6.5.0", "@turf/helpers": "6.5.0", "@turf/length": "6.5.0", "alasql": "4.20.0", "amaro": "^1.1.8", "argon2": "0.45.1", "asn1js": "3.0.10", "busboy": "^1.6.0", "cbor-x": "1.6.6", "chalk": "4.1.2", "chokidar": "^5.0.0", "cli-progress": "3.12.0", "clone": "2.1.2", "dotenv": "^16.4.7", "easy-ocsp": "1.3.2", "fast-glob": "3.3.3", "fastify": "^5.8.2", "fastify-plugin": "^5.1.0", "fs-extra": "11.4.1", "graphql": "^16.10.0", "graphql-http": "^1.22.4", "gunzip-maybe": "1.4.2", "human-readable-ids": "1.0.4", "is-number": "7.0.0", "joi": "17.13.8", "json-bigint-fixes": "1.1.0", "jsonata": "1.8.9", "jsonwebtoken": "9.0.3", "lmdb": "3.5.7", "lodash": "^4.17.23", "mathjs": "11.12.0", "micromatch": "^4.0.8", "minimist": "1.2.8", "moment": "2.31.0", "mqtt-packet": "~9.0.1", "msgpackr": "2.1.0", "needle": "3.5.0", "node-forge": "^1.3.1", "node-stream-zip": "1.16.0", "normalize-path": "^3.0.0", "ora": "8.2.0", "ordered-binary": "1.6.2", "papaparse": "5.7.0", "passport": "0.7.0", "passport-http": "0.3.0", "passport-local": "1.0.0", "pino": "8.21.0", "pkijs": "3.4.1", "properties-reader": "2.3.0", "recursive-iterator": "3.3.0", "semver": "7.8.5", "send": "^1.2.0", "ses": "^1.15.0", "stream-chain": "2.2.5", "stream-json": "1.9.1", "structon": "1.1.0", "systeminformation": "^5.31.4", "tar-fs": "^3.1.2", "tar-stream": "3.2.0", "ulidx": "0.5.0", "uuid": "11.1.1", "validate.js": "0.13.1", "weak-lru-cache": "^1.2.2", "ws": "8.22.0", "yaml": "2.9.1" }, "overrides": { "alasql": { "xlsx": "0.18.5" } }, "optionalDependencies": { "@harperfast/fulltext": "0.6.0", "@harperfast/hnsw": "0.4.0", "bufferutil": "4.1.0", "segfault-handler": "1.3.0" }, "peerDependencies": { "@aws-sdk/client-bedrock-runtime": "^3.0.0", "@aws-sdk/client-s3": "^3.0.0", "@aws-sdk/lib-storage": "^3.0.0", "uWebSockets.js": "20.68.0" }, "peerDependenciesMeta": { "@aws-sdk/client-bedrock-runtime": { "optional": true }, "@aws-sdk/client-s3": { "optional": true }, "@aws-sdk/lib-storage": { "optional": true }, "uWebSockets.js"

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars0
CategoryCommunication
UpdatedNaNy ago
Forks0

Trust signals

68/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

2 medium1 low