[CHORE]: llmguardplugin — bump mcp to >=2,<3 and document mcp-contextforge-gateway runtime dependency
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start with plugins/external/llmguard/pyproject.toml and the MCP SDK v2 migration guide. Review the llmguard plugin’s MCP usage and run its available test suite against MCP SDK v2, then verify the cryptography compatibility question. Done means the version constraint, runtime-dependency rationale, test results, and CI outcome are documented.
Written by the indexing model from the issue text.
Description
Summary
After the plugin has been moved to this repository (tracked in #22), update plugins/external/llmguard/pyproject.toml to target MCP SDK v2 and formally document the intentional omission of mcp-contextforge-gateway as a declared dependency.
Dependency changes
1. MCP SDK version bump
# Before
mcp>=1.28.1,<2
# After
mcp>=2,<3
This aligns with the MCP SDK v2 migration tracked in IBM/mcp-context-forge#6218 (Step 10: IBM/mcp-context-forge#6228).
2. API changes required by MCP SDK v2
Per the MCP SDK v2 migration guide:
- Protocol type aliases using camelCase have been removed; use snake_case equivalents.
- Review any transport constructor parameters — these may need to move to
run()/appcall sites. - Validate that sync handler functions do not call
asyncio.get_running_loop().
3. mcp-contextforge-gateway runtime dependency — document clearly
mcp-contextforge-gateway is deliberately absent from [project.dependencies]. The existing comment in pyproject.toml explains the rationale:
mcp-contextforge-gateway is provided at runtime by the gateway process. It is not listed as a direct dependency to avoid cryptography version conflicts with llm-guard's transitive dependency on presidio-anonymizer.
As part of this bump, verify whether the cryptography conflict still exists with the versions of llm-guard and mcp-contextforge-gateway compatible with MCP SDK v2. If the conflict has been resolved upstream, consider whether to add mcp-contextforge-gateway as a declared optional dependency (e.g., [project.optional-dependencies] gateway = ["mcp-contextforge-gateway>=..."])). Either way, ensure the decision is clearly documented.
Acceptance criteria
-
mcpconstraint updated to>=2,<3inpyproject.toml - All tests pass against MCP SDK v2
-
mcp-contextforge-gatewayomission is clearly documented (comment or README section) - Cryptography conflict investigated; outcome noted in this issue or a follow-up
- CI green
References
- Depends on: #22 (move issue)
- MCP SDK v2 migration epic: IBM/mcp-context-forge#6218
- Step 10 (mcp-servers update): IBM/mcp-context-forge#6228
- Dominant language
- Python
- Stars
- 1
- Forks
- 1
- Avg merge
- 4h 29m
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from IBM/contextforge-examples
-
Difficulty 2/5 Half a day Newbie friendliness 78/100
IBM/contextforge-examples#29 ·
-
security
Difficulty 3/5 1-2 days Newbie friendliness 62/100
IBM/contextforge-examples#39 · 3 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
IBM/contextforge-examples#37 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
IBM/contextforge-examples#38 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
IBM/contextforge-examples#32 ·
All issues in IBM/contextforge-examples
Similar issues
-
documentation help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
simonw/sqlite-utils#872 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100