Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
389 changes: 30 additions & 359 deletions .github/workflows/build-desktop.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ dist-ssr
*.sw?
.env
release
electron
# electron/ sources are committed (main, preload, MCP). Do not ignore the whole dir.

# Backend server data
server/data/*.db
Expand Down
44 changes: 43 additions & 1 deletion DOCKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,4 +182,46 @@ docker stop github-stars-backend && docker rm github-stars-backend

## Note on Desktop Packaging

This Docker setup does not affect the existing desktop packaging workflows. The GitHub Actions workflow for building desktop applications remains unchanged and continues to work as before.
This Docker setup does not affect the existing desktop packaging workflows. The GitHub Actions workflow for building desktop applications remains unchanged and continues to work as before.
## MCP Server (Agent access)

With Docker Compose, the backend MCP endpoints are exposed through nginx (frontend container) so agents on the host do not need a published backend port:

| Endpoint | URL (default compose) | Notes |
|----------|------------------------|--------|
| Streamable HTTP | `http://localhost:8080/mcp` | Preferred for Claude Code / modern clients |
| Legacy SSE | `http://localhost:8080/mcp/sse` | GET opens `text/event-stream`; client then POSTs to `/mcp/sse/messages?sessionId=…` |
| Legacy SSE (alias) | `http://localhost:8080/sse` | Same protocol; messages at `/messages?sessionId=…` |

**Desktop (Electron)** after enabling MCP in Settings:

| Endpoint | URL |
|----------|-----|
| Streamable HTTP | `http://127.0.0.1:3927/mcp` |
| Legacy SSE | `http://127.0.0.1:3927/sse` (messages: `/messages?sessionId=…`) |

1. Open the app → **Settings → MCP Server**.
2. Toggle **Enable MCP Server** (requires backend connection).
3. Copy the token (always viewable) and the JSON agent config.
4. Paste into Claude Code / Cursor MCP settings, for example:

```json
{
"mcpServers": {
"github-stars-manager": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer gsm_mcp_..."
}
}
}
}
```

**Notes**

- MCP uses a **separate token** from `API_SECRET` (backend UI auth). Resetting the MCP token does not break app↔backend sync.
- The MCP bearer is **stable**: stored encrypted in SQLite (`mcp_token`) on the backend, and in IndexedDB with other app state on desktop. It is created once when you first enable MCP and **only changes if you click Reset Token**.
- Pure frontend (no backend) does not show the MCP settings page.
- `gsm_vector_search` appears only when Vector Search is configured and enabled in the app.
- Enabling MCP is additive: existing SQLite data is unchanged; disabling MCP only stops the endpoint.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ GitHub Stars Manager automatically syncs your starred repos, uses AI to summariz
| **AI Summaries & Categories** | Generate tags, topics, and short README overviews using AI |
| **Semantic Search** | Find repos by intent, not exact names |
| **Vector Semantic Search** | Embed repo descriptions/READMEs into a Cloudflare Vectorize index; query with natural language for high-precision semantic matching |
| **MCP Server** | Optional Streamable HTTP / SSE endpoint so agents (Claude Code, Cursor, etc.) can search AI-enriched stars; requires backend or Electron/desktop (hidden on pure frontend); toggle in Settings, no extra install |
| **Release Tracking** | Subscribe to repos and see new versions in one unified timeline |
| **One‑click Downloads** | Expand release assets and download instantly |
| **Smart Asset Filters** | Match assets by keywords (dmg / mac / arm64 / aarch64) |
Expand Down
1 change: 1 addition & 0 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
| **AI 摘要与分类** | 使用 AI 生成标签、主题和简短 README 概览 |
| **语义搜索** | 按意图而非精确名称查找仓库 |
| **向量语义搜索** | 将仓库描述/README 嵌入 Cloudflare Vectorize 向量库,自然语言查询实现高精度语义匹配 |
| **MCP 服务** | 可选 Streamable HTTP / SSE,供 Claude Code、Cursor 等 Agent 检索 AI 加工后的星标;需后端或 Electron/客户端(纯前端模式不显示);设置中开关,无需额外安装 |
| **Release 追踪** | 订阅仓库并在统一时间线查看新版本 |
| **一键下载** | 展开 Release 资产并即时下载 |
| **智能资产过滤** | 按关键词匹配资产 (dmg / mac / arm64 / aarch64) |
Expand Down
Loading