1.2_环境搭建

1.2 环境搭建

本章将指导您完成MCP开发环境的搭建,包括安装必要的库和工具,配置开发环境,以及验证安装是否成功。通过这些步骤,您将能够开始使用MCP构建应用程序。

安装MCP库及依赖

MCP是一个Python库,可以通过多种方式安装。以下是几种常见的安装方法:

使用pip安装

最简单的安装方式是使用pip包管理器:

# 安装基本的MCP库
pip install mcp

# 安装带CLI工具的完整版本
pip install "mcp[cli]"

使用uv安装(推荐)

uv是一个更现代的Python包管理工具,提供更快的安装速度和更好的依赖解析。如果您使用uv管理项目:

# 首先安装uv(如果尚未安装)
pip install uv

# 然后使用uv安装MCP
uv add mcp
# 或安装带CLI工具的完整版本
uv add "mcp[cli]"

从源码安装

如果您需要最新的开发版本或想要贡献代码,可以从源码安装:

git clone https://github.com/modelcontextprotocol/mcp-python.git
cd mcp-python
pip install -e .

安装可选依赖

根据您的使用场景,可能需要安装一些可选依赖:

# 安装SSE(Server-Sent Events)支持
pip install "mcp[sse]"

# 安装WebSocket支持
pip install "mcp[websocket]"

# 安装完整功能(包括CLI、SSE和WebSocket)
pip install "mcp[full]"

配置开发环境

为了高效开发MCP应用,建议设置一个良好的开发环境。以下是一些建议:

1. 创建虚拟环境

使用虚拟环境可以隔离项目依赖,避免与系统Python冲突:

# 使用venv创建虚拟环境
python -m venv mcp-env

# 激活虚拟环境
# Windows
mcp-env\Scripts\activate
# Linux/MacOS
source mcp-env/bin/activate

2. 设置编辑器/IDE

推荐使用支持Python的现代编辑器,如VSCode、PyCharm等:

VSCode配置:

  • 安装Python扩展
  • 设置Python解释器为您的虚拟环境
  • 推荐的扩展:Python Docstring Generator、Pylance

PyCharm配置:

  • 创建新项目时选择之前创建的虚拟环境
  • 启用类型检查(MCP有良好的类型注解)

3. 配置开发工具

安装一些有用的开发工具:

# 安装代码质量工具
pip install black isort mypy pytest

# 添加到项目中
# pyproject.toml 示例
"""
[tool.black]
line-length = 88

[tool.isort]
profile = "black"

[tool.mypy]
python_version = "3.10"
"""

使用MCP CLI工具

MCP提供了命令行工具,方便开发、调试和管理MCP服务。确保安装了mcp[cli]版本才能使用这些命令。

基本命令

# 显示帮助信息
mcp --help

# 显示版本信息
mcp --version

开发模式

使用dev命令在开发模式下运行MCP服务器,同时启动一个交互式检查器界面:

# 运行服务器模块或文件
mcp dev path/to/server.py

# 添加依赖
mcp dev server.py --with pandas --with numpy

# 挂载本地代码(开发中的库)
mcp dev server.py --with-editable ./my-package

安装服务器

对于Claude桌面版等支持MCP的应用,您可以使用install命令注册服务器:

# 安装服务器
mcp install server.py

# 自定义服务器名称
mcp install server.py --name "我的数据分析服务"

# 设置环境变量
mcp install server.py -v API_KEY=abc123 -v DB_URL=postgres://localhost

直接运行服务器

您也可以直接运行服务器:

# 直接运行
mcp run server.py

# 指定传输方式
mcp run server.py --transport sse

验证安装成功

完成安装后,您可以运行一个简单的测试来验证MCP是否正常工作。

1. 创建测试服务器

创建一个名为test_server.py的文件:

from mcp.server.fastmcp import FastMCP

# 创建一个MCP服务器
mcp = FastMCP("Test Server")

# 添加一个简单的工具
@mcp.tool()
def hello(name: str) -> str:
    """返回问候语"""
    return f"Hello, {name}!"

if __name__ == "__main__":
    mcp.run()

2. 创建测试客户端

创建一个名为test_client.py的文件:

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def run():
    server_params = StdioServerParameters(
        command="python",
        args=["test_server.py"],
    )
    
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # 初始化连接
            await session.initialize()
            print("连接成功!")
            
            # 列出可用工具
            tools = await session.list_tools()
            print(f"可用工具: {tools}")
            
            # 调用工具
            result = await session.call_tool("hello", arguments={"name": "MCP User"})
            print(f"工具调用结果: {result}")

if __name__ == "__main__":
    import asyncio
    asyncio.run(run())

3. 运行测试

在命令行中运行客户端:

python test_client.py

如果一切正常,您应该会看到类似以下的输出:

连接成功!
可用工具: meta=None nextCursor=None tools=[Tool(name='hello', description='返回问候语', arguments={'properties': {'name': {'type': 'string'}}, 'required': ['name'], 'type': 'object'})]
工具调用结果: meta=None content=[TextContent(type='text', text='Hello, MCP User!', annotations=None)] isError=False

4. 使用MCP检查器

您也可以使用MCP检查器来验证服务器:

mcp dev test_server.py

这将启动一个Web界面,您可以在其中浏览和测试您的MCP服务器的功能。

常见问题解决

导入错误

如果遇到导入错误,通常是因为MCP库未正确安装或未安装可选依赖:

# 检查MCP是否已安装
pip list | grep mcp

# 重新安装带所有依赖的MCP
pip install "mcp[full]" --force-reinstall

版本兼容性问题

MCP依赖一些其他库,有时可能出现版本冲突:

# 检查详细依赖
pip show mcp

# 如果遇到冲突,可以尝试在虚拟环境中重新安装
python -m venv fresh-env
source fresh-env/bin/activate  # 或在Windows上使用 fresh-env\Scripts\activate
pip install "mcp[full]"

网络连接问题

使用SSE或WebSocket传输时可能遇到网络连接问题:

# 检查防火墙设置
# 确保端口未被占用
netstat -an | grep 8000  # Linux/MacOS
netstat -an | findstr 8000  # Windows

小结

在本章中,我们完成了MCP开发环境的搭建,包括安装库和依赖、配置开发环境、使用CLI工具以及验证安装。现在您已经准备好开始使用MCP构建应用程序了。

在下一章中,我们将创建第一个完整的MCP服务器,探索更多MCP的基本功能。

相关实现文件

使用 Hugo 构建
主题 StackJimmy 设计