当前位置: 首页 > news >正文

FastMCP 服务说明文档

1. 服务概述

一句话简介:支持客户端会话管理的MCP服务器TypeScript框架,提供简单易用的工具、资源和提示词定义能力。

  • 服务名称:FastMCP
  • 版本号:Latest
  • 开发者/提供方:yamato-snow
  • 协议类型:MCP (Model Context Protocol)
  • 官方链接:https://glama.ai/mcp/servers/yamato-snow/2025_McpLab_FastMCP

2. 核心功能

FastMCP 提供以下主要功能:

  • 简单定义:简单的工具、资源和提示词定义
  • 认证功能:内置认证机制
  • 会话管理:客户端会话管理能力
  • 图片内容支持:支持图片内容的处理
  • 日志记录:完善的日志系统
  • 错误处理:健壮的错误处理机制
  • SSE支持:Server-Sent Events支持
  • CORS:默认启用的跨域资源共享
  • 进度通知:进度通知功能
  • 类型化服务器事件:类型安全的服务器事件
  • 自动补全:提示词参数的自动补全
  • 采样请求:采样请求支持
  • 自动SSE Ping:自动SSE心跳
  • 根管理:根路径管理
  • CLI工具:测试和调试的命令行工具

3. 使用场景

FastMCP 适用于以下场景:

  • MCP服务器开发:快速构建符合MCP协议的服务器
  • AI工具集成:为AI应用提供工具和资源接口
  • 会话管理应用:需要管理客户端会话的MCP服务
  • 实时通信:需要SSE实时更新的应用场景
  • 图片处理:涉及图片内容的MCP服务
  • 原型开发:快速原型验证和概念验证
  • 教育学习:学习MCP协议和服务器开发

4. 接入方式

4.1 服务端点

FastMCP 支持两种传输方式:

  • stdio传输:通过标准输入输出通信,适合本地进程
  • SSE传输:通过Server-Sent Events通信,适合网络环境

4.2 认证与权限

FastMCP 内置认证功能:

  • 支持自定义认证机制
  • 会话级别的权限管理
  • 可扩展的认证中间件

4.3 数据格式

  • 协议:MCP (Model Context Protocol)
  • 传输格式:JSON-RPC 2.0
  • SSE端点:可自定义端点路径

4.4 服务器配置

stdio模式配置:

{ "mcpServers": { "fastmcp-server": { "command": "node", "args": ["/path/to/your-server/dist/index.js"] } } }

SSE模式配置:

server.start({ transportType: "sse", sse: { endpoint: "/sse", port: 8080, }, });

5. 接口定义

FastMCP 提供简洁的API接口:

5.1 服务器创建

import { FastMCP } from "fastmcp"; import { z } from "zod"; const server = new FastMCP({ name: "我的服务器", version: "1.0.0", });

5.2 工具定义

方法描述参数
addTool添加工具name, description, parameters, execute
addResource添加资源uri, name, mimeType, load
addPrompt添加提示词name, description, arguments, load

5.3 参数验证

FastMCP支持多种验证库:

  • Zod:最流行的TypeScript验证库
  • ArkType:高性能运行时验证
  • Valibot:轻量级验证库

6. 快速开始

6.1 环境要求

  • Node.js:v16或更高版本
  • npm/pnpm:任意包管理器
  • TypeScript:v4.5或更高版本(推荐)
  • 操作系统:Windows、macOS、Linux

6.2 安装

npm install fastmcp

6.3 示例代码

创建一个简单的加法服务器:

import { FastMCP } from "fastmcp"; import { z } from "zod"; const server = new FastMCP({ name: "我的服务器", version: "1.0.0", }); server.addTool({ name: "add", description: "2つの数値を足し算します", parameters: z.object({ a: z.number(), b: z.number(), }), execute: async (args) => { return String(args.a + args.b); }, }); server.start({ transportType: "stdio", });

使用CLI测试:

git clone https://github.com/punkpeye/fastmcp.git cd fastmcp pnpm install pnpm build npx fastmcp dev src/examples/addition.ts npx fastmcp inspect src/examples/addition.ts

SSE模式示例:

server.start({ transportType: "sse", sse: { endpoint: "/sse", port: 8080, }, });

