5分钟搭一个MCPServer!让AIAgent调用你的工具"

admin 2026-10-18 14:49:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

5分钟搭一个MCP Server!让AI Agent调用你的工具

原创

ladon
ladon

306Safe

2026年7月6日 09:31
北京

在小说阅读器读本章

去阅读

01 MCP是什么?为什么你要会写Server?

2024年11月,Anthropic发布了MCP(Model Context Protocol)协议——你可以把它理解成AI世界的USB接口。只要双方遵守同一套规范,任何模型都能无缝接入任何工具。

到2026年,MCP已经从Anthropic的私有协议变成行业事实标准:

  • Python SDK在PyPI的月下载量突破1.64亿次
  • 公开目录收录的MCP Server超过20,000个
  • OpenAI、Google、Microsoft相继采纳同类协议
  • 阿里、腾讯、魔搭MCP广场上线近1500个Server

但问题是:会用MCP Server的人多,会自己开发的人极少。这正是差异化技能的切入点。

02 核心概念:MCP协议架构

MCP采用客户端-服务端架构:

角色 说明 例子
MCP Client 发起请求的AI应用 Claude Desktop、Cursor、VS Code Copilot
MCP Server 提供工具和资源的服务程序 你要开发的那个
Transport 通信方式 stdio(本地)或SSE(远程HTTP)

协议核心三要素:

  • Tools

:Server暴露的可调用函数(如查天气、读数据库)
* Resources

:Server提供的可读取数据(如文件、配置)
* Prompts

:Server定义的提示词模板(如代码审查模板)

03 实战:5步搭建你的第一个MCP Server

Step 1:环境准备

# 创建项目目录 mkdir my-mcp-server && cd my-mcp-server  # 安装MCP Python SDK pip install mcp

Step 2:定义你的Tool

假设我们要开发一个\"安全漏洞查询\"Server,提供CVE信息查询工具:

# server.py from mcp.server import Server from mcp.types import Tool, TextContent  server = Server(\"cve-lookup\")  @server.tool(     name=\"query_cve\",     description=\"根据CVE编号查询漏洞详情\",     parameters={         \"type\": \"object\",         \"properties\": {             \"cve_id\": {                 \"type\": \"string\",                 \"description\": \"CVE编号,如CVE-2026-1234\"             }         },         \"required\": [\"cve_id\"]     } ) async def query_cve(cve_id: str) -> list[TextContent]:     # 调用NVD API查询CVE详情     import httpx     url = f\"https://services.nvd.nist.gov/rest/json/cves/2.0?cveId={cve_id}\"     async with httpx.AsyncClient() as client:         resp = await client.get(url)         data = resp.json()     vuln = data.get(\"vulnerabilities\", [{}])[0].get(\"cve\", {})     desc = vuln.get(\"descriptions\", [{}])[0].get(\"value\", \"未找到\")     return [TextContent(type=\"text\", text=f\"CVE详情:{desc}\")]

Step 3:注册Resource(可选)

@server.resource(\"cve://recent\") async def get_recent_cves() -> str:     # 返回最近高危CVE列表     return \"CVE-2026-1234: Log4j3 RCE\
CVE-2026-5678: Spring4Shell2\"

Step 4:启动Server

if __name__ == \"__main__\":     from mcp.server.stdio import stdio_server     import asyncio     async def main():         async with stdio_server() as (read, write):             await server.run(read, write)     asyncio.run(main())

Step 5:在Client中配置

在Claude Desktop的配置文件claude\_desktop\_config.json中添加:

{   \"mcpServers\": {     \"cve-lookup\": {       \"command\": \"python\",       \"args\": [\"server.py\"],       \"cwd\": \"/path/to/my-mcp-server\"     }   } }

重启Claude Desktop,你就能在对话中直接调用query_cve工具了!

04 常见坑与排错

坑1:Server启动后Client找不到

检查cwd路径是否正确,Python解释器路径是否匹配。建议用绝对路径。

坑2:Tool参数schema不对

parameters必须是JSON Schema格式,每个字段都要有type和description。缺description会导致Client无法理解参数含义。

坑3:async函数忘记await

MCP Server默认用asyncio,所有tool函数必须是async,内部调用也必须await。

05 进阶:发布到MCP广场

开发完成后,你可以把Server发布到公开目录:

  • 在项目根目录添加pyproject.toml声明元数据
  • 发布到PyPI:开发者直接pip install即可使用
  • 提交到Smithery或魔搭MCP广场,供全社区发现和使用

06 写在最后

MCP Server开发门槛不高,但会的人不多。掌握这个技能,意味着你能让任何AI Agent使用你的工具和数据——这在Agent时代是核心竞争力。

记住:AI的未来不是更会聊天,而是更会干活。而干活的接口,就是MCP。

作者:ladon


5分钟搭一个MCPServer!让AIAgent调用你的工具" 网络安全文章

5分钟搭一个MCPServer!让AIAgent调用你的工具"

本文介绍MCP协议作为AI世界USB接口已成为行业标准,提供5步搭建MCPServer的实战教程,包括环境准备、定义Tool、注册Resource、启动Server和Client配置,并指出常见坑与排错方法。核心结论是掌握MCPServer开发能让AIAgent调用自定义工具,是Agent时代的关键技能。
SilverFox活动将ValleyRAT转变为具有Rootkit功能的多阶段恶意软件" 网络安全文章

SilverFox活动将ValleyRAT转变为具有Rootkit功能的多阶段恶意软件"

SilverFoxAPT组织将ValleyRAT升级为八阶段恶意软件链,最终部署内核级rootkit。攻击使用DLL侧加载、ETW/AMSI绕过、PNG隐写术和Donutshellcode等技术。ValleyRAT通过WebSocket和QUIC协议通信,并检查虚拟化环境。rootkit包含65个IOCTL处理器,通过命名管道与RAT通信。防御者应监控MSI安装、可疑进程和内核驱动签名。
未签名的X.509证书" 网络安全文章

未签名的X.509证书"

RFC9925定义了未签名X.509证书的配置文件,使用占位符签名算法id-alg-unsigned替代自签名,以解决后量子签名过大和密钥重用问题。它更新了RFC5280,允许在仅需主题信息时省略签名,但要求验证器必须拒绝该算法用于证书路径。文档提供了构建方法、颁发者字段处理建议及安全考虑,强调应用程序应将其视为无法识别的签名算法。
QuadRF项目:能穿墙“看见”WiFi,还能追踪无人机" 网络安全文章

QuadRF项目:能穿墙“看见”WiFi,还能追踪无人机"

QuadRF是一款基于树莓派5和FPGA的相控阵无线电设备,支持4.9-6GHzC波段,可穿墙探测WiFi信号并追踪无人机。实测中AR可视化工具新颖但界面粗糙,技术亮点是利用树莓派MIPI接口实现超过5Gbps的低延迟射频信号传输。设备售价499美元,在CrowdSupply众筹,适合SDR和射频环境可视化应用。
评论:0   参与:  0