DarkLens MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| detect_dark_patternsA | Detect dark patterns in UI text, HTML, or URL. Args: input_type: "html", "text", or "url" content: The HTML content, plain text, or URL to analyze Returns: List of detected patterns with pattern_id, pattern_type, confidence, evidence |
| classify_patternA | Classify a detected dark pattern. Args: pattern_id: The ID of the pattern to classify Returns: Dictionary with category, cognitive_bias, severity |
| explain_manipulationB | Explain why a pattern is manipulative. Args: pattern_id: The ID of the pattern user_type: Type of user (child, elderly, average user) Returns: Dictionary with explanation, psychological principle, harm potential |
| risk_scoreA | Assess legal/compliance risk of a pattern. Args: pattern_id: The ID of the pattern region: Geographic region (EU, US, India) Returns: Dictionary with risk score, violated regulations, enforcement likelihood |
| suggest_ethical_alternativeC | Suggest ethical UI alternatives. Args: pattern_id: The ID of the pattern Returns: Dictionary with rewritten UI copy, redesigned flow, ethical justification |
| fetch_user_postsB | Fetch posts for a specific user from external API. Args: user_id: The user ID to fetch posts for |
| analyze_textC | Analyze text and return statistics. Args: text: The text to analyze |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| audit_website | Generate a prompt for auditing a website for dark patterns. |
| explain_ui_to_user | Generate a prompt for explaining UI elements to non-technical users. |
| compliance_report | Generate a prompt for creating a UX ethics compliance report. |
| rewrite_cta | Generate a prompt for rewriting manipulative CTAs. |
| assess_gdpr_risk | Generate a prompt for assessing GDPR risk of a pattern. |
| summarize_content | Create a prompt to summarize content. Args: content: The content to summarize max_length: Maximum length of the summary |
| analyze_sentiment | Create a prompt to analyze sentiment of text. Args: text: The text to analyze for sentiment |
| generate_code | Create a prompt to generate code. Args: language: Programming language task: The coding task requirements: Additional requirements |
| create_study_plan | Create a study plan prompt. Args: subject: The subject to study hours_per_week: Hours available per week weeks: Number of weeks for the plan |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
The first five tools form a clear detection-to-remediation pipeline, each consuming a pattern_id and returning a distinct analysis. However, analyze_text overlaps somewhat with detect_dark_patterns for text input, and fetch_user_posts is unrelated, creating minor confusion.
Most tools follow a clean snake_case verb_noun pattern such as detect_dark_patterns and suggest_ethical_alternative. risk_score breaks the pattern since it reads as a noun rather than a verb, but the style is otherwise consistent.
Seven tools is a reasonable number and the core dark-pattern workflows are wel-scoped. The presence of two unrelated utility tools means not every tool earns its pplace, but the count is not excessive.
The dark-pattern domain is covered end-to-end: detect, classify, explain, assess risk, and suggest alternatives. The unrelated fetch_user_posts and analyze_text tools do not address domain gaps, but no critical dark-pattern operation is missing.