译文:
我还记得过去几十年科技繁荣的故事。在1990年代末,网络革命开始了。懂HTML的青少年每个项目就能赚取数千美元,为当地企业构建网站。在2000年代末,移动应用程序出现了类似的趋势。年轻开发者通过为智能手机创建应用程序获利。
"这就是未来,"人们常说。许多人对这些基础网站或简单应用如何改变任何事情持怀疑态度。我们都知道这些预测最终如何。
现在,在2025年,我对MCP插件有同样的感觉。但这次,我不再怀疑。我相信我们正处于一个重要变革的开始,这种变革在其影响力上将超越网络和移动革命。
原因如下:MCP(模型上下文协议)是AI连接我们数字世界的方式。
什么是MCP插件?
将Cline等AI助手想象成非常聪明但孤立的存在。没有MCP,它们被困在纯文本框中,无法直接与你的文件、API或应用程序交互。
MCP插件打破了这一障碍。它们赋予AI助手以下能力:
- 访问外部API和服务
- 检索实时数据
- 控制应用程序和本地系统
- 执行超出纯文本提示能力的操作
我已经构建这些插件几个月了,我将我的流程提炼为一个简单的.clinerules协议,这使我的开发效率提高了10倍。
.clinerules协议:我的秘密武器
高效MCP插件开发的核心是遵循结构化协议。我将其封装到一个.clinerules文件中,该文件位于MCP工作目录的根目录。
以下是它的作用:
- 配置Cline的行为并强制执行最佳实践
- 将Cline切换到专门的MCP开发模式
- 提供构建插件的逐步协议
- 指导你完成规划、实施和测试阶段
当此文件在你的目录中时,Cline确切地了解如何帮助你正确构建MCP插件。就像拥有第二个大脑,完全专注于使你的开发过程顺畅。而且速度很快 - 我在7分钟内构建了这个AlphaAdvantage MCP。
我如何构建MCP插件(以及你也可以如何构建)
让我带你了解我的确切流程,这个协议将其正式化:
第1步:规划(PLAN模式)
Cline将帮助你定义MCP插件的需求并为你创建实施计划。
我总是通过与Cline一起思考我要构建的内容开始。这不仅仅是头脑风暴;这是Cline引导的结构化规划:
- 这个工具解决什么问题?
- 我想要什么输出?
- 它将使用什么API/服务(如果有的话 - MCP不一定需要API)?
当你开始时,.clinerules文件将Cline置于PLAN模式,因此你可以在编写任何代码之前专注于这些关键问题。
例如,当我(Cline)构建我的AlphaAdvantage股票分析插件时,我以以下内容开始聊天:
我想构建一个利用AlphaAdvantage API生成股票报告和简报的MCP插件
从这里开始,Cline将帮助我定义MCP插件的明确需求,当它满足我的期望时,我将批准它。
第2步:实施(ACT模式)
根据你们一起创建的计划,Cline将构建MCP插件。
一旦计划确定,我使用聊天底部的切换按钮将Cline切换到ACT模式。这是我们开始构建的地方:
- 引导项目
对于Web服务或JS/TS环境:
npx @modelcontextprotocol/create-server my-server
cd my-server
npm install
对于Python环境:
pip install mcp
# 或使用uv(推荐)
uv add "mcp[cli]"
2. 构建核心实现
我遵循以下关键实践,这些实践由协议强制执行:
- 正确使用MCP SDK
- 实现全面的日志记录
- 添加类型定义
- 处理带有上下文的错误
- 如果需要,实现速率限制
以下是Cline如何在我的AlphaAdvantage插件中实现速率限制的示例:
/**
* 基于免费层(每分钟5次调用)管理速率限制
*/
private async enforceRateLimit() {
if (this.requestsThisMinute >= 5) {
console.error("[Rate Limit] Rate limit reached. Waiting for next minute...");
return new Promise<void>((resolve) => {
const remainingMs = 60 * 1000 - (Date.now() % (60 * 1000));
setTimeout(resolve, remainingMs + 100); // 添加100ms缓冲
});
}
this.requestsThisMinute++;
return Promise.resolve();
}
3. 配置插件
我将MCP服务器添加到我的设置中:
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["path/to/build/index.js"],
"env": {
"API_KEY": "key"
},
"disabled": false,
"autoApprove": []
}
}
}
第3步:测试(阻止器 ⛔️)
.clinerules要求Cline在完成任务之前测试为MCP插件创建的每个工具。
这一点至关重要 - 如果不小心,大多数开发者会在这里出错。该协议在完成之前强制进行彻底测试:
- 使用有效输入测试每个工具
- 验证输出格式是否正确
- 记录测试结果
.clinerules要求Cline永远不会错过这一步。对于我的股票分析插件,Cline单独测试了每个工具:
get_stock_overview:检索AAPL股票概览get_technical_analysis:获取价格走势和RSI数据get_earnings_report:检索MSFT收益历史
.clinerules协议实际上阻止Cline在你验证每个工具正常工作之前尝试完成项目。
为什么现在开始构建MCP插件?
我们正处于AI开发新时代的开始。MCP是连接AI助手与我们数字世界中其他一切的桥梁。
现在掌握这项技能的开发者将在AI越来越融入我们的工作流程和应用程序时拥有巨大优势。
就像早期的网络开发者和应用创建者一样,现在加入的人将:
- 在大多数人甚至认识到这个机会之前发展专业知识
- 构建其他人将依赖的基础工具
- 将自己定位为新兴领域的领导者
今天开始
- 为你的MCP项目创建一个新目录
- 添加
.clinerules文件(从下面的gist获取) - 开始与Cline聊天,描述你想要构建的内容
- 遵循指导过程,完成规划、实施和测试
.clinerules文件将指导你完成整个过程,确保你构建的MCP插件健壮、经过良好测试且实际可用。
以下是完整的.clinerules文件,帮助你开始:
# MCP插件开发协议
⚠️ 重要:在测试前不要使用attempt_completion ⚠️
## 第1步:规划(PLAN模式)
- 这个工具解决什么问题?
- 它将使用什么API/服务?
- 认证要求是什么?
□ 标准API密钥
□ OAuth(需要单独的设置脚本)
□ 其他凭证
## 第2步:实施(ACT模式)
1. 引导
- 对于Web服务、JavaScript集成或Node.js环境:
```bash
npx @modelcontextprotocol/create-server my-server
cd my-server
npm install
```
- 对于数据科学、ML工作流或Python环境:
```bash
pip install mcp
# 或使用uv(推荐)
uv add "mcp[cli]"
```
2. 核心实现
- 使用MCP SDK
- 实现全面的日志记录
- TypeScript(用于web/JS项目):
```typescript
console.error('[Setup] Initializing server...');
console.error('[API] Request to endpoint:', endpoint);
console.error('[Error] Failed with:', error);
```
- Python(用于数据科学/ML项目):
```python
import logging
logging.error('[Setup] Initializing server...')
logging.error(f'[API] Request to endpoint: {endpoint}')
logging.error(f'[Error] Failed with: {str(error)}')
```
- 添加类型定义
- 处理带有上下文的错误
- 如果需要,实现速率限制
3. 配置
- 如果需要,从用户获取凭证
- 添加到MCP设置:
- 对于TypeScript项目:
```json
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["path/to/build/index.js"],
"env": {
"API_KEY": "key"
},
"disabled": false,
"autoApprove": []
}
}
}
```
- 对于Python项目:
```bash
# 直接使用命令行
mcp install server.py -v API_KEY=key
# 或在settings.json中
{
"mcpServers": {
"my-server": {
"command": "python",
"args": ["server.py"],
"env": {
"API_KEY": "key"
},
"disabled": false,
"autoApprove": []
}
}
}
```
## 第3步:测试(阻止器 ⛔️)
<thinking>
在使用attempt_completion之前,我必须验证:
□ 我是否测试了每个工具?
□ 我是否确认用户对每个测试的成功?
□ 我是否记录了测试结果?
如果任何答案是"否",我不得使用attempt_completion。
</thinking>
1. 测试每个工具(必需)
□ 使用有效输入测试每个工具
□ 验证输出格式是否正确
⚠️ 在所有工具测试完成前不要继续
## 第4步:完成
❗ 停止并验证:
□ 每个工具都已用有效输入测试
□ 每个工具的输出格式都正确
只有在所有工具都经过测试后才能使用attempt_completion。
## 关键要求
- ✓ 必须使用MCP SDK
- ✓ 必须有全面的日志记录
- ✓ 必须单独测试每个工具
- ✓ 必须优雅地处理错误
- ⛔️ 在完成前绝不跳过测试
MCP的未来
模型上下文协议代表了我们与AI交互方式的根本转变。AI助手不再是只响应文本的孤立实体,而是成为连接我们整个数字生态系统的连接器。
我坚信在不久的将来,每个重要的应用程序、服务和API都将有MCP插件可用,创建一个丰富的AI可访问工具生态系统。
构建这些桥梁的开发者将成为这个新格局的架构师。
如果你对AI的未来感到兴奋,并希望站在这场革命的前沿,今天就开始构建MCP插件。我分享的.clinerules协议使开始比以往任何时候都更容易。
不要只是观看AI革命的发生—成为构建其基础设施的一部分。
cline系列文章: