MCP初识
点击展开更新日志
2025
07-28
- 环境准备
- MCP Server
nexttime
会有些什么呢(❁´◡`❁)
¶源起
起因是突然想在本地搭建自己的知识库,然后顺便做一个自动化的签到流程,最初的想法是利用 playwrigth
可视化把过程记录下来,但是发现效果并不好,于是决定还是自己写,然后套上 MCP(当当,点题!),已经在另一台设备上完全跑通了,调用也没有问题。问题是重装系统时忘记备份了(真是服了。。),干脆重新在主机上重新搞一遍,并记录。
¶环境准备
¶主机环境
- 操作系统:Win11 24H2 专业版
- IDE:PyCharm
- Python:3.13
¶Python
采用 Python
开发(因为最简单)。安装过程略过,建议选择最新版,本文所用版本为 3.13
。可以选择安装 miniforge 进行环境管理【强烈推荐】
¶miniforge
¶安装
如果是 Windows 安装,应该会默认添加环境变量,没有就手动加一下:将 C:\Users\myusername\miniforge3\condabin
添加到环境变量 PATH
。
打开终端初始化:
1 | conda init |
¶配置
如果不希望虚拟环境安装到默认的 C盘,觉着官方通道下载太慢,可以选择修改配置文件:
-
先执行
conda config --list > .condarc
创建默认配置文件;之所以这么做是因为直接创建空文件报了错误,后面发现是编码要使用GBK,你问为什么不是 UTF-8,许是 Windows 终端不认识吧。
-
参考配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.ustc.edu.cn/anaconda/pkgs/main
- https://mirrors.ustc.edu.cn/anaconda/pkgs/r
- https://mirrors.ustc.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.ustc.edu.cn/anaconda/cloud
bioconda: https://mirrors.ustc.edu.cn/anaconda/cloud
envs_dirs:
- F:\envs\conda\envs
pkgs_dirs:
- F:\envs\conda\pkgs- 更换仓库源为中科大Anaconda源
- 更改虚拟环境和包默认安装位置
❓为什么不用清华源:你可以试试,我在安装这天(20250727)使用清华源报403错误,原因未知。
-
验证:
1
conda -V
-
常用命令
只列几个经常用的,想了解更多可以参考conda 官方文档
命令 说明 conda activate <ENV_NAME> 激活环境 conda create -n|–name <ENV_NAME> 创建环境 conda deactivate 在已激活环境内执行,退出当前激活环境
¶uv
MCP 建议使用 uv 创建环境那就用呗。
安装命令:
1 | powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" |
¶初始化项目
默认已经完成了以上环境安装:
-
初始化项目:
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 在当前目录下初始化名为 mcp_server 的MCP 项目目录
uv init mcp_server
cd mcp_server
# 创建虚拟环境
uv venv
.venv\Scripts\activate
# 安装依赖
uv add mcp[cli] httpx
# 添加 playwrigth:我需要使用 playwright 进行网站操作,故装之,如果不懂或不需要不用装
# pip 清华源:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
pip install playwright不建议使用系统自带浏览器,因为用户使用和自动化操作会冲突(我需要使用cookie保存登录状态),因此建议分开。
-
使用 PyCharm 等 IDE 打开项目
-
开始愉快的玩耍!
¶MCP server
-
一切就和常规开发一样,新建一个项目包,新建一个 Python 文件,写好你的代码
-
在项目根目录下
main.py
,添加以下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17from mcp.server.fastmcp import FastMCP
from mcp.server.fastmcp.server import Settings
mcp = FastMCP("web-check")
settings = Settings()
settings.host = "127.0.0.1"
settings.port = 80
settings.streamable_http_path = "/mymcp"
mcp.settings = settings
mcp.run(transport="streamable-http")
async def myapp() -> dict:
return {"success": "True"} -
启动项目,控制台输出:
1
2
3
4
5
6INFO: Waiting for application startup.
[07/29/25 17:11:25] INFO StreamableHTTP streamable_http_manager.py:110
session manager
started
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) -
打开 MCP 主机,以 Cherry Studio 为例:
路径后缀是遵循 MCP 协议标准请求路径,默认为:
- stdio:命令参数配置
- sse:/sse
- Streamable-HTTP:/mcp
如果想要自定义,可以导入
Settings
包进行修改,几点说明:mcp.run
中的mount_path
也可以默认请求路径,但仅对 sse 有效- 如果需要局域网其它设备访问,监听地址可以设置为本机局域网地址(192.168.x.x),设置成
0.0.0.0
也可以,但不建议,安全性差(不过在局域网也无关紧要,看个人)