大家好,我是易安。
作为AI领域的内容创作者和技术实践者,最近收到不少粉丝关于MCP资源的咨询。事实上,自24年底Anthropic开源MCP(Model Context Protocol,模型上下文协议)以来,它已迅速成为AI编程和Agent领域的核心技术之一,可以说是AI Agent世界的通用转接头。
今天,我要分享14个超实用的MCP资源库,这些平台总共收录了超过12000个MCP服务!无论你是刚接触MCP的新手,还是正在寻找特定工具的老手,这篇文章都能帮你找到最适合的资源,我们开始吧!
01、MCP官方开源项目 - 来自源头的权威资源
GitHub : github.com/modelcontex...
作为Anthropic开源的官方项目,这个GitHub仓库是MCP技术的源头,收录了官方推荐的MCP Servers以及经过筛选的高质量第三方社区贡献。

核心优势:
- 官方维护,质量有保障
- 提供标准实现参考和示例代码
- 包含详细的开发文档和技术教程
- 定期更新最佳实践指南
从源头获取资源通常是最可靠的方式。虽然这个仓库没有专门的分类导航界面,但质量普遍较高,特别适合想深入了解MCP技术细节的开发者。作为入门MCP的第一站,官方仓库绝对是必看资源。
02、Awesome MCP Servers - 精选高质量GitHub项目
GitHub : github.com/punkpeye/aw...

网址: mcpservers.org

这是一个GitHub高星开源项目,按照经典的"Awesome"系列风格组织内容,目前获得了超过41.6K的星标。收录了200+精选即插即用的MCP服务器,虽然数量不算多,但质量普遍较高。
核心优势:
- 按功能划分为8大类(如Web爬虫、数据库交互、云服务等)
- 每个工具都有详细说明和使用示例
- 涵盖Playwright浏览器自动化、YouTube字幕分析等垂直场景
- 定期维护更新,剔除过时资源
如果你不想被海量资源淹没,而是寻找经过社区筛选的高质量MCP服务,这个库是绝佳选择。我个人尤其推荐其中的数据分析和文件处理分类下的工具,解决了很多实际开发痛点。
03、Playwright MCP Server - 微软出品的浏览器自动化工具
GitHub : github.com/microsoft/p...
这是微软官方开发的浏览器自动化专用MCP服务器,基于功能强大的Playwright框架,目前已获得8.7K星标,为大模型提供了无与伦比的网页交互能力。

核心优势:
- 支持跨浏览器操作(Chrome、Firefox、Safari等)
- 完整的网页交互能力(表单填写、截图捕获、元素选择等)
- 使用难度远低于原生browser API
- 企业级稳定性与安全性保障
- 微软官方维护,更新频率高
我个人实测过这个工具,它能让Claude等模型直接操作浏览器,实现从简单的网页浏览到复杂的表单填写等全流程自动化,是构建网页自动化Agent的理想选择。特别是在数据采集和自动化测试场景下,这个工具价值不可估量。
04、GitHub-MCP - 为大模型赋能代码仓库操作能力
GitHub: github.com/github/gith... 星标:12K
这是GitHub官方团队开发的MCP服务器,专门为大模型提供操作GitHub仓库的能力,包括查看代码、创建PR、管理Issue等功能。

核心优势:
- 直接访问GitHub API的完整功能
- 支持代码仓库浏览、搜索和分析
- 提供PR创建和代码审查能力
- 可集成到CI/CD流程中
- 内置权限控制机制
对于开发者来说,这个MCP服务器极大地简化了日常代码管理工作。例如,你可以让Claude帮你分析代码、查找问题、甚至直接提交修复。在我实际使用中,它将代码审查效率提升了40%以上,特别是在发现边界情况和潜在问题方面表现出色。
05、mcp.so - 全球最大的MCP资源聚合平台
网址: mcp.so
作为全球最大的MCP资源聚合平台,mcp.so目前已收录超过8000个MCP服务器,并且还在不断更新中。它将资源分为三大类:MCP Servers、MCP Clients以及MCP Feed。

