经 AI Skill Hub 精选评估,MCP-Chinese-Getting-Started-Guide MCP工具 获评「强烈推荐」。已获得 3.5k 颗 GitHub Star,这款Prompt模板在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.2 分,适合有一定技术背景的用户使用。
专为中文开发者设计的Model Context Protocol(MCP)极速入门教程。涵盖MCP核心概念、服务器开发、集成实践等内容,帮助开发者快速掌握MCP编程技能,适合AI应用开发者和MCP生态参与者。
MCP-Chinese-Getting-Started-Guide MCP工具 是经过精心设计和反复验证的专业 Prompt 模板集合。这些 Prompt 框架能够有效激活 Claude、ChatGPT 等大型语言模型的深层能力,让 AI 生成更准确、更有价值的输出结果。无需任何安装,直接复制模板内容到 AI 对话框即可使用。
专为中文开发者设计的Model Context Protocol(MCP)极速入门教程。涵盖MCP核心概念、服务器开发、集成实践等内容,帮助开发者快速掌握MCP编程技能,适合AI应用开发者和MCP生态参与者。
MCP-Chinese-Getting-Started-Guide MCP工具 是经过精心设计和反复验证的专业 Prompt 模板集合。这些 Prompt 框架能够有效激活 Claude、ChatGPT 等大型语言模型的深层能力,让 AI 生成更准确、更有价值的输出结果。无需任何安装,直接复制模板内容到 AI 对话框即可使用。
# Prompt 无需安装,直接复制使用 # 支持:Claude / ChatGPT / Gemini / 通义千问 等主流模型 # 使用步骤 # 1. 复制 Prompt 模板内容 # 2. 粘贴到 AI 对话框 # 3. 替换 [占位符] 为实际内容 # 4. 发送后获取结构化输出 # 获取原始文件 git clone https://github.com/liaokongVFX/MCP-Chinese-Getting-Started-Guide
# 粘贴到 Claude/ChatGPT 使用 # 示例 Prompt 结构: 你是一位 [角色],擅长 [领域]。 请根据以下要求完成任务: 任务背景:[描述背景] 具体要求:[详细说明] 输出格式:[期望格式] # 将 [] 内内容替换为实际需求
# mcp-chinese-getting-started-guide 配置说明 # 查看配置选项 mcp-chinese-getting-started-guide --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export MCP_CHINESE_GETTING_STARTED_GUIDE_CONFIG="/path/to/config.yml"
模型上下文协议(MCP)是一个创新的开源协议,它重新定义了大语言模型(LLM)与外部世界的互动方式。MCP 提供了一种标准化方法,使任意大语言模型能够轻松连接各种数据源和工具,实现信息的无缝访问和处理。MCP 就像是 AI 应用程序的 USB-C 接口,为 AI 模型提供了一种标准化的方式来连接不同的数据源和工具。

