fieldeffect-mcp
MCP server for Field Effect MDR (Covalence) that exposes organization, endpoint device, and active response reporting endpoints as tools, enabling security management via natural language.
README
fieldeffect-mcp
MCP server for Field Effect (Covalence MDR — managed detection & response). Exposes the Field Effect MDR Portal REST API's organization, endpoint device, and Active Response reporting endpoints as MCP tools.
Naming note: MSPbots' own integration is registered as "Field Effect" (
subjectCode=FIELDEFFECT); the vendor's product name is "Covalence" / "Field Effect MDR". This MCP covers exactly the 4 GET endpoints MSPbots itself has configured — see Known Gaps below for why the scope stops there.
Overview
- Stateless HTTP service. No credentials are ever persisted — each request supplies its own API key via a header, used only for the lifetime of that single request.
- Supports concurrent requests; per-request credential isolation is done via
Python
contextvars, not a global/shared client instance. - Entry points:
POST /mcp(MCP protocol) andGET /health(health check). - Default port:
8080(configurable viaMCP_HTTP_PORT).
Authentication
Field Effect authenticates with a static API key, created in the API
section of the Field Effect MDR Portal. MSPbots' own integration convention
sends this key as an Authorization: Bearer <api-key> header, and this
server forwards it exactly that way.
HEADER 授权参数说明
| Header | 类型 | 是否必填 | 默认值 | 枚举值 | 字段描述 | Example |
|---|---|---|---|---|---|---|
X-FieldEffect-Api-Key |
string | 是 | 无 | 无 | Field Effect MDR Portal API Key,转发为上游 Authorization: Bearer <key> 请求头 |
a1b2c3d4e5f6... |
Missing the header returns 401:
{
"error": "Missing credentials",
"message": "This server requires the X-FieldEffect-Api-Key header",
"required_headers": ["X-FieldEffect-Api-Key"],
"optional_headers": []
}
Environment Variables
| Variable | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
MCP_HTTP_PORT |
int | 否 | 8080 |
HTTP 监听端口 |
MCP_HTTP_HOST |
string | 否 | 0.0.0.0 |
HTTP 监听地址 |
FIELDEFFECT_BASE_URL |
string | 否 | https://services.fieldeffect.net/v1 |
Field Effect API 基础 URL |
MCP Endpoint
POST /mcp— MCP protocol (streamable HTTP transport)GET /health— health check, returns{"status": "ok", "service": "fieldeffect-mcp", "transport": "http"}
Tool List
All 4 tools are plain GET calls, matching exactly how MSPbots itself
calls this integration today.
| Tool | 功能 | 参数 |
|---|---|---|
fieldeffect_get_organizations |
列出该 API Key 可见的所有组织(客户) | 无 |
fieldeffect_get_endpoint_devices |
列出所有端点设备(含风险等级/分数),分页返回 | page, per_page(均可选,见 Known Gaps) |
fieldeffect_get_endpoint_device_antivirus_details |
获取指定端点设备的杀毒软件状态详情 | device_id(必填) |
fieldeffect_get_active_response_actions |
列出 Active Response 响应事件(如设备隔离),分页返回 | page, per_page(均可选,见 Known Gaps) |
测试示例
# Health check
curl -s http://localhost:8080/health
# Call a tool via the MCP protocol (streamable HTTP) — requires an
# initialize handshake first per the MCP spec; abbreviated example below
# shows the tool-call request body only:
curl -s -X POST http://localhost:8080/mcp \
-H "X-FieldEffect-Api-Key: <your-fieldeffect-api-key>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <session-id-from-initialize>" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fieldeffect_get_organizations",
"arguments": {}
}
}'
Live-verified (2026-07-29) against a real MDR Portal API key: all 4
tools were called end-to-end through this running server —
fieldeffect_get_organizations returned 41 real organizations,
fieldeffect_get_endpoint_devices returned a paginated list (1719 devices
total across 18 pages), fieldeffect_get_endpoint_device_antivirus_details
returned successfully (204, no AV data for that particular device — not an
error), and fieldeffect_get_active_response_actions returned 200.
API Reference
- Overview (public, no login required): https://support.fieldeffect.com/en/support/solutions/articles/16000206018-field-effect-apis-overview
- The full interactive Swagger/OpenAPI documentation is only accessible
from inside the MDR Portal's own Support section — it requires being
logged into a Field Effect MDR Portal account, not just having an API
key. No public Swagger/OpenAPI spec was found, and probing common
spec paths (
/swagger.json,/v1/openapi.json,/v1/api-docs, etc.) directly againstservices.fieldeffect.netall returned404.
Known Gaps
- Scope is exactly MSPbots' 4 configured endpoints, not the vendor's
full API surface — same situation as
bvoip-mcp/contactscience-mcp/dropsuite-mcpearlier in this program: the vendor's fuller API reference requires a portal login this session doesn't have, so there was no larger accessible spec to weigh a broader scope against. page/per_pageparameters onget_endpoint_devicesandget_active_response_actionsare inferred, not confirmed — the vendor doesn't publish these endpoints' accepted query parameters anywhere accessible. They were added because the live response shape ({"items": [...], "page": 1, "per_page": 100, "total": ..., "pages": ..., "has_next": ..., "has_prev": ...}) strongly suggests a standard page/per_page pagination scheme, but this has not been verified by actually passing those parameters and confirming a changed result.- Response field shapes are whatever the live API returns — not independently verified against a schema, since none is publicly available.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.