Filelayer MCP server
dev.filelayer/core·v0.35.2User files for a SaaS, under one person's authority: list, share with an expiry, revoke.
not scanned yet
0 stars2.8k downloads/wk
Reviews
Write oneNobody has reviewed Filelayer yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Filelayer tools
No tool declarations could be read from the package source. They show once the server is installed.
How Filelayer compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 85/100
- higher than 70% of 48,255 servers
- Downloads a week
- 2,798
- more than 95% of 12,191 servers with a package
Release history: 9 versions in the registry since 2026-10-12, latest 2026-11-03, typically one every 1 day.
Install Filelayer in Claude Code, Cursor or VS Code
Runs npx -y @filelayer/core on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add core -- npx -y @filelayer/core
What the publisher says
From the Filelayer repository's README, as published. We do not edit it. Read it on GitHub
Filelayer
<!-- Every URL on this page is rooted at github.com/filelayer/filelayer and npmjs.com/package/@filelayer/core, so the badges resolve on their own with no edit here. -->
Alpha — developer preview, not production software. Nobody is running it
in production, including us. Should you depend on this?
has the real numbers, including the ones that are zero, and exactly what would
change them. Limitations is the complete list of what it
does not do.
We are looking for three to five design partners. If you are building
something with private user files, we will help you integrate this and stay on
hand while you do, in exchange for telling us where it breaks. That is the only
thing on our roadmap to 1.0 we cannot build ourselves.
Open an issue or say hello.
The file layer for SaaS applications. Public files and private files, with one authorization model behind both.
You tell Filelayer who the caller is. Filelayer decides what they may do with a file, serves the bytes with the right headers, and writes the audit event. For file access that goes through Filelayer, that decision is made in one place, packages/core/src/authz.ts, so you write no ownership checks in route handlers, no presigned-URL expiry logic, and no per-route access rules of your own.
Filelayer is authorization middleware, not row-level security. It runs in your application process, in front of Postgres and your bucket. Code that queries these tables directly does not go through it. The schema does enforce a set of invariants against every writer: cross-tenant grants, cross-project identities, and delegation that amplifies authority or subject breadth are refused by constraints and triggers, so a migration or a psql session cannot write them. But there is no RLS policy in schema.sql, and a direct SELECT is not filtered by anything. If you need enforcement that survives arbitrary database clients, use database-level enforcement; Filelayer is the layer above it, and the two compose.
<!-- doccheck-setup import { Filelayer } from '@filelayer/core'; const fl = await Filelayer.quickstart({ baseUrl: 'http://localhost:3000' }); const bytes = new TextEncoder().encode('hello'); -->
// Public avatar
const { url } = await fl.files.put(bytes, { public: true });
// Private, user-owned
const { id } = await fl.files.put(bytes, { owner: 'user_123' });
const file = await fl.files.get(id, { as: 'user_123' });
// Multi-tenant, role-controlled
await fl.files.put(bytes, { org: 'acme', owner: 'user_123' });
// Shared with an expiry, a password and a download cap, and revocable
const share = await fl.shares.create(id, {
as: 'user_123', expiresIn: 3600, maxDownloads: 3, password: 'hunter2',
});
await fl.shares.revoke(share.grantId, { as: 'user_123' }); // this link, now
// Shared with a named user, and taken back. `unshare` is the one you want for
// a person: `create()` is not idempotent, so revoking a single grant id you
// happen to be holding can leave an earlier one live.
await fl.shares.create(id, { as: 'user_123', withUser: 'user_456' });
await fl.shares.unshare(id, { as: 'user_123', user: 'user_456' }); // all of itShortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Filelayer: common questions
- Is Filelayer MCP server safe?
- Yes, by our scan: it is graded A (85/100). Read the Filelayer safety report
- How do I install Filelayer?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Filelayer need an API key?
- Yes. The registry entry asks for
DATABASE_URL,S3_ACCESS_KEY_ID,S3_SECRET_ACCESS_KEY. - Is Filelayer maintained?
- The last commit was 23 days ago (2026-10-12). The latest release is v0.35.2.
- How does Filelayer compare with other MCP servers?
- safety score 85/100 (higher than 70% of 48,255 servers); downloads a week 2,798 (more than 95% of 12,191 servers with a package). Full comparison.