模型上下文协议服务器

Stash MCP Server是一个为Stash实例提供查询、分析和推荐功能的模型上下文协议服务器,支持高性能过滤器和智能分析。

  • by donlothario
  • Python
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 donlothario/stash_mcp_server

使用说明

MCP服务器损坏

MCP(模型上下文协议)服务器,提供一组简洁的工具来查询和分析 隐藏 实例具有可组合的高精度过滤器、优化的缓存以实现更快的查询、执行者/场景分析的自动化智能以及基于使用情况和偏好的个性化建议。

提示

提示 说明 参数
分析执行者 完整的执行者分析和见解 performer_name: str
图书馆见解 对整个图书馆的战略见解 --
推荐场景 个性化场景推荐 preferences: str
发现表演者 按标准发现执行者 criteria: str

资源

表演者资源

资源 描述 URI
所有表演者 所有最喜欢的表演者列表及其基本信息 stash://performer/all
表演者信息 特定执行者的详细信息 stash://performer/{name}
按国家分列的表演者 按国家筛选的表演者列表 stash://performer/country/{country}
按种族分列的表演者 按种族筛选的表演者列表 stash://performer/ethnicity/{ethnicity}
表演者统计 所有执行者的统计摘要 stash://performer/stats

工作室资源

资源 描述 URI
所有工作室 所有喜爱的工作室列表及其基本信息 stash://studio/all
工作室信息 关于特定工作室的详细信息 stash://studio/{name}
工作室统计 所有工作室的统计摘要 stash://studio/stats

标记资源

资源 描述 URI
所有标签 包含基本信息的所有收藏夹标签列表 stash://tag/all
标签信息 特定标签的详细信息 stash://tag/{name}
标签统计 所有标签的统计摘要 stash://tag/stats

工具

工具 说明 参数
高级性能分析 深入分析进展和记录 performer_name: str, include_similar: bool, deep_scene_analysis: bool
batch_performer_洞察 来自多个执行者的汇总见解 performer_names: List[str], max_performers: int
健康检查 基本连接/缓存状态 --
get_perform_info 详细的表演者信息 performer_name: str
get_all_performers 使用高级筛选列出执行者 favorites_only: bool=True,高级过滤器(请参阅“高级过滤器”部分)
get_all_scenes_from_performer 表演者的场景 performer_name: str, organized_only: bool=True
get_all_scenes 列出所有具有可选过滤器的场景 高级过滤器(请参阅“高级过滤器”部分)

高级过滤器 get_all_performers

此工具现在支持按多种物理和人口统计标准进行高级过滤:

基本过滤器

  • favorites_only: bool = True -仅限喜爱的表演者
  • country: str -按国家筛选
  • ethnicity: str -按种族筛选
  • eye_color: str -按眼睛颜色过滤
  • hair_color: str -按头发颜色过滤
  • measurements: str -按身体测量值过滤
  • piercings: str -按穿孔过滤
  • tattoos: str -按纹身筛选

带修饰符的数字过滤器

  • height_cm: int -按高度(厘米)过滤
  • weight: int -按重量过滤

过滤器修改器

每个过滤器都支持不同比较类型的修饰符:

  • EQUALS (默认)-完全匹配
  • NOT_EQUALS -不相等
  • GREATER_THAN -大于(仅数字)
  • LESS_THAN -小于(仅数字)
  • BETWEEN -在两个值之间(仅限数字,需要 _value2)
  • NOT_BETWEEN -不在两个值之间(仅限数字,需要 _value2)

量程参数

对于 BETWEEN 和 NOT_BETWEEN 过滤器:

  • height_cm_value2: int -高度范围的第二个值
  • weight_value2: int -重量范围的第二个值

表演者信息资源

服务器提供专用资源,以多种格式访问表演者信息:

资源URI

  • stash://performer/all -列出所有喜爱的表演者及其基本信息

    • 返回:姓名、国家、种族、身高、体重和相关标签
    • 用例:快速浏览所有喜爱的表演者
  • stash://performer/{name} -特定执行者的详细信息

    • 参数: {name} -确切的表演者姓名
    • 回报:完整的个人资料,包括人口统计、身体特征、生物和标签
    • 用例:获取特定执行者的全面信息
  • stash://performer/country/{country} -按国家筛选表演者

    • 参数: {country} -国家名称或代码(例如“美国”、“ES”)
    • 返回:来自指定国家的具有种族的表演者列表
    • 用例:发现来自特定国家的表演者
  • stash://performer/ethnicity/{ethnicity} -按种族筛选表演者

    • 参数: {ethnicity} -种族名称(例如,“高加索人”、“亚洲人”)
    • 返回:具有指定种族和国家的表演者列表
    • 用例:查找符合特定种族特征的表演者
  • stash://performer/stats -执行者数据库的统计摘要

    • 退货:
      • 最喜欢的表演者总数
      • 地理分布(国家和计数)
      • 民族分布
      • 物理统计(平均身高和体重范围)
    • 用例:分析你的表演者集合的组成和多样性

配置

服务器支持通过环境变量进行灵活配置:

变量 默认值 描述
STASH_ENDPOINT http://localhost:6969 停滞的服务器端点
STASH_API_KEY - 必需的API密钥(必需)
STASH_CONNECT_RETRIES 3 初始连接重试
STASH_CONNECT_DELAY_SECONDS 1.5 重试之间的延迟(秒)
FAVORITES true 仅按收藏夹筛选资源
LOG_LEVEL INFO 日志级别:调试、信息、警告、错误

环境设置

  1. 复制示例环境文件:
cp .env.example .env
  1. 编辑 .env 使用您的设置:
STASH_ENDPOINT=http://localhost:9999
STASH_API_KEY=YOUR_API_KEY

安装

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

克隆存储库并使用uv安装:

git clone https://github.com/donlothario/stash_mcp_server.git
cd stash_mcp_server
cp .env.example .env
# Edit .env file with your Stash settings
uv sync

或者直接从存储库安装:

uv add git+https://github.com/donlothario/stash_mcp_server.git

使用pip安装

在以下模式下安装软件包:

git clone https://github.com/donlothario/stash_mcp_server.git
cd stash_mcp_server
cp .env.example .env
# Edit .env file with your Stash settings
python3 -m pip install .

或者直接从存储库安装:

python3 -m pip install git+https://github.com/donlothario/stash_mcp_server.git

码头工人

塑造形象

塑造形象:

docker build -t stash_mcp_server:latest .

拉取图像

从Docker注册表中提取最新映像:

docker pull ghcr.io/donlothario/stash_mcp_server:latest

用法

用紫外线跑步

uv run stash_mcp_server

使用pip安装运行

python3 -m stash_mcp_server

Claude桌面/光标/VCode的配置示例

将此配置添加到应用程序的设置中(mcp.json):

使用紫外线(推荐)

"stash mcp server": {
    "type": "stdio",
    "command": "uv",
    "args": [
      "run",
      "--directory",
      "/path/to/stash_mcp_server",
      "stash_mcp_server"
    ],
    "env": {
        "STASH_ENDPOINT": "http://localhost:9999",
        "STASH_API_KEY": "YOUR_API_KEY",
    }
}

使用pip安装

"stash mcp server": {
    "type": "stdio",
    "command": "python3",
    "args": [
        "-m",
        "stash_mcp_server"
    ],
    "env": {
        "STASH_ENDPOINT": "http://localhost:9999",
        "STASH_API_KEY": "YOUR_API_KEY",
    }
}

使用Docker

"stash mcp server": {
    "type": "stdio",
    "command": "docker",
    "args": [
        "run",
        "-i",
        "--rm",
        "--env-file",
        "${workspaceFolder}/.env",
        "ghcr.io/donlothario/stash_mcp_server"
    ]
}

技术说明

  • 与Stash的连接是通过可配置的重试来执行的。
  • 如果缺少API密钥,则服务器将生成错误并不会启动。
  • 查询使用的GraphQL片段集中在代码中(FRAGMENTS).
  • 改进的缓存架构:缓存函数与MCP装饰器分开,以避免与Pydantic模式生成冲突。
  • 高级过滤:强大的过滤系统,带有修饰符和复杂查询的范围处理。
  • 增强日志记录:有关活动筛选器和查询结果的详细信息,以便更好地进行调试。