《网站开发尾款结算》申请上海做网站高端

张小明 2026/3/12 13:11:31
《网站开发尾款结算》申请,上海做网站高端,wordpress 固定链接,个人网站作业前言 FastMCP Client 通过处理底层连接机制的传输对象与 MCP 服务器通信。虽然客户端可以根据您传递给它的内容自动选择传输方式#xff0c;但显式实例化传输可以让您完全控制配置——环境变量、身份验证、会话管理等等。 将传输视为您的客户端代码和 MCP 服务器之间的可配置…前言FastMCP Client 通过处理底层连接机制的传输对象与 MCP 服务器通信。虽然客户端可以根据您传递给它的内容自动选择传输方式但显式实例化传输可以让您完全控制配置——环境变量、身份验证、会话管理等等。将传输视为您的客户端代码和 MCP 服务器之间的可配置适配器。每种传输类型处理不同的通信模式带管道的子进程、HTTP 连接或直接内存调用。本博客为了完整性把官网的很多内容都写进来了如果我们仅仅是想要直接运行几种不同传输方式的代码请直接参考本文后记的部分。统一测试的MCP Server这里就简单的写一个MCP Server供下面不同的MCP Client使用fromfastmcpimportFastMCP# 初始化FastMCP ServermcpFastMCP(My MCP Server)# 用mcp.tool()装饰器定义一个工具mcp.tool()defadd(a:int,b:int)-int: :param a: 第一个整数 :param b: 第二个整数 :return: 返回两个数字之和 returnab# 启动MCP Serverif__name____main__:# ssemcp.run(transportsse,host127.0.0.1,port8001)# streamable-http# mcp.run(transportstreamable-http, host127.0.0.1, port8001)# stdio# mcp.run(transportstdio)选择合适的传输方式使用 STDIO 传输当您需要运行本地 MCP 服务器并完全控制其环境和生命周期时使用 远程传输当连接到独立运行的生产服务或共享 MCP 服务器时使用 内存传输当测试 FastMCP 服务器而不需要子进程或网络开销时使用 MCP JSON 配置当您需要连接到配置文件中定义的多个服务器时STDIO 传输STDIO标准输入/输出传输通过子进程管道与 MCP 服务器通信。这是桌面客户端如 Claude Desktop使用的标准机制也是运行本地 MCP 服务器的主要方式。客户端运行服务器关键概念使用 STDIO 传输时您的客户端实际上会启动并管理服务器进程。这与网络传输根本不同网络传输是连接到已经运行的服务器。理解这种关系是有效使用 STDIO 的关键。使用 STDIO 传输您的客户端会在连接时将服务器作为子进程启动管理服务器的生命周期启动、停止、重启控制服务器的环境和配置通过 stdin/stdout 管道进行通信这种架构支持强大的本地集成但需要理解环境隔离和进程管理。环境隔离STDIO 服务器默认在隔离环境中运行。这是 MCP 协议强制执行的安全功能用于防止敏感数据的意外暴露。当您的客户端启动 MCP 服务器时服务器不会继承您 shell 的环境变量API 密钥、路径和其他配置必须显式传递工作目录和系统路径可能与您的 shell 不同要向服务器传递环境变量请使用 env 参数fromfastmcpimportClient# 如果您的服务器需要环境变量如 API 密钥# 您必须显式传递它们clientClient(my_server.py,env{API_KEY:secret,DEBUG:true})# 这样不会起作用 - 服务器在隔离环境中运行# export API_KEYsecret # 在您的 shell 中# client Client(my_server.py) # 服务器看不到 API_KEY基本用法要使用 STDIO 传输您需要创建一个传输实例包含运行服务器所需的命令和参数fromfastmcpimportClientfromfastmcp.client.transportsimportStdioTransport transportStdioTransport(commandpython,args[my_server.py])asyncdefmain():asyncwithClient(transporttransport)asclient:# 列出可用工具toolsawaitclient.list_tools()print(f可用的工具有{tools})# 调用add工具resultawaitclient.call_tool(add,{a:1,b:3})print(f结果为{result})importasyncio asyncio.run(main())用stdio的方式启动MCP Server后运行上面的MCP Client代码结果[12/20/25 13:55:45] INFO Starting MCP server My MCP Server server.py:2527 with transport stdio 可用的工具有[Tool(nameadd, titleNone, description:param a: 第一个整数\n:param b: 第二个整数\n:return: 返回两个数字之和, inputSchema{properties: {a: {type: integer}, b: {type: integer}}, required: [a, b], type: object}, outputSchema{properties: {result: {type: integer}}, required: [result], type: object, x-fastmcp-wrap-result: True}, iconsNone, annotationsNone, meta{_fastmcp: {tags: []}}, executionNone)] 结果为CallToolResult(content[TextContent(typetext, text4, annotationsNone, metaNone)], structured_content{result: 4}, metaNone, data4, is_errorFalse)从日志中也可以看出这种方式MCP Server就是MCP Client的一个子进程。您可以配置其他设置如环境变量、工作目录或命令参数transportStdioTransport(commandpython,args[my_server.py,--verbose],env{LOG_LEVEL:DEBUG},cwd/path/to/server)clientClient(transport)为了方便客户端也可以从文件路径推断 STDIO 传输但这不允许配置fromfastmcpimportClient clientClient(my_server.py)# 受限 - 无配置选项环境变量由于 STDIO 服务器不会继承您的环境您需要传递配置的策略。以下是两种常见方法选择性转发 仅传递服务器实际需要的变量importosfromfastmcp.client.transportsimportStdioTransport required_vars[API_KEY,DATABASE_URL,REDIS_HOST]env{var:os.environ[var]forvarinrequired_varsifvarinos.environ}transportStdioTransport(commandpython,args[server.py],envenv)clientClient(transport)从 .env 文件加载 将配置与代码分离fromdotenvimportdotenv_valuesfromfastmcp.client.transportsimportStdioTransport envdotenv_values(.env)transportStdioTransport(commandpython,args[server.py],envenv)clientClient(transport)会话持续STDIO 传输默认在多个客户端上下文之间维护会话keep_aliveTrue。这通过为多个连接重用同一个子进程来提高性能但在需要隔离时可以控制。默认情况下子进程在连接之间持续存在fromfastmcp.client.transportsimportStdioTransport transportStdioTransport(commandpython,args[server.py])clientClient(transport)asyncdefefficient_multiple_operations():asyncwithclient:awaitclient.ping()asyncwithclient:# 重用同一个子进程awaitclient.call_tool(process_data,{file:data.csv})要在连接之间实现完全隔离请禁用会话持久性transportStdioTransport(commandpython,args[server.py],keep_aliveFalse)clientClient(transport)当您需要完全隔离例如在测试套件中或当服务器状态可能在连接之间引起问题时请使用 keep_aliveFalse。专用 STDIO 传输FastMCP 提供便利的传输方式它们是围绕 StdioTransport 的轻量包装器具有预配置的命令PythonStdioTransport - 对 .py 文件使用 python 命令NodeStdioTransport - 对 .js 文件使用 node 命令UvStdioTransport - 对 Python 包使用 uv使用 env_vars 参数UvxStdioTransport - 对 Python 包使用 uvx使用 env_vars 参数NpxStdioTransport - 对 Node 包使用 npx使用 env_vars 参数对于大多数用例请直接使用您所需的命令实例化 StdioTransport。这些专用传输主要对客户端推断快捷方式有用。远程传输远程传输连接到作为 Web 服务运行的 MCP 服务器。这与 STDIO 传输是根本不同的模式——您的客户端不是启动和管理服务器进程而是连接到已经运行的、管理自己环境和生命周期的服务。流式 HTTP 传输流式 HTTP 是生产部署的推荐传输方式通过 HTTP 连接提供高效的双向流式传输。类 StreamableHttpTransport服务器兼容性 使用 mcp run --transport http 运行的 FastMCP 服务器该传输需要一个 URL并可选择性地支持用于身份验证和配置的自定义头部fromfastmcp.client.transportsimportStreamableHttpTransport# 基本连接transportStreamableHttpTransport(urlhttps://api.example.com/mcp)clientClient(transport)# 使用自定义头部进行身份验证transportStreamableHttpTransport(urlhttps://api.example.com/mcp,headers{Authorization:Bearer your-token-here,X-Custom-Header:value})clientClient(transport)为了方便FastMCP 还提供身份验证助手fromfastmcp.client.authimportBearerAuth clientClient(https://api.example.com/mcp,authBearerAuth(your-token-here))我们这里就用streamable-http方式启动上面的MCP Server然后运行下面的客户端代码fromfastmcpimportClientfromfastmcp.client.transportsimportStreamableHttpTransport transportStreamableHttpTransport(urlhttp://127.0.0.1:8001/mcp)asyncdefmain():asyncwithClient(transporttransport)asclient:# 列出可用工具toolsawaitclient.list_tools()print(f可用的工具有{tools})# 调用add工具resultawaitclient.call_tool(add,{a:1,b:3})print(f结果为{result})importasyncio asyncio.run(main())运行结果可用的工具有[Tool(nameadd, titleNone, description:param a: 第一个整数\n:param b: 第二个整数\n:return: 返回两个数字之和, inputSchema{properties: {a: {type: integer}, b: {type: integer}}, required: [a, b], type: object}, outputSchema{properties: {result: {type: integer}}, required: [result], type: object, x-fastmcp-wrap-result: True}, iconsNone, annotationsNone, meta{_fastmcp: {tags: []}}, executionNone)] 结果为CallToolResult(content[TextContent(typetext, text4, annotationsNone, metaNone)], structured_content{result: 4}, metaNone, data4, is_errorFalse)注意streamable-http协议中客户端访问的端点为mcp地址中必须以mcp结尾http://127.0.0.1:8001/mcp。SSE遗留服务器发送事件传输为向后兼容性而维护但在新部署中已被流式 HTTP 取代。类 SSETransport服务器兼容性 使用 mcp run --transport sse 运行的 FastMCP 服务器SSE 传输支持与流式 HTTP 相同的配置选项fromfastmcp.client.transportsimportSSETransport transportSSETransport(urlhttps://api.example.com/sse,headers{Authorization:Bearer token})clientClient(transport)除非您对 SSE 有特定的基础设施要求否则请在新部署中使用流式 HTTP。这类也可以用sse传输方式启动MCP Server用下面的MCP Client进行测试fromfastmcpimportClientfromfastmcp.client.transportsimportSSETransport transportSSETransport(urlhttp://127.0.0.1:8001/sse)asyncdefmain():asyncwithClient(transporttransport)asclient:# 列出可用工具toolsawaitclient.list_tools()print(f可用的工具有{tools})# 调用add工具resultawaitclient.call_tool(add,{a:1,b:3})print(f结果为{result})importasyncio asyncio.run(main())运行结果可用的工具有[Tool(nameadd, titleNone, description:param a: 第一个整数\n:param b: 第二个整数\n:return: 返回两个数字之和, inputSchema{properties: {a: {type: integer}, b: {type: integer}}, required: [a, b], type: object}, outputSchema{properties: {result: {type: integer}}, required: [result], type: object, x-fastmcp-wrap-result: True}, iconsNone, annotationsNone, meta{_fastmcp: {tags: []}}, executionNone)] 结果为CallToolResult(content[TextContent(typetext, text4, annotationsNone, metaNone)], structured_content{result: 4}, metaNone, data4, is_errorFalse)内存传输内存传输直接连接到同一 Python 进程中的 FastMCP 服务器实例。这消除了子进程管理和网络开销使其非常适合测试和开发。类 FastMCPTransport与 STDIO 传输不同内存服务器可以完全访问您 Python 进程的环境。它们与您的客户端代码共享相同的内存空间和环境变量——不需要隔离或显式环境传递。fromfastmcpimportFastMCP,Clientimportos mcpFastMCP(TestServer)mcp.tooldefgreet(name:str)-str:prefixos.environ.get(GREETING_PREFIX,Hello)returnf{prefix},{name}!clientClient(mcp)asyncwithclient:resultawaitclient.call_tool(greet,{name:World})MCP JSON 配置传输此传输支持新兴的 MCP JSON 配置标准用于定义多个服务器类 MCPConfigTransportconfig{mcpServers:{weather:{url:https://weather.example.com/mcp,transport:http},assistant:{command:python,args:[./assistant.py],env:{LOG_LEVEL:INFO}}}}clientClient(config)asyncwithclient:# 工具按服务器命名空间weatherawaitclient.call_tool(weather_get_forecast,{city:NYC})answerawaitclient.call_tool(assistant_ask,{question:What?})使用 FastMCP 和 MCPConfig 进行工具转换FastMCP 支持在 MCPConfig 文件中与 MCP 服务器一起定义基本的工具转换。config{mcpServers:{weather:{url:https://weather.example.com/mcp,transport:http,tools:{}#---这是工具转换部分}}}通过这些转换您可以转换更改工具的名称、标题、描述、标签、启用状态和参数。对于工具采用的每个参数您可以转换更改名称、描述、默认值、可见性、是否必需并且可以提供示例值。在以下示例中我们将 weather_get_forecast 工具转换为仅检索 Miami 的天气并从客户端隐藏 city 参数。tool_transformations{weather_get_forecast:{name:miami_weather,description:获取迈阿密的天气,arguments:{city:{name:city,default:Miami,hide:True,}}}}config{mcpServers:{weather:{url:https://weather.example.com/mcp,transport:http,tools:tool_transformations}}}工具白名单和黑名单通过在服务器上为工具应用 tags可以从客户端将工具列入白名单或黑名单。在以下示例中我们仅将标记有 forecast 标签的工具列入白名单所有其他工具对客户端不可用。tool_transformations{weather_get_forecast:{enabled:True,tags:[forecast]}}config{mcpServers:{weather:{url:https://weather.example.com/mcp,transport:http,tools:tool_transformations,include_tags:[forecast]}}}后记对于初学者可以直接关注stdio和streamable-http两种传输方式可以直接运行的代码如下MCP ServerfromfastmcpimportFastMCP# 初始化FastMCP ServermcpFastMCP(My MCP Server)# 用mcp.tool()装饰器定义一个工具mcp.tool()defadd(a:int,b:int)-int: :param a: 第一个整数 :param b: 第二个整数 :return: 返回两个数字之和 returnab# 启动MCP Serverif__name____main__:# ssemcp.run(transportsse,host127.0.0.1,port8001)# streamable-http# mcp.run(transportstreamable-http, host127.0.0.1, port8001)# stdio# mcp.run(transportstdio)MCP ClientstdiofromfastmcpimportClientfromfastmcp.client.transportsimportStdioTransport transportStdioTransport(commandpython,args[my_server.py])asyncdefmain():asyncwithClient(transporttransport)asclient:# 列出可用工具toolsawaitclient.list_tools()print(f可用的工具有{tools})# 调用add工具resultawaitclient.call_tool(add,{a:1,b:3})print(f结果为{result})importasyncio asyncio.run(main())streamable-httpfromfastmcpimportClientfromfastmcp.client.transportsimportStreamableHttpTransport transportStreamableHttpTransport(urlhttp://127.0.0.1:8001/mcp)asyncdefmain():asyncwithClient(transporttransport)asclient:# 列出可用工具toolsawaitclient.list_tools()print(f可用的工具有{tools})# 调用add工具resultawaitclient.call_tool(add,{a:1,b:3})print(f结果为{result})importasyncio asyncio.run(main())参考文献FastMCP客户端传输
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