客户端连接:

import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js"; import { Client } from "@modelcontextprotocol/sdk/client/index.js"; const client = new Client( { name: "example-client", version: "1.0.0" }, { capabilities: {} } ); const transport = new SSEClientTransport( new URL("http://localhost:8080/sse") ); await client.connect(transport);

7. 注意事项

开发注意事项

  • Standard Schema:FastMCP使用Standard Schema规范,支持多种验证库
  • 返回类型:execute函数可以返回字符串或包含content的对象
  • 图片内容:支持返回图片内容,需要指定type为image
  • 会话管理:利用内置的会话管理功能处理客户端状态
  • 错误处理:正确处理execute函数中的错误和异常

SSE使用建议

  • SSE适合远程MCP通信,通过网络访问远程服务器
  • 配置合适的端点路径和端口
  • 使用自动SSE Ping保持连接活跃
  • 默认启用CORS,可根据需要调整

CLI工具

  • fastmcp dev:开发模式运行服务器
  • fastmcp inspect:使用MCP Inspector检查服务器
  • 方便测试和调试MCP服务器

最佳实践

  • 使用TypeScript获得类型安全
  • 为工具和提示词提供清晰的描述
  • 合理使用会话管理功能
  • 在生产环境中使用构建后的代码
  • 参考官方示例学习最佳实践
http://www.jsqmd.com/news/769335/

相关文章:

  • 语音打断、流式播报、前置指令:打造工业级AI语音交互体验
  • Coolapk-UWP:重新定义Windows桌面上的酷安社区体验
  • Swin Transformer注意力计算复杂度为何比全局注意力少那么多?
  • BiliDownload:3分钟掌握B站视频下载的终极免费方案
  • TVA与CNN的历史性对决(19)
  • AISMM认证全流程时间轴:22个工作日压缩至11天的实战策略(含SITS2026独家加急通道申请模板)
  • 微信立减金回收怎么操作最安全靠谱?避开骗局快速变现 - 米米收
  • 3步掌握MTK设备救砖:从黑屏到正常启动的完整指南
  • 国产AI模型平台崛起:模力方舟如何破解HuggingFace本土化困境
  • 别再死记硬背了!用Vivado手把手教你配置RFSoC的ADC混频器(Fine/IQ模式详解)
  • 别再死磕OPC DA了!手把手教你用OPC UA搞定跨平台工业数据采集(附Python示例)
  • Python开发在数据分析领域的应用探索
  • 使用 Taotoken 后 API 调用成功率与延迟的直观观测体验
  • Pearcleaner:macOS终极清理工具,5个独特功能让您的Mac焕然一新
  • 3分钟极简配置:Onekey自动化工具如何重塑Steam游戏清单管理体验
  • 5分钟拯救你的B站收藏:m4s-converter免费工具让失效视频重获新生
  • 5步构建你的AI智能眼镜:低成本开源方案完全指南
  • 2026年专业市政亮化洗墙灯定制厂家,选购技巧有哪些? - mypinpai
  • 基于Claude API的Web应用框架ClaudeShelf:从架构到部署的完整实践指南
  • 十强加冕|广东非凡体验团建荣获权威认证,登顶 2000 + 珠三角团建服务商推荐首位(2026版 - 速递信息
  • 智能小车转向核心:基于STM32F103C8T6与CubeMX的舵机控制库封装实战
  • 《源·觉·知·行·事·物:生成论视域下的统一认知语法》第十章 地球科学与生态学的生成语法
  • 京东二面:Redis的使用场景有哪些?别说你只用过缓存
  • Flutter 字体生效原理解析
  • 品牌擦片机制造商哪家好 - mypinpai
  • 喜茶代金券回收哪里好 怎么操作更省心 - 畅回收小程序
  • 企业如何利用多模型聚合平台优化AI应用开发成本与效率
  • 别再被web-view盖住了!用uniapp的cover-view给小程序网页加个授权弹窗(附完整代码)
  • 你的Python脚本吃掉了多少内存?用psutil进行程序性能分析与资源泄漏排查实战
  • 解决方案:PvZ Toolkit如何通过内存注入技术重塑植物大战僵尸的游戏体验?