什么是 Blank Files MCP?
用于从 blankfiles.com 列出并获取最小可用空白文件的 MCP 服务器,适合模板与占位场景。
README
Blank Files Website
Laravel application that powers blankfiles.com. Browse and download minimal valid blank files by type and category. File data and assets are served from the filearchitect/blank-files repository via a configurable CDN.
Requirements
- PHP 8.2+
- Composer
- Node.js 18+ (for Vite frontend build)
Installation
git clone https://github.com/filearchitect/blankfiles-website.git
cd blankfiles-website
composer install
cp .env.example .env
php artisan key:generate
Set CDN_URL in .env (see Configuration). Then build the frontend and run the app:
npm install && npm run build
php artisan serve
Or use Laravel Herd with a .test domain.
Configuration
| Variable | Description |
|---|---|
CDN_URL | Required. Base URL used to construct downloadable file URLs as {CDN_URL}/files/{filename}. Default: https://raw.githubusercontent.com/filearchitect/blank-files/main (set in config/app.php). |
CATALOG_URL | Optional. Direct URL for the catalog JSON (files/files.json). Default is https://raw.githubusercontent.com/filearchitect/blank-files/main/files/files.json for freshness. |
CACHE_ENABLED | Optional. When true, the file list from the CDN is cached. TTL is controlled by CATALOG_TTL_MINUTES (default 10). See config/cache.php and app/Services/FileService.php. |
CATALOG_TTL_MINUTES | Optional. Cache TTL in minutes for the remote catalog when CACHE_ENABLED=true. Lower values reflect new formats sooner; higher values reduce CDN fetches. |
API_KEYS | Optional. Comma-separated API keys for higher-rate API clients (used by X-API-Key or Authorization: Bearer ...). |
API_PUBLIC_RATE_LIMIT | Optional. Public API requests/minute limit (default 30). |
API_KEY_RATE_LIMIT | Optional. API-key requests/minute limit (default 300). |
API_USAGE_LOG_CHANNEL | Optional. Logging channel for API usage analytics (default api_usage). |
OPENPANEL_CLIENT_ID | Optional. Enables OpenPanel web analytics script when set. |
OPENPANEL_CLIENT_SECRET | Optional. Reserved for server-side OpenPanel events (not exposed to browser script). |
Project structure
| Path | Purpose |
|---|---|
app/Http/Controllers/FileController.php | Web: homepage, file detail page, download proxy. |
app/Http/Controllers/Api/FileController.php | API: list all files, list files by type. |
app/Services/FileService.php | Fetches catalog JSON (CATALOG_URL) and formats file URLs from CDN_URL. |
routes/web.php | Web routes (home, files show, download). |
routes/api.php | API v1 routes. |
resources/views/files/ | Blade views for file listing and file detail. |
Deployment
On push to main, GitHub Actions:
- Builds the frontend (Vite) with
npm ciandnpm run build. - SCPs
public/build/to the Forge server. - Triggers a Laravel Forge deployment.
- Runs
php artisan optimize:clearon the server.
Required repository secrets:
FORGE_SSH_HOST— SSH host for the server.FORGE_SSH_USER— SSH user (e.g.forge).SSH_PRIVATE_KEY— Private key for SCP/SSH.FORGE_SERVER_ID— Forge server ID.FORGE_SITE_ID— Forge site ID.FORGE_API_KEY— Forge deploy token.
See .github/workflows/deploy.yml.
For developers and bots
Base URL
Production: https://blankfiles.com. HTML and JSON are available; use Accept: application/json where applicable.
Web routes
| Method | Path | Description |
|---|---|---|
GET | / | Homepage: file list by category. Responds with JSON when Accept: application/json. Throttle: 30/min. |
GET | /upload-testing | Binary-focused landing page for upload testing intent, linking to high-demand file formats and categories. |
GET | /files/{category}/{type} | SEO-friendly file detail page (e.g. /files/document-spreadsheet/xlsx). Constraints: category, type = [A-Za-z0-9\-]+. |
GET | /files/download/{category}/{type} | Download proxy: streams the file with Content-Disposition: attachment (filename blank.{type} or blank.{type}.zip). Throttle: 60/min. |
API routes (prefix api/v1)
| Method | Path | Response |
|---|---|---|
GET | /api/v1/files | { "files": [ ... ], "meta": { "version", "generated_at", "count" } }. |
GET | /api/v1/files/{type} | Same schema, filtered by extension. |
GET | /api/v1/files/{category}/{type} | Same schema with exactly one matching entry when found; 404 when missing. |
GET | /api/v1/status | API health + aggregate catalog metrics (file_count, type_count, category_count) and upstream source info. |
Machine-friendly notes
- The canonical file catalog schema is defined in the blank-files repo:
files/files.json(keyfiles, array of{ type, url, category, package? }). - Download URLs: use the API
urlfield for direct CDN access, orGET /files/download/{category}/{type}for a same-origin download with a predictable filename. - Conditional requests are supported on API responses and sitemap (
ETag,Last-Modified). - Rate limits: public IP-based limits and optional API-key limits (
X-API-Key). - API usage analytics are logged to
storage/logs/api-usage-*.log(configurable channel). - Compatibility policy: API policy.
- Web landing analytics for growth pages are logged to
storage/logs/web-traffic-*.log.
Client snippets
curl -sS "https://blankfiles.com/api/v1/files/document-spreadsheet/xlsx" \
-H "Accept: application/json" \
-H "X-API-Key: $BLANKFILES_API_KEY"
const res = await fetch("https://blankfiles.com/api/v1/files", {
headers: { "Accept": "application/json", "If-None-Match": etag }
});
if (res.status === 304) {
// unchanged
}
import requests
r = requests.get("https://blankfiles.com/api/v1/status", timeout=20)
r.raise_for_status()
print(r.json())
Compatibility policy
- URL versioning is stable under
/api/v1/*. - Breaking changes require a new major API path version.
- Deprecated endpoints are kept for at least 90 days before removal.
- New fields may be added; clients should ignore unknown fields.
Related
- filearchitect/blank-files — Source of truth for the file list and blank file assets.
MCP server (for agent marketplaces/registries)
This repository now includes a minimal MCP server that exposes Blank Files as tool calls.
- Script:
scripts/mcp/blankfiles-mcp.mjs - Run:
npm run mcp:server - Optional env:
BLANKFILES_BASE_URL(default:https://blankfiles.com)
Available MCP tools:
list_blank_files— list files, optional filters (category,type,limit)files_by_type— list entries by extensionfile_by_category_type— deterministic single lookup by category + extension
Example local MCP client config entry:
{
"mcpServers": {
"blankfiles": {
"command": "node",
"args": ["/absolute/path/to/blankfiles-website/scripts/mcp/blankfiles-mcp.mjs"],
"env": {
"BLANKFILES_BASE_URL": "https://blankfiles.com"
}
}
}
}
Registry submission helpers:
- Template metadata:
scripts/mcp/registry/server.json.template - Publish checklist:
scripts/mcp/registry/PUBLISHING.md
Published package workspace:
packages/blankfiles-mcp(publish as@filearchitect/blankfiles-mcp)
OpenClaw skill (ClawHub discoverability)
This repository includes an OpenClaw-ready skill bundle:
- Skill path:
skills/blankfiles - Skill entry:
skills/blankfiles/SKILL.md - Publish guide:
skills/blankfiles/references/publish.md
Typical publish flow:
npm i -g clawhub
clawhub login
clawhub publish ./skills/blankfiles \
--slug blankfiles \
--name "Blank Files Gateway" \
--version 1.0.0 \
--changelog "Initial release" \
--tags latest
License
This project is licensed under the MIT License.
常见问题
Blank Files MCP 是什么?
用于从 blankfiles.com 列出并获取最小可用空白文件的 MCP 服务器,适合模板与占位场景。
相关 Skills
技能工坊
by anthropics
覆盖 Skill 从创建到迭代优化全流程:起草能力、补测试提示、跑评测与基准方差分析,并持续改写内容和描述,提升效果与触发准确率。
✎ 技能工坊把技能从创建、迭代到评测串成闭环,方差分析加描述优化,特别适合把触发准确率打磨得更稳。
表格处理
by anthropics
围绕 .xlsx、.xlsm、.csv、.tsv 做读写、修复、清洗、格式整理、公式计算与格式转换,适合修改现有表格、生成新报表或把杂乱数据整理成交付级电子表格。
✎ 做 Excel/CSV 相关任务很省心,能直接读写、修复、清洗和格式转换,尤其擅长把乱七八糟的表格整理成交付级文件。
PPT处理
by anthropics
处理 .pptx 全流程:创建演示文稿、提取和解析幻灯片内容、批量修改现有文件,支持模板套用、合并拆分、备注评论与版式调整。
✎ 涉及PPTX的创建、解析、修改到合并拆分都能一站搞定,连备注、模板和评论也能处理,做演示文稿特别省心。
相关 MCP Server
文件系统
编辑精选by Anthropic
Filesystem 是 MCP 官方参考服务器,让 LLM 安全读写本地文件系统。
✎ 这个服务器解决了让 Claude 直接操作本地文件的痛点,比如自动整理文档或生成代码文件。适合需要自动化文件处理的开发者,但注意它只是参考实现,生产环境需自行加固安全。
by wonderwhy-er
Desktop Commander 是让 AI 直接执行终端命令、管理文件和进程的 MCP 服务器。
✎ 这工具解决了 AI 无法直接操作本地环境的痛点,适合需要自动化脚本调试或文件批量处理的开发者。它能让你用自然语言指挥终端,但权限控制需谨慎,毕竟让 AI 执行 rm -rf 可不是闹着玩的。
EdgarTools
编辑精选by dgunning
EdgarTools 是无需 API 密钥即可解析 SEC EDGAR 财报的开源 Python 库。
✎ 这个工具解决了金融数据获取的痛点——直接让 AI 读取结构化财报,比如让 Claude 分析苹果的 10-K 文件。适合量化分析师或金融开发者快速构建数据管道。但注意,它依赖 SEC 网站稳定性,高峰期可能延迟。