MCP安全系列之缺乏日志审计

介绍

这一项是关于缺乏审计的,相当于MCP的运行没有日志审计,事后无法定位和溯源,所以本篇我们演示一下如何给MCP去记录日志情况。

MCP日志记录

比较原始的方法就是在开发MCP服务的代码中,添加日志记录代码,比如通过logger去记录,但这种方式有几个弊端,一个是开发时会导致代码冗余,要想记录的详细,需要添加很多logger代码。另一个是这种日志即使保存下来后,也可能去查看或者定位。

这里采用langfuse平台来演示,langfuse是一个开源的LLMOps平台,即大模型应用可观测平台,它可以记录Agent完整会话中的每一步,比如大模型调用情况、工具调用情况、输入输出情况等等。

首先安装langfuse,这里通过docker安装,从github下载源码后,直接运行:

bash 复制代码
docker compose up -d

它会自动拉取相关镜像并启动,启动后浏览器访问3000端口进入langfuce。

准备好langfuce后,我们还是通过CherryStudio来测试MCP,MCP服务代码如下,这是没有记录日志功能的代码:

bash 复制代码
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Test")

@mcp.tool()
def helloworld(username: str) -> str:
    """根据传入的用户名来打印友好提示语"""
    return f"你好,{username}"

if __name__ == "__main__":
    mcp.run()

当我们想把MCP和langfuse打通,则需要在MCP代码中把langfuse加进去,对上面的代码进行修改,具体作用见注释:

bash 复制代码
import os
from pathlib import Path

from dotenv import load_dotenv
from langfuse import get_client, observe
from mcp.server.fastmcp import FastMCP


# 加载.env文件,该文件配置了langfuse的key,有了key才能和langfuse交互
load_dotenv(Path(__file__).with_name(".env"))

mcp = FastMCP("Test")

@mcp.tool()
# 主要加的就是这行代码,加到函数上,其中name代表在langfuse中显示日志时,这个日志名称是什么,as_type是说这个函数是属于Agent调用工具类型,langfuse显示日志时会显示工具的图标,因为langfuse观测面板有多种观测对象,比如推理过程、代码执行等等,工具调用就是其中一种
@observe(
    name="helloworld",
    as_type="tool"
)
def helloworld(username: str) -> str:
    """根据传入的用户名来打印友好提示语"""
    return f"你好,{username}"


if __name__ == "__main__":
    mcp.run()

最后还少个.env文件,内容如下:

bash 复制代码
LANGFUSE_PUBLIC_KEY=pk-lf-xxxxxxxxxxxxx
LANGFUSE_SECRET_KEY=sk-lf-xxxxxxxxxxxxx
LANGFUSE_BASE_URL=http://localhost:3000

其中key要去langfuse平台获取,回到langfuse,创建个项目,在该项目的设置-API KEYs下,点击创建key即可。

一切准备好后,回到Cherrystudio去调用工具进行测试:

此时在langfuse的tracing下可以看到日志记录:

总结

MCP记录日志还有很多方式,也有很多平台,不止局限于langfuse,可根据自己情况进行选择。

小枣信安:专注AI安全,包括但不限于大模型安全、智能体安全、机器人安全、AI赋能网络安全等,欢迎一起学习。

相关推荐
乐维_lwops26 分钟前
案例解读:大型综合性科创产业园运维监控落地实践
运维·网络·人工智能·安全·it监控·国产运维智能体
m0_715674432 小时前
政务泛监测体系能力排行:AI 重塑监测边界,治理的颗粒度革命
大数据·网络·人工智能·安全·网络安全·政务
山东科恩光电2 小时前
安全触边在智能制造产线自动化设备防夹伤防护中的选型与应用实践
安全
躺柒4 小时前
读数据安全架构设计与实践20安全政策文件体系(上)
大数据·人工智能·安全·数据安全·安全架构·安全体系
文谦南宁AI普工4 小时前
CVSS 10.0 沙箱逃逸 + 假扩展后门:给 Agent 开发者的供应链与沙箱安全复盘(附可跑的配置审计器)
安全·agent·ai编程
菩提小狗6 小时前
每日安全情报报告 · 2026-11-04
网络安全·漏洞·cve·安全情报·每日安全
时文鲜读9 小时前
算力基建提速,数据中心安全建设与工业可靠性如何同步升级?
大数据·人工智能·安全
yz_aiks9 小时前
Postman 自动给 Claude Code、Codex、Cursor 装插件怎么查和卸载:本机实测 5 处痕迹(Postman 12.34)
安全·postman·ai编程·开发工具·claude code
达梦产品与服务10 小时前
SQLark V4.2 更新 | 新增TiDB、SSL安全连接、数据字典、清空/截断表等40+项功能已上线!
数据库·安全·tidb·ssl
杨凯凡10 小时前
IT日报|2026-11-04:Copilot 接入 JetBrains Air、CodeQL 2.27.3、Agent 依赖自动更新
网络安全·github copilot·codeql·ai coding·dependabot