Installed MCP entry points serve the wrong framework or nothing: `darnit serve` picks the alphabetically first framework, and the plugin runner calls a nonexistent `darnit-mcp` executable
维护者通常 2 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 48/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- python
- 领域
- build-system, cli
调研方向
Start by tracing the default selection in packages/darnit/src/darnit/cli.py and the runner commands in packaging/claude-plugin/templates/darnit-mcp-runner and plugin.json; compare them with the console-script declaration in packages/darnit/pyproject.toml and the meta-package pyproject.toml. Reproduce the reported commands, then check release-smoke.yml’s runner check; done means installed configs launch successfully and bare serve has an intentional framework-selection behavior.
由索引模型根据 Issue 内容生成。
描述
Summary
Two defects in how the MCP server is launched from installed configs:
darnit servewith no--frameworkand no config path serveslist_available_frameworks()[0], which is sorted by name. With the publisheddarnit-mcpmeta-package (darnit-baseline, darnit-gittuf, darnit-reproducibility) that isgittuf, notopenssf-baseline.darnit installwrites exactly that bare command into the client config, so the skills'audit_openssf_baselinetool is absent. In the dev workspace it resolves tocommunity-spec.- The Claude Code plugin runner executes
uvx --from darnit-mcp==$V darnit-mcp(andpipx run darnit-mcp==$V).darnit-mcpis a metadata-only wheel with no console scripts; the only script,darnit, lives indarnit-core. The runner also passes noservesubcommand (plugin.jsonargs are[]).
Impact
A user following either install path gets an MCP server for the wrong framework, or none. The skills then report "no audit tools" or audit against an unintended standard.
Evidence
- Default selection: cli.py#L948-L952; sorted list: registry.py#L378
darnit installentry: cli.py#L616-L619- Runner: darnit-mcp-runner#L30, #L36; plugin.json#L15-L16
- Only script defined: packages/darnit/pyproject.toml#L49-L50; meta-package has none: pyproject.toml#L32-L41
release-smoke.ymlL573 runsdarnit-mcp-runner --helpand would fail on the next plugin release.
Reproduction
$ uvx --from darnit-mcp==0.1.0 darnit-mcp --help
Package `darnit-mcp` does not provide any executables. (exit 1)
$ uvx --from darnit-mcp==0.1.0 python -c "from darnit.config import list_available_frameworks as f; print(f())"
['gittuf', 'openssf-baseline', 'reproducibility']
The published darnit_mcp-0.1.0-py3-none-any.whl contains only dist-info files and no entry_points.txt. Expected: the runner starts a server, and a bare darnit serve serves an intended framework. Actual: the runner fails; darnit serve serves gittuf.
Suggested direction
- Make
servewithout--frameworkeither fail with the list of choices or serve all installed frameworks; havedarnit installwrite an explicit--framework(or config path). - Give
darnit-mcpadarnit-mcpconsole script (or change the runner to--from darnit-mcp==$V darnit serve --framework ...), and add a smoke test that runs the runner against a built wheel before release. - Related: #229, #231, #389.
- 主要语言
- Python
- 星标
- 22
- 派生
- 27
- 平均合并
- 2 天 19 小时
- 30 天内合并 PR
- 51
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
darnitdevorg/darnit 的其他 Issue
-
module-core needs triage ux
难度 2/5 1-3 小时 新手友好度 72/100
darnitdevorg/darnit#648 ·
维护者通常 2 天内回复
-
ci needs triage
难度 2/5 1-3 小时 新手友好度 62/100
darnitdevorg/darnit#607 ·
维护者通常 2 天内回复
-
dependencies module-baseline needs triage
难度 2/5 1-3 小时 新手友好度 68/100
darnitdevorg/darnit#606 ·
维护者通常 2 天内回复
-
`darnit validate` crashes on openssf-baseline.toml summarising levels可能已有人在做 @i-am-paradox 于 12 天前认领。 未关闭interface-cli module-core
难度 2/5 1-3 小时 新手友好度 78/100
darnitdevorg/darnit#589 · 1 条评论 ·
维护者通常 2 天内回复
-
good first issue maintenance
难度 2/5 1-3 小时 新手友好度 83/100
darnitdevorg/darnit#587 · 2 条评论 ·
维护者通常 2 天内回复
查看 darnitdevorg/darnit 的全部 Issue
相似的 Issue
-
The changelog workflow excludes otelbot but not dependabot, so every Dependabot pull request fails the changelog check可能已有人在做 @ocelotl 今天认领。 未关闭
难度 1/5 1 小时以内 新手友好度 82/100
open-telemetry/opentelemetry-python#5825 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
cuga-project/cuga-agent#1020 ·
维护者通常 2 天内回复
-
难度 1/5 1 小时以内 新手友好度 70/100
microsoft/playwright#43640 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 84/100
stac-utils/stac-fastapi-elasticsearch-opensearch#965 ·
维护者通常 2 天内回复
-
from-review-extraction library privacy python severity:suggested
难度 2/5 1-3 小时 新手友好度 83/100
LearningCircuit/local-deep-research#7951 ·
维护者通常 2 天内回复