
gobinfan/python-mcp-server-client
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
gobinfan/python-mcp-server-client는 [[T0]에서 가져온 MCP 서버 후보입니다.
개요
gobinfan/python-mcp-server-client는 [[T0]에서 가져온 MCP 서버 후보입니다.
개요(AI 번역)
中文 | 영어
简介
MCP Server 是实现模型上下文协议(MCP)的服务器,旨在为 AI 模型提供一个标准化接口,连接外部数据源和工具,例如文件系统、数据库或 API.
MCP 的优势
在 MCP 出现前,AI 调用工具基本通过 Function Call 完成,存在以下问题:
- 不同的大模型厂商 Function Call 格式不一致
- 大量 API 工具的输入和输出格式不一致,封装管理繁琐
MCP 相当于一个统一的 USB-C,不仅统一了不同大模型厂商的 Function Call 格式,也对相关工具的封装进行了统一。
MCP 传输协议
현재 MCP 지지两种主要的传输 协议:
- Stdio 传输协议
- 针对本地使用
- 需要在用户本地安装命令行工具
- 对运行环境有特定要求
- SSE(서버-전송 이벤트)전송协议
- 针对云服务部署
- 基于 HTTP 长连接实现
项目结构
MCP 서버
- Stdio 传输协议(本地)
- SSE 传输协议(远程)
MCP 클라이언트(客户端)
- 自建客户端(Python)
- 커서
- 클라인
环境配置
1. 설치 UV 包
MacOS/Linux:
윈도우:
2. 初始化项目
构建工具函数
为了让大模型能访问市面上主流框架的技术文档,我们主要通过用户输入的 query,结合指定 site 특정 域名的Google搜索进行搜索相关网页,并对相关网页进行解析提取网页文本并返回。
1. 构建相关文档映射字典
2. 构建 MCP 도구
封装 MCP Server (基于 Stdio 协议)
1. MCP 서버 (Stdio)
启动命令:
2. 客户端配置
2.1 基于 Cline
首先在 Visual Studio Code 安装 Cline 插件,然后进行配置 MCP
成功绑定如图(左侧绿灯):
2.2 基于 커서
项目根目录创建 .cursor 폴더,并创建 mcp.json 文件,如:
然后粘贴以下内容到 mcp.json
成功配置如图:
在 Features 开启 MCP 서비스
通过대화, 그것便通过 MCP 获取관련 문서, 信息进行답변:
构建 SSE MCP Server (基于 SSE 协议)
1. 封装 MCP 서버
启动命令:
以上 MCP 서버 코드가 직접 在당신의 云服务器跑即可。
2.
이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.
README
원문 README의 일부입니다. 원문 보기.
Python 从0到1构建MCP Server & Client
中文 | English
简介
MCP Server 是实现模型上下文协议(MCP)的服务器,旨在为 AI 模型提供一个标准化接口,连接外部数据源和工具,例如文件系统、数据库或 API。
MCP 的优势
在 MCP 出现前,AI 调用工具基本通过 Function Call 完成,存在以下问题:
- 不同的大模型厂商 Function Call 格式不一致
- 大量 API 工具的输入和输出格式不一致,封装管理繁琐
MCP 相当于一个统一的 USB-C,不仅统一了不同大模型厂商的 Function Call 格式,也对相关工具的封装进行了统一。
MCP 传输协议
目前 MCP 支持两种主要的传输协议:
-
Stdio 传输协议
- 针对本地使用
- 需要在用户本地安装命令行工具
- 对运行环境有特定要求
-
SSE(Server-Sent Events)传输协议
- 针对云服务部署
- 基于 HTTP 长连接实现
项目结构
MCP Server
- Stdio 传输协议(本地)
- SSE 传输协议(远程)
MCP Client(客户端)
- 自建客户端(Python)
- Cursor
- Cline
环境配置
1. 安装 UV 包
MacOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. 初始化项目
# 创建项目目录
uv init mcp-server
cd mcp-server
# 创建并激活虚拟环境
uv venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 安装依赖
uv add "mcp[cli]" httpx
# 创建服务器实现文件
touch main.py
构建工具函数
为了让大模型能访问市面上主流框架的技术文档,我们主要通过用户输入的 query,结合指定 site 特定域名的谷歌搜索进行搜索相关网页,并对相关网页进行解析提取网页文本并返回。
1. 构建相关文档映射字典
docs_urls = {
"langchain": "python.langchain.com/docs",
"llama-index": "docs.llamaindex.ai/en/stable",
"autogen": "microsoft.github.io/autogen/stable",
"agno": "docs.agno.com",
"openai-agents-sdk": "openai.github.io/openai-agents-python",
"mcp-doc": "modelcontextprotocol.io",
"camel-ai": "docs.camel-ai.org",
"crew-ai": "docs.crewai.com"
}
2. 构建 MCP 工具
import json
import os
import httpx
from bs4 import BeautifulSoup
from mcp import tool
async def search_web(query: str) -> dict | None:
payload = json.dumps({"q": query, "num": 3})
headers = {
"X-API-KEY": os.getenv("SERPER_API_KEY"),
"Content-Type": "application/json",
}
async with httpx.AsyncClient() as client:
try:
response = await client.post(
SERPER_URL, headers=headers, data=payload, timeout=30.0
)
response.raise_for_status()
return response.json()
except httpx.TimeoutException:
return {"organic": []}
async def fetch_url(url: str):
async with httpx.AsyncClient() as client:
try:
response = await client.get(url, timeout=30.0)
soup = BeautifulSoup(response.text, "html.parser")
text = soup.get_text()
return text
except httpx.TimeoutException:
설치
This server does not publish a one-line install command.
Open the repository installation guide MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →설정
{
"mcpServers": {
"mcp-server": {
"command": "uv",
"args": [
"--directory",
"<你的项目路径>",
"run",
"main.py"
]
}
}
}