内容
# fim-mcp
Tripwire Enterprise REST API 的本地标准输入输出MCP服务器。
第一个版本封装了核心FIM工作流程:
- 列出和获取节点
- 获取策略测试结果
- 列出和获取元素版本
- 探索允许列表软件、开放端口、用户和服务结果
- 提升元素版本
- 检查提升请求状态
- 对未覆盖的端点进行原始Tripwire API请求
## 设置
```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .
Copy-Item .env.example .env
```
编辑 `.env`:
```dotenv
TE_HOST=https://TECONSOLEHOST/api
TE_USERNAME=administrator
TE_API_TOKEN=替换为令牌
TE_VERIFY_SSL=false
TE_TIMEOUT=30
```
`TE_HOST` 可以指向API根目录(`https://server/api`)或版本化的API根目录(`https://server/api/v1`)。
## 运行
```powershell
python -m fim_mcp
```
适用于需要命令的MCP客户端:
```json
{
"mcpServers": {
"fim-mcp": {
"command": "python",
"args": ["-m", "fim_mcp"],
"env": {
"TE_HOST": "https://TECONSOLEHOST/api",
"TE_USERNAME": "administrator",
"TE_API_TOKEN": "替换为令牌",
"TE_VERIFY_SSL": "false"
}
}
}
}
```
如果您的Python用户脚本目录在PATH上,则已安装的 `fim-mcp` 命令也可用。
## 与Codex一起使用
Codex从Codex主目录中的 `config.toml` 读取MCP服务器定义。在Windows上,这通常是:
```text
C:\Users\<您>\.codex\config.toml
```
在完成上述设置步骤后,将以下内容添加到该文件中。使用存储库的虚拟环境Python的完整路径:
```toml
[mcp_servers.fim-mcp]
command = 'C:\path\to\fim-mcp\.venv\Scripts\python.exe'
args = ['-m', 'fim_mcp']
startup_timeout_sec = 30
[mcp_servers.fim-mcp.env]
TE_HOST = 'https://TECONSOLEHOST/api'
TE_USERNAME = 'administrator'
TE_API_TOKEN = '替换为令牌'
TE_VERIFY_SSL = 'false'
TE_TIMEOUT = '30'
```
对于此检出,命令路径如下所示:
```toml
command = 'C:\Users\chris\Downloads\vibes\te mcp\.venv\Scripts\python.exe'
```
如果您已将软件包安装到已经在PATH上的位置,则可以使用控制台脚本:
```toml
[mcp_servers.fim-mcp]
command = 'fim-mcp'
args = []
startup_timeout_sec = 30
[mcp_servers.fim-mcp.env]
TE_HOST = 'https://TECONSOLEHOST/api'
TE_USERNAME = 'administrator'
TE_API_TOKEN = '替换为令牌'
TE_VERIFY_SSL = 'false'
TE_TIMEOUT = '30'
```
在编辑 `config.toml` 后,重启Codex或启动新的Codex会话。要验证服务器是否可用,请要求Codex列出Tripwire Enterprise节点或调用 `te_get_status`。如果服务器正确启动,Codex将可以访问下面的 `te_*` 工具。
## 工具
- `te_get_status`
- `te_list_nodes`
- `te_get_node`
- `te_get_policy_test_results`
- `te_get_policy_test_result`
- `te_list_versions`
- `te_get_version`
- `te_list_allowlist_software_results`
- `te_list_allowlist_open_port_results`
- `te_list_allowlist_user_results`
- `te_list_allowlist_service_results`
- `te_promote_versions`
- `te_get_promote_request`
- `te_api_request`
大多数列表工具接受一个 `filters` 对象。键直接映射到Tripwire Enterprise查询参数,因此可以传递诸如 `name`、`sub_name`、`nodeId`、`state`、`pageLimit` 和 `pageStart` 等筛选器而无需代码更改。
在包装工具上设置 `raw: true` 以返回Tripwire JSON不变。默认响应返回较小的MCP友好摘要和 `count`。