Relay
A single MCP server with 40 tools across 7 categories - PM, Research, Brand, UX, GTM, File, and Web. Built in Go, zero dependencies, one binary. Handles file operations, web fetching, screenshots, search, and planning workflows through one MCP connection.
README
<div align="center">
<img src="https://raw.githubusercontent.com/valtors/relay-landing/master/assets/images/relay-logo.png" alt="Relay logo" width="160" />
Relay
Local MCP server for files, images, PDFs, web, and workflows.
</div>
Install
npx userelay
Runs locally. Your files stay on your machine.
What it does
- Runs one MCP server with 40 tools across 7 categories.
- Reads and writes local files.
- Resizes, crops, converts, rotates, grayscales, and flips images.
- Extracts text from PDFs, counts pages, merges files, splits files, and extracts pages.
- Fetches web pages and checks status codes.
- Converts CSV, JSON, markdown, base64, and regex output.
- Works with Claude Desktop, Cursor, VS Code, and other MCP clients.
- Supports stdio by default and HTTP with
--http. - Enables built-in workflow tools when
ANTHROPIC_API_KEYis present.
No pile of single-purpose servers. One binary.
Quickstart
1. Check the binary
Use status first if you want a one-shot command instead of starting the stdio server.
npx userelay status
relay v0.3.0
tools: 40 registered (7 categories)
transport: stdio (default) | http (with --http)
2. Detect supported editors
npx userelay init --list
relay init --list
detected editors:
1. Cursor
2. VS Code
If your editor is listed, write the config:
npx userelay init
3. Verify the local binary
If you installed Relay from source or a release, relay status prints the same shape:
relay status
╭─────────────────────────────────╮
│ relay vdev │
│ │
│ Tools: 40 (7 categories) │
│ Transport: stdio | http │
│ Status: ready │
╰─────────────────────────────────╯
4. Try one result
Prompt your MCP client with this:
Resize
./screenshots/hero.pngto 1200px wide and save it as./screenshots/hero-large.png.
If that works, Relay is live.
Workflows to try first
1. Research a repo or docs page
Prompt
Fetch
https://github.com/pdfcpu/pdfcpu, summarize what it does, list 3 commands worth trying, and save the notes to./notes/pdfcpu-summary.md.
Relay tools involved
web_fetchfile_write- text formatting tools as needed
Expected result
A local markdown summary your agent can reuse later.
2. Turn local PDFs into structured data
Prompt
Read every PDF in
./invoices, extract the text, pull out all dollar amounts, and save one JSON file at./invoices/amounts.json.
Relay tools involved
file_listpdf_extract_textdata_json_formatfile_write
Expected result
A JSON artifact instead of manual copy-paste from PDFs.
3. Fetch the web and ship a usable artifact
Prompt
Fetch
https://example.com/pricing, turn the important points into markdown, convert that markdown to HTML, and save it as./research/pricing.html.
Relay tools involved
web_fetchtext_md_to_htmlfile_write
Expected result
A file you can open, review, and share.
Tools
Relay ships with 40 tools across 7 categories.
| Category | Tools |
|---|---|
| File (7) | read, write, list, size, hash, zip, unzip |
| Image (7) | info, resize, crop, convert, rotate, grayscale, flip |
| PDF (6) | info, page count, extract text, extract pages, merge, split |
| Text (6) | word count, replace, extract regex, base64 encode, base64 decode, md to html |
| Data (4) | csv to json, json to csv, format json, query json |
| Web (2) | fetch, status |
| Workflow (8) | run workflow, PM plan, research, brand, UX, GTM, approval, assemble plan |
List them from the CLI:
relay tools
relay tools --json
Client configs
Best option: use relay init.
That writes the right JSON shape for the detected editor and uses the installed binary path. If you want to paste config manually, use the snippets below. They assume relay is already on your PATH. If your client cannot find it, replace "relay" with the full path from which relay or where relay.
Claude Desktop
macOS
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
%APPDATA%\Claude\claude_desktop_config.json
Linux
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"relay": {
"command": "relay"
}
}
}
Cursor
Project config
<project>/.cursor/mcp.json
Global config
~/.cursor/mcp.json or %USERPROFILE%\.cursor\mcp.json
{
"mcpServers": {
"relay": {
"command": "relay"
}
}
}
VS Code
Project config
<project>/.vscode/mcp.json
{
"servers": {
"relay": {
"command": "relay"
}
}
}
Optional workflow tools
Most Relay tools do not need an API key.
If you want the built-in planning and workflow tools (run_workflow, pm_plan, run_research, run_brand, run_ux, run_gtm, assemble_plan), add ANTHROPIC_API_KEY under env:
{
"mcpServers": {
"relay": {
"command": "relay",
"env": {
"ANTHROPIC_API_KEY": "your-key-here"
}
}
}
}
Comparison
| Capability | Relay | Stitching servers together |
|---|---|---|
| One-command install | ✓ | — |
| One repo / one binary | ✓ | — |
| 40 built-in tools | ✓ | — |
| Minutes to first result | ✓ | — |
| Local file workflows | ✓ | — |
| Cross-platform release | ✓ | — |
| Low ops overhead | ✓ | — |
CLI reference
relay start MCP server in stdio mode
relay tui launch interactive TUI (same as no args in a TTY)
relay start same as above
relay start --http serve over Streamable HTTP
relay init detect editor and write config
relay init --list show detected editors
relay tools list all tools
relay tools --json list all tools as JSON
relay status version, tool count, transport
relay version print version
relay help usage info
Development
git clone https://github.com/valtors/relay
cd relay
go test ./...
go run . status
go run .
Add a tool: docs/ADDING_A_TOOL.md
Install alternatives:
curl -fsSL https://raw.githubusercontent.com/valtors/relay/main/scripts/install.sh | sh
irm https://raw.githubusercontent.com/valtors/relay/main/scripts/install.ps1 | iex
go install github.com/valtors/relay@latest
Interactive mode
When you run npx userelay without arguments in a terminal, Relay launches an interactive TUI:
╭───────────────────────────────────╮
│ relay v0.3.0 │
│ 40 tools · 7 categories │
╰───────────────────────────────────╯
❯ Start MCP server (stdio)
Start MCP server (HTTP)
Initialize — detect & configure editors
Browse tools
Status
Quit
- Animated RELAY wordmark on launch (shimmer effect)
- Keyboard-navigable menus
- Init wizard with editor detection and config writing
- Tools browser — all 40 tools organized by category
- Status dashboard — version, transport, tool count
If stdin is not a TTY (piped, CI, or MCP client), Relay starts the server directly — no TUI.
To explicitly launch the TUI: npx userelay tui
Roadmap
Solid now:
- 40 built-in tools
- cross-platform install scripts
- MCP server over stdio and HTTP
- editor config helper with
relay init - GoReleaser and CI
- interactive TUI mode
Next:
- tighter onboarding assets
- demo GIF
- more verified starter workflows
- deeper orchestration where it clearly improves real use
License
MIT. See LICENSE.
Built by Tamish at Valtors. If Relay saves setup time, star the repo.
推荐服务器
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 模型以安全和受控的方式获取实时的网络信息。