OSIM MCP Server
基于 FastMCP 的 Model Context Protocol (MCP) 服务器,提供 OSIM (Open Security Information Model) 数据标准 schema 的查询和访问能力。
🚀 快速开始
使用 uvx(推荐,无需安装)
包已发布到 PyPI,可以直接使用 uvx 运行:
uvx osim-mcp-server
在 MCP 客户端中配置
Claude Desktop
在配置文件(~/Library/Application Support/Claude/claude_desktop_config.json)中添加:
{
"mcpServers": {
"osim-mcp-server": {
"command": "uvx",
"args": ["osim-mcp-server"]
}
}
}
Cursor
在 MCP 设置中添加:
{
"mcpServers": {
"osim-mcp-server": {
"command": "uvx",
"args": ["osim-mcp-server"]
}
}
}
从源码运行
# 克隆仓库
git clone https://github.com/osim-group/osim-mcp-server.git
cd osim-mcp-server
# 首先获取 osim-schema(必需)
# 确保已安装 git
python update_schemas.py
# 安装依赖并运行
uv sync
uv run python server.py
重要:仓库本身不包含 osim-schema 目录,需要先运行
update_schemas.py获取 osim-schema 仓库内容才能正常运行。
更新 OSIM Schema
项目中的 osim-schema 内容来源于 OSIM Schema 仓库。如果需要获取或更新最新的内容,可以使用项目提供的更新脚本:
# 确保已安装 git
python update_schemas.py
脚本会自动:
- 从 GitHub 仓库克隆整个 osim-schema 仓库(包括 schemas、faqs、examples 等)
- 备份现有的 osim-schema 目录(如果存在)
- 更新本地 osim-schema 目录
- 验证更新结果
注意:更新脚本需要系统已安装 git 命令。
📚 功能特性
MCP 工具
-
list_schema_names- 列出所有可用的数据标准 schema 名称- 参数:无
- 返回:
List[str]- schema 名称列表,格式为{group}.{category}.{title} - 示例:
["log.network_session_audit.http_audit", "alert.network_attack.apt_attack"] - 说明:为了避免上下文过长,此工具只返回名称,不包含描述信息
-
describe_schemas- 获取指定 schema 的描述信息- 参数:
schema_names(List[str]) - schema 名称列表 - 返回:
Dict[str, str]- 字典,键为 schema 名称,值为描述信息 - 说明:方便理解应该使用哪个 schema
- 参数:
-
get_schema- 获取指定 schema 的完整字段定义- 参数:
schema_path(str) - schema 路径,格式为{group}.{category}.{title} - 返回:
Dict[str, Any]- 字段定义字典,包含字段名、标签、类型、要求、描述等信息 - 说明:可以从
list_schema_names中获取所有可用的 schema 名称
- 参数:
-
get_schema_version- 获取当前 schemas 的版本信息- 参数:无
- 返回:
Dict[str, Any]- 包含以下字段:version(str) - 本地版本号auto_update_enabled(bool) - 是否启用自动更新update_timeout(float) - 更新检查超时时间(秒)
-
get_dictionaries- 获取 dictionaries.json 文件内容- 参数:无
- 返回:
Dict[str, Any]- OSIM 数据标准中定义的字典项 - 说明:包含字段名、标签、描述、类型等信息,这些字典项定义了数据标准中使用的通用字段定义
MCP 资源
通过资源 URI 访问 schema 文件内容:
- URI 格式:
data-standard://{group}/{category}/{title} - 示例:
data-standard://log/network_session_audit/http_auditdata-standard://alert/network_attack/apt_attackdata-standard://asset/business_asset/web_application
📊 数据标准分类
项目提供完整的 OSIM 数据标准支持,包括:
- 告警 (Alert):异常行为、数据安全、恶意软件、网络攻击等
- 资产 (Asset):业务资产、云资产、数据资产、网络资产等
- 日志 (Log):账户操作审计、数据安全审计、主机行为审计、网络会话审计等
- 事件 (Incident):安全事件记录和分类
- 设备检测 (Device Detection):EDR、防火墙、WAF、IDS/IPS 等各类安全设备
数据来源:所有 schema 文件均来源于 OSIM Schema 仓库
🛠️ 开发
获取/更新 OSIM Schema
项目提供了脚本用于从 GitHub 仓库同步整个 osim-schema 仓库:
python update_schemas.py
注意:构建分发包前需要先获取 osim-schema,因为分发包需要包含 osim-schema 目录。
构建分发包
# 确保已获取 osim-schema
python update_schemas.py
# 构建分发包
uv build
发布到 PyPI
# 安装 twine
uv pip install twine
# 上传到 PyPI
uv run twine upload dist/*
发布后即可通过 uvx osim-mcp-server 使用。
📝 许可证
Apache License 2.0
🙏 致谢
- FastMCP - MCP 服务器框架
- Model Context Protocol - MCP 协议规范
- OSIM Schema 仓库 - 数据标准 schema 文件资源
