forcepoint-mcp

forcepoint-mcp

MCP server for the Forcepoint DLP 9.0 REST API. Enables incident management, policy management, and authentication via natural language, with multi-user support and persistent storage in Postgres and Vault.

Category
Visit Server

README

forcepoint-mcp

forcepoint-mcp is a Node.js MCP server for the Forcepoint DLP 9.0 REST API.

It is built around three repository guarantees:

  • Forcepoint connection configuration is persistent in Postgres.
  • Forcepoint passwords, Forcepoint JWTs, and MCP HTTP bearer tokens are persistent in Vault.
  • Multi-user and multi-tenant scope is explicit across tools, storage paths, and auth workflows.

API coverage

Dedicated MCP tools cover the documented Forcepoint DLP 9.0 REST surface for:

  • Authentication
    • POST /dlp/rest/v1/auth/refresh-token
    • POST /dlp/rest/v1/auth/access-token
  • Incident management
    • POST /dlp/rest/v1/incidents
    • POST /dlp/rest/v1/incidents/update
  • Policy management
    • GET /dlp/rest/v1/policy/enabled-names
    • GET /dlp/rest/v1/policy/rules
    • GET /dlp/rest/v1/policy/rules/severity-action
    • GET /dlp/rest/v1/policy/rules/source-destination
    • GET /dlp/rest/v1/policy/rules/exceptions/all
    • GET /dlp/rest/v1/policy/rules/exceptions
    • POST /dlp/rest/v1/policy/rules
    • POST /dlp/rest/v1/policy/rules/severity-action
    • POST /dlp/rest/v1/policy/rules/source-destination
    • POST /dlp/rest/v1/policy/rules/exceptions

The repository also exposes forcepoint_api_request for documented routes that do not yet deserve a more specialized tool surface.

Tooling highlights

Discovery and planning:

  • forcepoint_schema_discovery
  • forcepoint_query_suggestion
  • forcepoint_connection_info
  • forcepoint_scope_info
  • forcepoint_health_check

User profile and secret management:

  • forcepoint_set_user_connection
  • forcepoint_get_user_connection
  • forcepoint_set_user_password
  • forcepoint_get_user_auth_state
  • forcepoint_update_user_tokens
  • forcepoint_issue_refresh_token
  • forcepoint_issue_access_token

MCP HTTP token administration:

  • forcepoint_create_mcp_user_token
  • forcepoint_list_mcp_user_tokens
  • forcepoint_revoke_mcp_user_token

Forcepoint API operations:

  • forcepoint_get_incidents
  • forcepoint_update_incidents
  • forcepoint_list_enabled_policies
  • forcepoint_get_policy_rules
  • forcepoint_get_rule_severity_action
  • forcepoint_get_source_destination
  • forcepoint_list_rule_exceptions
  • forcepoint_get_rule_exception_details
  • forcepoint_post_policy_rules
  • forcepoint_post_rule_severity_action
  • forcepoint_post_source_destination
  • forcepoint_post_rule_exceptions
  • forcepoint_api_request

All tools return JSON inside MCP text content. Mutating tools require authorizationKey whenever MCP_ADMIN_AUTH_KEY is configured.

Most tools accept an optional accountId argument so callers can explicitly target a tenant or account. When omitted, the server uses the default account scope.

Storage model

Postgres stores configuration only, scoped by account and user:

  • forcepoint.connection
    • baseUrl
    • timeoutMs
    • username
  • Scope key format: <account-id>:<user-id>:forcepoint.connection

Vault stores secrets only, scoped by account and user:

  • forcepoint/accounts/<account-id>/users/<user-id>/forcepoint/auth
    • password
    • refreshToken
    • refreshTokenExpiresAt
    • accessToken
    • accessTokenExpiresAt
  • forcepoint/http/auth/token-index
    • multi-user MCP HTTP bearer token metadata and revocation state

Local development

  1. Copy .env.example to .env.
  2. Start local Vault and Postgres:
docker compose up -d postgres vault
  1. Install dependencies:
npm install
  1. Start stdio mode:
npm run start:stdio
  1. Start HTTP mode:
npm run start:http
  1. Generate endpoint artifacts:
npm run generate:inventory
  1. Run tests:
npm test

External Services Mode

If Vault and Postgres are already managed outside this repository, use docker-compose.external.yml to run only the MCP application container.

Required external settings include:

  • POSTGRES_HOST
  • POSTGRES_PORT
  • POSTGRES_DB
  • POSTGRES_USER
  • POSTGRES_PASSWORD
  • VAULT_ADDR
  • VAULT_TOKEN or Vault Agent runtime settings

This mode keeps the same storage model: config in Postgres, secrets in Vault.

MCP registration

VS Code stdio example:

{
  "servers": {
    "forcepoint-mcp": {
      "type": "stdio",
      "command": "npm",
      "args": ["run", "start:stdio"],
      "cwd": "/Users/lesterjohn/Documents/GitHub/forcepoint-mcp"
    }
  }
}

HTTP-capable clients can point to http://127.0.0.1:3000/mcp after npm run start:http.

Generated artifacts

  • artifacts/forcepoint-endpoint-inventory.json
  • artifacts/forcepoint-openapi.json
  • scripts/generate-forcepoint-openapi.js

Safety notes

  • Incident updates and all policy POST operations are high-risk.
  • Forcepoint policy mutations can be hard to roll back. Back up Forcepoint before policy changes.
  • forcepoint_get_incidents can return large payloads. The Forcepoint documentation notes a maximum of 10,000 incidents per response.
  • forcepoint_create_mcp_user_token returns the raw bearer token once. Treat it as a secret.

License

MIT. See LICENSE.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured