
mcp-server

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模型与客户端之间的数据交换和功能调用。
核心功能
- MCP Server (McpServer): 创建与AI模型交互的服务器,定义特定功能(工具、API)并处理客户端请求。
- MCP Tool (工具): 定义AI模型可以调用的函数(如加法运算),支持Function Calling功能。
- MCP Resource (资源): 定义特定数据并通过URL模式提供,客户端可以按需获取。
- SSE (Server-Sent Events) 支持: 支持实时数据传输,适用于LLM的流式响应处理。
适用场景
- 连接LLM和应用程序的API服务器。
- 构建提供AI功能的微服务。
- 支持Function Calling的框架开发。
- 替代或补充LangChain等AI框架。
- 开发服务器-客户端之间的AI对话应用。
工具列表
- add工具: 执行两个数字的加法运算。
- greeting资源: 通过URI返回个性化的问候语。
- SSE传输工具: 支持实时数据传输。
常见问题解答
- MCP是什么? MCP是AI模型与应用程序之间交互的标准化协议。
- MCP支持哪些功能? 支持工具定义、资源管理、实时数据传输(SSE)。
- MCP适用于哪些场景? 适用于API服务器、微服务、Function Calling框架等。
使用教程
使用依赖
安装MCP SDK的前置依赖:
npm install @modelcontextprotocol/sdk
安装教程
- 创建MCP服务器实例:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
const server = new McpServer({
name: "My MCP Server",
version: "1.0.0",
});
- 添加工具(如加法工具):
import { z } from "zod";
server.tool(
"add",
{
a: z.number(),
b: z.number(),
},
async ({ a, b }) => {
return {
content: [{ type: "text", text: String(a + b) }],
};
}
);
- 添加资源(如问候资源):
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}!`,
},
],
})
);
- 配置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);
});
调试方式
- 启动服务器后,通过客户端调用工具或资源,检查返回结果是否符合预期。
- 使用SSE连接检查实时数据传输是否正常。
- 查看日志或调试输出以排查问题。
许可证
None