基于FastMCP创建MCP服务器的小白级教程

以下是基于windows 11操作系统环境的开发步骤。

1、python环境搭建

访问官网:https://www.python.org/。下载相应的版本(如:3.13.5),然后安装。

安装完成之后,使用命令行工具输入python,显示如下图即可安装成功。

2、fastmcp项目的初始化

fastmcp的文档地址:FastMCP MCP框架,推荐使用UV来安装和管理 FastMCP。

我要在H:\mcp-demo文件夹下创建我的项目,使用vs code打开该文件夹项目。

(1)UV的安装

进入UV官网的安装文档Installation | uv,如下图:

安装完成之后,在命令行里录入UV时,出现如下信息,即为安装成功:

(2)使用UV来初始化项目,如下图:

即可自动初始化如下图所示的项目:

(3)使用uv创建python虚拟环境

项目目录里多了一个文件夹。

(4)按照上一步的提示,使用".venv\Scripts\activate"进行激话,因为我们是windows环境,所以打开.venv目录查看

使用.venv\Scripts\activate.bat

bash 复制代码
.venv\Scripts\activate.bat

这个时候,项目的环境变量更新了。验证方式:输入python,即可出现我们希望的python版本信息,如图

使用exit()退回。

(5)安装fastmcp

参考fastmcp文档

bash 复制代码
uv pip install fastmcp

等待安装完成。

3、编写mcp工具和资源

安装完成之后,即可编写代码,打开main.py文件,参考官方示例代码如下:

python 复制代码
import os
from pathlib import Path
from typing import List,Dict
from fastmcp import FastMCP

mcp= FastMCP(name="我的文件MCP服务器")

# 在应用启动前设置
# os.environ["DANGEROUSLY_OMIT_AUTH"] = "true"

@mcp.tool(description="获取当前电脑桌面的路径")
def get_desktop() -> str:
    return f"H:\mcp-demo"

@mcp.tool(description="遍历文件夹下的所有文件")
def list_files_in_directory(directory_path: str) -> List[str]:
    path = Path(directory_path)

    if not path.exists() or not path.is_dir():
        return [{"error": "指定的路径不存在或不是一个目录"}]
    
    files=[]
    for file in path.iterdir():
        if file.is_file():
            files.append({"file_name":file.name, "file_path": str(file)})
    return files


@mcp.tool(description="搜索文件夹下的特定文件")
def search_files(directory_path: str, keyword: str) -> List[Dict[str, str]]:
    path = Path(directory_path)

    if not path.exists() or not path.is_dir():
        return [{"error": "指定的路径不存在或不是一个目录"}]
    
    results = []
    for file in path.iterdir():
        if file.is_file() and keyword.lower() in file.name.lower():
            results.append({"file_name": file.name, "file_path": str(file)})
    
    return results


# def main():
#    print("Hello from workon-mcp!")


if __name__ == "__main__":
    # main()
    mcp.run()  # 启动MCP服务器 # Default: uses STDIO transport
    # mcp.run(transport="sse", host="127.0.0.1", port=8000)

4、运行测试

使用 fastmcp run 来进行运行调试。

相关推荐
强里秋千墙外道17 小时前
【Linux】ssh升级到最新版本-以ubuntu为例
linux·运维·ssh
先做个垃圾出来………18 小时前
Docker容器部署方法
运维·docker·容器
minhuan18 小时前
构建AI智能体:七十五、用扣子平台创建工作流:从自动化到智能化的进阶之路
运维·自动化·工作流构建·意图识别工作流
QC七哥18 小时前
关于宽带网络下公网地址的理解
服务器·网络
AI小云18 小时前
【Python高级编程】类属性与类方法
人工智能·python
老实巴交的麻匪18 小时前
(八)学习、实践、理解 CI/CD 与 DevOps:持续集成 CI,从源代码到容器镜像
运维·云原生·自动化运维
B站计算机毕业设计之家18 小时前
深度学习:YOLOv8人体行为动作识别检测系统 行为识别检测识系统 act-dataset数据集 pyqt5 机器学习✅
人工智能·python·深度学习·qt·yolo·机器学习·计算机视觉
馨谙19 小时前
OpenSSH 安全配置核心概念解析
linux·服务器·网络
半桔19 小时前
【IO多路转接】IO 多路复用之 select:从接口解析到服务器实战
linux·服务器·c++·github·php
无聊的小坏坏19 小时前
从零开始:C++ 线程池 TCP 服务器实战(续篇)
服务器·c++·tcp/ip