{"id":48607386,"url":"https://github.com/dootask/mcp","last_synced_at":"2026-04-09T00:11:44.391Z","repository":{"id":321154322,"uuid":"1083965625","full_name":"dootask/mcp","owner":"dootask","description":"Online DooTask MCP Server","archived":false,"fork":false,"pushed_at":"2026-02-23T23:14:52.000Z","size":318,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-24T05:47:09.887Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dootask.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-27T02:53:16.000Z","updated_at":"2026-02-23T23:14:39.000Z","dependencies_parsed_at":"2025-10-28T05:24:32.173Z","dependency_job_id":"9e9f9d1a-5fe4-4bd6-9199-d6c150979a6f","html_url":"https://github.com/dootask/mcp","commit_stats":null,"previous_names":["dootask/mcp"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/dootask/mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fmcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fmcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fmcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fmcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dootask","download_url":"https://codeload.github.com/dootask/mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fmcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31579115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-09T00:11:40.934Z","updated_at":"2026-04-09T00:11:44.383Z","avatar_url":"https://github.com/dootask.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MCP 远程服务器插件\n\n本仓库提供一套可部署在 DooTask 插件平台上的 MCP（Model Context Protocol）服务端及配套说明页，便于远程客户端（如 Claude Desktop、fastmcp CLI 等）访问工作区工具集。\n\n- `server/`：使用 TypeScript + [`fastmcp`](https://www.npmjs.com/package/fastmcp) 实现的 MCP Server，通过官方 `@dootask/tools` SDK 转发所有接口调用。\n- `guide/`：基于 Vite + React 的说明页面，为最终用户展示 Token、远程地址与示例配置。\n- `dootask-plugin/`：插件打包配置（元数据、Nginx 反向代理配置、Docker Compose 示例）。\n- `Dockerfile`：多阶段构建脚本，产出可直接运行的容器镜像。\n\n## 目录结构\n\n```\n.\n├── Dockerfile                 # 构建远程服务镜像\n├── guide/                     # 7001 端口的前端说明页\n├── server/                    # MCP Server 源码（Node.js + TypeScript）\n├── dootask-plugin/            # 插件打包与发布配置\n├── PUBLISHING_GUIDE.md        # 发布指引（请勿自动修改）\n└── README.md\n```\n\n## 开发环境依赖\n\n- Node.js 20.x\n- npm 10.x\n- Docker（可选，用于本地或生产环境运行镜像）\n\n默认假定服务运行在 DooTask 插件网络内部；本地调试沿用同样的内置参数，如需改动请直接编辑源码配置。\n\n## 内置配置\n\n`server/src/config.ts` 将运行参数直接写入源码，部署后无需再准备 `.env` 或暴露端口。默认值如下：\n\n| 配置 | 说明 |\n| --- | --- |\n| `BASE_URL = http://nginx` | 由插件容器内的 Nginx 解析，指向工作区 API。 |\n| `MCP_PORT = 7000` | HTTP Stream 监听端口，容器内部使用，最终由平台转发为 `/apps/mcp_server/mcp`、`/apps/mcp_server/sse`。 |\n| `HEALTH_PORT = 7001` | 指南页与健康检查端口，同样只在容器内部暴露。 |\n| `REQUEST_TIMEOUT = 30000` | 对 `@dootask/tools` 的调用超时时间（毫秒）。 |\n| `LOG_LEVEL = info` | 日志级别。 |\n\n如需调整参数，可直接修改 `server/src/config.ts` 后重新构建镜像。\n\n## 本地开发流程\n\n1. 安装依赖：\n   ```bash\n   npm install --prefix server\n   npm install --prefix guide\n   ```\n2. 构建说明页（容器构建时也会执行）：\n   ```bash\n   npm run build --prefix guide\n   ```\n3. 启动 MCP 服务（开发模式）：\n   ```bash\n   npm run dev --prefix server\n   ```\n   - MCP Endpoint: `http://localhost:7000/mcp`\n   - SSE Endpoint: `http://localhost:7000/sse`\n   - 指南页面 / 健康检查: `http://localhost:7001/`\n\n使用支持 MCP 的客户端（如 Claude Desktop、`fastmcp-client`），并在请求头中携带指南页面提供的 Token：\n\n```\nAuthorization: Bearer \u003cYourToken\u003e\n```\n\n## 构建与运行镜像\n\n```bash\ndocker build -t mcp-remote-server .\ndocker run --rm -p 7000:7000 -p 7001:7001 mcp-remote-server\n```\n\n容器内部端口由平台 Nginx 代理，无需额外暴露或配置环境变量。部署到插件平台后，Nginx 通常会按以下方式转发：\n\n- `/apps/mcp_server/mcp` → 容器 7000 端口\n- `/apps/mcp_server/sse` → 容器 7000 端口\n- `/apps/mcp_server/`    → 容器 7001 端口\n\n参见 `dootask-plugin/0.0.1/nginx.conf` 获取示例配置。\n\n## 发布新版本\n\n1. 修改 `dootask-plugin/config.yml` 中的版本信息，并新增对应的版本目录（如 `dootask-plugin/0.0.2/`）。\n2. 构建并推送新的 Docker 镜像。\n3. 重新运行 `npm run build --prefix guide`，确保说明页资源更新。\n4. 如需手动分发，可生成归档：\n   ```bash\n   cd dootask-plugin\n   tar -czf ../dootask-plugin.tar.gz .\n   ```\n5. 按 `PUBLISHING_GUIDE.md` 的指引或 CI 流程完成发布。\n\n## 常用脚本\n\n| 命令                               | 作用 |\n|-----------------------------------|------|\n| `npm run build --prefix server`   | 编译 MCP Server，输出至 `server/dist/`。 |\n| `npm run dev --prefix server`     | 开发模式热重载。 |\n| `npm run build --prefix guide`    | 构建指南页面，输出至 `guide/dist/`。 |\n| `npm run lint --prefix server`    | 执行 ESLint。 |\n\n## 贡献说明\n\n1. Fork 或创建分支。\n2. 完成修改后重新构建 `guide/dist`。\n3. 执行 lint / build，并在需要时本地验证 Docker 镜像。\n4. 提交 Pull Request 并关联相应任务。\n\n除非流程有变动，请勿修改 `PUBLISHING_GUIDE.md`。针对插件使用者的说明位于 `dootask-plugin/README.md`。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdootask%2Fmcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdootask%2Fmcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdootask%2Fmcp/lists"}