Feedback Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Feedback Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
一个支持多模态用户意图采集的 MCP(Model Context Protocol)服务器,让 AI Agent 能够向用户提问并获取回复。
interactive-mcp/
├── src/ # 后端源代码
│ ├── core.py # MCP 服务器核心与配置
│ ├── server.py # 统一入口(SSE/STDIO)
│ ├── web_multi_tenant.py # FastAPI 多租户应用
│ ├── auth.py # 管理员认证
│ ├── users.py # 用户管理
│ ├── oauth.py # 飞书 OAuth
│ ├── feishu.py # 飞书通知服务
│ ├── feishu_ws_listener.py # WebSocket 消息监听器
│ └── static/ # 静态资源(Service Worker)
├── frontend/ # React 前端
│ ├── src/
│ │ ├── features/ # 功能模块
│ │ │ ├── auth/ # 认证(登录/重定向)
│ │ │ ├── admin/ # 管理后台
│ │ │ ├── tasks/ # 任务/问题管理
│ │ │ └── user/ # 用户资料
│ │ ├── components/ui/ # 可复用 UI 组件
│ │ ├── store/ # Redux Store
│ │ ├── services/ # API 服务
│ │ ├── hooks/ # 自定义 Hooks
│ │ └── i18n/ # 国际化
│ └── package.json
├── docs/ # 文档
├── data/ # SQLite 数据库(运行时创建)
└── pyproject.toml # Python 包配置# 安装后端依赖
pip install -e .
# 安装飞书 SDK(可选,用于通知功能)
pip install lark_oapi
# 安装前端依赖(可选,用于开发)
cd frontend && npm install生产模式(使用预构建前端):
# 启动服务器,包含 MCP SSE 端点和内置前端
python -m uvicorn src.web_multi_tenant:app --host 0.0.0.0 --port 8000开发模式:
# 终端 1:后端服务(SSE 传输模式)
cd src && PYTHONPATH=. uvicorn web_multi_tenant:app --host 0.0.0.0 --port 8000
# 终端 2:前端开发服务器
cd frontend && npm run dev
# 访问 http://localhost:5173STDIO 模式(用于 MCP 客户端):
# MCP 前台运行,Web 服务器后台运行
python -m src.server --mode stdiohttp://localhost:8000http://localhost:8000uk_xxxxxxxx){
"mcpServers": {
"user-intent": {
"command": "uv",
"args": ["run", "python", "/path/to/src/server.py", "--mode", "stdio"],
"env": {
"USERINTENT_API_KEY": "uk_your_api_key"
}
}
}
}{
"mcpServers": {
"user-intent": {
"transport": "sse",
"url": "http://localhost:8000/mcp/sse",
"headers": {
"Authorization": "Bearer uk_your_api_key"
}
}
}
}| 变量 | 说明 | 默认值 |
|---|---|---|
USERINTENT_API_KEY | 用户 API Key(用于认证) | - |
USERINTENT_DB_PATH | SQLite 数据库路径 | data/intent.db |
USERINTENT_WEB_PORT | Web 服务器端口 | 8000 |
USERINTENT_WEB_HOST | Web 服务器主机 | 0.0.0.0 |
USERINTENT_TIMEOUT | 请求超时时间(秒) | 3000 |
访问 http://localhost:8000/admin 进入系统管理:
| 功能 | 说明 |
|---|---|
| 系统概览 | 查看用户数量和请求统计 |
| 用户管理 | 查看/禁用/启用已注册用户 |
| 飞书配置 | 配置飞书应用凭据 |
| 系统设置 | 修改管理员密码 |
| WebSocket 状态 | 监控/重启飞书 WebSocket 监听器 |
https://your-domain.com/auth/feishu/callbackcontact:user.base:readonly - 获取用户基本信息im:message:send_as_bot - 发送消息im.message.receive_v1 事件通过管理后台:
app_id、app_secret 和 redirect_uri通过数据库:
INSERT INTO admin_config (key, value) VALUES
('feishu_app_id', 'cli_xxxxxxxxx'),
('feishu_app_secret', 'your_secret'),
('feishu_redirect_uri', 'http://localhost:8000/auth/feishu/callback');@tailwindcss/typographycd frontend
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build
# 运行测试
npm run test
# 运行测试(含覆盖率)
npm run test:coverage
# 代码检查
npm run lint创建 /etc/systemd/system/user-intent-mcp.service:
[Unit]
Description=User Intent MCP Server
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/user-intent-mcp
Environment="PYTHONPATH=/opt/user-intent-mcp/src"
ExecStart=/usr/bin/python3 -m uvicorn web_multi_tenant:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target启用并启动:
sudo systemctl enable user-intent-mcp
sudo systemctl start user-intent-mcpFROM python:3.12-slim
WORKDIR /app
COPY . .
RUN pip install -e . && pip install lark_oapi
# 构建前端(可选,也可使用预构建镜像)
# RUN cd frontend && npm install && npm run build
ENV PYTHONPATH=/app/src
EXPOSE 8000
CMD ["python", "-m", "uvicorn", "web_multi_tenant:app", "--host", "0.0.0.0", "--port", "8000"]构建并运行:
docker build -t user-intent-mcp .
docker run -d -p 8000:8000 -v $(pwd)/data:/app/data user-intent-mcpserver {
listen 80;
server_name intent.example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# SSE 和 WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# SSE 超时设置
proxy_buffering off;
proxy_read_timeout 86400;
}
}# 后端单元测试
PYTHONPATH=src pytest tests/test_multi_tenant.py -v
# 后端集成测试
PYTHONPATH=src pytest tests/test_integration.py -v
# 前端测试
cd frontend && npm run testMIT License
欢迎贡献!请随时提交 Pull Request。
[English Version](README_en.md)
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.