微信扫码
添加专属顾问
我要投稿
探索AI编程新范式,实现代码上下文无缝迁移。 核心内容: 1. Vibe Coding人机协作模式及其流行AI编辑器 2. 通过MCP实现AI模型和客户端间上下文共享 3. 自建MCP服务器的优势与实践指南
Vibe Coding 正在成为当下一种流行的程序员之人机协作模式,当下的 Coder 或多或少都在用各种 AI 编辑器,无论是 Cursor 还是 Windsurf 抑或 Trae,如果你还没有开始下载这些客户端,那也一定试过 Vscode 的插件如 Github Copilot。
当与 AI 对话的时候,我发现自己经常更换 AI 模型(比如突然发布的 Gemini)和客户端(Cursor、Windsurf,又换回 Cursor!)。
最让我感觉不爽的是上下文的丢失。我总是要不断向 AI 解释它需要了解的关于我问题的信息,还得让它按照 “我的要求” 来处理事情。
但要是这些上下文可以移植会怎样呢?要是你能在 Claude Desktop 里提出一个问题并得到答案,之后在使用 Cursor 编码时还能调出这段对话,又会怎样呢?
在本文中,我们就将通过几个简单步骤搭建这样的工具。
要是你已经对 MCP 了如指掌,想直接开始搭建,那就直接跳到 “快速上手” 部分。否则,准备好秒表,下面是 3 分钟的入门介绍。
如果你想要自主 AI 智能体,那就需要一些工具,让它们能够感知周围世界并与之交互。遗憾的是,将 AI 助手直接连接到工具上,集成效果往往不尽人意;一旦 AI 模型或工具两端的 API 更新,代码就会出错。
那么,我们如何构建更强大、可复用的 AI 功能呢?
其中一条途径就是通过 Anthropic 的模型上下文协议(MCP)。这是一个基于 JSON-RPC 的标准化通信层,它能让 AI 客户端(比如 Cursor)发现并使用 MCP 服务器提供的外部功能。
这些功能包括访问持久化数据(资源)、在外部世界执行各种操作(工具),以及接收关于如何使用这些资源和工具的具体指令(提示)。
像 Cursor 和 Windsurf 这样的客户端,即便没有 MCP 也已经拥有出色的 AI 智能体。那么,我们为什么还需要更多工具呢?
简单来说,客户端开发者无法打造所有功能。他们不想把所有开发时间都花在为每个新模型调整网络搜索上,而且他们肯定也不想自己去开发 Jira 集成功能。
MCP 让像 GitHub 和 Notion 这样的服务提供商能够维护自己的 AI 集成,这意味着更高质量的交互,还能减少重复工作。
所以,当你选择使用 MCP 服务器时,主要能获得前瞻性和可移植性这两大优势。你将拥有一个庞大的即插即用工具生态系统,可以在任何支持该标准的聊天窗口中使用。
即便你不是那种需要将自己的服务 API 接入 MCP 的开发者,掌握相关知识也有很多好处。
对我来说,我发现花在搭建服务器上的时间越多,就越少感觉自己的工作只是在输入框之间复制粘贴大段文本。我在实现上下文自动化,这让 AI 模型对我个人来说更有用。
此外,在不断变化的 AI 领域,这感觉像是一种立足的方式。即便未来出现新的模型、客户端和服务,我现在构建的工具也应该能继续使用。
闲话少说,是时候动手了。下面将以 css mcp server 作为示例:
我们通过以下三个步骤准备好代码库。目前先不用考虑 API 密钥或客户端设置的问题。
打开主服务器文件src/index.ts ,你会看到以下关键部分:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { registerPrompts } from "./prompts/index.js";
import { registerResources } from "./resources/index.js";
import { registerTools } from "./tools/index.js";
export const server = new McpServer({
name: "css-tutor", // Unique name for this server
version: "0.0.1", // Server version
// Declare the types of capabilities the server will offer
capabilities: {
prompts: {}, // Will be populated by registerPrompts
resources: {},// Will be populated by registerResources
tools: {}, // Will be populated by registerTools
}
});
registerPrompts();
registerResources();
registerTools();
async function main(): Promise<void> {
// Use StdioServerTransport to communicate over standard input/output
// This is common for MCP servers launched as child processes by clients.
const transport = new StdioServerTransport();
// Connect the server logic to the transport layer
await server.connect(transport);
}
main().catch((error: Error) => {
console.error("Server startup failed:", error); // Log errors to stderr
process.exit(1);
});
这个结构是服务器的核心,它完成初始化、注册功能,并建立通信连接。
为确保这个核心循环在无需任何外部 API 或复杂逻辑的情况下也能正常工作,我们暂时修改src/index.ts:
对src/index.ts进行这些修改后,我们现在就有了一个可运行的 MCP 服务器,它只提供一个基本工具。目前这个工具没什么实际作用,但它证明了核心结构和通信设置是有效的。
现在我们有了一个最简且可运行的服务器,那如何检查它是否正确遵循 MCP 协议呢?我们使用 Anthropic 的 MCP Inspector。
这个命令行工具就像是一个基本的 MCP 客户端。它启动你的服务器进程,通过标准输入输出(就像 Claude Desktop 或 Cursor 那样)连接到服务器,并显示正在交换的 JSON-RPC 消息。
npx @modelcontextprotocol/inspector node ./build/index.js
检查器启动并连接到你的服务器后,如果你访问本地主机的 URL,就可以与之交互:
MCP Inspector 是你开发过程中的得力助手。在你添加或修改任何功能(工具、资源或提示)之后,都要用它来验证服务器是否正确注册了该功能,并且响应是否符合预期。使用检查器,你无需完整的 AI 客户端就能测试服务器功能。
记住,无论你进行到哪一步,都要使用 MCP Inspector。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-19
抛弃llama.cpp!Ollama自研引擎:本地推理性能飙升
2025-05-18
基于 Function Calling 构建代码执行工具时遇到的问题
2025-05-18
向量检索能力SOTA,字节Seed1.5-Embedding模型训练细节公开
2025-05-18
我也曾一上来就想微调大模型,直到我发现自己错得离谱!
2025-05-17
OpenAI发布GPT-4.1系列模型,对行业最大吸引力是什么?
2025-05-16
如何在 ONLYOFFICE 中离线使用 Ollama AI 模型
2025-05-16
英伟达新模型居然是微调千问,阿里源神称号实至名归
2025-05-16
应用流程文档(流程图+时序图):与Cursor AI协作的最佳语言
2025-02-04
2025-02-04
2024-09-18
2024-07-11
2024-07-09
2024-07-11
2024-07-26
2025-02-05
2025-01-27
2025-02-01