当前位置: 首页 > news >正文

搭建第一个MCP服务

MCP

基本概念

Model Context Protocol (MCP) 是一种协议,用来 在多个模型或服务之间传递和管理上下文信息。
简单来说,当你调用大模型或多个模型协作完成任务时,每个模型可能需要知道之前的对话、输入或者其他环境信息。MCP 就像一个“上下文管道”,确保每次调用模型时,模型能够理解完整的上下文,而不是每次都从零开始。
一句话概括: MCP 是给大模型“记忆”和“理解上下文”的标准化协议。

用途场景

1)多轮对话管理
在聊天机器人或客服系统中,需要让模型记住上下文,提供连贯回答。

2)模型协作任务
不同模型处理不同子任务,MCP 负责传递上下文数据,使它们协同完成复杂任务。

3)状态跟踪与优化
在数据分析、自动化决策等场景,模型需要根据前一次的结果继续操作,MCP 帮助管理状态信息。

4)多模型集成
不同厂商或类型的模型可以通过 MCP 统一协议交互,提高兼容性。

为什么要使用MCP

  • 保持多轮连贯性:模型不会丢失之前的对话或任务状态。
  • 支持模型协作:不同模型可以共享上下文,协同完成复杂任务。
  • 统一上下文管理:不需要每个开发者自己设计上下文存储和传递机制。
  • 提升开发效率:模型调用变得标准化和可扩展。

和直接调用API的区别

区别点 普通 API 调用 MCP 调用
上下文处理 每次调用通常是独立的,需要自己维护状态 MCP 自动管理上下文,模型可以连续理解信息
多模型协作 不便于不同模型共享状态 MCP 提供标准上下文协议,多模型协作顺畅
状态持久化 开发者自己实现 MCP 内置上下文记录和更新机制
开发复杂度 高,需要手动管理历史数据和调用顺序 低,MCP 统一标准化上下文交互
可扩展性 难,添加新模型可能需要重写逻辑 高,只需遵循 MCP 协议即可接入新模型

MCP 让模型调用像“有记忆的助手”,而普通 API 调用更像“每次都是全新指令”。

实践案例

使用Cursor,基于一个常见的安全脚本,封装成一个MCP服务。
Cursor支持AI写代码、支持作为MCP客户端和人进行“人机交互”;
MCP支持上下文记忆、支持扩展和别的工具(如:其他安全功能、IM工具、数据分析工具等)进行协同。

核心文件

github地址:https://github.com/cherriewzx/Sec-farming/tree/main/Sec_tool

1)MCP转换程序:mcp_server.py ,把 dir_serch.py 的检测能力以 MCP(JSON-RPC over stdio)工具的形式对外提供。

  • 入口服务。
  • 接收外部请求(可能是 HTTP 请求、CLI 调用或者模型请求)。
  • 读取 mcp_config.json,提取上下文信息(上一次检测状态、用户偏好、配置等)。
  • 调用核心功能 dir_search.py。
  • 将结果和更新后的上下文返回给调用者,并写回 mcp_config.json。

2)核心检测功能:dir_serch.py ,主要实现一个敏感目录扫描。

  • 执行实际的安全检测逻辑(比如目录扫描、敏感信息检测)。
  • 接收从 mcp_server.py 传来的参数和上下文信息。
  • 输出检测结果。

3)Cursor配置文件:mcp_config.json,告诉支持 MCP 的客户端如何启动这个服务器。

  • 存储配置参数、检测历史、状态信息。
  • MCP 通过它来实现“记忆”,保证多轮调用的连续性。

执行流程

外部请求


mcp_server.py 接收请求


读取上下文 → mcp_config.json


调用 dir_search.py 执行检测


返回检测结果 → 更新上下文


mcp_server.py 返回结果给调用者

使用方式

1)传统命令行方式直接调用 dir_search.py

python3 dir_serch.py -t http://127.0.0.1:8888[+] Scanning target: http://127.0.0.1:8888 ...-> findings: 2
[+] Scan finished. 2 records saved to results.json

image

2)使用Cursor交互
chat 框对Cursor 输入指令:
image

结果:
image

让Cursor生成的可视化页面:
image

http://www.rkmt.cn/news/46690.html

相关文章:

  • 2025日本留学中介推荐:留学申请与语言学习一站式解决
  • 深度学习模型CNN识别恶意软件
  • 代码实例:Python 爬虫抓取与解析 JSON 数据 - 实践
  • 2025年11月上海老房翻新公司排名榜:十家口碑对比与选择指南
  • 2025年11月油烟机品牌排行:从静音到变频五大机型实测评价
  • vue3+vite使用 tailwindcss.css搭建
  • 案例大公开!某企业软件许可优化省200万,降本方案同行疯传!
  • 习题解析之:角古猜想
  • Goland 2025.2.4 11月最新版 安装、授权、使用说明
  • 牛客刷题-Day21
  • 恒利泰射频器件:国产穿心电容、高Q电容、馈通滤波器
  • LLM大模型原理与实践 学习笔记 - yi
  • 183天基于资源的约束委派
  • 封装可靠智护
  • 疯了还是天才?(下):揭秘ObjectSense的0“AI护城河”——微语言
  • 【完结】AI 编程必备 - 零基础 系统化学Python
  • Hostinger+Wordpress虚拟主机踩坑:零代码建站体验+绝对不要用支付宝付款!!
  • 2025年PVC酸洗槽实力厂家权威推荐榜单:四氟电加热器/PDF酸洗槽/储罐式换热器源头厂家精选
  • P4784 [BalticOI 2016] 城市 (Day2) 小结
  • 2025年11月geo优化服务商推荐:知名机构排行榜与口碑评价对比指南
  • 2025年11月豆包关键词排名优化推荐:主流机构排行榜高性价比选择指南
  • 2025年11月北京GEO优化公司推荐:知名机构排行榜口碑评价对比指南
  • 学习如何转换异步数据
  • 总平方和SST、回归平方和SSR、残差平方和SSE
  • 深入解析:服务注册 / 服务发现 - Eureka
  • 小型skywalking - ukyo-
  • 完整教程:顺序步进频与捷变频雷达:原理、建模与测距方法
  • Linux使用CentOS 7内核修改镜像源解决“Could not resolve host: mirrorlist.centos.org;未知的错误“问题
  • 2025年钢骨架轻型板批发厂家权威推荐榜单:泡沫混凝土复合板/KST板/发泡水泥复合板源头厂家精选
  • 艾体宝干货 | Redis Python 开发系列#2 核心数据结构(上)