Atlas / MCP servers / burakdede / lorepack

lorepackBLOCK

mcp/burakdede/lorepack

Give AI agents cited, versioned context from your docs and spreadsheets. Build, diff and roll back what Claude Code, Codex and any MCP client read. Local-first, no API keys.

Verdict
BLOCK
Grade
F
Trust score
43 /100
Exposed tools
54 47r · 5w · 2d
Transport
stdio
License
Apache-2.0
Stars
3
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Lorepack turns the documents and tables your AI depends on into versioned context builds. It gives an agent a stable, inspectable source of truth instead of an untracked folder or a mutable search index.

Every build is immutable and content-addressed. You can inspect what entered it, see what was excluded and why, ask for bounded context with citations, compare versions, activate a known version, and roll back without rebuilding. AI clients read the active build over MCP or HTTP. They cannot edit sources, build, deploy, or run shell commands through the Lorepack boundary.

Why teams use it

Lorepack is for teams whose AI answers must be grounded in project material that changes over time:

  • Keep engineering runbooks, product specifications, policies, and operational notes in a

reviewable context build.

  • Let Claude Code, Codex, VS Code, or another MCP client answer from the same local build.
  • Preserve spreadsheets as typed tables instead of flattening them into prose.
  • Review a context update before activating it, then recover immediately if a bad source update

reaches the active version.

  • Inspect every answer back to a file, heading, line range, sheet, or cell range.

Lorepack is a context build system, not a hosted knowledge base, generic crawler, chat app, or replacement for your source control. Retrieval is one capability of a versioned build.

Where Lorepack fits

Lorepack is useful when an AI system depends on files that change and those changes need the same reviewability as code or infrastructure. Common environments include:

  • Local coding agents that need one checked-in context for a repository, its runbooks, and its

design documents.

  • Engineering and operations teams that review deployment procedures, incident notes, and

policies before an agent can use a new version.

  • Regulated or security-sensitive teams that need immutable builds, explicit activation, and a

source location for every returned passage or table row.

  • P
Read from source at commit f514e382ea83OBSERVED · 2026-10-11
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add test-support --env CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN} --env LOREPACK_TEST_TOKEN=${LOREPACK_TEST_TOKEN} --env LORE_REMOTE_BEARER_TOKEN=${LORE_REMOTE_BEARER_TOKEN} --env RAG_BENCH_API_KEY=${RAG_BENCH_API_KEY} -- npx -y @lorepack/[email protected]
claude-desktop
{
  "mcpServers": {
    "test-support": {
      "command": "npx",
      "args": [
        "-y",
        "@lorepack/[email protected]"
      ],
      "env": {
        "CLOUDFLARE_API_TOKEN": "${CLOUDFLARE_API_TOKEN}",
        "LOREPACK_TEST_TOKEN": "${LOREPACK_TEST_TOKEN}",
        "LORE_REMOTE_BEARER_TOKEN": "${LORE_REMOTE_BEARER_TOKEN}",
        "RAG_BENCH_API_KEY": "${RAG_BENCH_API_KEY}"
      }
    }
  }
}
03

Exposed tools (54)

