Gitlumen Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Gitlumen Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
GitLumen MCP Server is a Node.js project that exposes a GitLumen-style review intelligence layer through the Model Context Protocol (MCP), so AI agents can call it as tools.
This project focuses on:
AI Agent / MCP Client
-> GitLumen MCP Server
-> GitHub public repo / PR reader
-> local risk analyzer
-> GitLumen-style reportThis project intentionally does not execute onchain transactions yet and does not use Base MCP send_calls. A Base MCP custom plugin can be attached in Path 2 after this intelligence server is ready.
/pull/<number>.GITHUB_TOKEN for higher rate limits and private repositories (depending on token scope)..gitlumen-mcp/reports/*.json.gitlumen-mcp-server/
|- package.json
|- README.md
|- .env.example
|- examples/
| |- claude_desktop_config.example.json
| \- cursor_mcp.example.json
|- docs/
| |- ARCHITECTURE.md
| \- TOOLS.md
\- src/
|- index.js # MCP stdio server entrypoint
|- cli.js # CLI local test
|- doctor.js # environment checker
|- config.js
|- types.js
|- services/
| |- github.js # GitHub API + raw file loader
| |- analyzer.js # local heuristic risk engine
| |- gitlumen.js # service orchestrator
| \- reportStore.js # local report persistence
\- utils/
|- githubUrl.js
|- ids.js
\- text.jsCheck Node version:
node -vIf your version is Node 18 or below, upgrade to Node 20+.
Open the project directory:
cd gitlumen-mcp-serverInstall dependencies:
npm installCopy env example:
cp .env.example .envFill optional values:
GITHUB_TOKEN=ghp_xxx_or_fine_grained_token
GITLUMEN_MCP_DATA_DIR=.gitlumen-mcp
GITLUMEN_MAX_FILE_BYTES=120000For public repositories, GITHUB_TOKEN can be empty. A token is still recommended to avoid low GitHub rate limits.
npm run doctorExpected output:
GitLumen MCP Doctor
✅ Node version: v20.x.x
✅ GITHUB_TOKEN configured: no (public unauthenticated mode)
✅ Data directory: /path/to/gitlumen-mcp-server/.gitlumen-mcp
✅ Reports directory writable: /path/to/gitlumen-mcp-server/.gitlumen-mcp/reportsnpm run sampleThis command generates a report from a local fixture so you can verify analyzer and report-store behavior without GitHub connectivity.
npm run screen -- https://github.com/modelcontextprotocol/typescript-sdk quicknpm run screen -- https://github.com/modelcontextprotocol/typescript-sdk/pull/1 quickquick = fastest, fewer files
standard = balanced defaultExamples:
npm run screen -- https://github.com/owner/repo standard
npm run screen -- https://github.com/owner/repo quick mainAfter completion, CLI prints a markdown report and saves JSON to:
.gitlumen-mcp/reports/<reportId>.jsonnpm run list -- 10Take a reportId, then:
npm run report -- glr_xxxxxxxxxxxxxxxx markdownOr full JSON:
npm run report -- glr_xxxxxxxxxxxxxxxx jsonThe MCP server uses stdio, so it is normally started by an MCP client instead of being run manually.
node /ABSOLUTE/PATH/TO/gitlumen-mcp-server/src/index.jsTo debug MCP protocol, use MCP Inspector:
npm run inspectThen open the Inspector URL printed in terminal.
This project also includes a Streamable HTTP transport endpoint at /mcp.
Run locally:
npm run start:httpEnvironment variables:
PORT=3333
HOST=0.0.0.0
MCP_AUTH_TOKEN=replace_with_a_long_random_tokenMCP_AUTH_TOKEN is optional but strongly recommended for production.Authorization: Bearer <token>.Health check:
curl -s http://localhost:3333/healthProduction deployment guide:
Client configuration templates (Copilot / VS Code / Codex):
.vscode/mcp.json, which is gitignored)Open Claude Desktop config.
Common location:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd:
{
"mcpServers": {
"gitlumen": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/gitlumen-mcp-server/src/index.js"],
"env": {
"GITHUB_TOKEN": "optional_github_token_here",
"GITLUMEN_MCP_DATA_DIR": "/ABSOLUTE/PATH/TO/gitlumen-mcp-server/.gitlumen-mcp"
}
}
}
}Replace /ABSOLUTE/PATH/TO/... with your real path.
Restart Claude Desktop.
Example prompt:
Use GitLumen to screen https://github.com/modelcontextprotocol/typescript-sdk with quick scope. Return the risk map and top findings.Create or edit Cursor MCP config (format may vary by Cursor version):
{
"mcpServers": {
"gitlumen": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/gitlumen-mcp-server/src/index.js"],
"env": {
"GITHUB_TOKEN": "optional_github_token_here"
}
}
}
}Restart Cursor, then ask the agent to use GitLumen tools.
screen_repositoryScreen a repository or PR.
Input:
{
"repoUrl": "https://github.com/owner/repo",
"scope": "standard",
"output": "compact"
}For PR:
{
"repoUrl": "https://github.com/owner/repo/pull/123",
"scope": "quick",
"output": "markdown"
}Output modes:
compact = concise JSON for agent replies
markdown = full markdown report
json = full JSON reportget_review_reportFetch a previous report by reportId.
{
"reportId": "glr_xxxxxxxxxxxxxxxx",
"output": "markdown"
}list_review_reportsList local reports.
{
"limit": 20
}get_repository_structureGet repository/PR structure without generating a full risk report.
{
"repoUrl": "https://github.com/owner/repo",
"limit": 300
}explain_gitlumen_mcp_flowExplain Path 1 flow and how Path 2 Base MCP can be attached later.
The local analyzer reads:
Then it generates signals:
Risk categories:
security
dependencies
tests
architecture
operations
maintainabilitySeverity:
critical
high
medium
low
info{
"reportId": "glr_abc123...",
"risk": {
"score": 42,
"level": "medium",
"mergeReadiness": "review_required",
"categoryScores": {
"security": 24,
"dependencies": 13,
"tests": 24,
"architecture": 0,
"operations": 13,
"maintainability": 5
}
},
"summary": "The repository/PR has medium risk signals...",
"findings": [],
"decisionQuestions": [],
"recommendations": []
}Repo/PR intelligence
Risk map
Review chapters
Decision questions
Report retrievalBase MCP get_wallets
GitLumen quote endpoint
GitLumen prepare endpoint
Base MCP send_calls
Review credit purchase
Reward claim
Reviewer reputationThis project is intentionally standalone for Path 1 first. Later, Path 2 can read reportId and connect it with onchain payment/reward/reputation flows.
Unable to reach GitHub API or fetch failedCheck internet connection, DNS, proxy/VPN, or retry. For offline verification:
npm run sampleGitHub API 403 rate limit exceededAdd GITHUB_TOKEN in .env or MCP client config.
Only github.com repositories are supportedThis prototype does not support GitLab/Bitbucket yet. Add a new adapter in src/services/github.js or create a separate service.
Check:
args path is absolute.npm install has been run.npm run inspect.Run:
npm run doctorEnsure .gitlumen-mcp/reports is writable.
Edit:
src/services/analyzer.jsEdit:
src/services/github.jsEdit:
src/services/gitlumen.jsPotential production direction:
screen_repository MCP tool
-> GitLumen hosted API /v1/screenings
-> GitLumen Review Intelligence Engine
-> reportId
-> get_review_report MCP tool.env.MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.