AnySiteMCP
将任何网站变成人工智能代理的实时MCP服务器-无需手动API包装。
AnySiteMCP分析任何URL并自动生成 模型上下文协议(MCP) 将该站点的功能作为可调用工具公开的服务器。发现的工具可以直接从内置的Integration Hub保存、管理和调用,也可以由任何兼容MCP的AI代理(Claude Desktop、自定义代理等)使用。
______________________________________________________________________
v0.1d的新增功能
| 特性 | 描述 |
|---|---|
| 明暗主题 | 全亮/暗模式,基于板岩的调色板、天蓝色调和CSS自定义属性 |
| 主题切换 | 导航栏中的一键切换可在亮模式和暗模式之间切换 |
| 板岩调色板 | 蓝灰色板岩色调取代中性灰色,打造更清晰的开发工具美学 |
| 始终为暗代码块 | 代码和连接串面板在亮模式和暗模式下都保持黑暗,以提高可读性 |
| 可访问的对比度 | 所有文本在两种模式下均满足WCAG 4.5:1的最小对比度 |
______________________________________________________________________
运作原理
AnySiteMCP对任何URL运行一个三阶段发现管道:
Stage 1 — API Spec Detection Looks for OpenAPI / Swagger specs linked from the page
Stage 2 — HTML/DOM Analysis Scrapes forms, links, and interactive elements
Stage 3 — LLM Enrichment Claude generates rich, semantic tool definitions from raw candidates每 ToolDefinition 携带A httpConfig (REST调用)或 browserConfig (剧作家步骤序列),因此当AI代理在运行时调用该工具时,MCP服务器确切地知道如何执行它。
______________________________________________________________________
建筑
URL Input
│
▼
┌─────────────────────────────────────┐
│ Discovery Pipeline │
│ │
│ Stage 1 ── API Spec Detection │ ← OpenAPI / Swagger autodiscovery
│ Stage 2 ── HTML / DOM Analysis │ ← Forms, links, interactive elements
│ Stage 3 ── LLM Enrichment (Claude) │ ← Semantic tool definitions
└────────────────┬────────────────────┘
│ ToolDefinition[]
▼
┌─────────────────────────────────────┐
│ MCP Server │
│ │
│ Transports: stdio | HTTP/SSE │
│ Executors: HTTP | Playwright │
└────────────────┬────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Integration Hub │
│ (in-process registry + JSON store) │
│ │
│ • Named integrations │
│ • Persisted tool definitions │
│ • Notes per integration │
│ • REST API /api/integrations/* │
└─────────────────────────────────────┘______________________________________________________________________
包裹
这是一个pnpm monorepo。所有软件包均为版本 0.1.0-贝塔.
| 包装 | 描述 |
|---|---|
发现管道、HTTP执行器、Playwright浏览器执行器, ToolDefinition 类型 | |
完整的MCP服务器 stdio 和 HTTP/SSE 运输工具调度员 | |
anysitemcp CLI-- analyze 和 serve 命令 | |
| Next.js 15仪表板-分析、保存集成、集成中心、REST API |
______________________________________________________________________
先决条件
- Node.js 20+
- pnpm 9+
- 无烟煤API键 — 在这里买一个 (用于第3阶段的LLM富集)
______________________________________________________________________
安装
git clone https://github.com/myagentworks-ai/anysitemcp.git
cd anysitemcp
pnpm install
pnpm build______________________________________________________________________
快速开始
从URL到可用的MCP服务器的最快方法是通过web仪表板。
# 1. Set your Anthropic API key
echo "ANTHROPIC_API_KEY=sk-ant-..." > packages/web/.env.local
# 2. Start the dashboard
pnpm dev:web打开 http://localhost:3000 并按照以下步骤操作。
______________________________________________________________________
使用Web仪表板
步骤1--分析URL
- 将任何URL粘贴到主页上的输入中,然后单击 分析
- 三阶段发现管道以实时进度输出运行:
- 第1阶段 --查找从页面链接的OpenAPI/Swagger规范 - 第2阶段 --抓取表单、链接和交互元素 - 第三阶段 --Claude从原始候选对象生成丰富的语义工具定义
- 发现的工具显示为可扩展列表,显示名称、描述和传输类型
提示: 将AnySiteMCP指向API文档页面(例如。https://stripe.com/docs/api,https://docs.github.com/en/rest)最丰富的工具发现。它也适用于任何有表单或交互元素的网站。
______________________________________________________________________
步骤2--另存为集成
一旦分析完成 另存为集成 面板出现在工具列表下方:
- 集成名称是从URL主机名自动填充的——如果需要,可以编辑它
- 添加可选描述
- 点击 保存到集成 --这将运行完整的MCP连接并将集成写入磁盘
保存的集成会在服务器重新启动时持续存在,并自动重新出现在Integration Hub中。
______________________________________________________________________
步骤3——启动MCP服务器
打开 集成中心 在 /integrations 并找到您保存的集成。点击 启动mcp 在其卡片上:
- 实时MCP代理在随机端口(4000–4899)上启动
- 连接字符串(例如。
http://localhost:4551/mcp)与复制按钮内联显示 - 点击 停止mcp 完成后关闭它
复制连接字符串并在任何兼容MCP的AI代理中使用它(请参阅 连接AI代理 在......下面
______________________________________________________________________
集成中心(/integrations)
集成中心列出了所有已保存的集成及其实时状态。
| 字段 | 描述 |
|---|---|
| 名字 | API调用中使用的Slug标识符 |
| 统一资源定位符 | 已分析的源URL |
| 工具计数 | 发现的工具数量 |
| 状态 | connected --活在这个过程中/ saved --持续、离线 |
| 已连接至 | 上次成功连接的时间戳 |
每张卡上的操作
| 按钮 | 它的作用 |
|---|---|
| 工具调用 | 显示准备复制 fetch 调用此集成上任何工具的代码段 |
| 工具 | 展开完整的工具列表——每个工具显示其名称、描述、参数模式表、传输类型和预填充 fetch 代码片段 |
| 笔记 | 为此集成打开一个markdown注释编辑器,并持久化到磁盘 |
| 启动mcp | 在随机端口上生成一个实时MCP代理;显示带有复制按钮的连接字符串 |
| 重新连接 | 重新运行MCP连接 saved (离线)集成 |
| ✕ | 5秒后取消集成 撤销 吐司——只有当你不撤消时,DELETE才会提交 |
服务器重启后
以前保存的集成从以下位置重新加载 packages/web/data/integrations.json 与状态 saved。他们的工具定义是在保存时存储的,因此 工具 面板仍然有效——您将看到一个“(最后已知的)”琥珀色通知。点击 重新连接 让他们活着回来。
______________________________________________________________________
连接AI代理
一旦您有一个正在运行的MCP服务器(来自 启动mcp 或CLI)将连接字符串插入任何兼容MCP的客户端。
Claude Desktop(stdio——建议本地使用)
编辑您的 claude_desktop_config.json (通常在 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"stripe": {
"command": "node",
"args": [
"/path/to/anysitemcp/packages/cli/dist/index.js",
"serve",
"https://stripe.com/docs"
],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
}
}重新启动Claude Desktop——它将有所有发现的工具作为本机MCP工具可用。您可以将多个站点添加为单独的条目。
Claude Desktop(HTTP/SSE——使用仪表板的start-mcp)
如果您更喜欢从仪表板而不是配置文件管理服务器:
- 点击 启动mcp 在集成卡上——记下连接字符串(例如。
http://localhost:4551/mcp) - 在
claude_desktop_config.json,添加一个HTTP条目:
{
"mcpServers": {
"stripe": {
"url": "http://localhost:4551/mcp"
}
}
}- 重新启动克劳德桌面
克劳德代码
在项目或用户配置中将服务器添加为MCP远程:
claude mcp add stripe --url http://localhost:4551/mcp或将其添加到 .claude/mcp.json 在您的项目中:
{
"mcpServers": {
"stripe": {
"url": "http://localhost:4551/mcp"
}
}
}任何MCP兼容客户端(HTTP/SSE)
任何支持MCP HTTP/SSE传输的客户端都可以使用以下所示的URL进行连接 启动mcp:
http://localhost:
/mcp服务器使用标准的MCP协议——工具列表、工具调用和流式结果都是开箱即用的。
______________________________________________________________________
命令行界面
在不需要web仪表板的脚本、自动化或无头环境中使用CLI。
预览已发现的URL工具
ANTHROPIC_API_KEY=sk-ant-... node packages/cli/dist/index.js analyze https://httpbin.org这将运行完整的3级管道,并将所有发现的工具打印到stdout——不启动任何服务器。
通过stdio充当MCP服务器
直接与Claude Desktop或任何stdio MCP客户端一起使用:
ANTHROPIC_API_KEY=sk-ant-... node packages/cli/dist/index.js serve https://httpbin.org通过HTTP充当MCP服务器
ANTHROPIC_API_KEY=sk-ant-... node packages/cli/dist/index.js serve https://httpbin.org --transport http --port 4001
# → AnySiteMCP server running at http://localhost:4001/mcpCLI选项
analyze
--skip-llm Skip LLM enrichment (faster, fewer tools)
serve
--transport stdio (default) | http
--port Port for HTTP transport (default: 4000)
--skip-llm Skip LLM enrichment何时使用 --skip-llm: 如果目标URL有一个机器可读的OpenAPI规范,那么第3阶段的丰富几乎没有什么价值,您可以跳过它来节省时间和API信用。______________________________________________________________________
REST API
web包公开了用于编程集成管理的REST API。所有端点均可在 http://localhost:3000/api/integrations.
GET /api/integrations
返回实时+已保存集成的合并列表。
[
{
"name": "stripe",
"url": "https://stripe.com/docs",
"description": "Stripe payment API",
"toolCount": 12,
"connectedAt": "2025-01-01T12:00:00.000Z",
"status": "connected", // "connected" | "saved" | "error"
"isLive": true,
"notes": ""
}
]POST /api/integrations
连接一个URL并将其另存为命名集成。
// Request
{
"name": "stripe", // required — slug identifier
"url": "https://...", // required
"description": "...", // optional
"skipLlm": false // optional — skip LLM enrichment for faster analysis
}
// Response 201
{
"name": "stripe",
"url": "https://...",
"toolCount": 12,
"connectedAt": "...",
"status": "connected",
"isLive": true
}GET /api/integrations/:name
返回集成详细信息,包括完整的工具定义。回到离线集成的持久化工具。
{
"name": "stripe",
"url": "https://...",
"tools": [
{ "name": "list_charges", "description": "...", "transport": "http" }
],
"status": "connected",
"isStored": false // true = served from disk (integration is offline)
}PATCH /api/integrations/:name
更新集成元数据(注释、描述)。
{ "notes": "Used by the billing agent." }DELETE /api/integrations/:name
从集线器中删除集成,并将其从持久存储中删除。
POST /api/integrations/:name/call
在实时集成中调用特定工具。
// Request
{
"tool": "list_charges",
"params": { "limit": 10 }
}
// Response
{ "result": { ... } }______________________________________________________________________
提示和最佳实践
选择正确的URL 将AnySiteMCP指向API参考或文档页面,而不是营销主页。页面如 https://docs.github.com/en/rest 或 https://stripe.com/docs/api 产出的工具远超过 https://github.com.
使用 --skip-llm 为了速度 如果目标站点具有OpenAPI规范(在第一阶段输出中可见),则跳过LLM富集——仅规范就可以在几秒钟内生成完整、准确的工具定义。
保持仪表板运行以进行实时连接 集成卡显示 connected 仅当Next.js进程正在运行时。这 start mcp 代理也存在于该流程中。对于长时间运行的代理工作流,请在持久终端会话中运行仪表板或将其部署到服务器。
每次集成时保存笔记 使用 笔记 按钮,用于记录每个集成的目的、最重要的工具以及任何怪癖——注释会保存到磁盘上并在重启后继续存在。
多个集成,一个仪表板 保存的集成没有限制。您可以分析和保存数十个站点,每个站点都有自己的MCP服务器,可以从仪表板按需生成。
______________________________________________________________________
数据持久化
集成被持久化 packages/web/data/integrations.json 每次连接/保存操作时自动执行。此文件包括:
- 集成名称、URL、描述、状态
- 工具定义(名称、描述、传输)——因此即使离线,工具也可用
- 备注
- 时间戳(创建、上次连接)
文件在首次保存时自动创建。如果它包含敏感的集成URL,请不要将其提交到版本控制。
______________________________________________________________________
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
ANTHROPIC_API_KEY | 是 | Claude的同位素API关键(第3阶段LLM富集) |
对于web包,创建 packages/web/.env.local:
ANTHROPIC_API_KEY=sk-ant-...______________________________________________________________________
发展
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Start the web dashboard with hot reload
pnpm dev:web
# Run all tests
pnpm test项目结构
anysitemcp/
├── packages/
│ ├── core/ # Discovery pipeline + executors + types
│ │ └── src/
│ │ ├── analyzer.ts # 3-stage discovery orchestrator
│ │ ├── executor-http.ts # HTTP tool executor
│ │ ├── executor-browser.ts # Playwright tool executor
│ │ └── types.ts # ToolDefinition, ToolParameter, etc.
│ │
│ ├── mcp-server/ # MCP protocol server
│ │ └── src/
│ │ ├── index.ts # Entry point, transport setup
│ │ └── server.ts # Tool registration + dispatch
│ │
│ ├── cli/ # CLI (analyze + serve commands)
│ │ └── src/
│ │ └── index.ts
│ │
│ └── web/ # Next.js 15 App Router dashboard
│ ├── app/
│ │ ├── page.tsx # Home — URL analysis + save
│ │ ├── integrations/page.tsx # Integration Hub
│ │ ├── api/analyze/route.ts # SSE analysis stream
│ │ └── api/integrations/ # REST API
│ ├── lib/
│ │ ├── integration-registry.ts # In-process IntegrationHub singleton
│ │ └── integration-store.ts # JSON file persistence
│ └── data/
│ └── integrations.json # Persisted integrations (auto-created)
│
├── package.json # pnpm workspace root
└── README.md______________________________________________________________________
更新日志
v0.1d——明暗主题重新设计
- 引入了基于板岩调色板的全亮/暗模式(
slate-50→slate-950)替换中性灰色 - 天蓝色强调色(
sky-)用于主动导航链接、聚焦环和运输徽章 - CSS自定义属性(
--background,--foreground)通过以下方式驱动主题切换.dark上课 `` - 始终为暗代码块(
bg-slate-950)两种模式下的可读性 - 导航栏中带有太阳/月亮SVG图标的主题切换按钮
- 反转的主操作按钮根据主题正确调整(亮模式下为暗,暗模式下为亮)
- 内联
borderLeftColor修复了集成状态药丸以避免尾风暗模式级联冲突的问题 - 可访问的对比度:在两种模式下,所有文本均满足WCAG 4.5:1的最低要求
v0.1c--MCP启动、撤消删除、工具模式
- 添加 启动MCP服务器 每个集成卡上的按钮--在随机端口上生成一个实时MCP代理,内联显示连接字符串,并允许一键停止
- 添加 撤销删除 --取消集成是乐观的,只需5秒的撤销时间;只有在未单击撤消时才调用DELETE API
- 添加 工具参数模式表 在展开的工具面板中,在每个代码段之前显示参数名称、类型、所需状态和描述
- 工具面板中的代码片段现在可以用键入的默认值预填充所需的参数
v0.1b——集成中心+持久性
- 添加了Integration Hub仪表板(
/integrations)具有完整的CRUD以保存集成 - 通过以下方式在服务器重新启动时保持集成
data/integrations.json - 工具定义在保存时存储——离线集成保留完整的工具元数据
- 根据集成添加 工具调用 代码面板(带占位符的通用获取代码段)
- 在工具面板中添加每个工具代码片段(预先填充工具名称)
- 根据集成添加 笔记 编辑器,持久化到磁盘
- 添加 重新连接 离线集成操作
- 添加 另存为集成 主页上的面板分析流程
- 工具发现时从URL主机名自动填充名称
- 修复了服务器重启后工具按钮的可见性(已删除
isLive大门)
v0.1a——初始版本
- 三阶段发现管道(API规范检测、HTML/DOM分析、LLM丰富)
- 带stdio和HTTP/SSE传输的MCP服务器
- JavaScript密集型网站的Playwright浏览器执行器
- Next.js网络仪表板,具有实时流分析功能
- CLI(
analyze和serve命令)
______________________________________________________________________
许可证
麻省理工学院
