整合
Model Context Protocol (MCP)
把 Thunderbit 公開成 MCP server,讓 Claude、Cursor、Windsurf、Claude Code 都能讀 URL
MCP 是把工具接進 LLM 宿主的開放協議。一旦把 Thunderbit 接成 MCP server,所有支援 MCP 的客戶端 —— Claude Desktop、Cursor、Windsurf、Claude Code、Zed —— 都會免費拿到一個 read_url tool。
安裝
npm install @modelcontextprotocol/sdk zodServer(TypeScript)
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
const API = 'https://openapi.thunderbit.com/openapi/v1';
const H = { Authorization: `Bearer ${process.env.THUNDERBIT_API_KEY}` };
const server = new Server(
{ name: 'thunderbit', version: '0.1.0' },
{ capabilities: { tools: {} } },
);
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [
{
name: 'read_url',
description: 'Fetch a URL and return clean Markdown.',
inputSchema: {
type: 'object',
properties: {
url: { type: 'string' },
renderMode: { type: 'string', enum: ['basic', 'advanced'], default: 'basic' },
},
required: ['url'],
},
},
],
}));
server.setRequestHandler(CallToolRequestSchema, async (req) => {
const { url, renderMode = 'basic' } = req.params.arguments as any;
const res = await fetch(`${API}/distill`, {
method: 'POST',
headers: { ...H, 'Content-Type': 'application/json' },
body: JSON.stringify({ url, renderMode }),
});
const json = await res.json();
return { content: [{ type: 'text', text: json.data.markdown }] };
});
await server.connect(new StdioServerTransport());接進 Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"thunderbit": {
"command": "node",
"args": ["/abs/path/to/server.js"],
"env": { "THUNDERBIT_API_KEY": "tb_live_..." }
}
}
}重啟 Claude Desktop —— read_url 就出現在 tool 選單裡。
接進 Cursor / Windsurf / Claude Code
三邊讀 MCP 設定的 JSON 都長得差不多。看各家編輯器的文件 —— mcpServers 結構是一樣的。
小技巧
- 加第二個 tool
extract_data,背後接/extract,做結構化抽取 - 批次任務的話,公開一個
read_urls(複數)接/batch/distill,在 handler 裡輪詢 - 桌面宿主用 stdio 模式;遠端託管時切到 SSE
相關文件
- Vercel AI SDK —— 同樣的模式,不同的宿主
- Agent Read-URL Tool