phishfort-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PHISHFORT_API_KEY | No | API key for authentication. | |
| PHISHFORT_SECRET_DIR | No | Directory for webhook secrets. | ~/.config/phishfort-mcp/secrets |
| PHISHFORT_MAX_RETRIES | No | Maximum number of retries for 429 and 5xx. | 3 |
| PHISHFORT_API_BASE_URL | No | Base URL for PhishFort API. | https://capi.phishfort.com/v1 |
| PHISHFORT_API_KEY_FILE | No | Path to a file containing the API key. | |
| PHISHFORT_TIMEOUT_SECONDS | No | HTTP request timeout in seconds. | 30 |
| PHISHFORT_ATTACHMENT_ROOTS | No | Comma-separated roots allowed for attachment uploads. | . |
| PHISHFORT_ALLOW_CUSTOM_BASE_URL | No | Test-only escape hatch for non-production API hosts. | false |
| PHISHFORT_ALLOW_UNSAFE_WEBHOOK_URL | No | Test-only escape hatch for localhost/private webhook targets. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| phishfort_plan_changeB | Plan a PhishFort write. Does not mutate. Use returned approval fields on write tools. |
| phishfort_list_capabilitiesA | List supported PhishFort MCP operations and mutation approval requirements. |
| phishfort_get_limitsA | Return documented API limits and MCP-enforced limit choices. |
| phishfort_whoamiA | Return authenticated PhishFort client identity. |
| phishfort_list_usersC | List users with role, client, search, limit, and offset filters. |
| phishfort_list_clientsA | List visible clients with id, search, active, limit, and offset filters. |
| phishfort_list_documentsC | List document metadata. doc_type accepts comma-separated documented types. |
| phishfort_get_documentA | Get document metadata and its time-limited signed URL without fetching it. |
| phishfort_get_document_signed_urlA | Get a time-limited document URL without fetching it. |
| phishfort_list_incidentsC | List incidents. Set include_total to request paging.total. |
| phishfort_get_incidentB | Get one PhishFort incident by id. |
| phishfort_find_incident_by_subjectB | Find one incident by URL, domain, or subject value. Subject is URL-encoded. |
| phishfort_report_incidentC | Report incident for takedown or monitoring after approval. |
| phishfort_request_incident_actionB | Request takedown, monitoring, or safe review for an existing incident. |
| phishfort_add_attachmentsC | Add attachment files to an existing incident after approval. |
| phishfort_add_commentB | Add a comment to an existing incident after approval. |
| phishfort_list_webhooksA | List configured webhook subscriptions. |
| phishfort_create_webhookC | Create webhook subscription. One-time secret is saved locally, not returned. |
| phishfort_update_webhookC | Update webhook subscription after approval. |
| phishfort_delete_webhookC | Delete webhook subscription after approval. |
| phishfort_test_webhookC | Send test webhook delivery after approval. |
| phishfort_rotate_webhook_secretC | Rotate webhook secret. One-time secret is saved locally, not returned. |
| phishfort_verify_webhook_signatureB | Verify a fresh X-PhishFort-Signature using a contained local secret file. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| reference_summary | |
| reference_limits | |
| reference_source_manifest | |
| reference_security_review |
TDQS
Scored across 23 tools
Each tool targets a distinct operation: incident listing vs. finding by subject, document metadata vs. signed URL, etc. No two tools have overlapping purposes; descriptions clearly differentiate them.
All tools follow a consistent 'phishfort_verb_noun' pattern in snake_case, e.g., 'list_incidents', 'create_webhook', 'verify_webhook_signature'. No mixing of conventions.
23 tools is on the higher side but still reasonable for a platform covering incidents, documents, users, clients, webhooks, and system info. Each tool has a clear purpose, so the count feels justified rather than excessive.
Core incident lifecycle is covered (list, get, report, request action, add attachments/comments), but missing direct update or delete incident operations. Webhook CRUD is complete. Overall, notable gaps exist but the main workflows are functional.