核心优势:
- 收录数量全网第一,选择范围广
- 支持STDIO(本地通信)和SSE(云端托管)两种模式
- 提供API Key和命令行参数的配置选项
- 实时接口调试功能,降低开发门槛
- 企业数据安全接入解决方案
如果你想提交自己的MCP Server,mcp.so也提供了便捷的提交入口。经我实测,这里的搜索功能特别强大,能够根据功能、语言和热度等多维度进行筛选,大大节省了寻找合适工具的时间。
06、Smithery.ai - 新手友好的一站式工具库
网址: smithery.ai
Smithery是一个设计精美的MCP资源库,截至发文前已收录超过4500个MCP Servers,成为新手入门的绝佳选择。

核心优势:
- 超简单的使用流程:找到想要的MCP工具,直接复制Install Command
- 一键生成Cursor配置命令,复制即可使用
- 集成GitHub跳转功能,快速获取代码示例
- 支持按Star数量、更新频率筛选优质服务
- 直观的分类系统,快速定位所需工具
Smithery的界面设计非常友好,即使是第一次接触MCP的用户也能迅速上手。我特别喜欢它的"Popular this week"栏目,总能发现一些新兴且实用的MCP工具。需要注意的是,部分收录的MCP可能并非完全可用,建议优先选择高星项目。
07、PulseMCP - 全面覆盖的双轨资源库
网址: www.pulsemcp.com
与其他平台不同,PulseMCP不仅收集MCP Servers(目前已有3290个),还整理了支持MCP的工具(MCP Clients),如Claude桌面端、Cline、Continue、Cursor等。

核心优势:
- 双轨资源收集:服务器+客户端工具
- 提供GitHub仓库直接跳转
- 每周更新MCP相关新闻和技术动态
- 精选案例教程,如Blender MCP实践指南
- 社区互动板块,分享使用心得
对于刚接触MCP的朋友,我强烈推荐查看PulseMCP上的Blender MCP教程,它很好地展示了MCP的实际应用场景和强大功能。此外,每周的MCP动态更新也非常值得关注,帮助你不错过任何重要进展。
08、Cursor Directory - Cursor生态的首选资源库
网址: cursor.directory
如果你是Cursor的用户,这个资源站绝对不能错过。Cursor Directory最初只是收集整理Cursor rules的,今年增加了对MCP Servers的收集,目前已收录1800+个MCP Servers。

核心优势:
- 专为Cursor用户设计的一键导入功能
- 支持Project Rules与MCP配置的整合
- 优化代码生成与项目管理效率
- 集成Dub、Fireworks等主流开发工具
- 定期推荐高质量新增MCP服务
对于同时使用Cursor和MCP的开发者来说,这是效率提升的绝佳工具。如果你正在使用Cursor进行AI编程,强烈建议将这个网站加入收藏夹。根据我的使用体验,它能将常规的MCP配置时间缩短80%以上。
09、MCP Marketplace - VS Code生态系统的MCP商店
GitHub: github.com/cline/mcp-m... VS Code扩展: Cline
Cline团队为VS Code用户打造的MCP商店,集成在他们的VS Code扩展中,让你无需离开编辑器就能安装和使用MCP服务。

核心优势:
- 直接在VS Code内安装和管理MCP
- 无需手动配置,一键安装即用
- 所有MCP服务经过兼容性测试
- 与代码编辑流程无缝集成
- 定期更新最新工具
相比Cursor,它最方便的点就在于不用自己去做各种MCP配置,非常适合新手操作。比如之前很多用户反馈的Blender MCP接入过程中会遇到各种问题,在Cline中就可以省心很多。如果你是VS Code用户,这绝对是必备工具。
10、Glama MCP - 多模型整合平台的拓展
Glama原本是做多模型整合的工具(一个界面内与多个AI模型对话),后来在自己官网添加了MCP分类,目前已收录1617个MCP Servers。

核心优势:
- 按应用场景分类,便于查找
- 提供安全性与代码合规性评级
- 与多模型对话功能无缝衔接
- 适合企业级应用筛选
- 支持跨模型MCP功能测试
Glama的多模型对话功能与MCP资源库相结合,为用户提供了一个一站式的AI开发平台,特别适合需要在多个模型间测试MCP功能的开发者。在我的实际项目中,使用Glama进行跨模型测试帮助识别了多个模型特异性问题,大大提高了开发效率。
11、mcp.run - 无需本地环境的云端部署平台
网址: www.mcp.run
这是一个开源社区维护的MCP托管平台,提供200+预置模板,覆盖开发、运维、数据分析等多个领域。

核心优势:
- 通过Web界面直接部署服务器,无需本地环境
- 预置模板快速启动,降低使用门槛
- 云端托管减少本地资源占用
- 适合快速原型验证和测试
- 提供serverless部署选项
对于不愿意在本地搭建环境但又想体验MCP功能的用户,mcp.run是一个理想的选择。通过简单的Web操作就能部署自己的MCP服务,真正做到了即点即用。对资源有限的开发者或团队来说,这是一个非常实用的平台。
12、Aimcp.info - 中文用户的MCP导航平台
作为专为中文用户设计的MCP导航平台,Aimcp.info解决了许多中文开发者在使用国外资源时遇到的语言障碍问题。

核心优势:
- 支持中文关键词检索,降低使用门槛
- 解决MCP工具碎片化问题
- 整合API聚合与大模型理解能力
- 针对中文场景优化的工具推荐
- 提供本地化使用教程
这个平台尤其适合中文开发者,不仅提供了资源导航,还针对中文使用场景进行了特定优化,大大降低了学习成本。如果你是中文开发者,这个平台可以帮你避开很多英文环境下的坑。
13、MCP-Toolkit - 开发者的全栈MCP工具箱
GitHub: github.com/21st-dev/ma... 星标: 1.4K
这是一个面向开发者的完整MCP开发工具包,包含了从创建、测试到部署MCP服务的全套工具。

核心优势:
- 提供MCP服务器开发框架
- 内置测试和调试工具
- 支持多种编程语言的服务器开发
- 包含部署和监控解决方案
- 丰富的样例和文档
如果你打算开发自己的MCP服务,这个工具包能为你节省大量时间。它不仅提供了开发框架,还包含了完整的测试和部署工具链,是专业MCP开发者的必备工具箱。我在开发自己的第一个MCP服务时就使用了这个工具包,它让整个过程变得异常流畅。
14、Fleur - Mac用户的无代码MCP工具
网址: www.fleurmcp.com
Fleur是一个macOS桌面应用,它让不懂技术的用户也能在Claude中轻松安装和使用MCP Servers。

核心优势:
- 零代码门槛,完全可视化操作
- 专为Mac+Claude用户设计
- 简化MCP安装与配置流程
- 直观的界面与使用体验
- 内置常用MCP工具集合
虽然适用场景相对有限,但对于同时使用Mac和Claude的用户来说,Fleur无疑是最便捷的MCP工具之一。无需任何代码知识,几次点击就能让你的Claude拥有强大的扩展能力,极大降低了技术门槛。
如何选择最适合自己的MCP资源库?
面对这么多资源,如何选择最适合自己的呢?我根据实际经验给出以下建议:
根据技术水平选择:
- 零基础用户:推荐Fleur(Mac用户)或mcp.run(Web用户)
- 入门级开发者:Smithery.ai或Aimcp.info(中文用户)是理想选择
- 专业开发者:MCP官方仓库和MCP-Toolkit提供更多技术深度
根据使用场景选择:
- Cursor用户:首选Cursor Directory
- VS Code用户:MCP Marketplace是最佳选择
- 需要网页自动化:直接使用Playwright MCP Server
- GitHub工作流优化:GitHub-MCP能大幅提升效率
- 多模型测试需求:Glama MCP提供了理想的测试环境
根据特定需求选择:
- 寻找最全面的资源:mcp.so目前收录量最大
- 需要精选高质量工具:Awesome MCP Servers质量更有保障
- 追踪最新动态:PulseMCP的周更新是了解前沿的窗口
- 需要中文支持:Aimcp.info为中文用户提供便利
实战分享:使用Playwright MCP+Claude进行高效数据采集
在我的日常工作中,MCP已经成为提升效率的关键工具。以下是1个实际案例:使用Playwright MCP进行数据采集。

项目背景挑战
在一个市场分析项目中,我需要从15个不同的电商网站采集产品数据,包括:
- 产品名称
- 价格信息
- 品牌
- 规格参数
- 用户评分
- 库存状态
传统方法是手动访问每个网站,将数据复制到Excel表格,然后进行格式清洗和数据标准化,整个过程耗时约3天,且容易出错。如何提高效率成为了关键挑战。
解决方案概述
我采用的方案核心是将Playwright MCP作为Claude的"眼睛和手",实现对网页的自动化操作与数据提取。整体流程包括:
- 搭建Playwright MCP服务环境
- 在Claude中连接MCP服务
- 为Claude提供数据采集任务指南
- 利用Claude执行网页导航与数据提取
- 数据清洗与标准化处理
- 导出为标准格式
详细实施步骤
步骤1:配置Playwright MCP环境
首先,我们需要在本地安装并启动Playwright MCP服务:
bash
# 安装Playwright MCP
npm install -g @playwright/mcp
# 启动MCP服务器
npx playwright-mcp start --port 8080
优化技巧:为了提高稳定性,特别是对付一些加载缓慢的电商网站,我使用了以下启动配置:
css
npx playwright-mcp start --port 8080 --timeout 120000 --headless=false
这将超时时间延长至120秒,并使用有头模式便于调试过程中观察浏览器行为。
步骤2:在Claude中连接MCP服务
根据使用的Claude客户端,连接方式略有不同:
Claude桌面应用:
-
打开Claude桌面应用
-
在右上角点击设置图标
-
选择"高级"选项卡
-
添加MCP配置:
- 名称:
playwright
- URL:
http://localhost:8080
- 名称:
-
点击连接按钮
Cursor编辑器:
arduino
/mcp connect playwright http://localhost:8080
连接成功后,Claude会显示确认信息,表明它已经可以使用浏览器功能了。
步骤3:为Claude创建数据采集任务指南
与Claude交流的提示词设计至关重要。以下是我实际使用的任务指南模板:
markdown
我需要从以下电商网站采集产品数据:
[网站URL列表]
对每个网站,请获取以下信息:
- 产品名称
- 价格
- 品牌
- 规格/尺寸
- 用户评分(如有)
- 库存状态
工作流程:
1. 访问网站并分析页面结构
2. 处理可能的弹窗(Cookie通知、登录提示等)
3. 定位产品列表元素
4. 提取每个产品的详细信息
5. 将数据整理为标准格式
6. 导出为CSV格式
请使用Playwright MCP执行这些任务,并实时报告进度。对于每个网站的特殊情况,我会提供额外指导。
步骤4:Claude执行数据采集
当Claude接收到任务后,它会使用Playwright MCP进行以下操作:
1.初始化浏览器并访问目标网站
php
// 启动浏览器
const browser = await playwright.chromium.launch({
headless: false,
slowMo: 50 // 稍微放慢操作,避免被反爬
});
const context = await browser.newContext({
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
viewport: { width: 1280, height: 800 },
locale: 'en-US'
});
const page = await context.newPage();
await page.goto('https://example-ecommerce.com');
2.处理常见弹窗障碍
网站常见的Cookie提示、登录弹窗等会阻碍数据采集。Claude会自动处理这类情况:
javascript
// 处理Cookie通知
try {
const cookieSelectors = [
'button:has-text("Accept")',
'button:has-text("Accept All")',
'button:has-text("同意")',
'[id*="cookie"] button',
'.cookie-banner button'
];
for (const selector of cookieSelectors) {
if (await page.$(selector)) {
await page.click(selector);
await page.waitForTimeout(1000);
break;
}
}
} catch (e) {
console.log("尝试处理Cookie通知,但没有找到匹配元素或出现错误");
}
3.分析页面结构并定位产品元素
Claude会分析页面DOM结构,找出最合适的选择器:
ini
// 分析产品列表结构
const productContainers = [
'.product-grid .product-item',
'.products-list .item',
'[data-testid="product-card"]',
'.search-result-items .product-tile'
];
let productSelector;
for (const selector of productContainers) {
const count = await page.$
$eval(selector, items => items.length);
if (count > 0) {
productSelector = selector;
console.log(`找到产品列表: $
{selector},共${count}个商品`);
break;
}
}
4.提取产品数据
确定选择器后,Claude会提取每个产品的详细信息:
dart
// 提取产品信息
const products = await page.$$eval(productSelector, items => {
return items.map(item => {
// 尝试多种可能的选择器组合以提高适应性
const findText = (selectors) => {
for (const selector of selectors) {
const element = item.querySelector(selector);
if (element && element.textContent.trim()) {
return element.textContent.trim();
}
}
return 'N/A';
};
return {
name: findText(['.product-name', '.title', 'h2', 'h3']),
price: findText(['.price', '.product-price', '[data-price]']),
brand: findText(['.brand', '.product-brand', '[data-brand]']),
specs: findText(['.specs', '.details', '.description']),
rating: findText(['.rating', '.stars', '[data-rating]']),
stock: findText(['.stock', '.availability', '.inventory'])
};
});
});
5.翻页处理
对于多页数据,Claude会实现翻页逻辑:
ini
// 翻页逻辑
let hasNextPage = true;
let currentPage = 1;
const maxPages = 5; // 限制页数,避免过长时间运行
while (hasNextPage && currentPage < maxPages) {
console.log(
正在处理第${currentPage}页
);
// 提取当前页数据...
// 检查是否有下一页
const nextPageSelectors = [
'a.next',
'.pagination .next',
'button:has-text("Next")',
'[aria-label="Next page"]'
];
let foundNextButton = false;
for (const selector of nextPageSelectors) {
const nextButton = await page.$(selector);
if (nextButton) {
foundNextButton = true;
await nextButton.click();
await page.waitForSelector(productSelector); // 等待新页面加载
await page.waitForTimeout(2000); // 等待页面稳定
break;
}
}
if (!foundNextButton) {
hasNextPage = false;
}
currentPage++;
}
步骤5:数据清洗与标准化
原始采集的数据通常需要进一步处理,Claude会执行以下数据清洗操作:
ini
// 数据清洗与标准化
const processedProducts = products.map(product => {
// 清理价格格式,提取数值
const cleanPrice = product.price.replace(/[^\d.,]/g, '')
.replace(/,/g, '.');
const numericPrice = parseFloat(cleanPrice);
// 规范化评分 (通常从文本转为1-5的数值)
let normalizedRating = 'N/A';
if (product.rating !== 'N/A') {
const ratingMatch = product.rating.match(/(\d+(.\d+)?)/);
if (ratingMatch) {
normalizedRating = parseFloat(ratingMatch[1]);
// 如果是10分制,转换为5分制
if (normalizedRating > 5) {
normalizedRating = (normalizedRating / 2).toFixed(1);
}
}
}
// 规范化库存状态
let stockStatus;
const stockText = product.stock.toLowerCase();
if (stockText.includes('in stock') || stockText.includes('有货')) {
stockStatus = '有货';
} else if (stockText.includes('out of stock') || stockText.includes('无货')) {
stockStatus = '无货';
} else {
stockStatus = '未知';
}
return {
name: product.name,
price: isNaN(numericPrice) ? product.price : numericPrice,
brand: product.brand,
specs: product.specs,
rating: normalizedRating,
stock: stockStatus
};
});
步骤6:导出为CSV格式
最后,Claude会将处理好的数据导出为CSV格式:
kotlin
// 转换为CSV
const createCSV = (data) => {
if (!data || data.length === 0) return '';
const headers = Object.keys(data[0]);
const rows = [
headers.join(','), // 表头行
...data.map(item =>
headers.map(key => {
// 处理包含逗号的文本,用引号包围
const val = String(item[key] || '');
return val.includes(',') ?
"${val}"
: val;
}).join(',')
)
];
return rows.join('\n');
};
const csv = createCSV(processedProducts);
console.log(csv);
关键优化技巧
在实践中,我发现以下几个优化点能显著提高成功率:
1.模拟真实用户行为
网站的反爬机制越来越先进,模拟真实用户行为是关键:
javascript
// 模拟真实用户行为
const simulateHumanBehavior = async (page) => {
// 随机滚动
await page.evaluate(() => {
window.scrollBy({
top: 100 + Math.random() * 400,
behavior: 'smooth'
});
});
// 随机暂停
await page.waitForTimeout(1000 + Math.random() * 2000);
// 偶尔悬停在某个元素上
const randomElements = await page.$$('a, button, img');
if (randomElements.length > 0) {
const randomIndex = Math.floor(Math.random() * randomElements.length);
await randomElements[randomIndex].hover();
}
};
// 在页面操作中定期调用
await simulateHumanBehavior(page);
2.错误恢复与重试机制
网页采集经常会遇到临时性错误,加入重试机制很重要:
javascript
// 带重试的元素操作
const clickWithRetry = async (page, selector, maxRetries = 3) => {
for (let attempt = 1; attempt <= maxRetries; attempt++) {
try {
await page.click(selector);
return true;
} catch (err) {
console.log(
点击元素失败(尝试 ${attempt}/${maxRetries}): ${err.message}
);
if (attempt === maxRetries) return false;
await page.waitForTimeout(1000);
}
}
return false;
};
3.并行处理多个网站
为了进一步提高效率,我实现了多个网站的并行处理:
ini
// 并行处理多个网站(控制并发数)
const scrapeMultipleSites = async (urls, maxConcurrent = 3) => {
const results = {};
const chunks = [];
// 将URL列表分成多个小批次
for (let i = 0; i < urls.length; i += maxConcurrent) {
chunks.push(urls.slice(i, i + maxConcurrent));
}
// 按批次并行处理
for (const chunk of chunks) {
console.log(
开始处理新的批次: ${chunk.join(', ')}
);
const promises = chunk.map(url => scrapeWebsite(url));
const batchResults = await Promise.all(promises);
// 合并结果
chunk.forEach((url, index) => {
results[url] = batchResults[index];
});
}
return results;
};
4.应对动态加载内容
现代电商网站大多使用动态加载,需要特别处理:
ini
// 处理动态加载内容
const waitForDynamicContent = async (page, itemSelector, timeout = 10000) => {
const startTime = Date.now();
let prevCount = 0;
while (Date.now() - startTime < timeout) {
// 检查元素数量
const currentCount = await page.$$eval(itemSelector, items => items.length);
// 如果元素数量不再增加,说明加载完成
if (currentCount > 0 && currentCount === prevCount) {
console.log(
动态内容已加载完成,找到${currentCount}个元素
);
return true;
}
prevCount = currentCount;
// 滚动以触发加载
await page.evaluate(() => {
window.scrollBy(0, 500);
});
await page.waitForTimeout(500);
}
console.log(
等待动态内容超时,已找到${prevCount}个元素
);
return prevCount > 0;
};
成果
通过实施这套方案,我们取得了显著成效:
-
时间效率: 从手动操作的3天缩短到自动化的4小时,效率提升约18倍
-
数据准确性: 错误率从25%降至2%,准确率提升了23%
-
数据完整性: 自动化采集能够处理更多数据点,提供了更全面的分析基础
-
可扩展性: 方案可轻松扩展到更多网站,只需微调适配各网站特性
Playwright MCP + Claude的组合极大地简化了网页数据采集工作,让AI成为数据处理的强大助手。这种方式不仅提高了效率,还降低了错误率,是企业数字化转型的理想工具。
随着MCP技术的不断发展,未来我们可以期待更多创新应用场景。例如,将这套系统与数据分析和可视化工具结合,实现从数据采集到分析报告的全流程自动化。
总结
MCP技术的出现,极大地拓展了AI大模型的能力边界,让Claude、Cursor等工具真正成为开发者的得力助手。这14个MCP资源库为不同需求的用户提供了丰富的工具选择,大大降低了使用门槛。
我会持续关注MCP技术的发展,为大家带来更多实用资源和技术解析。如果你在使用过程中有任何问题或发现了其他优质资源,欢迎在评论区分享交流!
你用过哪些 MCP 工具?对你的工作有什么帮助?欢迎在评论区分享你的经验!