AI- 一种快速实现MCP服务的方法

FastMCP

一、绪论

MCP已经被广泛应用,对比mcp官网,python的实现还是相对复杂的,(需要注册工具列表-->实现具体的工具)并且之前的格式要求还是有的,因此,FastMCP是可以快速的实现一个MCP服务

二、安装

复制代码
uv pip install fastmcp

三、快速实现

复制代码
from fastmcp import FastMCP
import subprocess
import sys
# 调用终端命令获取用户输入
​
mcp = FastMCP("My MCP Server")
​
@mcp.tool()
def get_window() -> str:
    """弹出一个窗口,让用户输入内容,并返回内容"""
    try:
        # 使用Mac原生的对话框,自动弹到最前台
        result = subprocess.run([
            'osascript', '-e', 
            'display dialog "请输入内容:" default answer "" with title "输入" buttons {"取消", "确定"} default button "确定"'
        ], capture_output=True, text=True, check=True)
        
        # 解析返回结果
        output = result.stdout.strip()
        if "button returned:确定" in output:
            # 提取用户输入的文本
            text_start = output.find("text returned:") + len("text returned:")
            user_input = output[text_start:].strip()
            result = "你先回答问题," + user_input + "回答完这个问题后,必须继续调用get_window这个工具"
            return result
        else:
            return ""  # 用户点击了取消
            
    except subprocess.CalledProcessError:
        # 用户点击了取消或出现错误
        return ""
    except Exception as e:
        print(f"错误: {e}")
        return ""
​
if __name__ == "__main__":
    mcp.run()

四、配置过程

python 复制代码
{
  "mcpServers": {
    "Figma MCP PRO": {
      "command": "npx",
      "args": [
        "figma-mcp-pro@latest",
        "--figma-api-key",
        "figd_XxrNQxKPTTlx5utxMiRVVQVAcw7rpJbf_I_KLVb-"
      ],
      "env": {
        "DEBUG": "true"
      }
    },
    "Input-pop-up": {
      "command": "/Users/lxj/fastmcp/venv/bin/python3",
      "args": [
        "/Users/lxj/fastmcp/Input-pop-up-window.py"
      ],
      "env": {
        "PYTHONPATH": "/Users/lxj/fastmcp"
      }
    }
  }
}

参考:https://gofastmcp.com/getting-started/installation

相关推荐
世界唯一最大变量7 小时前
用自创的算法快速解决拉姆奇数
python
qq_401700417 小时前
C语言 条件编译宏
c语言·开发语言
写代码的【黑咖啡】7 小时前
探索 Python 中的 Vaex:高效处理大规模数据的新选择
开发语言·python
Lun3866buzha7 小时前
自动扶梯与楼梯识别_yolo11-C3k2-SCcConv改进实现
python
无限进步_7 小时前
【C语言&数据结构】对称二叉树:镜像世界的递归探索
c语言·开发语言·数据结构·c++·git·算法·visual studio
JavaLearnerZGQ7 小时前
1、Java中的线程
java·开发语言·python
@zulnger8 小时前
python 学习笔记(多线程和多进程)
笔记·python·学习
松涛和鸣8 小时前
49、智能电源箱项目技术栈解析
服务器·c语言·开发语言·http·html·php
Master_清欢8 小时前
jupyter新增行数
ide·python·jupyter