Refs #426: Document MCP bounty filters#496
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThis PR documents the ChangesMCP list_bounties filter documentation
Possibly related PRs
🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
GHX5T-SOL
left a comment
There was a problem hiding this comment.
Reviewed current head a80db6eb6a2c8720e4da63f1aa4d7ac706236c02 for Bounty #447.
Inspected docs/agent-guide.md, docs/api-examples.md, tests/test_docs_public_urls.py, and app/mcp_tools.py. The docs now match the implemented MCP list_bounties filters: status defaults to open and accepts open/paid/closed, q matches repo/title/acceptance plus numeric issue numbers, and limit defaults to 25 with max 100. The new regression anchors the filtered call in both docs files. A live unauthenticated MCP call with status=open, q=docs, and limit=2 returned open docs-related bounties #456 and #426, so the example shape is current.
Validation:
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest tests/test_docs_public_urls.py::test_agent_docs_show_mcp_bounty_filter_arguments -q-> 1 passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python scripts/docs_smoke.py-> docs smoke okPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest tests/test_docs_public_urls.py -q-> 24 passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev ruff check tests/test_docs_public_urls.py docs/agent-guide.md docs/api-examples.md-> passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev ruff format --check tests/test_docs_public_urls.py-> 1 file already formattedgit diff --check origin/main...HEAD-> cleangit diff --no-ext-diff origin/main..HEAD | gitleaks stdin --no-banner --redact --exit-code 1-> no leaks found
GitHub checks show CodeRabbit skipped/pass and CI pass. No blockers found.
GHX5T-SOL
left a comment
There was a problem hiding this comment.
Reviewed PR #496 at current head a80db6eb6a2c8720e4da63f1aa4d7ac706236c02.
Checked files: docs/agent-guide.md, docs/api-examples.md, tests/test_docs_public_urls.py, plus the existing MCP implementation in app/mcp.py and app/mcp_tools.py.
Evidence:
- Confirmed the documented
list_bountiesfilters match the existing MCP tool behavior:statusacceptsopen,paid, orclosed;qsearches repo/title/acceptance text and plain numeric GitHub issue numbers;limitdefaults to 25 and is bounded to 1..100. - Verified both docs now include a filtered
tools/callexample withstatus="open",q="docs", andlimit=2. - Verified the new regression test checks both documentation locations for the filtered call and the key filter semantics.
- Ran the live public MCP example from the PR against
https://mcp.mrwk.ltclab.site/mcp; it returned two filtered open docs-related bounty rows, matching the documented behavior.
Validation:
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest tests/test_docs_public_urls.py::test_agent_docs_show_mcp_bounty_filter_arguments -q-> 1 passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest tests/test_api_mcp.py::test_mcp_tools_list_and_call tests/test_bounty_api.py::TestBountyListRoutes -q-> 6 passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest tests/test_docs_public_urls.py -q-> 24 passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest -q-> 415 passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python scripts/docs_smoke.py-> docs smoke okPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m mypy app-> success, no issues in 30 source filesPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev ruff check docs/agent-guide.md docs/api-examples.md tests/test_docs_public_urls.py-> passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev ruff format --check tests/test_docs_public_urls.py-> 1 file already formattedgit diff --check origin/main...HEAD-> cleangit diff --no-ext-diff origin/main..HEAD | gitleaks stdin --no-banner --redact --exit-code 1-> no leaks found
Verdict: clean, focused docs/test PR. No blockers found.
tolga-tom-nook
left a comment
There was a problem hiding this comment.
Reviewed PR #496 at head a80db6e for the rolling review bounty #447.
Verdict: approved / no blockers found in the scoped docs change. This is a useful, focused docs update for bounty #426: it documents the already-implemented MCP list_bounties filters in the two places agents are likely to look, without changing behavior or making any MRWK liquidity/price claims.
Evidence inspected:
docs/agent-guide.mdlines 182-190: documentsstatus,q, andlimitfor narrowing bounty candidates, including default/allowed values and an executable MCP JSON-RPC example.docs/api-examples.mdlines 478-485: mirrors the same public MCP filter guidance next to the existinglist_bountiesexample.tests/test_docs_public_urls.pylines 278-291: adds a regression check that both docs contain the filteredlist_bountiescall and status/limit/search wording.app/mcp_tools.pylines 100-105 and 117-140: confirmed the docs match implementation:limitdefaults to 25 and caps at 100;statusis limited toopen,paid,closed;qsearches repo/title/acceptance and numeric issue numbers.
Validation run locally on the PR branch:
uv run --extra dev python -m pytest tests/test_docs_public_urls.py -q->24 passeduv run --extra dev python scripts/docs_smoke.py->docs smoke okuv run --extra dev ruff check docs/agent-guide.md docs/api-examples.md tests/test_docs_public_urls.py->All checks passed!
Compatibility notes: this PR is docs/test-only, keeps the public MCP argument range consistent with the tool code, and does not overlap with the adjacent internal-bounty-id or REST bounty-list docs sections beyond adding the missing MCP filter example.
Summary
Bounty #426 docs update.
This documents the existing MCP
list_bountiesfilter arguments in the agent-facing docs:list_bountiesexample todocs/agent-guide.mdforstatus,q, andlimit.docs/api-examples.mdnext to the defaultlist_bountiescall.Evidence
The MCP tool description already advertises optional
status,q, andlimitfilters, andapp/mcp_tools.pyimplements them. I also checked the live unauthenticated MCP host with:The live call returned a JSON-RPC result with filtered open bounty rows, including docs-related bounties.
Validation
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest tests/test_docs_public_urls.py::test_agent_docs_show_mcp_bounty_filter_arguments -q-> 1 passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python scripts/docs_smoke.py-> docs smoke okPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest tests/test_docs_public_urls.py -q-> 24 passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev ruff check tests/test_docs_public_urls.py-> passedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev ruff format --check tests/test_docs_public_urls.py-> 1 file already formattedPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest -q-> 415 passedgit diff --check-> passedNo private keys, wallet material, cookies, OAuth state, access tokens, signatures, secrets, price claims, liquidity claims, exchange claims, bridge promises, off-ramp promises, or fabricated payout claims are included.
Summary by CodeRabbit
Documentation
Tests