精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!

發(fā)布于 2025-4-28 00:16
瀏覽
0收藏

模型上下文協(xié)議 MCP 是一種開放協(xié)議,旨在標(biāo)準(zhǔn)化 AI 應(yīng)用程序與外部數(shù)據(jù)源和工具的連接方式。其核心目標(biāo)在于簡化大型語言模型 LLM 與各種上下文和工具的集成,從而解決將多種 LLM 與多種工具相集成的復(fù)雜性問題。

之前的文章介紹了一個挺不錯的 MCP 應(yīng)用案例,

??用 MCP 讓大模型自動批量下載文獻(xiàn),太香了!??

但你有沒有想過,自己動手打造一個 MCP 服務(wù)呢?想象一下,親手設(shè)計一個智能工具,無論是處理數(shù)據(jù)、調(diào)用外部 API,還是生成自定義報告。這種創(chuàng)造力和掌控力的體驗,會不會更香呢?

MCP 本身是一個通用的協(xié)議,設(shè)計上是為了跨語言和跨平臺的,因此可以使用各種語言來編寫服務(wù),比如常用的 ??Node.js??。但如果不熟悉 Web 開發(fā),也想自己寫一寫呢?Python 自然是不二之選。只是 MCP 具體的協(xié)議挺復(fù)雜的,很難快速上手。

不過,現(xiàn)在好了,因為有了 FastMCP,它是一個 Python 軟件開發(fā)工具包 (SDK),專門設(shè)計用于簡化構(gòu)建 MCP 服務(wù)的過程。它提供了一個高級且符合 Python 語言習(xí)慣的接口,用于定義工具、資源和提示。FastMCP 的核心優(yōu)勢在于其能夠幫助開發(fā)者更輕松地創(chuàng)建符合 MCP 規(guī)范的服務(wù),而無需深入了解底層的協(xié)議細(xì)節(jié)。

但值得注意的是,你看網(wǎng)上代碼會涉及兩個 FastMCP 包,其中一個是,

https://github.com/jlowin/fastmcp

另一個則是官方的,

https://github.com/modelcontextprotocol/python-sdk

這兩個什么關(guān)系呢?其實是官方收編了上面第一個包,但官方集成的是 fastmcp 的 v1.0 版本。然而,jlowin 繼續(xù)開發(fā) fastmcp,還發(fā)布了 v2.0 版本,其中包含代理和客戶端采樣等新功能。

使用的話這兩個都可以,先看第一個的安裝和導(dǎo)入,

pip install fastmcp
from fastmcp import FastMCP

官方的安裝和導(dǎo)入如下所示,

pip install mcp
from mcp.server.fastmcp import FastMCP

本文使用官方 Python SDK 里的 FastMCP 來構(gòu)建自己的 MCP 服務(wù)。

我們先來看一個最簡單的例子。

./demo/server.py
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Demo ??")

@mcp.tool()
def add_2_numbers(a: int, b: int) -> int:
    """兩個數(shù)字相加"""
    return a + b

if __name__ == "__main__":
    mcp.run(transport='stdio')