47 read · 5 write · 2 destructive. Blast radius: 2 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
activatereadPoint this project at a build. Never recompiles.
buildreadbuild id or unambiguous prefix
buildsreadList build history, newest first.
clientreadwhich client (${CLIENT_CHOICES})
completionreadPrint shell completion for lorepack.
configreadShow the resolved configuration, and where each value came from.
connectreadConfigure an AI client to read this project, and verify that it works.
deploywriteProject a build onto a remote target and activate it after verification.
devreadTurn a folder into a running context runtime. Builds, serves, and connects.
diffreadCompare two builds. Reads build data only, never the sources.
disconnectdestructiveRemove the Lorepack entry from an AI client, leaving everything else.
doctorreadCheck this environment and project, and say how to fix what is wrong.
documentreadReturns a document the user asked for.
echoreadEchoes its arguments.
exportwriteWrite a bounded, cited context bundle for a task. Markdown or JSON.
fail-buildreadFails with a build error.
fail-environmentreadFails with an environment error.
fail-lockreadFails with a concurrency error.
fail-remotereadFails with a remote error.
fail-unexpectedreadThrows something that is not a LoreError.
fail-userreadFails with a user error.
firstreadfirst argument
fromreadbuild to compare from
initwriteCreate a minimal Lorepack project in a directory.
inspectreadShow what the build contains. Subjects: ${SUBJECTS.join(
lore_build_inforead
lore_context_for_taskread
lore_describe_tableread
lore_list_tablesread
lore_query_tableread
lore_read_sourceread
lore_searchread
mcpreadServe the active build to an AI client over MCP on stdio.
packwriteWrite a portable .lorepack archive of a build.
pathreadfor explain: a dotted key, e.g. chunking.targetTokens
planreadPreview what a build would change. Makes no changes itself.
progressreadA command that reports progress and returns a result.
prunedestructiveRemove old builds, keeping the active one and the previous five.
queryreadwhat to look for
reportreadReports a file name, through every human channel.
rollbackreadReturn to the previous verified build. Never recompiles.
samereadone
searchreadSearch the active build. Every result carries its source location.
secondreadoptional second
servereadServe the active build over HTTP and MCP. Read-only, and never rebuilds.
shellreadone of ${SHELLS.join(
show-cwdreadReports the resolved working directory.
show-flagsreadReports resolved global options.
statusreadReport whether the active build still matches the sources.
subjectreadshow or explain
succeedreadA command that succeeds.
targetwritewhich target to deploy to
toreadbuild to compare to
validatereadCompile and validate a candidate without activating it.
04

Trust audit

BLOCKgrade F · trust 43/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (7 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (25)

CRITICALHard-coded secrets · secret.private_key · CWE-798, CWE-321
tools/acceptance/src/scenarios/init.ts:113
id_rsa: '-----BEGIN PRIVATE KEY-----\nnot-a-real-key\n',
MEDIUMInventory / provenance · inv.binary · CWE-1104
Lorepack_Local_First_MVP_Architecture_Final.docx
Lorepack_Local_First_MVP_Architecture_Final.docx
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
packages/compiler/src/discover/discover.ts
discover.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
packages/parsers/src/shared/builder.ts
builder.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
apps/studio/src/lib/api.ts:16
baseUrl: typeof window === 'undefined' ? 'http://127.0.0.1:43110' : window.location.origin,
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
apps/studio/src/lib/equivalents.ts:114
return typeof window === 'undefined' ? 'http://127.0.0.1:43110' : window.location.origin;
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
packages/parsers/src/csv/parser.ts:160
return text.startsWith('') ? text.slice(1) : text;
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/compiler/test/validate.test.ts:199
manifest: { token: 'super-secret-value-1234' },
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/deploy-cloudflare/test/table-query-cost.test.ts:152
const token = 'lore_rt_deployed_worker';
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/deploy-cloudflare/test/wrangler-dev.test.ts:27
const TOKEN = 'lore_rt_acceptance_worker_token';
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
packages/core/test/errors.test.ts:122
expect(redact('use ghp_abcdefghijklmnopqrstuvwxyz012345', [])).toContain(REDACTED);
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/compiler/test/discover.test.ts:686
'gcp-credentials.json': '{"private_key":"-----BEGIN PRIVATE KEY-----"}',
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
disconnect, prune
Why it matters. 2 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.binary · CWE-1104
benchmarks/corpus/generated/environments.xlsx
environments.xlsx
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.hidden_file · CWE-1104
.node-version
.node-version
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/cli/test/init.test.ts:208
'nested/id_rsa': 'KEY',
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/cli/test/init.test.ts:217
expect(result.stdout).toContain('nested/id_rsa');
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/cli/test/terminal-output.e2e.test.ts:70
writeFileSync(join(project, 'docs', `id_rsa${ESC}[31m.pem`), 'not a key\n');
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/compiler/test/discover.test.ts:596
'id_rsa',
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/compiler/test/discover.test.ts:597
'id_ed25519.pub',
Why it matters. touches a credential store
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
apps/studio/vite.config.ts:14
outDir: '../../packages/cli/studio-dist',
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/backend-local/test/storage.test.ts:205
await expect(store.get('../../../escape.txt')).rejects.toMatchObject<Partial<LoreError>>({
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/backend-local/test/storage.test.ts:208
await expect(store.has('../../../escape.txt')).rejects.toMatchObject<Partial<LoreError>>({
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/backend-local/test/storage.test.ts:778
seedLock(path, { pid: 999_999, token: '../../escaped' });
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/backend-local/test/tables.test.ts:81
'../../etc/passwd',

Gates applied: critical_finding, no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha f514e382ea83full audit observations/trust-audit/mcp-server/burakdede__lorepack.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-11f514e382ea83BLOCKF43first audit
06

Questions

What is the lorepack MCP server?

Give AI agents cited, versioned context from your docs and spreadsheets. Build, diff and roll back what Claude Code, Codex and any MCP client read. Local-first, no API keys.

What tools does lorepack expose?

54 in total: 47 read-only, 5 that write, and 2 that can delete or overwrite (disconnect, prune). Every one is listed on this page with its risk.

Is lorepack safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (43/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does lorepack need?

It reads CLOUDFLARE_API_TOKEN, LOREPACK_TEST_TOKEN, LORE_REMOTE_BEARER_TOKEN, RAG_BENCH_API_KEY and RAG_BENCH_TOKENIZER from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does lorepack run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @lorepack/test-support at 0.0.0.

How current is this page?

The grade is for one exact copy of the source (f514e382ea83), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement