Token导航 LogoToken导航

MCP Server · 设计创作

Darklens MCP Server

DarkLens是一款生产级模型上下文协议(MCP)服务器,能够检测、分类、解释并道德地重新设计网站和用户界面中的暗黑模式。

stdio官方级别未说明来源级核验工具 5
PythonClaude设计Claude Desktop

快速开始

作者 / 组织
Manavarya09
提供方
Manavarya09

工具数量

5

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Darklens MCP Server 属于设计创作类 MCP Server,公开资料标注 5 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前要先准备 会话凭据。

分类

设计创作

传输方式

stdio

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 5 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

DarkLens–暗模式检测MCP服务器

一个生产级的模型上下文协议(MCP)服务器,使AI代理能够检测、分类、解释和道德地重新设计网站和UI流中的暗模式。

概述

DarkLens分析UI元素、同意流、定价结构和交互摩擦,以识别操纵性设计模式。它提供适合推理和合规性评估的结构化JSON输出。

特性

  • 模式检测:基于规则的+NLP启发式方法,用于识别9+个暗模式类别
  • 分类:通过认知偏差分析和严重程度对模式进行分类
  • 伦理解释:对操纵策略和潜在危害的简明英语解释
  • 符合性评估:GDPR、FTC和DPDP法规下的风险评分
  • 伦理替代方案:建议重新设计UI流程和复制

支持的深色图案

  • 确认羞辱
  • 强迫同意
  • 蟑螂汽车旅馆
  • 隐性成本
  • 偷偷溜进篮子
  • 虚假紧迫感
  • 视觉操纵
  • 默认偏差利用
  • 唠叨/反复打断
  • 社会证明操纵 (通过Kaggle数据集增强)

数据源

检测系统通过来自 Kaggle暗模式数据集,提供了2000多个标记的电子商务和网络界面中的暗模式示例。

安装

先决条件

  • Python 3.10或更高版本
  • uv 包管理器(推荐)或 pip

使用紫外线进行安装(推荐)

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone or navigate to the project directory
cd /path/to/DarkLens-MCP-Server

# Install dependencies
uv sync

使用pip安装

# Install dependencies
pip install -e .

项目结构

DarkLens-MCP-Server/
├── darklens_mcp_server/
│   └── server.py          # Main MCP server implementation
├── data/
│   └── dark_patterns.json # Pattern taxonomy database
├── demo/                  # Example usage scripts
├── pyproject.toml         # Project configuration
├── requirements.txt       # Alternative dependencies
├── README.md             # This file
└── uv.lock               # Lock file for uv

服务端组件

资源

  • dark_patterns://taxonomy:完整的深色图案分类
  • ui_text://{url}:从网页中提取UI文本元素

工具

  • detect_dark_patterns:分析HTML/text/URL中的暗模式
  • classify_pattern:获取模式的详细分类
  • explain_manipulation:解释心理操纵
  • risk_score:评估法律/合规风险
  • suggest_ethical_alternative:获取道德重新设计建议

提示

  • audit_website:全面的网站审计模板
  • explain_ui_to_user:面向非技术用户的UI说明
  • compliance_report:用户体验道德合规报告模板
  • rewrite_cta:道德CTA重写模板
  • assess_gdpr_risk:GDPR风险评估模板

用法

运行MCP服务器

# With uv
uv run darklens_mcp_server

# With Python
python -m darklens_mcp_server.server

服务器通过MCP协议的stdio进行通信。

MCP客户端集成

使用任何兼容MCP的客户端进行连接。

示例工具调用
{
  "method": "tools/call",
  "params": {
    "name": "detect_dark_patterns",
    "arguments": {
      "input_type": "url",
      "content": "https://example.com"
    }
  }
}
示例响应
{
  "result": [
    {
      "pattern_id": "confirmshaming",
      "pattern_type": "Confirmshaming",
      "confidence": 0.9,
      "evidence": ["No thanks, I don't want to save money"]
    }
  ]
}

API 参考

detect_dark_patters

输入:

  • input_type:“html”|“text”|“url”
  • content:要分析的字符串内容

输出: 带有ID、类型、置信度和证据的检测模式数组。

分类模式

输入: pattern_id:字符串 输出: 类别、认知偏差、严重程度。

解释操纵

输入: pattern_id:字符串, user_type:“儿童”|“老年人”|“普通用户” 输出: 简单解释,心理学原理,潜在危害。

风险_核心

输入: pattern_id:字符串, region:“欧盟”|“美国”|“印度” 输出: 风险评分(0-100),违反规定,执行可能性。

建议伦理替代方案

输入: pattern_id:字符串 输出: 重写UI副本,重新设计流程,道德论证。

伦理考量

该工具旨在促进合乎道德的用户体验设计和监管合规性。负责任地使用:

  • 对网站进行操纵模式审计
  • 对设计师进行道德替代品教育
  • 确保遵守隐私和消费者保护法
  • 提高用户信任度和体验

免责声明: 该工具基于既定的暗模式研究提供分析,但不应被视为法律建议。始终就合规事宜咨询法律专家。

贡献

欢迎投稿!请确保代码遵循既定的模式,并包含适当的测试。

许可证

MIT许可证

资源

资源提供对数据的只读访问。它们类似于REST API中的GET端点。

静态资源
@mcp.resource("users://list")
def get_users_list() -> str:
    """Get a list of all users."""
    return json.dumps(SAMPLE_USERS, indent=2)
带参数的动态资源
@mcp.resource("users://{user_id}")
def get_user_by_id(user_id: str) -> str:
    """Get a specific user by ID."""
    # Implementation...
API外部资源
@mcp.resource("api://external/{endpoint}")
async def get_external_api_data(endpoint: str) -> str:
    """Fetch data from an external API endpoint."""
    # Implementation...

工具

工具是可以执行计算、API调用或其他操作的可执行函数。执行前可能需要用户批准。

同步工具
@mcp.tool()
def calculate_sum(numbers: List[float]) -> float:
    """Calculate the sum of a list of numbers."""
    return sum(numbers)
异步工具
@mcp.tool()
async def fetch_user_posts(user_id: int) -> str:
    """Fetch posts for a specific user from external API."""
    async with httpx.AsyncClient() as client:
        response = await client.get(f"{API_BASE_URL}/posts?userId={user_id}")
        return json.dumps(response.json(), indent=2)
具有复杂逻辑的工具
@mcp.tool()
def analyze_text(text: str) -> Dict[str, Any]:
    """Analyze text and return statistics."""
    words = text.split()
    return {
        "word_count": len(words),
        "character_count": len(text),
        # ... more analysis
    }

提示

提示是可重用的模板,可帮助LLM与您的服务器有效交互。它们定义了预期的输入和交互模式。

简单提示
@mcp.prompt()
def summarize_content(content: str, max_length: int = 100) -> str:
    """Create a prompt to summarize content."""
    return f"Please summarize the following content in {max_length} words or less:\n\n{content}"
复杂提示
@mcp.prompt()
def create_study_plan(subject: str, hours_per_week: int, weeks: int) -> str:
    """Create a study plan prompt."""
    return f"""Create a detailed study plan for learning {subject}.

Available time: {hours_per_week} hours per week
Duration: {weeks} weeks

Please include:
1. Weekly breakdown of topics
2. Daily study schedule
3. Recommended resources
4. Assessment milestones
5. Tips for effective learning"""

运行服务器

使用紫外线

uv run darklens-server

直接使用Python

python -m darklens_mcp_server.server

使用脚本

darklens-server

服务器将启动并通过stdio监听MCP协议消息。

测试服务器

使用MCP检查器

测试MCP服务器的最简单方法是使用MCP检查器:

# Install MCP Inspector globally
npm install -g @modelcontextprotocol/inspector

# Run the inspector with your server
mcp-inspector uv run darklens-server

这将打开一个web界面,您可以在其中与服务器的资源、工具和提示进行交互。

与客户进行手动测试

您还可以创建一个简单的测试客户端:

import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client

async def test_server():
    async with stdio_client(
        StdioServerParameters(command="uv", args=["run", "darklens-server"])
    ) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()

            # List resources
            resources = await session.list_resources()
            print("Available resources:", [r.uri for r in resources.resources])

            # List tools
            tools = await session.list_tools()
            print("Available tools:", [t.name for t in tools.tools])

            # List prompts
            prompts = await session.list_prompts()
            print("Available prompts:", [p.name for p in prompts.prompts])

            # Test a resource
            resource_content = await session.read_resource("users://list")
            print("Users resource content:", resource_content.contents[0].text)

            # Test a tool
            result = await session.call_tool("calculate_sum", {"numbers": [1, 2, 3, 4, 5]})
            print("Sum tool result:", result.content[0].text)

            # Test a prompt
            prompt_result = await session.get_prompt("summarize_content", {
                "content": "This is a sample text to summarize.",
                "max_length": 50
            })
            print("Prompt result:", prompt_result.messages[0].content)

asyncio.run(test_server())

与Claude Desktop集成

要将此服务器与Claude Desktop一起使用,请执行以下操作:

  1. 配置Claude桌面:

- 打开 ~/Library/Application Support/Claude/claude_desktop_config.json - 添加您的服务器配置:

{
  "mcpServers": {
    "darklens": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/DarkLens-MCP-Server",
        "run",
        "darklens-server"
      ]
    }
  }
}
  1. 重新启动克劳德桌面
  1. 克劳德测试:

- 让Claude“列出可用资源”或“使用calculate_sum工具” - 尝试以下提示:“制定一个学习Python的学习计划,每周10小时,持续8周”

可用资源

  • users://list -列出所有示例用户
  • users://{user_id} -按ID获取特定用户
  • posts://list -列出所有示例帖子
  • api://external/{endpoint} -从JSONPlaceholder API获取数据

可用工具

  • calculate_sum -将一系列数字相加
  • find_max -在列表中查找最大值
  • reverse_string -反转字符串
  • fetch_user_posts -从外部API获取用户的帖子
  • analyze_text -分析文本统计信息

可用提示

  • summarize_content -创建摘要提示
  • analyze_sentiment -创建情绪分析提示
  • generate_code -创建代码生成提示
  • create_study_plan -创建学习计划提示

最佳实践

资源

  • 保持资源函数的轻量级-避免繁重的计算
  • 为不同的内容类型使用适当的MIME类型
  • 优雅地处理错误并返回有意义的错误消息
  • 为动态资源使用URI模板

工具

  • 包含带有参数描述的清晰文档字符串
  • 验证输入参数
  • 妥善处理错误
  • 对I/O操作使用异步函数
  • 保持工具名称的描述性和一致性

提示

  • 使用可选参数使提示灵活
  • 包括LLM的明确说明
  • 结构提示输出一致
  • 使用描述性名称和描述

将军

  • 使用日志记录而不是打印语句(MCP使用stdio进行通信)
  • 部署前彻底测试服务器
  • 处理边缘情况和无效输入
  • 遵循Python类型提示以获得更好的工具支持

故障排除

服务器无法启动

  • 检查Python版本(必须是3.10+)
  • 验证是否已安装所有依赖项
  • 检查代码中的语法错误

工具/资源未显示

  • 确保正确使用装饰剂(@mcp.tool(),不 @mcp.tool)
  • 检查函数是否有正确的类型提示
  • 验证服务器初始化

Claude桌面集成问题

  • 在配置文件中检查服务器的路径
  • 确保服务器启动时没有错误
  • 配置更改后重新启动Claude Desktop
  • 检查Claude Desktop日志是否有错误

常见错误

  • “print()中断MCP”:切勿使用 print() 在生产环境中,它破坏了JSON-RPC协议
  • “需要异步函数”:使用 async def 用于执行I/O的功能
  • “URI无效”:确保资源URI遵循正确的格式

下一步

许可证

这个项目是作为一个教育例子提供的。您可以根据自己的MCP服务器实现自由修改和扩展它。

工具与能力

工具数量

5

资源数量

0

提示词数量

0

能力标签

暗黑模式检测Python本地部署用户界面分析合规评估道德设计AI工具

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

出图与改图

按描述生成或修改图像,快速迭代风格。

读取设计稿

读取画布和图层信息,按规范生成页面。

素材整理

批量生成缩略图、统一命名和标签。

选择建议

值得选的地方

  • 只提供 5 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在设计创作场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到会话凭据的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Darklens MCP Server

MCP World · 本页

5stdio有1 个2026-05-17
Blender MCP

MCP.so

17stdio有3 个2026-05-17
Figma Context MCP 3aaa8d28

MCP World

0未说明未标注2 个2026-05-17
Nova Canvas MCP Server

MCP World

2stdio有1 个2026-05-17
Cursor Talk To Figma MCP Da1c7911

MCP World

40未说明未标注1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Darklens MCP Server 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Darklens MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Darklens MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Darklens MCP Server 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Darklens MCP Server 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP