
taken
io.github.RogueAlg0由 GitHub 账号 RogueAlg0 发布v0.9.2更新于 Oct 24, 2026
Check if a GitHub issue is taken before volunteering for it.
概览
在开始动手前检查某个 GitHub issue 是否已被认领,给出 GO、TAKEN 或 CAUTION 结论并附上证据。
- 可以做什么
- 检查单个 issue 是否已有关联 PR、指派人、认领评论、AI 贡献政策以及仓库是否活跃,并给出 GO、TAKEN 或 CAUTION 结论及依据
- 扫描某个仓库的开放 issue,可按标签和数量限制筛选,并逐个给出结论
- 在 GitHub 上搜索贡献候选,逐一核实后只保留 GO 结果,并按维护者响应度排序
- 长时间扫描时报告进度,并在机器可读结果中附带 truncated、considered、returned 等完整性信息
- 适用场景
- 适合在助手协助挑选开源任务时,先确认 issue 仍无人认领、仓库也足够活跃,再开始写代码或提交 PR。也适合批量扫描某仓库的新手友好 issue,或寻找可参与的贡献机会。
- 运行要求
- 以本地 Python 包形式运行,需要 Python 3.10 或更高版本,可通过 uvx 启动或用 uv tool、pipx 安装。需要安装并已登录的 GitHub CLI(gh),所有 API 调用都走该登录。需要访问 GitHub 的网络;未声明任何令牌或环境变量。
安装
在 SourceWeft 中
- 打开 控制台中的 taken,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
taken?
[PyPI] [npm] [CI] [OpenSSF Scorecard] [OpenSSF Best Practices] [SonarCloud Quality Gate] [License: MIT] [Python] [MCP Registry]
taken? answers one question before you volunteer for a GitHub issue: is it
already taken?
In plain terms, it checks an issue before you start work: is it still open to contributions, is anyone already on it, and is the repo responsive enough that your PR will get reviewed.
Try it without installing anything: the live console runs the real checks in your browser.
The catch it was built for: GitHub shows "linked a pull request" events in the
issue timeline, but never in the comments. You can read every comment on an
issue and still miss that someone already opened a PR for it. taken? checks
the timeline, scans comments for people claiming the work, looks at assignees,
reads CONTRIBUTING.md for AI contribution policies, and checks whether the
repo is still active. Then it gives a verdict, GO, TAKEN, or CAUTION, with the
evidence cited.
Requirements
- Python 3.10 or newer
- The GitHub CLI (
gh), authenticated
taken? only makes read-only API calls through your own gh login. It never
sees or stores tokens, and it never writes anything to GitHub.
Install
Or with pipx:
Then:
A full issue URL works too:
The verdict
TAKEN wins over CAUTION, which wins over GO.
- TAKEN: the issue is closed, an open PR links to it, or someone is assigned.
- CAUTION: a comment says someone wants it (soft claim, they may have moved on), a linked PR was merged but the issue is still open, the repo has an AI policy to respect, the repo looks inactive, or a beginner-friendly label sits alongside a long discussion thread or a design-level label (worth skimming before you start).
- GO: none of the above.
The claimant scan is a heuristic over comment text, not proof. The verdict always prints its evidence so you can judge for yourself.
Exit codes: 0 means GO, 1 means TAKEN, 2 means CAUTION, 3 means something
broke (bad target or flag, no gh, API error).
A pull request number is an invalid issue target: it returns an error (exit 3 in the CLI), without a contribution verdict.
Examples
An issue with a PR already fixing it:
An issue someone is already assigned to:
A clean issue, with your own volunteering comment filtered out:
Useful flags
--json: print the full findings as JSON instead of the human summary--me LOGIN: ignore your own comments when scanning for claimants--no-cache: bypass the one-hour API response cache--rest: force the REST fetch path (the default is GraphQL for logged-in users)--health: maintainer report for one repo instead of a contributor verdict
taken --help lists everything.
Health reports warn when either the issue listing or the PR listing reaches
its scan cap. With --health --json, truncated describes the issue listing
and pr_scan_truncated describes the PR listing; stale PR counts may be
incomplete when the latter is true.
Batch mode and repo scans
Give taken several targets and it prints one verdict line per target:
A bare owner/repo scans the repo automatically: its open issues
(most recently updated first, PRs excluded) are each checked:
API responses are cached for one hour in ~/.cache/taken
(override with TAKEN_CACHE_DIR), so repeated scans stay cheap.
The opt-in REST transport (TAKEN_TRANSPORT=httpx) preserves both JSON
objects and arrays, including empty listings. Response ETags are cached
alongside either shape: after expiry, a 304 Not Modified reuses the cached
body and refreshes its TTL. The default subprocess transport is unchanged.
Discover mode
taken --discover finds contribution candidates across GitHub: it takes raw
candidates from GitHub's issue search, runs taken's full verification on each
one, and ranks the survivors. Only GO verdicts make the list, scored on the
signal no aggregator filters on: maintainer responsiveness.
Each line explains its own score. Candidates are verified in parallel
(8 workers by default; --jobs N tunes it).
MCP server
taken also ships as an MCP server, so coding agents can check issues with a
tool call instead of shelling out to the CLI. Same setup: gh installed and
authenticated, read-only API calls through your own login.
Three tools: check_issue, scan_repo, discover_candidates. Published in
the official MCP Registry as
io.github.RogueAlg0/taken.
Clients that request MCP progress receive updates while scan_repo checks
issues and discover_candidates verifies candidates. The updates use the
current request's progress channel; clients that do not request progress
keep the same results. Discovery can finish before its total is reached
when the best results are already decided.
Result completeness for machine callers
MCP scan_repo and discover_candidates responses include truncated,
considered and returned, even for empty results. Discovery also reports
verified, the number of candidates submitted for verification. truncated
means results may be incomplete because a listing/search/pool cap was reached,
ranking stopped early, the result limit excluded matches, or discovery had
verification/search errors. A full API page is conservatively marked limited
when exhaustion cannot be established without another request.
Counts describe observed work, not the total number of issues on GitHub.
For MCP scans, considered counts issues in fetched listing pages (excluding
PRs); for discovery it counts candidates admitted to the verification pool.
returned counts rows in results.
CLI JSON migration: --discover --json and bare-repository scans with
--json now return an object containing results and this metadata. Consumers
of the former array should read payload["results"]. Repository batches also
include scans, with per-repository listing counts and limits; their top-level
considered counts check jobs. Batches containing only explicit issue targets
keep their JSON array format. Human-readable output is unchanged. Discovery
emits its JSON object even when no candidate is returned.
Development
AI assistance
This project is built with AI assistance, and says so openly. Every contribution is reviewed and understood by its author before it lands.
Security
See SECURITY.md for the supported versions and how to report a vulnerability. Please use private vulnerability reporting, not a public issue.
来源:README.md,提交 fdae61c
工具
0版本历史
10- v0.9.2最新Oct 14, 2026
- v0.9.1Oct 11, 2026
- v0.9.0Oct 10, 2026
- v0.8.0Oct 2, 2026
- v0.7.5Oct 1, 2026
- v0.7.4Oct 1, 2026
- v0.7.3Sep 28, 2026
- v0.7.2Sep 27, 2026
- v0.7.1Sep 26, 2026
- v0.7.0Sep 26, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分