Repository navigation
feat(mcp): add artifact info adapter - #4885
Conversation
Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: fcf620cc-7e44-482d-965b-7d1704ef61e5
There was a problem hiding this comment.
🟡 Changes recommended
Required CLI/MCP parity coverage is missing for the new adapter.
1 open finding
What changed in this PR
Adds the first-class typed specify_artifact_info MCP adapter backed by the shared artifact.info operation.
Changes:
- Adds typed input/output contracts, error mapping, and response-size enforcement.
- Registers
artifact.infoin the MCP inventory. - Adds adapter, discovery, protocol, and stdio tests.
| File | Description |
|---|---|
src/specify_cli/artifacts/mcp_info.py |
Implements the MCP adapter. |
src/specify_cli/artifacts/_mcp.py |
Registers and exposes the tool. |
tests/specify_cli/artifacts/test_mcp_info.py |
Adds comprehensive adapter tests. |
tests/specify_cli/artifacts/test_mcp_list.py |
Updates inventory expectations. |
tests/specify_cli/mcp_server/test_server.py |
Verifies discovery schema. |
tests/specify_cli/mcp_server/test_stdio.py |
Exercises the tool over stdio. |
🧠 Review effort: Balanced
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: fcf620cc-7e44-482d-965b-7d1704ef61e5
|
Addressed the review feedback in Validation:
AI disclosure: generated with GitHub Copilot using GPT-5.6 Sol in autonomous mode; code, tests, validation, and this review-round summary. |

Summary
specify_artifact_infofor the sharedartifact.infooperation merged in refactor(artifact): extract info operation #4882_operation_infowith strict closed inputs, typed named/hook outputs, immutable server-launch project context, structured error mapping, sanitized internal failures, and final actual-wire response budgetingartifact.infoavailable in the hierarchy-owned inventory while preservingartifact.list,artifact.lookupunavailability,specify_version, and the transitional generic toolsValidation
uv sync --extra test— passedLC_ALL=en_US.UTF-8 .venv/bin/python -m pytest -q— 10,202 passed, 19 skipped.venv/bin/python -m pytest tests/specify_cli/artifacts -q— 339 passed.venv/bin/python -m pytest tests/specify_cli/artifacts/test_mcp_info.py tests/specify_cli/artifacts/test_mcp_list.py --cov=specify_cli.artifacts.mcp_info --cov=specify_cli.artifacts._mcp --cov-branch --cov-report=term-missing -q— 100% statement and branch coverage (180 statements, 12 branches; 106 passed)uv run ruff checkon all touched Python files — passeduv run ruff format --checkon all touched Python files — passedgit diff --check— passedScope audit
artifact.lookupimplementationartifact.listsemantic or response-budget changesAI assistance disclosure
Implemented with GitHub Copilot using GPT-5.6 Sol in autonomous mode; code generation, tests, validation, and this pull request description.