MCP 有以下几个核心功能:
因为大部分功能其实都是服务于 Claude 客户端的,本文更希望编写的 MCP 服务器服务与通用大语言模型,所以本文将会主要以“工具”为重点,其他功能会放到最后进行简单讲解。
其中 MCP 的传输层支持了 2 种协议的实现:stdio(标准输入/输出)和 SSE(服务器发送事件),因为 stdio 更为常用,所以本文会以 stdio 为例进行讲解。
本文将会使用 3.11 的 Python 版本,并使用 uv 来管理 Python 项目。同时代码将会在文末放到 Github 上,废话不多说,我们这就开始吧~
uv add "mcp[cli]" httpx openai
然后我们来创建一个叫 `web_search.py` 文件,来实现我们的服务。MCP 为我们提供了2个对象:`mcp.server.FastMCP` 和 `mcp.server.Server`,`mcp.server.FastMCP` 是更高层的封装,我们这里就来使用它。
python import httpx from mcp.server import FastMCP
[TOC]
上面我们讲的都是如何使用本地的 MCP 服务,但是有时我们希望直接把 MCP 服务部署到云端来直接调用,就省去了本地下载启动的烦恼了。此时,我们就需要来使用 MCP 的 SSE 的协议来实现了。
此时,我们先来写 SSE 协议的 MCP 服务。实现起来很简单,只需要将我们最后的 run 命令中的 transport 参数设置为 sse 即可。下面还是以上面的网络搜索为例子,来实现一下 ,具体代码如下:
```python
最近 LangChain 发布了一个新的开源项目 langchain-mcp-adapters,可以很方便的将 MCP 服务器集成到 LangChain 中。下面我们来看看如何使用它:
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from langchain_mcp_adapters.tools import load_mcp_tools
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4o")
server_params = StdioServerParameters(
command='uv',
args=['run', 'web_search.py'],
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# 获取工具列表
tools = await load_mcp_tools(session)
# 创建并使用 ReAct agent
agent = create_react_agent(model, tools)
agent_response = await agent.ainvoke({'messages': '杭州今天天气怎么样?'})
更详细的使用方法请参考:https://github.com/langchain-ai/langchain-mcp-adapters
server_params = StdioServerParameters( # 服务器执行的命令,这里我们使用 uv 来运行 web_search.py command='uv', # 运行的参数 args=['run', 'web_search.py'], # 环境变量,默认为 None,表示使用当前环境变量 # env=None )
async def main(): # 创建 stdio 客户端 async with stdio_client(server_params) as (stdio, write): # 创建 ClientSession 对象 async with ClientSession(stdio, write) as session: # 初始化 ClientSession await session.initialize()
# 列出可用的工具 response = await session.list_tools() print(response)
# 调用工具 response = await session.call_tool('web_search', {'query': '今天杭州天气'}) print(response)
if name == 'main': asyncio.run(main())
因为我们的python脚本需要在虚拟环境中才能运行,所以这里我们通过 `uv` 来启动我们的脚本。
下面我们来通过一个小例子来看看如何让 `DeepSeek` 来调用我们 MCP 服务器中的方法。
这里我们会用 `dotenv` 来管理我们相关的环境变量。.env 文件内容如下:
shell OPENAI_API_KEY=sk-89baxxxxxxxxxxxxxxxxxx OPENAI_BASE_URL=https://api.deepseek.com OPENAI_MODEL=deepseek-chat
首先我们来编写我们的 `MCPClient` 类。
python import json import asyncio import os from typing import Optional from contextlib import AsyncExitStack
from openai import OpenAI from dotenv import load_dotenv
from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client
load_dotenv()
class MCPClient: def init(self): self.session: Optional[ClientSession] = None self.exit_stack = AsyncExitStack() self.client = OpenAI()
然后我们添加 `connect_to_server` 方法来初始化我们的 MCP 服务器的 session。
python async def connect_to_server(self): server_params = StdioServerParameters( command='uv', args=['run', 'web_search.py'], env=None )
stdio_transport = await self.exit_stack.enter_async_context( stdio_client(server_params)) stdio, write = stdio_transport self.session = await self.exit_stack.enter_async_context( ClientSession(stdio, write))
await self.session.initialize()
然后我们再实现一个用于调用 MCP 服务器的方法来处理和 DeepSeek 之间的交互。
python async def process_query(self, query: str) -> str: # 这里需要通过 system prompt 来约束一下大语言模型, # 否则会出现不调用工具,自己乱回答的情况 system_prompt = ( "You are a helpful assistant." "You have the function of online search. " "Please MUST call web_search tool to search the Internet content before answering." "Please do not lose the user's question information when searching," "and try to maintain the completeness of the question content as much as possible." "When there is a date related question in the user's question," "please use the search function directly to search and PROHIBIT inserting specific time." ) messages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": query} ]
# 获取所有 mcp 服务器 工具列表信息 response = await self.session.list_tools() # 生成 function call 的描述信息 available_tools = [{ "type": "function", "function": { "name": tool.name, "description": tool.description, "input_schema": tool.inputSchema } } for tool in response.tools]
# 请求 deepseek,function call 的描述信息通过 tools 参数传入 response = self.client.chat.completions.create( model=os.getenv("OPENAI_MODEL"), messages=messages, tools=available_tools )
# 处理返回的内容 content = response.choices[0] if content.finish_reason == "tool_calls": # 如何是需要使用工具,就解析工具 tool_call = content.message.tool_calls[0] tool_name = tool_call.function.name tool_args = json.loads(tool_call.function.arguments)
# 执行工具 result = await self.session.call_tool(tool_name, tool_args) print(f"\n\n[Calling tool {tool_name} with args {tool_args}]\n\n") # 将 deepseek 返回的调用哪个工具数据和工具执行完成后的数据都存入messages中 messages.append(content.message.model_dump()) messages.append({ "role": "tool", "content": result.content[0].text, "tool_call_id": tool_call.id, })
# 将上面的结果再返回给 deepseek 用于生产最终的结果 response = self.client.chat.completions.create( model=os.getenv("OPENAI_MODEL"), messages=messages, ) return response.choices[0].message.content
return content.message.content
接着,我们来实现循环提问和最后退出后关闭session的操作。
python async def chat_loop(self): while True: try: query = input("\nQuery: ").strip()
if query.lower() == 'quit': break
response = await self.process_query(query) print("\n" + response)
except Exception as e: import traceback traceback.print_exc()
async def cleanup(self): """Clean up resources""" await self.exit_stack.aclose()
最后,我们来完成运行这个客户端相关的代码
python async def main(): client = MCPClient() try: await client.connect_to_server() await client.chat_loop() finally: await client.cleanup()
if name == "main": import sys
asyncio.run(main())
```
这是一个最精简的代码,里面没有实现记录上下文消息等功能,只是为了用最简单的代码来了解如何通过大语言模型来调动 MCP 服务器。这里只演示了如何连接单服务器,如果你期望连接多个 MCP 服务器,无非就是循环一下 connect_to_server 中的代码,可以将他们封装成一个类,然后将所有的 MCP 服务器中的工具循环遍历生成一个大的 available_tools,然后在通过大语言模型的返回结果进行调用即可,这里就不再赘述了。 > 可以参考官方案例:https://github.com/modelcontextprotocol/python-sdk/blob/main/examples/clients/simple-chatbot/mcp_simple_chatbot/main.py
async def web_search(ctx: Context, query: str) -> str: """ 搜索互联网内容
Args: query: 要搜索内容
Returns: 搜索结果的总结 """ # 如果之前问过同样的问题,就直接返回缓存 histories = ctx.request_context.lifespan_context.histories if query in histories: return histories[query]
async with httpx.AsyncClient() as client: response = await client.post( 'https://open.bigmodel.cn/api/paas/v4/tools', headers={'Authorization': 'YOUR API KEY'}, json={ 'tool': 'web-search-pro', 'messages': [ {'role': 'user', 'content': query} ], 'stream': False } )
res_data = [] for choice in response.json()['choices']: for message in choice['message']['tool_calls']: search_results = message.get('search_result') if not search_results: continue for result in search_results: res_data.append(result['content'])
return_data = '\n\n\n'.join(res_data)
# 将查询值和返回值存入到 histories 中 ctx.request_context.lifespan_context.histories[query] = return_data return return_data
if name == "main": app.run()
```
优质中文MCP教程资源,结构清晰,示例丰富。填补中文开发者学习空白,社区活跃度高,持续更新维护,适合快速入门MCP生态。
该工具未明确声明开源协议,商业使用前请联系原作者确认授权范围,避免侵权风险。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
AI Skill Hub 点评:MCP-Chinese-Getting-Started-Guide MCP工具 的核心功能完整,质量优秀。对于内容创作者和自媒体人来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | MCP-Chinese-Getting-Started-Guide |
| 原始描述 | 开源MCP工具:Model Context Protocol(MCP) 编程极速入门。⭐3.5k |
| Topics | MCP模型上下文协议AI开发教程文档编程指南 |
| GitHub | https://github.com/liaokongVFX/MCP-Chinese-Getting-Started-Guide |
收录时间:2026-05-14 · 更新时间:2026-05-16 · License:未公布 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端