AgentStack
MCP verified Apache-2.0 Self-run

Copilot Mcp Server

mcp-socfortress-copilot-mcp-server · by socfortress

Repo to hold SOCFortress CoPilot MCP Tools used by SOC AI Agent

No reviews yet
0 installs
17 views
0.0% view→install

Install

$ agentstack add mcp-socfortress-copilot-mcp-server

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution Used
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Copilot Mcp Server? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

copilot-mcp-server

A Model Context Protocol (MCP) server that wraps the SOCFortress CoPilot API and exposes its endpoints as MCP tools for use by SOC AI agents.

Features

  • OAuth2 password-grant authentication against the CoPilot backend with JWT token caching and

automatic refresh on 401s.

  • Async HTTP client built on httpx (HTTP/2 enabled).
  • Pluggable tool registration via fastmcp.
  • stdio transport — designed to be launched on demand by an MCP host (Claude Desktop,

LangChain, custom containers).

  • Configuration via environment variables, .env file, or CLI flags.

Available tools

Customers

| Tool | Endpoint | Description | |------|----------|-------------| | GetCustomersTool | GET /api/customers | Fetches the list of customers from CoPilot. |

AI Analyst — Jobs

| Tool | Endpoint | Description | |------|----------|-------------| | CreateAiAnalystJobTool | POST /api/ai_analyst/jobs | Register a new AI analyst investigation job. | | UpdateAiAnalystJobTool | PATCH /api/ai_analyst/jobs/{job_id} | Update a job's status / error message. | | GetAiAnalystJobTool | GET /api/ai_analyst/jobs/{job_id} | Get a specific job by ID. | | ListAiAnalystJobsByAlertTool | GET /api/ai_analyst/jobs/alert/{alert_id} | List all jobs for an alert. | | ListAiAnalystJobsByCustomerTool | GET /api/ai_analyst/jobs/customer/{code} | List all jobs for a customer. |

AI Analyst — Reports

| Tool | Endpoint | Description | |------|----------|-------------| | SubmitAiAnalystReportTool | POST /api/ai_analyst/reports | Submit a markdown investigation report with severity and recommended actions. | | ListAiAnalystReportsByAlertTool | GET /api/ai_analyst/reports/alert/{alert_id} | List all reports for an alert. |

AI Analyst — IOCs

| Tool | Endpoint | Description | |------|----------|-------------| | SubmitAiAnalystIocsTool | POST /api/ai_analyst/iocs | Submit extracted IOCs with VT verdicts for a report. | | ListAiAnalystIocsByReportTool | GET /api/ai_analyst/iocs/report/{report_id} | List IOCs for a specific report. | | ListAiAnalystIocsByAlertTool | GET /api/ai_analyst/iocs/alert/{alert_id} | List all IOCs for an alert. | | ListAiAnalystIocsByCustomerTool | GET /api/ai_analyst/iocs/customer/{code} | List IOCs for a customer (optionally filtered by VT verdict). |

AI Analyst — Combined

| Tool | Endpoint | Description | |------|----------|-------------| | GetAlertAiAnalysisTool | GET /api/ai_analyst/alert/{alert_id} | One-shot: job + report + IOCs for an alert. |

Notifications

| Tool | Endpoint | Description | |------|----------|-------------| | DispatchNotificationsTool | POST /api/notifications/dispatch | Fan out a completed investigation's report to the customer's configured destinations (SMTP, Shuffle → Slack/Outlook/Teams/etc.). CoPilot owns the routing, formatting, and idempotency — call once after SubmitAiAnalystReportTool succeeds. |

More tools (agents, healthcheck, threat intel, incidents, etc.) will be added incrementally.

Installation

The fastest way to install is straight from GitHub into a fresh virtualenv:

python -m venv .venv && source .venv/bin/activate
pip install git+https://github.com/socfortress/copilot-mcp-server.git

This pulls the latest main and exposes the copilot-mcp-server command on your PATH.

To pin to a specific tag or commit:

pip install git+https://github.com/socfortress/copilot-mcp-server.git@v0.1.0

Or install a pre-built wheel from a GitHub Release:

pip install https://github.com/socfortress/copilot-mcp-server/releases/download/latest/copilot_mcp_server-0.1.0-py3-none-any.whl

Or from a local checkout (for development):

git clone https://github.com/socfortress/copilot-mcp-server.git
cd copilot-mcp-server
pip install -e ".[dev]"

Configuration

Copy .env.example to .env and fill in your CoPilot connection details:

cp .env.example .env

Required environment variables:

| Variable | Description | |----------|-------------| | COPILOT_URL | Base URL of the CoPilot backend (e.g. http://127.0.0.1:5000) | | COPILOT_USERNAME | Service account username | | COPILOT_PASSWORD | Service account password |

Optional:

| Variable | Default | Description | |----------|---------|-------------| | COPILOT_SSL_VERIFY | true | Verify TLS certificates | | COPILOT_TIMEOUT | 30 | Request timeout in seconds | | LOG_LEVEL | INFO | Logging level (logs go to stderr; stdout is reserved for MCP JSON-RPC) | | COPILOT_DISABLED_TOOLS | (empty) | Comma-separated list of tool names to disable |

> 2FA is not supported. If the configured account has 2FA enabled, the server will raise > a clear error on first authentication. Use a service account without 2FA.

Running

This server uses stdio transport — it does not bind a network port. Instead, an MCP host (Claude Desktop, LangChain, a container orchestrator, etc.) launches it as a subprocess and communicates over its stdin/stdout.

You can still run it manually for smoke-testing:

copilot-mcp-server          # reads JSON-RPC from stdin, writes responses to stdout
python -m copilot_mcp_server

Logs are emitted on stderr so they don't corrupt the JSON-RPC stream on stdout.

Example: Claude Desktop config

{
  "mcpServers": {
    "copilot": {
      "command": "copilot-mcp-server",
      "env": {
        "COPILOT_URL": "http://127.0.0.1:5000",
        "COPILOT_USERNAME": "your-username",
        "COPILOT_PASSWORD": "your-password"
      }
    }
  }
}

Example: LangChain integration

See [copilot_integration.py](copilot_integration.py) for a working example that uses langchain-mcp-adapters to spawn this server over stdio and wrap its tools in a LangChain agent.

Development

pip install -e ".[dev]"
pytest

License

Apache 2.0 — see [LICENSE](LICENSE).

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.