使用说明
项目简介
mcp-typed-prompts仓库是Model Context Protocol (MCP) 的Python SDK实现,旨在帮助开发者快速构建基于MCP协议的应用程序。该SDK核心在于提供 'FastMCP' 服务器框架,允许开发者轻松创建MCP服务器,暴露资源 (Resources)、工具 (Tools) 和 Prompt 模板 (Prompts),从而为大型语言模型 (LLM) 应用提供结构化的上下文和功能支持。
主要功能点
- 资源 (Resources) 管理: 通过装饰器 '@mcp.resource' 轻松定义和托管数据资源,类似于Web API的GET端点,用于向LLM提供上下文信息。支持文本、二进制和文件资源,并允许创建动态资源模板。
- 工具 (Tools) 注册与执行: 使用装饰器 '@mcp.tool' 注册可被LLM调用的外部功能,类似于Web API的POST端点,允许LLM执行代码或产生副作用。支持定义工具的输入参数和返回类型,并自动生成JSON Schema。
- Prompt 模板 (Prompts) 定义与渲染: 利用装饰器 '@mcp.prompt' 创建可复用的Prompt模板,支持参数化定制LLM交互模式,提高Prompt的可维护性和复用性。
- FastMCP 服务器框架: 提供 'FastMCP' 类,简化MCP服务器的搭建过程,开发者可以通过装饰器快速注册资源、工具和Prompt,并支持多种运行模式(开发模式、Claude集成、直接执行)。
- JSON-RPC 协议支持: 完全实现了MCP协议,通过JSON-RPC与客户端通信,处理请求和响应。
- 多种传输协议支持: 支持 Stdio 和 SSE 传输协议,方便集成到不同的LLM应用环境中。
- 开发和部署工具: 提供 'mcp' 命令行工具,支持开发模式快速测试 ('mcp dev'),以及安装到 Claude Desktop ('mcp install') 等功能。
安装步骤
-
环境准备: 确保已安装 Python 3.8 或更高版本。推荐使用 'uv' 或 'pip' 进行包管理。
-
安装 SDK: 使用 'uv' (推荐) 或 'pip' 安装 'mcp' 包,同时安装命令行工具 'cli' 以使用 'mcp' 命令。
uv add "mcp[cli]" # 或者 pip install "mcp[cli]"
服务器配置
MCP 服务器需要配置启动命令 (command) 及其参数 (args) 才能被 MCP 客户端(如 Claude Desktop)连接。以下是一个基于 'FastMCP' 框架创建的 MCP 服务器的客户端配置示例 (JSON 格式),客户端需要根据实际情况进行配置:
{ "serverName": "MyEchoServer", "command": "python", "args": ["server.py"] }
- 'serverName': MCP 服务器的名称,用于在客户端中标识和显示。可以自定义,例如 '"MyEchoServer"'。
- 'command': MCP 客户端需要配置此项。启动 MCP 服务器的命令。对于 Python 'FastMCP' 服务器,通常设置为 '"python"',假设 'python' 命令在系统环境变量 PATH 中可用。
- 'args': MCP 客户端需要配置此项。启动命令的参数列表。对于 Python 'FastMCP' 服务器,通常第一个参数是服务器脚本的文件名,例如 '["server.py"]',假设服务器脚本文件名为 'server.py' 且与执行命令的目录在同一位置。
请注意: 'command' 和 'args' 的配置是 MCP 客户端连接 MCP 服务器的关键,请根据实际的服务器启动脚本和环境进行调整。例如,如果使用 'uv' 运行服务器,'command' 可能需要设置为 '"uv"','args' 则需要包含 'uv run' 以及服务器脚本的路径和参数。如果服务器脚本需要额外的依赖包,也需要在客户端配置中通过 'args' 或其他方式进行指定。
基本使用方法
-
创建 FastMCP 服务器: 编写 Python 脚本,使用 'FastMCP' 类创建服务器实例,并使用装饰器 '@mcp.resource', '@mcp.tool', '@mcp.prompt' 定义资源、工具和Prompt模板。
# server.py from mcp.server.fastmcp import FastMCP mcp = FastMCP("MyDemoServer") @mcp.tool() def add(a: int, b: int) -> int: """两数相加工具""" return a + b @mcp.resource("greeting://{name}") def greet(name: str) -> str: """个性化问候资源""" return f"你好, {name}!" -
开发模式运行 (mcp dev): 使用 'mcp dev server.py' 命令在开发模式下运行服务器,并使用 MCP Inspector 进行测试和调试。
mcp dev server.py -
安装到 Claude Desktop (mcp install): 使用 'mcp install server.py' 命令将服务器安装到 Claude Desktop 应用中,以便在 Claude 中使用自定义的资源和工具。
mcp install server.py -
直接运行 (mcp run 或 python server.py): 使用 'mcp run server.py' 或 'python server.py' 命令直接运行服务器,适用于自定义部署场景。
mcp run server.py # 或者 python server.py -
在 MCP 客户端中使用: 配置 MCP 客户端,例如 Claude Desktop 或 MCP Inspector,添加已安装或运行的 MCP 服务器,客户端将自动发现并可以使用服务器提供的资源、工具和Prompt模板。
信息
分类
开发者工具