mcp-server

mcp-server

site icon
2025.04.01 0
TypeScriptAI模型交互API服务器微服务Function Calling开发效率
MCP(Model Context Protocol)是一种标准化AI模型与应用程序之间交互的协议。它定义了大型语言模型(LLM)和AI模型与客户端(应用、服务)之间数据交换的方式。MCP提供了一种通信结构,类似于OpenAI API、LangChain和Function Calling的概念。它支持创建AI模型交互服务器、定义工具(函数调用)、资源管理以及实时数据传输(SSE)。MCP适用于构建连接LLM和应用程序的API服务器、AI功能的微服务、支持Function Calling的框架,以及开发服务器-客户端之间的AI对话应用。
View on GitHub

Overview

基本能力

产品定位

MCP(Model Context Protocol)是一个用于标准化AI模型与应用程序之间交互的协议框架,旨在简化AI模型与客户端之间的数据交换和功能调用。

核心功能

  1. MCP Server (McpServer): 创建与AI模型交互的服务器,定义特定功能(工具、API)并处理客户端请求。
  2. MCP Tool (工具): 定义AI模型可以调用的函数(如加法运算),支持Function Calling功能。
  3. MCP Resource (资源): 定义特定数据并通过URL模式提供,客户端可以按需获取。
  4. SSE (Server-Sent Events) 支持: 支持实时数据传输,适用于LLM的流式响应处理。

适用场景

  • 连接LLM和应用程序的API服务器。
  • 构建提供AI功能的微服务。
  • 支持Function Calling的框架开发。
  • 替代或补充LangChain等AI框架。
  • 开发服务器-客户端之间的AI对话应用。

工具列表

  1. add工具: 执行两个数字的加法运算。
  2. greeting资源: 通过URI返回个性化的问候语。
  3. SSE传输工具: 支持实时数据传输。

常见问题解答

  • MCP是什么? MCP是AI模型与应用程序之间交互的标准化协议。
  • MCP支持哪些功能? 支持工具定义、资源管理、实时数据传输(SSE)。
  • MCP适用于哪些场景? 适用于API服务器、微服务、Function Calling框架等。

使用教程

使用依赖

安装MCP SDK的前置依赖:

npm install @modelcontextprotocol/sdk

安装教程

  1. 创建MCP服务器实例:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";

const server = new McpServer({
  name: "My MCP Server",
  version: "1.0.0",
});
  1. 添加工具(如加法工具):
import { z } from "zod";

server.tool(
  "add",
  {
    a: z.number(),
    b: z.number(),
  },
  async ({ a, b }) => {
    return {
      content: [{ type: "text", text: String(a + b) }],
    };
  }
);
  1. 添加资源(如问候资源):
import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";

server.resource(
  "greeting",
  new ResourceTemplate("greeting://{name}", { list: undefined }),
  async (uri, { name }) => ({
    contents: [
      {
        uri: uri.href,
        text: `Hello, ${name}!`,
      },
    ],
  })
);
  1. 配置SSE支持:
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";

app.get("/sse", async (req, res) => {
  const transport = new SSEServerTransport("/messages", res);
  await server.connect(transport);
});

调试方式

  1. 启动服务器后,通过客户端调用工具或资源,检查返回结果是否符合预期。
  2. 使用SSE连接检查实时数据传输是否正常。
  3. 查看日志或调试输出以排查问题。

许可证

None