广东工程建设咨询有限公司网站wordpress 管理员登陆

ACLNAT ACL 一、ACL基础介绍 1、ACL概念。 访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句。 条件可以是报文的源地址、目的地址、端口号等。 ACL本质上是一种报文过滤器&a…

张小明 2026/3/10 16:39:30 网站建设

直播网站开发要多久昆山网站公司哪家好

魔兽世界API工具大全:5分钟快速上手wow_api指南 【免费下载链接】wow_api Documents of wow API -- 魔兽世界API资料以及宏工具 项目地址: https://gitcode.com/gh_mirrors/wo/wow_api 想要快速掌握魔兽世界API开发?wow_api开源项目为你提供了完整…

张小明 2026/3/10 16:39:33 网站建设

怎么进入网站后台管理系统山东网站建设运行工资

引言 在多线程编程中,频繁创建和销毁线程会消耗大量系统资源,影响应用性能。Java线程池通过复用已创建的线程,有效解决了这一问题。本文将深入剖析Java线程池的核心原理、参数配置和实战技巧,帮助1-3年经验的开发者掌握线程池的正…

张小明 2026/3/10 16:44:28 网站建设

3 如何进行网站优化设计公司手机网站设计

文章目录球队训练信息管理系统一、项目简介(源代码在文末)1.运行视频2.🚀 项目技术栈3.✅ 环境要求说明4.包含的文件列表(含论文)数据库结构与测试用例系统功能结构后台运行截图项目部署源码下载球队训练信息管理系统 …

张小明 2026/3/10 16:44:29 网站建设

网页制作模板蛋糕常见的有利于seo的网站系统

Windows 服务安全深度解析与防护策略 1. Windows 服务 SID 基础 在 Windows 系统里,每个服务的进程令牌都包含 NT AUTHORITY\SERVICE SID(S - 1 - 5 - 6)。通过查看运行进程中是否存在此 SID,能快速判断该进程是服务还是普通应用程序。 从 Windows Vista 和 Windows Ser…

张小明 2026/3/10 16:44:30 网站建设