這個例子展示了如何使用 FastMCP 庫來創(chuàng)建一個簡單的 MCP 服務(wù)器,它提供一個基本的工具(工具名:??add_2_numbers??),用于兩個數(shù)字相加。這是一個非常簡單的入門示例,適合理解 MCP 服務(wù)器的工作原理和 FastMCP 的基本用法。

  • 首先,從??mcp.server.fastmcp?? 模塊中導(dǎo)入了 FastMCP 類。接著,創(chuàng)建了一個 FastMCP 類的實例,命名為 mcp。FastMCP 是服務(wù)器的核心類,它負(fù)責(zé)管理工具、資源和通信。參數(shù)「Demo ??」是服務(wù)器的名稱,用于標(biāo)識這個 MCP 服務(wù)器。
  • 然后,??@mcp.tool()??? 是一個裝飾器(??decorator???),它告訴 FastMCP 將??add_2_numbers??? 函數(shù)注冊為一個可供客戶端調(diào)用的工具。文檔字符串("""兩個數(shù)字相加"""):這是函數(shù)的描述,客戶端(如??MCP Inspector??)會顯示這個描述,幫助用戶理解工具的功能。
  • 這個工具可以被外部客戶端調(diào)用,例如通過 MCP 協(xié)議發(fā)送請求,傳入兩個整數(shù) a 和 b,服務(wù)器會返回它們的和。例如,如果客戶端調(diào)用??add_2_numbers(3, 5)??,服務(wù)器會返回 8。
  • ??mcp.run(transport='stdio')??? 啟動 MCP 服務(wù)器,進(jìn)入監(jiān)聽狀態(tài),等待客戶端的連接和請求。??transport='stdio'??? 指定了通信方式為標(biāo)準(zhǔn)輸入輸出(??Standard I/O???)。這意味著服務(wù)器通過命令行的標(biāo)準(zhǔn)輸入(stdin)和標(biāo)準(zhǔn)輸出(stdout)與客戶端通信,適合本地開發(fā)和測試。如果需要遠(yuǎn)程通信,可以更改為其他傳輸方式(如??'sse'???,??Server-Sent Events??)。
運(yùn)行效果:

運(yùn)行 ??python ./demo/server.py???,服務(wù)器會啟動并監(jiān)聽 stdio。任何支持 MCP 協(xié)議的客戶端(例如 ??MCP Inspector??? 或 ??Claude Desktop???)都可以連接到它,調(diào)用 ??add_2_numbers?? 工具。

比如,可以通過 ??MCP Inspector?? 測試一下這個工具。

% mcp dev ./demo/server.py
Need to install the following packages:
@modelcontextprotocol/inspector@0.8.2
Ok to proceed? (y) y

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

瀏覽器中打開 ??http://127.0.0.1:6274??,可以測試一下上面這個 mcp 服務(wù)里提供的 tool。

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

這個 mcp 過于簡單,咱們就不安裝來用了。下面我們手?jǐn)]一個稍微復(fù)雜一點的 mcp 服務(wù),并安裝上真正使用起來。

記賬 mcp 服務(wù)

我們基于 MCP 開發(fā)了一個輕量級(玩具級)記賬服務(wù) ??Money Track MCP???,旨在幫助用戶管理和跟蹤財務(wù)數(shù)據(jù)。該服務(wù)利用 Python 和 ??FastMCP?? 框架,提供了三種核心功能類型(工具、資源和提示),為用戶提供一個靈活、高效的解決方案來記錄收入和支出、查詢賬戶狀態(tài)以及生成格式化的財務(wù)報告。

項目雖小,但涉及環(huán)境變量的設(shè)置和讀取,用戶數(shù)據(jù)的存儲等多個方面,對于開發(fā)更強(qiáng)大服務(wù)來說是一個不錯的基礎(chǔ)。完整代碼的地址見文末。

核心功能

  1. 工具 (??@tool???):服務(wù)提供了一個名為??record_transaction?? 的工具,允許用戶動態(tài)輸入當(dāng)天的收入和支出,如「今天賺了 500 元,花了 250 元」。工具會自動更新累積的總收入、總支出,并計算當(dāng)前余額。這些數(shù)據(jù)持久化存儲在用戶指定的文件中,確保數(shù)據(jù)不會丟失。
  2. 資源 (??@resource???):通過??get_account_status??? 資源,用戶可以安全地檢索當(dāng)前賬戶的最新狀態(tài),包括總收入、總支出和余額。資源數(shù)據(jù)存儲在 JSON 文件中,文件路徑可以由用戶通過環(huán)境變量或配置文件自定義,默認(rèn)位于??./accounting_data/accounting_data.json??。
  3. 提示 (??@prompt???):??format_account_report?? 提示負(fù)責(zé)將賬戶狀態(tài)格式化為易讀的報告。

技術(shù)架構(gòu)

  • 框架:基于??FastMCP??,一個高效的 Python 庫,簡化了 MCP 服務(wù)器的開發(fā)。
  • 存儲:數(shù)據(jù)保存在 JSON 文件中,支持用戶自定義存儲路徑(如通過環(huán)境變量??ACCOUNTING_WORKING_DIR?? 或配置文件)。
  • 通信:默認(rèn)使用標(biāo)準(zhǔn)輸入輸出 (??stdio??) 傳輸協(xié)議,方便本地開發(fā)和測試。
  • 日志:支持??INFO??? 和??DEBUG?? 級別的日志記錄,幫助開發(fā)者監(jiān)控服務(wù)運(yùn)行狀態(tài)和調(diào)試問題。

使用場景

??MoneyTrack MCP?? 適用于多種場景,包括但不限于:

  • 個人財務(wù)管理:個人用戶可以通過客戶端記錄日常收支,并隨時查看余額。
  • 企業(yè)/團(tuán)隊記賬:小型企業(yè)或團(tuán)隊可以集成此服務(wù)到更大的財務(wù)系統(tǒng)中,快速統(tǒng)計現(xiàn)金流。
  • 教育與開發(fā)示例:開發(fā)者可以作為 MCP 服務(wù)的學(xué)習(xí)示例,了解工具、資源和提示的協(xié)同工作。

具體代碼如下,

# ./src/server.py
from mcp.server.fastmcp import FastMCP
import os
import json
from typing import Dict, Optional
import logging

# 配置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

# 從環(huán)境變量或默認(rèn)值獲取工作目錄
DEFAULT_WORKING_DIR = "~/accounting_data"
WORKING_DIR = os.getenv("ACCOUNTING_WORKING_DIR", DEFAULT_WORKING_DIR)

# 確保目錄存在
os.makedirs(WORKING_DIR, exist_ok=True)

# 數(shù)據(jù)文件路徑
DATA_FILE = os.path.join(WORKING_DIR, "accounting_data.json")

# 初始數(shù)據(jù)(如果文件不存在)
INITIAL_DATA = {
    "total_income": 0,
    "total_expense": 0,
    "balance": 0
}

def load_data() -> Dict:
    """從文件中加載數(shù)據(jù),如果文件不存在則創(chuàng)建默認(rèn)數(shù)據(jù)"""
    try:
        if os.path.exists(DATA_FILE):
            with open(DATA_FILE, "r", encoding="utf-8") as f:
                return json.load(f)
        else:
            with open(DATA_FILE, "w", encoding="utf-8") as f:
                json.dump(INITIAL_DATA, f, indent=4)
            return INITIAL_DATA
    except Exception as e:
        logger.error(f"Failed to load data: {str(e)}")
        return INITIAL_DATA

def save_data(data: Dict) -> None:
    """將數(shù)據(jù)保存到文件"""
    try:
        with open(DATA_FILE, "w", encoding="utf-8") as f:
            json.dump(data, f, indent=4)
    except Exception as e:
        logger.error(f"Failed to save data: {str(e)}")

# 創(chuàng)建 MCP 服務(wù)器
mcp = FastMCP("money-track-mcp", log_level="ERROR")

# 工具:記錄收入和支出
@mcp.tool()
def record_transaction(income: Optional[int] = 0, expense: Optional[int] = 0) -> Dict:
    """記錄今天的收入和支出,更新賬戶余額"""
    ifnot isinstance(income, (int, float)) ornot isinstance(expense, (int, float)):
        return {"error": "Income and expense must be numbers"}

    data = load_data()
    data["total_income"] += income
    data["total_expense"] += expense
    data["balance"] = data["total_income"] - data["total_expense"]
    save_data(data)

    return {
        "message": "Transaction recorded successfully",
        "total_income": data["total_income"],
        "total_expense": data["total_expense"],
        "balance": data["balance"]
    }

# 資源:獲取當(dāng)前賬戶狀態(tài)
@mcp.resource("accounting://status")
def get_account_status() -> Dict:
    """獲取當(dāng)前賬戶的收入、支出和余額"""
    data = load_data()
    return {
        "total_income": data["total_income"],
        "total_expense": data["total_expense"],
        "balance": data["balance"]
    }

# 提示:格式化賬戶報告
@mcp.prompt()
def format_account_report(status: Dict) -> str:
    """格式化賬戶狀態(tài)為易讀的報告"""
    returnf"""
    === 賬戶報告 ===
    總收入: ${status["total_income"]:.2f}
    總支出: ${status["total_expense"]:.2f}
    當(dāng)前余額: ${status["balance"]:.2f}
    ================
    """

def run_server():
    """運(yùn)行 MCP 服務(wù)器"""
    print("=== Money Track MCP 服務(wù)啟動 ===")
    logging.info("Money Track MCP 服務(wù)啟動")
    print(f"當(dāng)前工作目錄: {os.getcwd()}")

    mcp.run(transport='stdio')

安裝和運(yùn)行

git clone https://github.com/mathinml/mcp_money_track.git
cd mcp_money_track
pip install mcp
pip install .

打開你喜歡的 mcp 客戶端,比如 ??Cline???,??Roo Code???, ??Cursor?? 等等。mcp 配置文件中請參考如下設(shè)置,

"money-track-mcp": {
      "command": "/opt/anaconda3/bin/python",
      "args": [
        "-m",
        "mcp_money_track"
      ],
      "env": {
        "ACCOUNTING_WORKING_DIR": "/Users/xyz/account"
      }
    },

環(huán)境變量 ??"ACCOUNTING_WORKING_DIR"?? 是用于設(shè)置賬本的保存目錄。

1、Cline

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

點擊 Approve 以后,

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

再次輸入:我今天收入才 500 元,花掉了 1500 元。

沒多說啥,它自動領(lǐng)會要記賬啦,請看結(jié)果。

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

打開保存目錄里的賬本看一看,

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

2、Roo Code

然后在另一個客戶端里試試,VS Code + 插件 Roo Code。

換套說辭,咱不提記賬不記賬,只跟它說:我想買個電腦,1 萬元左右,看看我的余額還夠嗎?

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

點擊 Approve,如果覺得每次要點太煩人,也可以在 Auto-approve 里設(shè)定總是允許。

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

余額不夠啦,誰打賞一點讓我湊個整唄。

3、Cherry Studio

在 Cherry Studio 里設(shè)置也是類似的,如圖。

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

然后,在聊天界面一定要在 MCP 服務(wù)器里選中這個服務(wù)。

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

大模型這里我們選用 OpenRoute 提供的免費(fèi) Gemini 2.5 Pro,

用 Python 開發(fā) MCP 服務(wù)很簡單,完整案例拿走不謝!-AI.x社區(qū)

也還行,速度上感覺比前面兩個慢一丟丟。

好了,通過這個例子,應(yīng)該已經(jīng)明白如何使用 Python 來寫一個簡單但完整的 mcp 服務(wù)。

代碼:??https://github.com/mathinml/mcp_money_track??

本文轉(zhuǎn)載自??機(jī)器學(xué)習(xí)與數(shù)學(xué)??,作者:大師兄

