成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用模型上下文協(xié)議構建自定義工具

譯文 精選
人工智能
模型上下文協(xié)議(MCP)在人工智能開發(fā)領域變得越來越重要,它可以實現(xiàn)人工智能模型和外部工具之間的無縫集成。本指南將探討如何創(chuàng)建MCP服務器,通過自定義工具實現(xiàn)增強人工智能功能。

譯者 | 李睿

審校 | 重樓

本文介紹如何構建模型上下文協(xié)議(MCP)服務器以擴展人工智能功能。創(chuàng)建可以無縫集成人工智能模型的工具,并通過arXiv論文搜索實現(xiàn)進行演示。

模型上下文協(xié)議(MCP)在人工智能開發(fā)領域變得越來越重要,它可以實現(xiàn)人工智能模型和外部工具之間的無縫集成。本指南將探討如何創(chuàng)建MCP服務器,通過自定義工具實現(xiàn)增強人工智能功能。

什么是模型上下文協(xié)議?

模型上下文協(xié)議允許人工智能模型以標準化的方式與外部工具和服務進行交互。它使像Claude這樣的人工智能助手能夠執(zhí)行自定義功能、處理數(shù)據(jù)并與外部服務交互,同時保持一致的界面。

MCP服務器開發(fā)入門

在開始創(chuàng)建MCP服務器時,需要對Python和異步編程有基本的了解。以下介紹設置和實現(xiàn)自定義MCP服務器的過程。

設置項目

創(chuàng)建MCP服務器最簡單的方法是使用官方的MCP服務器創(chuàng)建工具。其中有兩個選擇:

 # Using uvx (recommended)
 uvx create-mcp-server

 # Or using pip
 pip install create-mcp-server
 create-mcp-server

這將創(chuàng)建一個基本的項目結構:

my-server/
 ├── README.md
 ├── pyproject.toml
 └── src/
    └── my_server/
        ├── __init__.py
        ├── __main__.py
          └── server.py

實施首個MCP服務器

首先創(chuàng)建一個實例:創(chuàng)建一個arXiv論文搜索工具,人工智能模型可以使用它來獲取學術論文。以下是實現(xiàn)方法:

 import asyncio
 from mcp.server.models import InitializationOptions
 import mcp.types as types
 from mcp.server import NotificationOptions, Server
 import mcp.server.stdio
 import arxiv

 server = Server("mcp-scholarly")
 client = arxiv.Client()

 @server.list_tools()
 async def handle_list_tools() -> list[types.Tool]:
    """
    List available tools.
   Each tool specifies its arguments using JSON Schema validation.
    """
    return [
        types.Tool(
            name="search-arxiv",
            description="Search arxiv for articles related to the given keyword.",
            inputSchema={
                "type": "object",
                "properties": {
                    "keyword": {"type": "string"},
                },
                "required": ["keyword"],
            },
        )
    ]

 @server.call_tool()
 async def handle_call_tool(
        name: str, arguments: dict | None
 ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:
    """
    Handle tool execution requests.
    Tools can modify server state and notify clients of changes.
    """
    if name != "search-arxiv":
        raise ValueError(f"Unknown tool: {name}")
    
    if not arguments:
        raise ValueError("Missing arguments")
        
    keyword = arguments.get("keyword")
    if not keyword:
        raise ValueError("Missing keyword")

    # Search arXiv papers
    search = arxiv.Search(
        query=keyword, 
        max_results=10, 
        sort_by=arxiv.SortCriterion.SubmittedDate
    )
    results = client.results(search)
    
    # Format results
    formatted_results = []
    for result in results:
        article_data = "\n".join([
            f"Title: {result.title}",
            f"Summary: {result.summary}",
            f"Links: {'||'.join([link.href for link in result.links])}",
            f"PDF URL: {result.pdf_url}",
        ])
        formatted_results.append(article_data)

    return [
        types.TextContent(
            type="text",
            text=f"Search articles for {keyword}:\n"
                 + "\n\n\n".join(formatted_results)
        ),
    ]

關鍵組件說明

  • 服務器初始化。服務器使用標識MCP服務的唯一名稱進行初始化。
  • 工具登記。@server.list_tools()裝飾器使用JSON Schema注冊可用的工具及其規(guī)范。
  • 具實施。使用@server.call_tool()裝飾器處理人工智能模型調(diào)用工具時的實際執(zhí)行。
  • 響應格式。工具返回結構化的響應,這些響應可以包括文本、圖像或其他嵌入資源。

MCP服務器開發(fā)的最佳實踐

  • 輸入驗證。始終使用JSON模式徹底驗證輸入?yún)?shù)。
  • 錯誤處理。實現(xiàn)全面的錯誤處理以提供有意義的反饋。
  • 資源管理。正確管理外部資源和連接。
  • 文檔。提供對工具及其參數(shù)的清晰描述。
  • 類型安全。使用Python的類型提示來確保整個代碼的類型安全。

測試MCP服務器

測試MCP服務器有兩種主要方法:

1.使用MCP檢查器

對于開發(fā)和調(diào)試,MCP Inspector提供了一個測試服務器的友好界面:

 npx @modelcontextprotocol/inspector uv --directory /your/project/path run your-server-name

檢查器將顯示一個URL,可以在瀏覽器中訪問該URL以開始調(diào)試。

2.與Claude Desktop集成

使用Claude Desktop測試MCP服務器:

(1)找到Claude Desktop配置文件:

MacOS:~/Library/Application Support/Claude/claude_desktop_config.json

Windows:%APPDATA%/Claude/claude_desktop_config.json

(2)添加MCP服務器配置:

 {
  "mcpServers": {
    "mcp-scholarly": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/mcp-scholarly",
        "run",
        "mcp-scholarly"
      ]
    }
  }
 }

對于已發(fā)布的服務器,可以使用更簡單的配置:

 {
  "mcpServers": {
    "mcp-scholarly": {
      "command": "uvx",
      "args": [
        "mcp-scholarly"
      ]
    }
  }
 }

(3)啟動Claude Desktop——現(xiàn)在應該可以在工具列表中看到工具(例如“search-arxiv”):

測試清單:

  • 驗證工具注冊和發(fā)現(xiàn)
  • 測試輸入驗證
  • 檢查錯誤處理
  • 驗證響應格式
  • 確保適當?shù)馁Y源清理

與人工智能模型的集成

一旦MCP服務器準備就緒,它就可以與支持模型上下文協(xié)議的人工智能模型集成。該集成使人工智能模型能夠:

  • 通過list_tools端點發(fā)現(xiàn)可用工具
  • 調(diào)用具有適當參數(shù)的特定工具
  • 處理響應并將其融入其交互中

例如,當與Claude Desktop集成時,MCP工具會出現(xiàn)在“可用的MCP工具”列表中,從而在對話過程中可以直接訪問這些工具。然后,人工智能可以利用這些工具來增強其能力——在arXiv示例中,Claude可以在討論中實時搜索和引用學術論文。

常見挑戰(zhàn)與解決方案

  • 異步操作。確保正確處理異步操作以防止阻塞。
  • 資源限制。實現(xiàn)適當?shù)某瑫r和資源限制。
  • 錯誤恢復。設計健壯的錯誤恢復機制。
  • 狀態(tài)管理。在并發(fā)操作中謹慎處理服務器狀態(tài)。

結論

構建MCP服務器為擴展人工智能功能提供了新的可能性。通過遵循本指南和最佳實踐,可以創(chuàng)建與人工智能模型無縫集成的健壯工具。arXiv搜索實現(xiàn)的示例展示了如何創(chuàng)建實用且有用的工具來增強人工智能功能。

無論是構建研究工具、數(shù)據(jù)處理服務還是其他人工智能增強功能,模型上下文協(xié)議都提供了一種標準化的方式來擴展人工智能模型功能。用戶可以構建自己的MCP服務器,并為不斷增長的人工智能工具和服務生態(tài)系統(tǒng)做出貢獻。

本文作者的官方MCP Scholarly服務器已被MCP存儲庫接受為社區(qū)服務器。可以在此處的社區(qū)部分找到它。

資源

為了更深入地了解MCP及其功能,可以瀏覽官方MCP文檔,該文檔提供了有關協(xié)議規(guī)范和實現(xiàn)細節(jié)的全面信息。

原文標題:Building Custom Tools With Model Context Protocol,作者:Aditya Karnam Gururaj Rao,Arjun Jaggi

責任編輯:姜華 來源: 51CTO內(nèi)容精選
相關推薦

2025-03-18 08:14:05

2025-04-01 08:38:25

模型上下文協(xié)議MCPLLM

2025-03-18 09:10:00

MCPAI模型上下文協(xié)議

2025-01-08 11:10:46

2024-03-14 08:11:45

模型RoPELlama

2023-11-16 08:46:27

上下文管理器Python

2022-09-14 13:13:51

JavaScript上下文

2025-05-08 07:38:36

模型上下文協(xié)議MCPAI模型

2025-05-20 02:11:00

2025-03-18 10:34:33

2022-09-15 08:01:14

繼承基礎設施基礎服務

2017-05-11 14:00:02

Flask請求上下文應用上下文

2025-03-26 03:00:00

MCPAI應用

2024-05-08 17:05:44

2012-12-31 10:01:34

SELinuxSELinux安全

2025-06-12 01:30:00

智能體Dify游戲智能體

2022-10-19 23:21:20

Python編程核心協(xié)議

2025-05-26 08:36:25

Gemini模型聊天機器人Gemini

2024-11-26 11:58:26

模型開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久最新网址 | 91视频网址 | 日本a v在线播放 | 成人免费在线视频 | 亚洲色图第一页 | 五月花丁香婷婷 | 欧美天堂一区 | 亚洲va在线va天堂va狼色在线 | 人人操日日干 | 亚洲精品久久嫩草网站秘色 | 少妇诱惑av | 欧美日韩网站 | 免费观看日韩精品 | 最新中文字幕在线 | 欧美福利| 青青草在线视频免费观看 | 欧美视频三区 | 亚洲成人免费av | 99re国产 | 亚洲人成网站777色婷婷 | 成人免费视频7777777 | 国产激情91久久精品导航 | 国产成人免费视频网站高清观看视频 | 亚洲视频一区二区三区 | 久草视频2 | 国产综合在线视频 | 国产精品精品视频 | 国产精品海角社区在线观看 | 中文字幕在线免费观看 | 欧美淫片| 国产精品九九九 | 欧美久久久网站 | 亚洲国产一区二区在线 | 999精品在线 | 成人欧美一区二区三区白人 | 在线观看特色大片免费网站 | 亚洲国产专区 | 福利社午夜影院 | 久久人人网| 日韩中文字幕 | 中文天堂在线观看 |