Skip to content
dsh.fish
Bundle

fitmeet-dsh-plugin

Installable FitMeet MCP and Skill plugin for DeepSeek Harness with per-user OAuth 2.1 and PKCE.

Source
liudejua27-blip
stars
1 stars
License
MIT
Updated
Updated 4 hours ago

Readme

<p align="center">
  <img src="assets/fitmeet-icon.png" width="112" alt="FitMeet logo" />
</p>

<h1 align="center">FitMeet for DeepSeek Harness</h1>

<p align="center">
  可安装的 FitMeet MCP + Skill 插件。<br />
  Search a consent-based human network, publish, and manage direct messages from DeepSeek Harness.
</p>

<p align="center">
  <a href="https://fitmeet.cn">FitMeet</a> ·
  <a href="https://fitmeet.cn/mcp">MCP 指南</a> ·
  <a href="skills/fitmeet/SKILL.md">Skill</a> ·
  <a href="https://github.com/liudejua27-blip/fitmeet-dsh-plugin/releases/latest">最新版</a>
</p>

FitMeet(适合见面)是 AI 驱动的真人社交平台,以线下见面和共同活动为核心,也支持线上交流与协作。普通用户可直接使用 [FitMeet 官网](https://fitmeet.cn/),寻找朋友、各类搭子、合作伙伴或组局,无需安装本插件。

小福是 FitMeet 产品内的 AI 助手。本仓库提供 DeepSeek Harness 接入渠道;只有希望从兼容的外部 Agent 使用 FitMeet 时,才需要配置插件并完成本人授权。网站功能与插件工具范围分别以实际入口和授权为准。运营主体为晤云科技(青岛)有限公司,详见[官方产品身份](https://fitmeet.cn/company)。

![FitMeet MCP](docs/images/fitmeet-mcp.png)

这个项目不是把一个 URL 当作文件上传。它是一个符合 DeepSeek Harness Bundle 结构的可安装插件,包含:

- FitMeet 远程 Streamable HTTP MCP 连接器;
- 每位用户独立的 OAuth 2.1 + PKCE S256 浏览器授权;
- Dynamic Client Registration、Token 刷新与本地凭据保存;
- 按当前授权发现、注册与调用 FitMeet MCP 工具(服务端现有 17 项;新权限需重新授权);
- 内置的 `fitmeet` Agent Skill 和写操作确认规则;
- 可被 DeepSeek Harness 社区插件目录发现的 `dsh-plugin` 包元数据。

生产 MCP 地址固定为 `https://api.fitmeet.cn/api/v1/mcp`。插件不会内置共享 Token,也不会要求用户复制 Access Token。

## 安装

需要 Node.js 22.19 或更高版本。推荐直接从 npm 安装:

```sh
npx --yes @deepseek-ai/dsh@latest plugin --profile web add fitmeet-dsh-plugin
npx --yes @deepseek-ai/dsh@latest web
```

第一次启动时,插件会打开 FitMeet 授权页。用户登录自己的 FitMeet 账号、查看权限并同意后,Harness 才会注册 `mcp__fitmeet__...` 工具。授权记录和 Token 由该用户设备上的 DeepSeek Harness credential service 保存。

安装固定版本:

```sh
npx --yes @deepseek-ai/dsh@latest plugin --profile web add fitmeet-dsh-plugin@0.1.2
```

也可以直接从 GitHub 安装:

```sh
npx --yes @deepseek-ai/dsh@latest plugin --profile web add github:liudejua27-blip/fitmeet-dsh-plugin#v0.1.2
```

验证配置层:

```sh
npx --yes @deepseek-ai/dsh@latest --profile web --dump-config
```

卸载:

```sh
npx --yes @deepseek-ai/dsh@latest plugin --profile web remove fitmeet-dsh-plugin
```

## 可以做什么

| 场景 | Harness 中的工具名 |
| --- | --- |
| 读取本人资料 | `mcp__fitmeet__fitmeet_profile_get` |
| 搜索用户、需求与能力 | `mcp__fitmeet__fitmeet_people_search` |
| 查看候选详情 | `mcp__fitmeet__fitmeet_people_details` |
| 查看可发布内容 | `mcp__fitmeet__fitmeet_publication_sources` |
| 生成发布预览 | `mcp__fitmeet__fitmeet_publication_prepare` |
| 确认发布 | `mcp__fitmeet__fitmeet_publication_confirm` |
| 读取会话 | `mcp__fitmeet__fitmeet_conversations_list` |
| 读取消息 | `mcp__fitmeet__fitmeet_messages_list` |
| 准备新私聊 | `mcp__fitmeet__fitmeet_chat_prepare` |
| 确认建立私聊 | `mcp__fitmeet__fitmeet_chat_confirm` |
| 生成消息预览 | `mcp__fitmeet__fitmeet_message_prepare` |
| 确认发送准确正文 | `mcp__fitmeet__fitmeet_message_confirm` |

可以直接对 Agent 说:

- “帮我找一位在青岛做 AI 产品设计的人。”
- “看看有哪些人也想周末徒步和拍照。”
- “把我确认过的能力发布到大厅,先给我看预览。”
- “打开我和这位用户的私聊,但先不要发消息。”
- “把这段消息展示给我,我确认后再发送。”

## OAuth 权限

0.1.2 支持以下六项可选 scope;默认安装请求全部六项,由用户在 OAuth 页面决定是否授权。也可以选择非空权限子集:

```text
profile:read people:search hall:publish messages:read messages:write social:read
```

授权链路:

```mermaid
flowchart LR
  Install[安装插件] --> Start[启动 Harness]
  Start --> Browser[打开 FitMeet OAuth]
  Browser --> Consent[用户登录并授权]
  Consent --> Callback[本机 loopback callback]
  Callback --> Credentials[Harness 凭据库]
  Credentials --> Tools[注册当前授权可见工具]
```

OAuth 只允许 Agent 请求相应能力,不代表用户同意某一次发布、建立私聊或发送消息。写操作必须遵循:

1. 调用对应的 `prepare` 工具;
2. 展示准确的对象、范围或完整正文;
3. 在当前交互中取得用户明确确认;
4. 原样提交确认标识和摘要到对应的 `confirm` 工具。

用户修改内容后必须重新生成预览。建立私聊只创建空会话,不会自动发送消息。

## 隐私

只有资料本人开启 external discovery 后,有限资料才可能出现在外部 Agent 搜索结果中;该设置默认关闭并可撤销。搜索结果是帮助用户判断的资料,不代表候选人同意联系。

插件不提供修改资料、支付、预约、管理员操作、群发或自动邀请。详见 [`skills/fitmeet/SKILL.md`](skills/fitmeet/SKILL.md) 与 [`SECURITY.md`](SECURITY.md)。

## 插件结构

```text
fitmeet-dsh-plugin/
├── package.json             # dsh.bundle 声明
├── cordis.patch.yml         # 安装到 profile 的插件配置层
├── lib/                     # 已构建的可执行文件,安装时无需运行构建脚本
├── src/                     # OAuth MCP 连接器源码
├── skills/fitmeet/SKILL.md  # 内置 FitMeet Skill
├── mcp.json                 # 其他 MCP 宿主可复用的基础配置
└── assets/                  # FitMeet 图标
```

## 开发验证

```sh
corepack enable
pnpm install
pnpm check
pnpm pack --dry-run
```

本项目提交已构建的 `lib/`,且没有 `prepare`、`postinstall` 等安装生命周期脚本。用户从 GitHub 安装时无需允许第三方构建脚本。

DeepSeek Harness 仍处于 Developer Preview,官方提示后续可能有破坏性变化。插件当前以 `@deepseek-ai/dsh@0.1.5-rc.1` 作为验证基线。

## 官方资料

- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
- [Package and install a plugin](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/develop/basic/publish.md)
- [Skill subsystem](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/skills.md)
- [Community plugins](https://github.com/topics/dsh-plugin)

## 许可证

MIT。OAuth MCP 连接层基于 MIT 许可的社区实现改造;完整归属见 [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md)。

## MCP 2.1 能力更新(2026-09-12)

服务当前提供 17 个工具,完整清单和每项权限见 [service.json](service.json)。网站、通用配置包与本仓库共用这份公开说明;运行时的 `tools/list` 才是当前授权实际可见的工具。

新增 `social:read` 工具:

| 工具 | 用途 |
| --- | --- |
| `fitmeet_groups_list` | 查询本人组局或允许外部发现的公开组局 |
| `fitmeet_group_get` | 读取可见组局信息;不读取群消息或成员名单 |
| `fitmeet_notifications_get` | 读取本人未读汇总与通知设置 |
| `fitmeet_my_items_list` | 分页读取本人连接事项 |
| `fitmeet_connection_feedback_get` | 读取本人连接反馈 |

已有连接不会自动获得新权限。组局创建、加入、改期、完成和反馈修改,使用服务返回的 FitMeet 页面入口完成。读取提醒是当前快照,不代表后台持续监控。0.1.2 已更新插件的权限校验和内置 Skill;工具实际可见范围以当前账号授权为准,真实账号逐项调用仍需在对应客户端验收。

了解实际使用:[AI 同行交流](https://fitmeet.cn/scenes/ai-peers)、[组局与群聊](https://fitmeet.cn/gatherings)。

## 从 0.1.1 升级

安装上面的固定新版并重启对应 Harness profile;现有 profile 中保存的插件配置可能仍为旧五权限,需要在该插件的 scope 配置中增加 social:read。更新安装包不会替你改写现有配置或自动授予新权限。

0.1.2 接受原有五权限以及任意非空的有效权限子集,例如只读社交设置 `scope: 'social:read'`,或只找人设置 `scope: 'people:search'`。重复或未知权限会被拒绝。默认安装配置包含六权限,只申请任务所需的范围即可。

权限配置变化后,插件不会继续使用不对应的旧凭据,而会要求浏览器重新授权。保持原五权限配置时可继续复用原授权。用户只批准部分权限时,插件尊重实际授予的工具范围,不反复强求全权限。

新安装包包含 `skills/fitmeet/references/setup.md` 和 `service.json`。包发布、安装和服务端工具可用,与应用商店收录、真实账号逐项调用,是不同的状态。

Install

dsh plugin --profile web add github:liudejua27-blip/fitmeet-dsh-plugin

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source