標(biāo)簽
已于2025-4-28 09:39:48修改
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦
蜜桃成人在线| 欧美激情在线一区| caoporm在线视频| 黄在线免费观看| 国产不卡视频一区| 欧美亚洲国产视频| 人与动物性xxxx| 加勒比色综合久久久久久久久| 欧美午夜精品久久久久久久| 日韩在线第一区| 精品久久久中文字幕人妻| 中日韩视频在线观看| 日韩在线观看免费全集电视剧网站| www.桃色.com| 中文在线аv在线| 国产精品久久久久7777按摩| 国产精品美女黄网| 精品乱码一区内射人妻无码| 欧美日韩三级| 这里只有精品久久| 国产chinese中国hdxxxx| 久久久精品一区二区毛片免费看| 亚洲欧美日韩系列| 日本精品二区| 黄色一级a毛片| 久久 天天综合| 国产va免费精品高清在线观看 | 国产精品久久久久久久久免费高清| 洋洋av久久久久久久一区| 日韩欧美在线观看强乱免费| 欧美熟妇另类久久久久久不卡| 免费成人av在线| 91精品国产99| 91精品国产高清一区二区三蜜臀| 日本a口亚洲| 亚洲女同性videos| 亚洲中文字幕无码一区| 警花av一区二区三区| 欧美在线观看视频一区二区| 亚洲熟妇av日韩熟妇在线| 性直播体位视频在线观看| 中文字幕av一区二区三区免费看| 九九九九精品九九九九| 亚洲国产精品18久久久久久| 激情av综合网| 国产久一一精品| 国产精品第六页| 久久精选视频| 日韩美女主播视频| 中文字幕免费观看| 老鸭窝亚洲一区二区三区| 81精品国产乱码久久久久久| 日韩精品乱码久久久久久| 欧美另类亚洲| 欧美大学生性色视频| 国产成人av免费在线观看| 91综合久久一区二区| 一区二区亚洲欧洲国产日韩| 午夜时刻免费入口| 精品国产一区二区三区小蝌蚪| 亚洲九九九在线观看| 野花社区视频在线观看| 一本色道久久综合亚洲精品酒店| 亚洲人成网站色ww在线| 亚洲日本精品视频| sdde在线播放一区二区| 国产亚洲精品久久久| 第一次破处视频| 国产99亚洲| 在线日韩第一页| 91动漫免费网站| 亚洲成av人片乱码色午夜| 久久精品国产亚洲一区二区| 欧美国产精品一二三| 国精品一区二区| 久久久之久亚州精品露出| 日韩欧美性视频| 亚洲欧美成人| 热久久这里只有| 伊人久久成人网| 韩日av一区二区| 亚洲综合色av| 日本人妻丰满熟妇久久久久久| www激情久久| 亚洲国产欧美日韩| 97caopor国产在线视频| 亚洲成人一区二区在线观看| 免费在线a视频| 成人精品电影在线| 欧美一区永久视频免费观看| 影音先锋黄色资源| 青青草国产免费一区二区下载| 久久久www成人免费精品| 国产一级一片免费播放放a| 男女精品视频| 成人网在线视频| 天天干天天操av| 国产精品久久久久久久久免费桃花| 色一情一乱一乱一区91| 综合日韩av| 欧美丰满美乳xxx高潮www| 免费黄色av网址| 国产精品中文字幕亚洲欧美| 久久艹在线视频| 手机在线看片1024| 国产激情一区二区三区四区 | 欧美午夜精彩| 九九热这里只有精品6| 国产无人区码熟妇毛片多| 久久国产精品露脸对白| 久久久99爱| www在线免费观看视频| 色综合久久久久网| 亚洲国产精品第一页| 国产一区99| 午夜精品美女自拍福到在线| 亚洲永久精品视频| 久久综合99re88久久爱| 国产又粗又爽又黄的视频| 在线精品亚洲欧美日韩国产| 7777精品伊人久久久大香线蕉的 | 国产精品xxxav免费视频| 中文字幕日韩欧美在线视频| 日本三级中文字幕| 国产在线一区二区| 午夜欧美一区二区三区免费观看| 92久久精品| 91精品国产综合久久久久久漫画 | 亚洲日本在线天堂| 欧美成人免费高清视频| www国产精品| 毛片精品免费在线观看| 中文字幕在线观看你懂的| 久久久噜噜噜久久人人看| 黄网站欧美内射| 日韩高清在线观看一区二区| 日韩午夜在线视频| 国产精品第6页| 国产亚洲综合在线| 午夜精品久久久内射近拍高清| 国产精品网站在线看| 日韩三级成人av网| 亚洲影视一区二区| 国产精品二区一区二区aⅴ污介绍| 精品一卡二卡三卡| 先锋影音国产精品| 欧美专区在线播放| 青青视频在线观| 欧美性xxxx18| 亚洲熟妇无码av| 国产精品亚洲产品| 美乳视频一区二区| 国产一区自拍视频| 日日噜噜噜噜人人爽亚洲精品| 国产成人精品免费网站| 国产资源第一页| 美女日韩一区| 欧美人与性动交| 好吊色一区二区| 午夜日韩在线电影| 好吊一区二区三区视频| 国产欧美大片| 欧洲亚洲一区| 国产福利一区二区三区在线播放| 日韩最新av在线| 精品久久久无码中文字幕| 亚洲一区在线观看免费| 深田咏美中文字幕| 久久不射中文字幕| 亚洲国产综合自拍| 国产区一区二| 久久久久久久久国产精品| av女名字大全列表| 91搞黄在线观看| 亚洲黄色网址大全| 国产一区二区在线视频| 久久精品无码中文字幕| 宅男在线一区| 国产精品一区二区三区免费视频| 成人欧美在线| 亚洲激情在线观看| 高潮毛片又色又爽免费 | 中文一区在线| 日韩免费毛片| 精品一区二区三区中文字幕| 久久久久久噜噜噜久久久精品| 免费福利在线观看| 欧美军同video69gay| 成人免费看片98| 久久精品视频一区二区三区| 亚洲精品久久久中文字幕| 欧美国产另类| 欧美一级爱爱| 日韩一区二区三区精品| 欧洲精品毛片网站| 黄色av免费在线| 亚洲精品乱码久久久久久金桔影视| 天堂网免费视频| 亚洲麻豆国产自偷在线| 亚洲精品在线视频免费观看| 老汉av免费一区二区三区| 日韩精品在线中文字幕| 欧美一区三区| 国产精品制服诱惑| av国产精品| 欧美有码在线观看| 91极品在线| 夜夜嗨av一区二区三区免费区| 国产视频在线免费观看| 色婷婷激情久久| 加勒比av在线播放| 中文字幕精品在线不卡| 一出一进一爽一粗一大视频| 国产自产视频一区二区三区| 99蜜桃臀久久久欧美精品网站| 综合激情婷婷| 一本一本a久久| 伊人久久大香线蕉| 国产伦精品一区二区三| 99国内精品久久久久| 日韩免费观看网站| 国产v日韩v欧美v| 欧美尺度大的性做爰视频| 国产h视频在线观看| 日韩成人黄色av| 亚洲国产精品久久久久爰性色| 欧美美女bb生活片| 欧美国产一级片| 一本到高清视频免费精品| 久久精品视频9| 亚洲综合免费观看高清完整版在线| 国产又粗又长又硬| 国产亚洲精品免费| 国产ts在线播放| 91免费视频大全| 国产伦精品一区二区三区88av| 国产中文字幕一区| 欧洲美女亚洲激情| 美女国产一区二区三区| 国产女女做受ⅹxx高潮| 久久福利毛片| 久久久久久久久久久福利| 亚洲精品孕妇| 亚洲精品蜜桃久久久久久| 国产在线不卡| 国产黄色片免费在线观看| 欧美搞黄网站| 欧美国产视频一区| 国产精品99一区二区| 国产在线视频在线| 欧美精品日本| 99re6这里有精品热视频| 伊人情人综合网| 国产女教师bbwbbwbbw| 欧美a级片一区| 久久这里只有精品18| 亚洲国产高清视频| 波多野结衣乳巨码无在线| 国产偷自视频区视频一区二区| 欧美 日韩 国产在线观看| 国产精品视频| 妓院一钑片免看黄大片| 秋霞电影一区二区| 日本黄色的视频| 国产成人精品综合在线观看| 亚洲精品鲁一鲁一区二区三区| 国产69精品久久777的优势| 天堂www中文在线资源| 99免费精品在线观看| 新91视频在线观看| 欧美高清在线一区二区| 国产福利视频网站| 亚洲一区二区三区四区五区中文| 日本学生初尝黑人巨免费视频| 欧美特级www| 自拍偷拍精品视频| 这里只有精品99re| 国内爆初菊对白视频| 日韩精品在线视频美女| 成人在线免费电影| 久久躁日日躁aaaaxxxx| 俺来也官网欧美久久精品| 欧洲成人在线视频| 永久免费观看精品视频| 波多野结衣久草一区| 五月天亚洲一区| 日韩视频在线观看视频| 伊人成年综合电影网| www.天天射.com| 丰满放荡岳乱妇91ww| 熟女俱乐部一区二区视频在线| 国产精品成人网| 国产又大又黄视频| 337p亚洲精品色噜噜狠狠| 五月婷婷丁香网| 精品国产一区二区在线 | 日韩国产一区二区| 日本大片免费看| 日韩电影在线一区二区三区| 国偷自产av一区二区三区麻豆| 2021久久国产精品不只是精品| 四虎精品免费视频| 日韩人体视频一二区| 国产特黄一级片| 国产亚洲激情在线| www555久久| 成人福利在线视频| 亚洲宅男一区| 久草视频国产在线| 韩国三级电影一区二区| 泷泽萝拉在线播放| 夜色激情一区二区| 亚洲一区二区影视| 亚洲免费视频一区二区| 91在线中文| 成人激情视频在线播放| 免费成人av| 人人干视频在线| 国产一区二区三区日韩 | 夜色77av精品影院| 欧美a级免费视频| 狠狠色狠狠色综合日日91app| 亚洲 小说 欧美 激情 另类| 亚洲高清免费观看 | 国产精品一区二区三区四区| 欧洲美熟女乱又伦| 欧美日韩亚洲天堂| 黄色a在线观看| 九九九久久国产免费| 国产精品久久久久久久久免费高清| 久久久久综合一区二区三区| 欧美午夜不卡| 黄色片子免费看| 中文字幕一区二区三中文字幕| 亚洲图片欧美日韩| 亚洲国产欧美一区二区三区久久| 影音先锋在线播放| 91亚洲精品在线| **女人18毛片一区二区| 日韩高清第一页| 一色桃子久久精品亚洲| 日本妇乱大交xxxxx| 正在播放亚洲1区| 欧美国产日韩电影| 色综合久久久久久久久五月| 久久亚洲欧洲| 国产又粗又猛又爽又黄av| 一本久久a久久免费精品不卡| 欧美一区二区少妇| 日韩av免费在线观看| 美女亚洲一区| 欧美精品aaaa| 国产精品欧美久久久久无广告| 亚洲视频在线免费播放| 中文字幕亚洲字幕| 美女视频一区| 在线观看17c| 波多野结衣在线一区| 国产精品xxxx喷水欧美| 日韩激情在线视频| 亚洲成人看片| 四虎永久国产精品| 毛片av一区二区| 国产精品成人69xxx免费视频| 91麻豆精品国产91久久久久久| 色呦呦视频在线观看| 国产一级二级三级精品| 欧美亚洲一区二区三区| 国产又黄又粗视频| 欧美高清www午色夜在线视频| 91中文在线| 国产一区免费在线| 玖玖在线精品| 最新av电影网站| 亚洲成人精品久久| 中文字幕高清在线播放| 亚洲精品一区二区毛豆| 黄色精品一二区| 日本污视频在线观看| 在线观看国产成人av片| 精品伊人久久| 欧美 激情 在线| 综合久久一区二区三区| 好男人www在线视频| 日韩av电影在线播放| 亚洲91视频| 人妻丰满熟妇av无码久久洗澡| 精品视频在线看| 高清电影在线免费观看| 日韩欧美在线观看强乱免费| 国产成人综合在线| 青青国产在线视频| 欧美成人高清视频| 亚洲欧美成人vr| 日本特黄在线观看| 一本久久综合亚洲鲁鲁五月天| 91精选在线| 午夜精品一区二区在线观看的| 成人免费观看av| 一二三区在线播放|