Skip to content

MCP介绍

前面我们知道MCP是什么,用来让 LLM 与外部工具/数据源通信.即接入LLM的标准。那么这篇文章来讲如何来写一个最小可用的MCP。 alt text

用什么来写

alt text

SDK列表

怎么写

MCP暴漏三个核心能力

类型作用
ToolsAI 调用函数
Resources提供数据
Prompts提供模板
以JS为例
  • STEP1 新建目录:
bash
mkdir my-mcp
cd my-mcp
  • STEP2 初始化&安装 MCP SDK:
bash
npm init -y
npm install @modelcontextprotocol/sdk
  • STEP3 创建一个简单的MCP
js
// server.js
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

// 1. 创建服务器实例
const server = new McpServer({
  name: "MCP TEST",
  version: "1.0.0",
});
// 2. 用 server.tool() 方法定义一个工具
server.tool(
  "say_hello", // 工具名称
  { name: z.string().describe("要问候的名字") }, // 参数定义 (使用 Zod 进行验证)
  async ({ name }) => {
    // 处理函数
    return {
      content: [{ type: "text", text: `你好, ${name}! 欢迎使用MCP。` }],
    };
  },
);
// 3. 启动服务器,使用标准输入输出作为通信层
async function main() {
  const transport = new StdioServerTransport();
  await server.connect(transport);
  console.error("天气 MCP 服务器运行中...");
}
main().catch((error) => {
  console.error("服务器启动失败:", error);
  process.exit(1);
});
  • STEP4 修改package.json
json
{
  "name": "my-mcp",
  "version": "1.0.0",
  "type": "module"
}
  • STEP5 以 trae 为例链接MCP

alt text

JSON
{
  "mcpServers": {
    "demo": {
      "command": "node",
      "args": ["/Users/你的用户名/my-mcp/server.js"]
    }
  }
}

经常会用来干什么

功能MCP tool
读文件read_file
数据库query_db
执行 shellrun_command
gitgit_log
公司 APIget_user

举几个常用的例子
figma mcp
Dida mcp
oss mcp
xiaohongshu mcp

如何唤醒

当你与AI模型对话时,你的提问方式直接影响它是否会调用你的工具。你需要将你的自然语言需求,与MCP工具的能力关联起来。

  • 比如写一个天气的mcp,你可以说“帮我查一下今天北京的天气。”
  • 比如你写了一个ECS实例的MCP,你可以说“请帮我查询regionId为cn-chengdu的ECS实例列表,并设置x_mcp_region_id

上次更新于: