renamed-to
AI-powered MCP server for file renaming, organization, and PDF splitting using natural language prompts and content analysis.
README
@renamed-to/mcp
Model Context Protocol (MCP) server for renamed.to — bring AI-powered file renaming, organization, and PDF splitting into Claude Code, Claude Desktop, Cursor, Windsurf, and any MCP-compatible client. Tell the AI how you want your files named using plain English — it reads the actual document content (OCR, tables, headers) and follows your instructions.
Features
- Natural-language prompts — describe your naming rules in plain English and the AI follows them (per-document-type rules, conditional logic, localization, and more)
- AI content analysis — OCR and NLP extract dates, vendors, amounts, document types, and reference numbers from the actual file contents
- PDF splitting — split PDFs by content/topic (AI), bookmarks, or page ranges
- Organization strategies — auto-sort into folders by year, company, document type, or combinations
- Dry-run mode — preview renames before committing changes
- Multi-platform — works with Claude Code, Claude Desktop, Cursor, and Windsurf
Quick Start
claude mcp add renamed-to -- npx -y @renamed-to/mcp
Set your API key and you're ready to go:
export RENAMED_API_KEY="rt_..."
Using Claude Desktop, Cursor, or Windsurf? See Configuration below.
Installation
Run directly (no install)
npx -y @renamed-to/mcp
Global install
npm install -g @renamed-to/mcp
renamed-mcp
From source
git clone https://github.com/renamed-to/mcp.renamed.to.git
cd mcp.renamed.to
npm install
npm run build
node dist/index.js
Configuration
Claude Code
claude mcp add renamed-to -- npx -y @renamed-to/mcp
Claude Desktop
Add to your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"renamed-to": {
"command": "npx",
"args": ["-y", "@renamed-to/mcp"],
"env": {
"RENAMED_API_KEY": "rt_your_key_here"
}
}
}
}
Cursor
Add to your MCP configuration (Settings → MCP Servers):
{
"mcpServers": {
"renamed-to": {
"command": "npx",
"args": ["-y", "@renamed-to/mcp"],
"env": {
"RENAMED_API_KEY": "rt_your_key_here"
}
}
}
}
Windsurf
Add to your MCP configuration:
{
"mcpServers": {
"renamed-to": {
"command": "npx",
"args": ["-y", "@renamed-to/mcp"],
"env": {
"RENAMED_API_KEY": "rt_your_key_here"
}
}
}
}
Authentication
- Sign up for a renamed.to account
- Go to Settings → API Keys and create a key
- Set the environment variable:
export RENAMED_API_KEY="rt_..."
The server also accepts RENAMED_TOKEN as a fallback. Use the status tool to verify your connection.
Tools
rename
Rename files using AI content analysis. Sends files to the renamed.to API which reads the actual document content — OCR for scans, NLP for text — extracts metadata (dates, vendors, amounts, reference numbers), and generates filenames based on your instructions.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
filePaths |
string[] |
Yes | — | Absolute or relative paths to the files to rename |
outputDir |
string |
No | Source directory | Directory to write renamed files to |
format |
string |
No | AI-chosen | Natural-language prompt describing how filenames should be formatted (see Prompt examples below) |
dryRun |
boolean |
No | false |
Preview the rename without writing any files |
Prompt examples
The format parameter accepts plain English instructions. The AI interprets them and applies them to each file based on its content:
Invoices: {date} - {vendor} - Invoice #{number} - ${amount}
Contracts: {vendor} - {type} - {date}
Receipts: {date} - {vendor} - Receipt
You can specify per-document-type rules, conditional logic, localization, and more:
- Department prefixes —
"Add HR_ prefix for employment documents, FIN_ for financial records" - Localization —
"Use German date format DD.MM.YYYY, translate document types to German" - Conditional logic —
"If invoice amount > $1000, add LARGE_ prefix" - Industry formats —
"Include matter number for legal documents, client code for accounting"
When no format is provided, the AI automatically selects the best naming pattern for each document.
<details> <summary>Example output</summary>
{
"dryRun": true,
"files": [
{
"original": "scan_001.pdf",
"suggested": "2024-03-15 - Quarterly Report Q1.pdf",
"destination": "/Users/you/Documents/2024-03-15 - Quarterly Report Q1.pdf",
"renamed": false
}
]
}
</details>
pdf_split
Split PDFs by content or topic using AI, by bookmarks, or by page ranges. The AI reads the full document, identifies logical sections and topic boundaries, and creates individually named PDFs for each.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
filePath |
string |
Yes | — | Path to the PDF file to split |
strategy |
"ai" | "bookmarks" | "pages" |
No | "ai" |
Splitting strategy |
outputDir |
string |
No | Source directory | Directory to write the split PDF files to |
Strategies:
ai— analyzes content and splits by topic or logical sectionsbookmarks— splits at PDF bookmark boundariespages— splits by page ranges
<details> <summary>Example output</summary>
{
"originalFile": "annual-report.pdf",
"documentsCreated": 3,
"outputDir": "/Users/you/Documents",
"files": [
{
"filename": "annual-report - Financial Summary.pdf",
"pages": "1-12",
"path": "/Users/you/Documents/annual-report - Financial Summary.pdf",
"reason": "Financial data and balance sheets"
},
{
"filename": "annual-report - Operations Review.pdf",
"pages": "13-28",
"path": "/Users/you/Documents/annual-report - Operations Review.pdf",
"reason": "Operational metrics and departmental reviews"
}
]
}
</details>
watch
Watch a directory for new files and auto-process them using rename or pdf-split.
Note: Directory watching requires a long-running process that doesn't fit the MCP request/response model. This tool returns instructions to use the CLI instead:
npx @renamed-to/cli watch <directory> --action rename
npx @renamed-to/cli watch <directory> --action pdf-split
See the @renamed-to/cli docs for more details.
status
Check authentication status and API connectivity. Takes no parameters.
<details> <summary>Example output (authenticated)</summary>
{
"status": "authenticated",
"email": "you@example.com",
"name": "Your Name",
"credits": 500
}
</details>
Tool Annotations
| Tool | Read-Only | Destructive | Idempotent |
|---|---|---|---|
rename |
No | Yes (renames files in place) | No |
pdf_split |
No | No (creates new files) | Yes |
watch |
Yes (informational only) | No | Yes |
status |
Yes | No | Yes |
Examples
Rename scanned documents based on their content:
"Rename all the PDFs in my Downloads folder based on their content"
The AI reads each file — even scanned images via OCR — extracts dates, vendors, document types, and generates descriptive names like 2024-03-15 - Quarterly Report Q1.pdf.
Use natural-language rules for different document types:
"Rename these files. For invoices use '{date} - {vendor} - Invoice #{number}', for contracts use '{vendor} - {type} - {date}', and add a LARGE_ prefix if the amount is over $1000"
The AI applies different naming rules per document type, with conditional logic, all from a single plain-English prompt.
Split a long report into separate documents by topic:
"Split this 50-page annual report into separate documents by topic"
The AI analyzes content boundaries and creates individually named PDFs for each logical section — no bookmarks required.
Preview renames with localized formatting:
"Do a dry run rename of these invoices using German date format DD.MM.YYYY and translate document types to German"
Shows what the new filenames would be without moving any files. The AI handles localization and translation in the naming.
Error Handling
The server provides clear error messages for common issues:
| Error | Cause | Resolution |
|---|---|---|
| Not configured | RENAMED_API_KEY not set |
Add your API key to the environment (get one here) |
| Authentication failed | Invalid or expired API key | Generate a new key at Settings → API Keys |
| Insufficient credits | Account credits depleted | Top up at Settings → Billing |
| Rate limit exceeded | Too many requests | Wait and retry (the error includes a retry-after interval when available) |
| Network error | Cannot reach the API | Check your internet connection |
| File not found | Invalid file path | Verify the path exists and is accessible |
Security
- API key is read from environment variables only — never hardcoded or logged
- File contents are sent to the renamed.to API for analysis — be aware of this when processing sensitive documents
- Runs locally via stdio transport — no network ports are opened on your machine
- No data stored — the server is stateless between requests
Related
- @renamed-to/cli — command-line tool for renamed.to (includes
watchfor directory monitoring) - @renamed-to/sdk — multi-language SDKs for the renamed.to API
- Claude Code plugin — Claude Code skills for renamed.to
Contributing
Contributions are welcome. Please open an issue before submitting significant changes. Run npm run typecheck before opening a PR.
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。